Docebo Connect: External IDs Connector

Prev Next

Introduction

The External IDs connector is a Docebo Connect connector that exposes the External IDs functionality directly within your Connect recipes. External IDs provide a way to store and manage different identifiers for entities that exist both in the Docebo platform and in external systems, improving performance during synchronization by mapping and storing the unique identifiers (UIDs) of Docebo entities alongside their corresponding UIDs in third-party systems.

The connector appears in Docebo Connect as Docebo Learn - External IDs and allows your integrations to register and manage integrations in the External IDs service, send commands to create and update mappings between Docebo entities and external entities and query mappings that have been created through those commands.

This article describes how to use the External IDs connector actions in Docebo Connect. It is intended for platform administrators and integration owners who design and maintain Docebo Connect projects, as well as technical users who need to understand how External IDs behave at the recipe level. You should already be familiar with the basic concepts of connectors, connections and recipes in Docebo Connect.

Before you start

Each integration that uses External IDs takes responsibility for a number of tasks: creating, updating, deleting and retrieving entities involved in the Docebo platform according to the integration's purpose; informing the External IDs service when an integration is activated or deactivated; asking External IDs to store metadata for synchronized Docebo entities; and setting the initial External IDs matching status for the Docebo entities involved when an integration is activated.

Role of the event bus

The event bus determines how integrations must react when a Docebo entity changes in the platform. Once an integration subscribes to platform events through the External IDs connector, mappings can be updated automatically when entities change. For example: if you map a Docebo user to an external user and that Docebo user is then deleted in the platform, the mapping between that user and the external entity is updated, allowing the integration to apply business logic such as deleting the corresponding external user.

Supported platform events

Integrations can choose which events to subscribe to when creating or updating an External IDs integration. The following platform events are supported:

Category

Event

User events

  • platform.events.user.UserCreated

  • platform.events.user.UserUpdated

  • platform.events.user.SelfRegistrationRequestApproved

  • platform.events.user.UserDeleted

Branch membership events

  • platform.events.orgchart.UserAddedToBranch

  • platfrom.events.orgchart.UserRemovedFromBranch

Course and session events

  • platform.events.course.CourseCreated

  • platform.events.course.CourseUpdated

  • platform.events.course.CourseDeleted

  • platform.events.course.IltSessionCreated

  • platform.events.course.IltSessionUpdated

  • platform.events.course.IltSessionDeleted

Learning plan structure events

  • platform.events.learningplan.LearningPlanCreated

  • platform.events.learningplan.LearningPlanUpdated

  • platform.events.learningplan.LearningPlanDeleted

  • platform.events.learningplan.LearningPlanCourseAdded

  • platform.events.learningplan.LearningPlanCourseUpdated

  • platform.events.learningplan.LearningPlanCourseRemoved

Enrollment events

  • platform.events.enrollment.UserEnrolledInCourse

  • platform.events.enrollment.UserUnenrolledFromCourse

  • platform.events.enrollment.UserCompletedCourse

  • platform.events.enrollment.CourseEnrollmentUpdated

  • platform.events.enrollment.UserCourseEnrollmentStatusChanged

  • platform.events.enrollment.UserEnrolledInIltSession

  • platform.events.enrollment.UserEnrollmentInIltSessionUpdated

  • platform.events.enrollment.UserUnenrolledFromIltSession

  • platform.events.enrollment.LearningPlanEnrollmentUpdated

  • platform.events.enrollment.UserUnenrolledFromLearningplan

Learning plan enrollment events

  • platform.events.learningplan.LearningPlanUserAdded

  • platform.events.learningplan.UserCompletedLearningPlan

Prerequisites

Before you use the External IDs connector, ensure that:

  • Docebo Connect is active on your platform and you can access it from the Admin Menu > Docebo Connect > Manage entry.

  • You have the permissions required to manage projects, connectors and recipes in Docebo Connect.

  • You are familiar with the basic concepts of connectors, connections and recipes in Docebo Connect, as described in the Docebo Connect and Docebo Connect: Glossary of terms articles.

Accessing the External IDs connector in Docebo Connect

To access the External IDs connector, log in as a Superadmin and open the Admin Menu. Find Docebo Connect and press Manage. In your project, create or open a recipe. Add a step of type Actions in app and search for Docebo Learn - External IDs in the list of connectors. Select the existing connection for the Docebo platform when prompted.

You can then choose one of the connector actions described in the following sections.

Overview of connector actions

The Docebo Learn - External IDs connector supports four core actions:

  • Create integration

  • Update integration

  • Run commands

  • Query entities

Each action is described in detail below.

Create integration

The Create integration action registers a new integration in the External IDs service for the current platform domain. When you run this action, the External IDs service adds the integration to External IDs for the specific domain, creates a dedicated database for the domain if one does not yet exist, generates a unique integration UUID and a pre-shared key (PSK) for the integration and stores the salt and hashed PSK in the External IDs data store. The registered integration is activated by default and the action subscribes it to the selected events on the event bus.

Input fields

Field

Required

Description

Name

Yes

Name that identifies the integration. For example: SLACK.

Events

Optional

Set of platform events the integration must subscribe to. Select events from the supported events list above.

Output fields

Field

Description

uuid

The UUID that uniquely identifies the registered integration in the External IDs service.

psk

The pre-shared key that acts as a password for the registered integration when using the other External IDs actions.

Please note:

You must store the uuid and psk values in a secure and retrievable location, such as a Docebo Connect lookup table or environment properties. The External IDs service does not expose an API to retrieve these values later, so they cannot be recovered if they are lost.

Update integration

The Update integration action updates an existing integration in the External IDs service. You can use it to change the integration name, activate or deactivate the integration and update the list of subscribed events.

Input fields

Field

Required

Description

Integration UUID

Yes

UUID of the integration, as returned by the Create integration action.

Integration PSK

Yes

PSK of the integration, as returned by the Create integration action.

Name

No

New integration name, if you want to rename the integration.

Status

No

Parameter that activates or deactivates the integration. Use it to set the integration as active or inactive.

Events

No

Updated set of events that the integration must subscribe to.

When you run Update integration, the integration configuration is updated with the provided values and the selected events are subscribed on the event bus for that integration.

Please note:

If you deactivate an integration by changing its status to inactive, subsequent Run command executions for that integration will not have any effect until you reactivate it.

Run commands

The Run commands action sends commands to the External IDs command queue for a specific integration. Each command describes a mapping operation that associates a Docebo entity with a corresponding external entity, or that resets an existing mapping. Once the commands are queued, the External IDs consumer processes them and stores the resulting mappings.

Input fields

Field

Required

Description

Integration UUID

Yes

UUID of the integration, as returned by Create integration.

Integration PSK

Yes

PSK of the integration, as returned by Create integration.

Name

Yes

Name of the command to run. For example: MatchUserCommand.

External ID

Depends on command

Identifier of the external entity you want to map to a Docebo entity. This ID must uniquely identify the entity in the external system.

Internal ID

Depends on command

Identifier of the Docebo entity in the platform.

Internal UUID

Depends on command

UUID of the Docebo user, used by user-related commands.

Course ID

Depends on command

Docebo course ID for course or session related commands.

Session ID

Depends on command

Docebo session ID for session related commands.

Learning Plan ID

Depends on command

Docebo learning plan ID for learning plan related commands.

User ID

Depends on command

Docebo user ID for enrollment related commands.

Mapping ID

Depends on command

Identifier that links an internal mapping with an external mapping. When both share the same mapping_id, they are automatically matched. For example, using an email address as the mapping_id aligns mappings on that email.

Metadata

No

Additional information in the form of key-value pairs. Values can be strings, numbers, booleans or null, and nested JSON structures are supported.

The exact combination of required fields depends on the command you select.

Supported commands

The table below lists the available commands and their required fields. All fields are mandatory, except where noted.

Command

Fields

MatchUserCommand

  • name

  • external_id

  • internal_id

  • internal_uuid

  • metadata (optional)

MatchCourseCommand

  • name

  • external_id

  • internal_id

  • metadata (optional)

MatchSessionCommand

  • name

  • external_id

  • internal_id

  • course_id

  • metadata (optional)

MatchLearningPlanCommand

  • name

  • external_id

  • internal_id

  • metadata (optional)

MatchCourseEnrollmentCommand

  • name

  • external_id

  • internal_id

  • course_id

  • metadata (optional)

MatchSessionEnrollmentCommand

  • name

  • external_id

  • internal_id

  • session_id

  • metadata (optional)

MatchLearningPlanEnrollmentCommand

  • name

  • external_id

  • internal_id

  • learning_plan_id

  • metadata (optional)

ResetUserMatchCommand

  • name

  • internal_id

  • internal_uuid

ResetAllUsersMatchCommand

  • name

ResetLearningPlanMatchCommand

  • name

  • internal_id

ResetAllLearningPlansMatchCommand

  • name

ResetSessionMatchCommand

  • name

  • internal_id

ResetAllSessionsMatchCommand

  • name

ResetCourseMatchCommand

  • name

  • internal_id

ResetAllCoursesMatchCommand

  • name

ResetCourseEnrollmentMatchCommand

  • name

  • user_id

  • course_id

ResetAllCourseEnrollmentsMatchCommand

  • name

ResetSessionEnrollmentMatchCommand

  • name

  • user_id

  • session_id

ResetAllSessionEnrollmentsMatchCommand

  • name

ResetLearningPlanEnrollmentMatchCommand

  • name

  • user_id

  • learning_plan_id

ResetAllLearningPlanEnrollmentsMatchCommand

  • name

ResetUserMatchByExternalIdCommand

  • name

  • external_id

MapUserCommand (internal matching)

  • name

  • mapping_id

  • internal_id

  • internal_uuid

MapUserCommand (external matching)

  • name

  • mapping_id

  • external_id

  • metadata (optional)

When you run Run commands, the specified commands are queued and processed and mappings are created, updated or reset according to the command semantics. The action output includes information about successful and failed items when you test the recipe in Docebo Connect.

Disclaimer:

External IDs can map via any additional field defined by the integrator. That field could contain personally identifiable information (PII). Docebo does not take responsibility for which fields the integrator chooses to store in the service. Additionally, Docebo does not automatically delete or anonymize users in Docebo when they are deleted in a third-party system. To clean up any data in the service, the integrator must create the appropriate integration logic.

Query entities

The Query entities action invokes the query service in the External IDs infrastructure. You can use it to retrieve mappings and related metadata that were created through Run commands. This action lets your integration query and filter mappings based on time ranges, metadata and entity types.

Input fields

Field

Required

Description

Integration UUID

Yes

UUID of the integration, as returned by Create integration.

Integration PSK

Yes

PSK of the integration, as returned by Create integration.

Metadata filters

No

JSON-based filters that match metadata stored with mappings. Values can be strings, numbers, booleans or null. Operators use Equals for == and Not Equals for !=.

Entity selection and filters

No

Fields that define which entities to retrieve and how to filter them.

Sort by

No

Field used for sorting results. Supported values are:

  • Created At

  • Updated At

  • Deleted At

  • Matched At

  • Last Updated At

Sort direction

No

Sort order, either Ascending or Descending.

Page

No

Page number for paginated results.

Page Size

No

Number of records per page.

Entities and internal IDs

The entity fields represent the internal Docebo identifiers for the entities you want to query. For each entity type, you can specify lists of IDs as follows:

Entity type

Types of ID lists

Users

  • User IDs

  • User UUIDs

Courses

  • Course IDs

Course Enrollments

  • User-course mappings (user ID and course ID)

Sessions

  • Session IDs

Events

  • Event IDs

Session Enrollments

  • User-session mappings (user ID and session ID)

Learning Plans

  • Learning plan IDs

Learning Plan Enrollments

  • User-learning plan mappings (user ID and learning plan ID)

Time-based query filters

You can filter records based on when they were created, updated, deleted, matched or touched. The following filters are available:

  • Created at from / Created at to

  • Updated at from / Updated at to

  • Deleted at from / Deleted at to

  • Matched at from / Matched at to

  • Last updated at from / Last updated at to

  • Touched at from / Touched at to

These filters can be combined with metadata filters to restrict the result set.

Output fields

The Query entities action returns a list of mappings. Each item can contain the following fields, depending on the entity type and the command that created the mapping:

  • integration_id

  • external_id

  • internal_id

  • internal_uuid

  • mapping_id

  • user_id

  • session_id

  • course_id

  • learning_plan_id

  • created_at

  • updated_at

  • deleted_at

  • matched_at

  • last_updated_at

  • metadata

When you run Query entities, the External IDs query service retrieves mappings that match the provided filters and results are paginated according to the Page and Page Size settings. You can then process the returned mappings in your recipes. This can be useful, for example, to synchronize data with a third-party system.

Best practices

  • Run Create integration once for each external integration and securely store the generated uuid and psk values in a lookup table or environment properties.

  • Use Update integration to change names, statuses or subscribed events rather than creating a new integration.

  • Design Run commands steps so that mappings are idempotent where possible, especially when commands can be retried.

  • Use Query entities with specific metadata and time filters to limit the amount of data returned and reduce processing time.