Skip to Content

Configuring an external content source

Prerequisites: the LMS and External content options on your account. Without the first, the LMS subpage does not appear; without the second, the block does not appear on that subpage.

On this page

Configuring an external content source

Prerequisites: the LMS and External content options on your account. Without the first, the LMS subpage does not appear; without the second, the block does not appear on that subpage.

Rights needed: the Configuration menu entry opens with the Update customization right. ⚠️ The right called Edit / add IT integrations, ticked on the administrator profile and unticked on the deputy profile, is not enough on its own to open that menu.

A source describes one provider: its address, how it authenticates you, and what it can report back at the end. Once declared, it is the anchor point for as many capsules as you want. For providers that already have a dedicated connector, see Edflex or Stellia instead.

Where it is set

Configuration › Integrations › LMS, block External content configuration, at the bottom of the page. The Add a new external content configuration link opens the form.

⚠️ It is not on the External Services subpage. That neighbouring subpage carries Slack, Stripe, Lucca and the like, not external content sources.

Sources belong to the account, not to a department. The LMS subpage has no departmental version: picking a department sends you to a different configuration page.

The form

Configuration name is the only field required in every case. That name, and nothing else, identifies the source when authoring a capsule: two sources sharing a name become impossible to tell apart.

Authentication drives the rest of the form. Its values are displayed raw, untranslated. NONE, APIKEY and LTI are always listed; TALENTSOFT appears only when the LMS option is on your account.

ValueFields asked forConfirm becomes available once
NONEDisplay type, Resource, Launch URL, Method to get resultsDisplay type and Resource are picked
APIKEYthe same, plus Key name and Key valueDisplay type and Resource are picked and both key fields are filled
LTILaunch URL, Key, Secret, Method to get resultsLaunch URL and Secret are filled
TALENTSOFTLaunch URL onlyLaunch URL is filled

Under NONE and APIKEY, Confirm becomes available before you have typed anything in Launch URL. A source saved without an address raises no warning: check that field yourself before confirming.

Resource here is the source kind, and it has a single possible value, REST: that is not an authentication mode, it is the kind of source. The capsule form uses the same word for something else, described at the end of this article. Display type offers three values, Deeplinking, Iframe and New window, and it appears only under NONE and APIKEY.

With NONE, Beedeez builds the link and opens it. With APIKEY, Beedeez first calls your address with the key as a header and opens whatever link you return. With LTI, Beedeez issues a signed LTI launch and carries the learner identity; the form offers no Display type choice for this mode. With TALENTSOFT, the source sets itself to REST, Iframe and no result reporting, so only the address is left to fill.

In the address field, Beedeez substitutes the markers :userId, :userHashedId, :ownerId, :resourceId and :userExternalId at launch time. The last one assumes the learner carries an external id for your account, otherwise the launch fails.

⚠️ Iframe fails silently with many providers. They refuse to be framed, and the learner sees a blank area with no message. Test it before choosing that mode.

Method to get results

This field decides whether the provider can say a learner finished. It offers None and Callback Url, plus Stellia if your account carries the matching option.

The setting belongs to the source, never to a capsule and never to the whole account. Every capsule served by that source reports back, or none does. The field shows None until you pick another value.

On Callback Url, Beedeez mints the callback address itself and hands it to the provider at every launch: one per learner, per capsule and per attempt. Nothing to type on your side, nothing to copy out of the back office. The call contract is described in Reporting completion from a third-party tool.

The address carries a random identifier valid for 100 days, reused on every relaunch of the same attempt. No button in the interface invalidates it early.

LTI sends a callback address even when you asked for none

The custom parameter custom_callbackurl is added to the LTI launch even when Method to get results is None. A conscientious provider will read it and call it, and get a 404 every time. Nothing in the back office reports that refusal: on your side the capsules simply stay at zero.

If you go LTI and you expect completions, set Method to get results to Callback Url when you create the source.

What the form does not do

  • No connection test. Confirm saves the source without calling the provider. A wrong address only shows up when a learner first launches the content.
  • No resource listing. Beedeez does not query the provider for its contents: each resource id is typed by hand into the capsule.
  • No reporting under APIKEY. That mode never passes a callback address, whatever Method to get results says.

A source and the capsules using it

The number of sources is not capped. On the capsule side, external content is wired through two fields: Configuration, which lists your sources by name, and Resource, the id of the content at the provider.

Editing a source applies at once to every capsule pointing at it: changing the address or the authentication mode moves them all together. Deleting it breaks them all the same way, and the content no longer opens. Nothing warns you at deletion time, and no list shows which capsules depend on a source: keep that inventory yourself before touching a source in production.

Going further


Discutez avec nous