Solidroad + Docebo Integration Guide

Last updated: July 2, 2026

What this integration does

When a learner opens the Docebo course, Solidroad checks whether they’ve already passed the linked Solidroad assignment. If so, it sends a completion status and score to the specific Learning Object inside that course that’s wired up to Solidroad via xAPI.

Solidroad only checks at that moment a learner opens the Learning Object: someone who passes the assignment won’t see anything update in Docebo until they next open it.


Before you start

You’ll need:

  • Admin access in Docebo (for the Docebo-side setup).

  • The Docebo integration enabled on your Solidroad account. If you don’t see Docebo under Integrations, reach out to Solidroad and we’ll switch it on.

👉 Tip: keep Docebo and Solidroad open in two browser tabs. You’ll switch between them a couple of times during setup.


Setting it up

Step 1: Create a connection app in Docebo

In Docebo, create a new API and SSO app so the two systems can talk to each other. When it asks for a connection type, choose JWT Bearer. Docebo gives you a Client ID to use in the next step.

Step 2: Start the connection in Solidroad

In Solidroad, go to Settings → Integrations and choose Docebo.

Fill in the following credentials:

  • Tenant subdomain: the first part of your Docebo web address (e.g. for acme.docebosaas.com, enter acme).

  • OAuth client ID: the Client ID from Step 1.

  • Service user username: the Docebo username Solidroad will authenticate as when it looks up learners and updates completions. We recommend creating a dedicated service account for this rather than reusing a real admin’s login — you’ll grant it permissions in Step 4.

  • Service user ID (optional but recommended): a number from Docebo that lets Solidroad run a more thorough check when you test the connection.

Save, and Solidroad will generate a secure key for you.

image.png

Step 3: Complete the handshake between Solidroad and Docebo

Back in Solidroad, copy the public key it generated and paste it into the Docebo app from Step 1. This secure handshake lets Solidroad update completions on your behalf, with no passwords shared.

Step 4: Give Solidroad service user permissions in Docebo

Solidroad updates completions through a Docebo service user. In Docebo, make that user a Power User and give it permission to:

  • Courses / view

Then choose which courses this applies to. Granting “All current and future courses” once means you never have to revisit this as you add new courses.

Step 5: Test the connection in Solidroad

In Solidroad, click Run test. A green “Connection healthy” message means you’re all set. If something’s off, Solidroad tells you exactly what to fix (for example, a missing permission).

image.png

Step 6: Whitelist the Launch URL in Docebo

  1. In Solidroad, go to Settings → Integrations → Docebo and copy the xAPI launch URL whitelist value. It looks like https://app.solidroad.com/api/public/docebo/xapi/<key>/*.

  1. In Docebo, go to Admin menu → Advanced Settings → E-Learning → xAPI (Tin Can) external content and add that value to the allowed list.

You only have to redo this if the whole integration is deleted and reconnected from scratch. A normal reconfigure (re-entering the fields in Step 2) does not change this value, so it won’t break anything you’ve already set up per course.

Step 7: Link Assignment to Docebo Course

Enter the Docebo course ID in the Solidroad assignment settings and click Verify. Locate the course ID in Docebo’s URL.

How to find a course’s ID in Docebo: Open the course in Docebo and look at the web address. The ID is the number at the end, for example .../course/edit/229 means the course ID is 229.

Step 8: Add the Additional Path to the Docebo Course

  1. On the assignment (once saved), copy the Docebo additional path.

image.png
  1. In Docebo, on the course from Step 7, add or edit a Tin Can (From URL) learning object.

  2. Paste just the additional path into its launch URL field. Don’t paste the whole whitelist value from Step 6; Docebo fills in the rest automatically when the learner opens it.

Each assignment has its own additional path. If you’re linking more than one assignment, or setting this up on more than one course, copy the additional path from each assignment separately; don’t reuse one.

We recommend completing one real end-to-end test: assign yourself to a Docebo course and a Solidroad assignment, pass the assignment, then open the Docebo course, and confirm it actually marks complete. This confirms Docebo accepted the additional path correctly. Don’t assume it worked just because setup went through without errors.

Troubleshooting

“This Docebo lesson isn’t ready” when a learner opens the course

This generic message can mean a few different things. Check in this order:

  1. Does the subdomain in Solidroad (Step 2) match the Docebo tenant the course is actually in? (Easy to get wrong with trial vs. production instances.)

  2. Does the learner’s Docebo username match the email saved in Solidroad?

  3. Is the Docebo course ID on the assignment (Step 7) correct, and was the assignment saved after the additional path was generated?

  4. Is the whitelist entry (Step 6) still there, and does it match the current key? (If the integration was ever deleted and reconnected, the key changes and the whitelist needs updating.)

If none of that explains it, please contact support and share around what time you saw the "This Docebo lesson isn’t ready" screen.