Introduction
This document is a guide to the Salesforce custom objects involved in the integration with Docebo.
Custom object structure list
This section lists all the Salesforce custom objects involved in the integration and provides details about their structure.
Docebo User (docebo_v3__DoceboUser__c
)
This custom object collects data about Docebo users. It represents all of the platform users involved with the integration and it is associated with any enrollment it might have with synchronized courses and/or learning plans.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Contact | docebo_v3__Contact__c |
Lookup(Contact) |
TRUE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Docebo User Id | Name |
Text(80) |
TRUE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Owner | OwnerId |
Lookup(User,Group) |
TRUE |
User | docebo_v3__User__c |
Lookup(User) |
TRUE |
User Id | docebo_v3__UserId__c |
Number(18, 0) (External ID) (Unique) |
TRUE |
Who | docebo_v3__Who__c |
Text(18) |
FALSE |
Tip: When a user is created from Salesforce in Docebo, the Who
field in Salesforce is not populated until the user has been enrolled in a learning plan in Docebo. If you are depending on using the Who
field for identifying a user in Docebo, another option would be to use the docebo_v3_User_c
field instead which corresponds to the sfdc_id
field in Docebo and is always populated.
Learning Plan (docebo_v3__LearningPlan__c
)
This custom object collects data about learning plans. It represents learning plans' records and it is related to enrollments and courses' data. It also collects completion data information via a roll-up relationship with its courses' enrollments.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Catalog_Deeplink | docebo_v3__Catalog_Deeplink__c |
Formula (Text) |
FALSE |
Code | docebo_v3__Code__c |
Text(255) |
FALSE |
Courses | docebo_v3__Courses__c |
Roll-Up Summary (COUNT Learning Plan Course) |
FALSE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Creation Date | docebo_v3__CreationDate__c |
Date/Time |
FALSE |
Deeplink | docebo_v3__Deeplink__c |
Formula (Text) |
FALSE |
Deleted | docebo_v3__Deleted__c |
Checkbox |
FALSE |
Deletion Date | docebo_v3__DeletionDate__c |
Date/Time |
FALSE |
Description | docebo_v3__Description__c |
Long Text Area(131072) |
FALSE |
Effective | docebo_v3__Effective__c |
Checkbox |
FALSE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Last Update Date | docebo_v3__LastUpdateDate__c |
Date/Time |
FALSE |
Learning Plan Id | docebo_v3__LearningPlanId__c |
Number(11, 0) (External ID) (Unique) |
TRUE |
Learning Plan Id | Name |
Text(80) |
TRUE |
Name | docebo_v3__Name__c |
Text(255) |
FALSE |
Owner | OwnerID |
Lookup(User,Group) |
TRUE |
Slug | docebo_v3__Slug__c |
Text(255) |
FALSE |
Thumbnail | docebo_v3__Thumbnail__c |
URL(255) |
FALSE |
Learning Plan Course (docebo_v3__LearningPlanCourse__c
)
This Custom Object links courses to Learning Plans. It is the junction object between docebo_v3__LearningPlan__c
and docebo_v3__Course__c
and represents the platform relationship between courses and learning plans.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
CompositeForeignKey | docebo_v3__CompsiteForeignKey__c |
Text(255) (External ID) (Unique Case Insensitive) |
TRUE |
Course | docebo_v3__Course__c |
Master-Detail(Course) |
TRUE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Learning Plan | docebo_v3__LearningPlan__c |
Master-Detail(Learning Plan) |
TRUE |
Learning Plan Course Id | Name |
Text(80) |
TRUE |
Learning Plan Course Enrollment (docebo_v3__LearningPlanCourseEnrollment__c
)
This custom object links learning plan enrollments to learning plans course enrollments. This is a technical junction object used to represent completion data for learning plans based on users' completion of that learning plan courses.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Completed | docebo_v3__Completed__c |
Checkbox |
FALSE |
Course Enrollment | docebo_v3__CourseEnrollment__c |
Lookup(Course Enrollment) |
TRUE |
Course Enrollment Status | docebo_v3__CourseEnrollmentStatus__c |
Picklist |
FALSE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Effective | docebo_v3__Effective__c |
Checkbox |
FALSE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Learning Plan Course Enrollment Id | Name |
Text(80) |
TRUE |
Learning Plan Enrollment | docebo_v3__LearningPlanEnrollment__c |
Master-Detail(Learning Plan Enrollment) |
TRUE |
UnenrollmentDate | docebo_v3__UnenrollmentDate__c |
Date/Time |
FALSE |
Learning Plan Enrollment (docebo_v3__LearningPlanEnrollment__c
)
This custom object collects data about enrollments to learning plans. This represents a platform enrollment of a platform user to a learning plan.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Completed Courses | docebov3__CompletedCourses__c |
Roll-Up Summary (COUNT Learning Plan Course Enrollment) |
FALSE |
Completion | docebo_v3__Completion__c |
Formula (Percent) |
FALSE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Docebo User | docebo_v3__DoceboUser__c |
Master-Detail(Docebo User) |
TRUE |
Enrolment Id | docebo_v3__EnrolmentId__c |
Text(18) (External ID) (Unique Case Insensitive) |
TRUE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Learning Plan | docebo_v3__LearningPlan__c |
Lookup(Learning Plan) |
TRUE |
Learning Plan Courses | docebo_v3__LearningPlanCourses__c |
Formula (Number) |
FALSE |
Learning Plan Enrollment Id | Name |
Text(80) |
TRUE |
UnenrollmentDate | docebo_v3__UnenrollmentDate__c |
Date/Time |
FALSE |
Who | docebo_v3__Who__c |
Text(18) |
FALSE |
Course (docebo_v3__Course__c
)
This custom object collects data about Docebo courses. This represents platform courses' records and exposes a subset of their properties.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Catalog_Deeplink | docebo_v3_Catalog_Deeplink_c |
Formula (Text) |
FALSE |
Code | docebo_v3__Code__c |
Text(255) |
FALSE |
Course External Id | docebo_v3__CourseId__c |
Number(11, 0) (External ID) (Unique) |
TRUE |
Course Id | Name |
Text(80) |
TRUE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Creation Date | docebo_v3__CreationDate__c |
Date/Time |
FALSE |
Deeplink | docebo_v3__Deeplink__c |
Formula (Text) |
FALSE |
Deleted | docebo_v3__Deleted__c |
Checkbox |
FALSE |
Deletion Date | docebo_v3__DeletionDate__c |
Date/Time |
FALSE |
Description | docebo_v3__Description__c |
Long Text Area(131072) |
FALSE |
Effective | docebo_v3__Effective__c |
Checkbox |
FALSE |
Language | docebo_v3__Language__c |
Text(100) |
FALSE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Last Update Date | docebo_v3__LastUpdateDate__c |
Date/Time |
FALSE |
Name | docebo_v3__Name__c |
Text(255) |
FALSE |
Owner | OwnerId |
Lookup(User,Group) |
TRUE |
Slug | docebo_v3__Slug__c |
Text(255) |
FALSE |
Thumbnail | docebo_v3__Thumbnail__c |
URL(255) |
FALSE |
Type | docebo_v3__Type__c |
Picklist |
FALSE |
Course Enrollment (docebo_v3__CourseEnrollment__c
)
This custom object collects data about Docebo enrollments to courses. This represents an enrollment of a platform user to a course. It also contains completion data about that particular enrollment (for example, how many training materials have been completed by a certain user within a specific course).
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
CompletedLearningObjects | docebo_v3__CompletedLearningObjects__c |
Number(10, 0) |
FALSE |
Completion | docebo_v3__Completion__c |
Percent(16, 2) |
FALSE |
Completion Date | docebo_v3__EnrollmentCompletionDate__c |
Date/Time |
FALSE |
Course | docebo_v3__Course__c |
Master-Detail(Course) |
TRUE |
Course Enrollment Id | Name |
Text(80) |
TRUE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Credits | docebo_v3__Credits__c |
Number(14, 2) |
FALSE |
Docebo User | docebo_v3__DoceboUser__c |
Master-Detail(Docebo User) |
TRUE |
Enrollment Date | docebo_v3__EnrollmentStartDate__c |
Date/Time |
FALSE |
Enrollment ID | docebo_v3__EnrolmentId__c |
Text(16) (External ID) (Unique Case Insensitive) |
TRUE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Score | docebo_v3__Score__c |
Number(14, 2) |
FALSE |
Status | docebo_v3__Status__c |
Picklist |
FALSE |
Time in course | docebo_v3__TimeInCourse__c |
Number(18, 0) |
FALSE |
UnenrollmentDate | docebo_v3__UnenrollmentDate__c |
Date/Time |
FALSE |
Who | docebo_v3__Who__c |
Text(18) |
FALSE |
Session (docebo_v3__Session__c
)
This custom object collects data about Docebo sessions (for webinars and ILT courses). This represents platform sessions of any kind, exposing a subset of their data.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Course | docebo_v3__Course__c |
Master-Detail(Course) |
TRUE |
Created By | CreatedById |
Lookup(User) |
FALSE |
Date End | docebo_v3_Date_End__c |
Date/Time |
FALSE |
Date Start | docebo_v3_Date_Start__c |
Date/Time |
FALSE |
Deleted | docebo_v3__Deleted__c |
Checkbox |
FALSE |
DeletionDate | docebo_v3__DeletionDate__c |
Date/Time |
FALSE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Name | docebo_v3__Name__c |
Text(255) |
FALSE |
Session External Id | docebo_v3__SessionId__c |
Text(32) (External ID) (Unique Case Insensitive) |
TRUE |
Session Id | Name |
Text(80) |
TRUE |
Session Type | docebo_v3__SessionType__c |
Formula (Text) |
FALSE |
Session Attendance (docebo_v3__SessionAttendance__c
)
This custom object collects data about users' attendance in webinar or classroom sessions. This represents platform users' attendance data to sessions.
Tip: The attendance in a session marks the course as completed within the Salesforce integrated data.
Field Label | Field Name | Data Type | Indexed |
---|---|---|---|
Created By | CreatedById |
Lookup(User) |
FALSE |
Docebo User | docebo_v3__DoceboUser__c |
Master-Detail(Docebo User) |
TRUE |
Enrolment Id | docebo_v3__EnrolmentId__c |
Text(18) (External ID) (Unique Case Insensitive) |
TRUE |
Last Modified By | LastModifiedById |
Lookup(User) |
FALSE |
Session | docebo_v3__Session__c |
Master-Detail(Session) |
TRUE |
Session Attendance Id | Name |
Text(80) |
TRUE |
UnenrollmentDate | docebo_v3__UnenrollmentDate__c |
Date/Time |
FALSE |
Best Practices
The Docebo integration with Salesforce defines a list of custom objects in Salesforce. The custom object list is available both in the package manager and in this article. As a rule, Docebo uses batch operations, triggers, and process builders to load and manage the data stored in these custom objects. Any other operation that may interfere with the workflows is not supported.
We highly recommend minimizing the integration overlap with existing procedures, since Docebo is not able to monitor, debug, and address issues on customizations that are impacted or impact the integration logic.
If you are planning to implement customizations on the Docebo for Salesforce integration package, please consider the following:
- Timing
- The Docebo integration can be configured to run massive data import and export. When these operations are performed, the integration uses Salesforce resources such as API calls, triggers, and SQL queries. When performing data import and export, make sure that no other procedure is running on those objects at the same time to avoid exhausting all of the available resources.
- Docebo custom objects
- The Docebo custom objects may be subject to updates from Docebo. It is highly recommended to avoid altering their structure or adding procedures that directly push data inside them. Additional fields and data may alter the proper functioning of the integration and cause service disruptions of the plugin not supported by Docebo.
- Code evolution
- Docebo maintains and updates the integration package for three main reasons:
-
New features
New features are added to the integration on a constant basis. Before the new feature is released, you will receive communication and you will have a test period before it goes live. -
Bug Fixing
The bug fixing activity is aimed at fixing the problems reported on the vanilla integration. If the bug fix does not change the business logic of the feature, it is released during the weekly maintenance release and communicated on the Product updates page (opens in a new tab). -
Performance Improvements
Similar to bug fixing, these types of changes do not impact the business logic and are released during the weekly maintenance release and communicated on the Product updates page (opens in a new tab).
-
New features
- Consistency
- The Docebo for Salesforce integration grants that:
- The custom objects will never be deleted;
- The data in the custom objects will never be deleted (with the exception of the Learning Plan Course object);
- The current procedures and triggers will never be deleted, though they could be modified to add new functionalities, improve performances, and fix bugs.
Please note: Docebo does not support any customization to its own data model in Salesforce developed by you or any 3rd party integrator.