Browse the docs

Integrations

Sending statements to your own LRS

Connect a workspace LRS so devlin.ai sends every attempt's xAPI statements to it from its servers, with credentials stored encrypted and never shown again.

Plans: Team, EnterpriseView as Markdown
On this page

A workspace LRS is a learning record store of your own, such as a company LRS or a reporting warehouse, that devlin.ai sends xAPI statements to directly from its servers. It receives the same statements an LMS package sends to the LMS, with the same settings, for every attempt in the workspace.

Before you start

  • The workspace's plan must be one of these: Team, Enterprise. On a plan with xAPI reporting but without a workspace LRS, the Workspace LRS card shows Not on this plan and names the plans that include it.
  • You must be an owner or admin of the workspace.
  • You need the LRS's endpoint, a key and a secret for Basic authentication. The endpoint must be a public https address.
  • Each workspace connects one LRS. Connecting another replaces it.

Steps

  1. Open Settings, then Integrations, and find Workspace LRS under xAPI reporting. For an organization, it is the organization's Integrations section.
  2. Enter the Endpoint, for example https://lrs.example.com/xapi/, the Key and the Secret.
  3. Select Save and test connection. devlin.ai asks the LRS for its about resource, then for one statement with the key and secret. It saves them only when about answers and the LRS accepts the key and secret. A key that may send statements but not read them passes, since sending is all devlin.ai does with it.

If the test fails, nothing is saved, and the card says why:

  • "Could not connect to the LRS: it did not answer. Check the endpoint and try again."
  • "Could not connect to the LRS with these details (it answered" followed by the status the LRS returned.
  • "Enter the LRS endpoint as an https address, for example https://lrs.example.com/xapi/"
  • "Put the key and secret in their own fields, not in the endpoint address"
  • "The LRS endpoint cannot have a query or a fragment"
  • "Enter the public address of your LRS. Private and internal addresses cannot be used."

Result

Once saved, the card shows the endpoint's host, "Key ending in" and the key's last characters, when the connection was verified, and the outcome of the last delivery: "Nothing delivered yet", "Last delivery" with a time, or "Last delivery failed" with a time. It shows the latest outcome only, so a later successful delivery replaces a failure.

The key and secret are stored encrypted. They are never shown again, in the app, to devlin, to AI tools or in logs. To change them, select Replace and enter new ones. To disconnect, select Remove and confirm in Remove the workspace LRS?: "Statements stop going to this LRS. Your LMS keeps receiving them. To connect again, enter the details again."

What the LRS receives

  • Every attempt at a simulation or coach in the workspace, wherever it ran: an LMS package, a Storyline or Rise course, an embed or a link. Test runs are never sent.
  • A journey's own statements, from journey packages downloaded from this version on, once the learner has practised a simulation or talked to a coach in that journey run. A run with neither, for example one with knowledge checks only, reports to the LMS but not to the workspace LRS.
  • The statements described in LMS packages: SCORM and xAPI reporting, shaped by the xAPI reporting settings. Every field is in the xAPI statement reference.
  • The full set even when the learner closes an LMS package before the evaluation finishes: devlin.ai sends it when the evaluation is saved, and sends terminated when the attempt closes or is abandoned.
  • Corrections: when a reviewer changes a rating in devlin.ai, the statements already sent are voided and the corrected ones sent.

A statement names the learner the LMS launched only when the workspace collects learner identity for that attempt (see Learner identity from the LMS). Otherwise, and outside an LMS, it names the learner with devlin.ai's own account for the workspace: the learner identifier when one was collected, otherwise an anonymous ID.

Delivery

Statements are sent in batches every few minutes. A statement the LRS does not accept is tried again later, waiting longer each time. After 8 failed tries, about 4 hours after the first, it stops retrying and is not sent again, even once the LRS is back, and the card shows "Last delivery failed". Delivered statements are deleted from devlin.ai's queue, since they can hold transcript or message text. Statement IDs are fixed, so a statement sent twice is stored once.

When the plan changes

On a plan without a workspace LRS, new statements stop being queued for it. Statements already queued may still be delivered. A saved LRS stays listed, with "no longer receives statements on this plan", and Remove always works.

devlin and AI tools

devlin never enters, changes or reads the LRS's endpoint, key or secret. Asked to, it explains where an owner or admin does it and links to the settings. AI tools connected over MCP cannot do it either.