Introduction
This document is a guide to the Salesforce Custom Objects involved in the integration with Docebo. Here follows an Entity-Relationship diagram showing the relationships among Custom Objects.
Custom Objects’ Structure
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 | Controlling Field | Indexed |
Contact | docebov3__Contact__c | Lookup(Contact) | TRUE | |
Docebo User Id | Name | Text(80) | TRUE | |
User | docebov3__User__c | Lookup(User) | TRUE | |
User Id | docebov3__UserId__c | Number(18, 0) (External ID) (Unique) | TRUE | |
Who | docebov3__Who__c | Text(18) | TRUE |
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 | Controlling Field | Indexed |
Catalog_Deeplink | docebo_v3_Catalog_Deeplink_c | Formula (Text) | FALSE | |
Code | docebov3__Code__c | Text(255) | FALSE | |
Courses | docebov3__Courses__c | Roll-Up Summary (COUNT Learning Plan Course) | FALSE | |
Creation Date | docebov3__CreationDate__c | Date/Time | FALSE | |
Deleted | docebov3__Deleted__c | Checkbox | FALSE | |
Deletion Date | docebov3__DeletionDate__c | Date/Time | FALSE | |
Description | docebov3__Description__c | Long Text Area(131072) | FALSE | |
Last Update Date | docebov3__LastUpdateDate__c | Date/Time | FALSE | |
Learning Plan Id | docebov3__LearningPlanId__c | Number(11, 0) (External ID) (Unique) | TRUE | |
Learning Plan Id | Name | Text(80) | TRUE | |
Name |
docebov3__Name__c | Text(255) | FALSE | |
Slug |
docebov3__Slug__c | Text(255) | FALSE | |
Thumbnail |
docebov3__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 | Controlling Field | Indexed |
CompositeForeignKey | docebov3__CompsiteForeignKey__c | Text(255) (External ID) (Unique Case Insensitive) | TRUE | |
Course | docebov3__Course__c | Master-Detail(Course) | TRUE | |
Learning Plan | docebov3__LearningPlan__c | Master-Detail(Learning Plan) | TRUE | |
Learning Plan Course Id | Name | Text(80) | FALSE |
Learning Plan Course Enrollment (docebo_v3__LearningPlanCourseEnrollment__c)
This Custom Object links Learning Plans enrollments to Learning Plans Courses 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 | Controlling Field | Indexed |
Completed | docebov3__Completed__c | Checkbox | FALSE | |
Course Enrollment | docebov3__CourseEnrollment__c | Lookup(Course Enrollment) | TRUE | |
Course Enrollment Status | docebov3__CourseEnrollmentStatus__c | Picklist | FALSE | |
Learning Plan Course Enrollment Id | Name | Text(80) | TRUE | |
Learning Plan Enrollment | docebov3__LearningPlanEnrollment__c | Master-Detail(Learning Plan Enrollment) | 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 | Controlling Field | Indexed |
Completed Courses | docebov3__CompletedCourses__c | Roll-Up Summary (COUNT Learning Plan Course Enrollment) | FALSE | |
Completion | docebov3__Completion__c | Formula (Percent) | FALSE | |
Docebo User | docebov3__DoceboUser__c | Master-Detail(Docebo User) | TRUE | |
Enrolment Id | docebov3__EnrolmentId__c | Text(18) (External ID) (Unique Case Insensitive) | TRUE | |
Learning Plan | docebov3__LearningPlan__c | Lookup(Learning Plan) | TRUE | |
Learning Plan Courses | docebov3__LearningPlanCourses__c | Formula (Number) | FALSE | |
Learning Plan Enrollment Id | Name | Text(80) | TRUE | |
Who | docebov3__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 | Controlling Field | Indexed |
Catalog_Deeplink |
docebo_v3_Catalog_Deeplink_c |
Formula (Text) | TRUE | |
Code | docebov3__Code__c | Text(255) | FALSE | |
Course External Id |
docebov3__CourseId__c | Number(11, 0) (External ID) (Unique) | TRUE | |
Course Id |
Name | Text(80) | TRUE | |
Creation Date |
docebov3__CreationDate__c | Date/Time | FALSE | |
Deeplink |
docebov3__Deeplink__c | Formula (Text) | FALSE | |
Deleted |
docebov3__Deleted__c | Checkbox | FALSE | |
Deletion Date |
docebov3__DeletionDate__c | Date/Time | FALSE | |
Description |
docebov3__Description__c | Long Text Area(131072) | FALSE | |
Effective |
docebov3__Effective__c | Checkbox | FALSE | |
Language |
docebov3__Language__c | Text(100) | FALSE | |
Last Update Date |
docebov3__LastUpdateDate__c | Date/Time | FALSE | |
Name |
docebov3__Name__c | Text(255) | FALSE | |
Slug |
docebov3__Slug__c | Text(255) | FALSE | |
Thumbnail |
docebov3__Thumbnail__c | URL(255) | FALSE | |
Type |
docebov3__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 (e.g. how many learning objects have been completed by a certain user within a certain course)
Field Label | Field Name | Data Type | Controlling Field | Indexed |
CompletedLearningObjects | docebov3__CompletedLearningObjects__c | Number(10, 0) | FALSE | |
Completion |
docebov3__Completion__c | Percent(16, 2) | FALSE | |
Completion Date |
docebov3__EnrollmentCompletionDate__c | Date/Time | FALSE | |
Course |
docebov3__Course__c | Master-Detail(Course) | TRUE | |
Course Enrollment Id |
Name | Text(80) | TRUE | |
Credits |
docebov3__Credits__c | Number(14, 2) | FALSE | |
Docebo User | docebov3__DoceboUser__c | Master-Detail(Docebo User) | TRUE | |
Enrollment Date |
docebov3__EnrollmentStartDate__c | Date/Time | FALSE | |
Enrollment ID |
docebov3__EnrolmentId__c | Text(16) (External ID) (Unique Case Insensitive) | TRUE | |
Score | docebov3__Score__c | Number(14, 2) | FALSE | |
Status |
docebov3__Status__c | Picklist | FALSE | |
Time in Course |
docebov3__TimeInCourse__c | Number(18, 0) | FALSE | |
Who |
docebov3__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 | Controlling Field | Indexed |
Course | docebov3__Course__c | Master-Detail(Course) | TRUE | |
Date End |
docebo_v3_Date_End_c | Date/Time | FALSE | |
Date Start | docebo_v3_Date_Start_c | Date/Time | FALSE | |
Deleted | docebov3__Deleted__c | Checkbox | FALSE | |
DeletionDate |
docebov3__DeletionDate__c | Date/Time | FALSE | |
Name |
docebov3__Name__c | Text(255) | FALSE | |
Session External Id |
docebov3__SessionId__c | Text(32) (External ID) (Unique Case Insensitive) | TRUE | |
Session Id |
Name | Text(80) | TRUE | |
Session Type |
docebov3__SessionType__c | Formula (Text) | FALSE |
Session Attendance (docebo_v3__SessionAttendance__c)
This Custom Object collects data about users' attendance to webinar/classroom sessions. This represents platform users' attendance data to sessions. Note that the attendance at a session marks the course as completed within the Salesforce integrated data.
Field Label | Field Name | Data Type | Controlling Field | Indexed |
Docebo User | docebov3__DoceboUser__c | Master-Detail(Docebo User) | TRUE | |
Enrolment Id |
docebov3__EnrolmentId__c | Text(18) (External ID) (Unique Case Insensitive) | TRUE | |
Session |
docebov3__Session__c | Master-Detail(Session) | TRUE | |
Session Attendance Id |
Name | Text(80) | TRUE |
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.
- 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.
- 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.
Docebo does not support any customization developed by you or any 3rd party integrator to its own Data Model in Salesforce.