Skip to content

Docebo

Docebo is a cloud-based Learning Management System (LMS) platform that provides enterprise learning solutions for employee training, customer education, and partner enablement.

ingestr supports Docebo as a source.

URI format

The URI format for Docebo is as follows:

plaintext
docebo://?base_url=<base_url>&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password>

URI parameters:

  • base_url: the base URL of your Docebo instance (e.g., https://yourcompany.docebosaas.com)
  • client_id: OAuth2 client ID for API authentication
  • client_secret: OAuth2 client secret for API authentication
  • username: (optional) username for password grant type authentication
  • password: (optional) password for password grant type authentication

Setting up a Docebo Integration

To obtain your Docebo API credentials:

  1. Log in to your Docebo platform as a Super Admin
  2. Navigate to SettingsAPI and SSO
  3. Create a new OAuth2 application
  4. Note the Client ID and Client Secret
  5. Configure the appropriate scopes for your integration needs

You can use either:

  • Client Credentials Grant: Use only client_id and client_secret (recommended for server-to-server integrations)
  • Password Grant: Include username and password along with client credentials (for user-specific access)

Here's a sample command that will copy data from Docebo into a DuckDB database:

bash
ingestr ingest \
--source-uri 'docebo://?base_url=https://yourcompany.docebosaas.com&client_id=your_client_id&client_secret=your_client_secret' \
--source-table 'users' \
--dest-uri duckdb:///docebo.duckdb \
--dest-table 'dest.users'

Tables

Docebo source supports ingesting the following sources into separate tables:

TablePKInc KeyInc StrategyDetails
branches--replaceOrganizational units/branches in the org chart. Full reload on each run.
categories--replaceCourse categories for organizing content. Full reload on each run.
certifications--replaceCertification programs and their configurations. Full reload on each run.
course_enrollments--replaceAll course enrollment records with completion status. Full reload on each run.
course_fields--replaceCustom course field definitions. Full reload on each run.
course_learning_objects--replaceLearning objects (modules) within all courses. Full reload on each run.
courses--replaceAll courses in the platform including e-learning, ILT, and webinars. Full reload on each run.
external_training--replaceExternal training records tracked in Docebo. Full reload on each run.
group_members--replaceMembership records for all groups. Full reload on each run.
groups--replaceUser groups/audiences for organizing learners. Full reload on each run.
learning_plan_course_enrollments--replaceCourse enrollments within learning plans. Full reload on each run.
learning_plan_enrollments--replaceUser enrollments in learning plans. Full reload on each run.
learning_plans--replaceLearning plans (learning paths) that group courses. Full reload on each run.
sessions--replaceILT/classroom sessions for instructor-led courses. Full reload on each run.
user_fields--replaceCustom user field definitions. Full reload on each run.
users--replaceAll platform users including learners, instructors, and administrators. Full reload on each run.

Use the table name as the --source-table parameter in the ingestr ingest command.

WARNING

Docebo does not currently support incremental loading, which means ingestr will do a full-refresh on each run.

NOTE

Date fields containing invalid dates (e.g., '0000-00-00') are automatically normalized to Unix epoch (1970-01-01) for compatibility.