About the integration
At DataCamp, we can integrate with Workday via AICC and the Workday API, making our content and completions available on the LMS.
Content sync process
DataCamp can sync its full content catalog to Workday. This includes courses, projects, practices, assessments and tracks, including custom tracks.
Workday only supports the concept of courses. Thus, our projects, assessments, tracks and practices will also be Learning Courses in Workday. Every Learning Course will contain a link to the content item on DataCamp.
DataCamp syncs its content on a periodic basis, with an interval of 3 hours. The sync process consists of:
- Adding new content
- Updating metadata of existing content (title, description, …)
- Marking archived content on DataCamp as inactive in Workday
Only the first sync of the AICC files sends the whole catalog, all subsequent syncs only send the delta between what’s already been synced and what’s new on DataCamp. The delta is calculated on DataCamp’s side. All updates to the metadata of existing content are sent with every sync via API.
Content mapping
The table below summarizes the metadata for each content item DataCamp sends to Docebo.
Name | Description |
Course | |
ID | The DataCamp ID of the content item. |
Course_Title | The title of the content item on DataCamp. |
Description | The description of the content item on DataCamp. |
Inactive | Whether or not the content is archived on DataCamp. |
Course_Number | The DataCamp id of the content item. |
Learning_Topic | String value, hardcoded to “DataCamp”. |
User_Language_ID | String value, hardcoded to “en_US”. |
Learning_Registerable_Status_ID | String value, hardcoded to “open”. |
On_Demand | Boolean value, hardcoded to “true”. |
Learning_Time_Unit_ID | String value, hardcoded to “hours” or “minutes”. |
Total_Course_Duration | Time required to finish a content on DataCamp. |
Exclude_from_Recommendations | Boolean value, hardcoded to “false”. |
Exclude_from_Search_and_Browse | Boolean value, hardcoded to “false”. |
Learning_Image_Attachment_Data | The image assigned to content on DataCamp, encoded as base64 string. |
Lesson_Order | Numerical value, hardcoded to “1”. |
Make_Lesson_Mandatory | Boolean value, hardcoded to “true”. |
Media_ID | Workday media reference ID. |
Learning_Course_Lesson_Title | The title of the content item on DataCamp. |
Media_Content_Description | The description of the content item on DataCamp. |
Completions sync process
Next to content, DataCamp can either sync content completions to Workday, or the client can use our external API to fetch the completions data and add them to Workday.
In order for DataCamp to automatically sync completions to Workday, a client has to share a mapping between employee email and their Workday IDs. With that solution, completions are synced close to real time, which means that if a learner completes some content item on DataCamp, the completion should appear in Workday within a maximum of a few minutes.
SSO and deeplinking
All content items sent by DataCamp have a launch url, which is a so-called deeplink. If Single Sign-On is enabled and set to required for your organization on the DataCamp side, these links will redirect learners to their identity provider before redirecting them to the actual content on DataCamp.
If single sign-on with the same identity provider is configured on Workday, this allows a seamless experience between Workday and DataCamp. If learners are already logged into their LMS, they will not have to sign in again when they launch a content item on DataCamp.
Prerequisites
In order to set up an integration with Workday, the following requirements must be met:
- You must have access to an active Workday instance
- You must have admin privileges on the Workday instance
- You must have an active enterprise subscription on DataCamp
- In order for completions to be synchronized: SSO for DataCamp must be enabled and configured correctly. This means:
- Your identity provider should send the user identifiers used in Workday
- On the SSO settings page on DataCamp, the nameid-format should be set to “unspecified”
- (optional but highly recommended) SSO must be set to required on DataCamp
Setup
We can divide the process of syncing DataCamp’s content catalog into Workday into several steps.
Step 1: Learning Course Creation in Workday
DataCamp provides its full catalog as AICC packages. To integrate, you’ll need to create a Learning Course in Workday for each DataCamp catalog item. You can consult your Workday representative or search the Workday community to check preferred solutions. This is how we made it work before:
- DataCamp syncs its full content catalog as AICC packages every three hours to a client-provided SFTP server
- Each package is a .zip file named <content_id>.zip containing .des, .crs, .cst, and .au files.
- The assignable unit includes a URL that serves as a deeplink. Learners are directed through SSO before accessing DataCamp content.
- A client’s bot (e.g., a UiPath-based bot) fetches the AICC files from the SFTP server and uploads them to a designated folder in Workday Drive.
- The bot simulates a user importing files into Workday Drive. It uses a worker account in Workday with appropriate permissions to the drive folder. While this may not be an ideal solution, it has been effective in practice.
- Workday automatically assigns a Media Reference ID for each package moved into the Workday Drive.
- This ID is used within Workday to reference and manage the media object across various processes, such as assigning it to courses, tracking usage, and enabling integrations through APIs. DataCamp will need those reference IDs for the next step.
Step 2: Exposing Media Reference IDs to DataCamp
DataCamp will use the Media Reference IDs generated in the previous step to reference Learning Courses. First, you will need to expose a Custom Report with Media Reference IDs as a Web Service that DataCamp will consume.
- Create an Integration System User (ISU) in Workday Security. Assign this user the minimum permissions required to interact with the APIs your integration needs.
- An ISU is a user account in Workday specifically designed for integrations to access and manipulate data. Setting up an ISU involves creating the user, assigning security roles, and generating API credentials. These API credentials will need to be shared securely with DataCamp.
- Create an Integration System Security Group within Workday Security and link your group to the integration system user. This lets Workday assign the integration system user as part of the group.
- Using Report as a Service (RaaS) Workday’s functionality, create a custom report in Workday based on the AICC files uploaded to the Workday Drive.
- Enable Web Service access for the Report in the report’s configuration and give necessary permissions to query the Web Service to the ISU.
- After enabling web service access, the report will be available at a URL that follows this pattern: “https://{workday_instance}/ccx/service/customreport2/{tenant}/{report_name}”
- {tenant} is your Workday tenant name, and {report_name} is the custom report's name
- Using a secure protocol, share this URL with all the details and ISU API credentials with DataCamp
- A sample response from the media reference report should look like this:
{ "Report_Entry": [ { "Item_Path_Folders": "MyFolder", "Drive_Item": "project-1234.zip", "Item_Name": "project-1234.zip", "Item_Path_Folders_group": [ { "Drive_Item_as_Drive_Folder": "MyFolder" } ], "Created_Date": "2024-12-12T12:25:58.679-08:00", "referenceID": "MEDIA-1-12345" }, { "Item_Path_Folders": "MyFolder", "Drive_Item": "course-2345.zip", "Item_Name": "course-2345.zip", "Item_Path_Folders_group": [ { "Drive_Item_as_Drive_Folder": "MyFolder" } ], "Created_Date": "2024-12-012T12:30:18.088-08:00", "referenceID": "MEDIA-1-12346" }, … ] }
Step 3: Learning Course Metadata Update
In this step, DataCamp pushes its content metadata (content title, description, thumbnail etc…) to Workday using the Workday Web Services.
- DataCamp will fetch a custom report from Workday containing all DataCamp AICC packages available in Workday with their corresponding media reference id and store an internal mapping.
- DataCamp will push its content metadata (content title, description, thumbnail …) to Workday using the Workday Learning WSDL SOAP Web Service: “https://{workday_instance}/ccx/service/{tenant}/Learning/v42.0?wsdl”, including the Media Reference ID for every content item.
- Create an ISU and Integration System Security Group and link your group to the integration user.
- Enable access to Workday Learning WSDL web service, by granting the “manage course” web service permissions for the created ISU.
- Using a secure protocol, share this URL with all the details and ISU API credentials with DataCamp.
Step 4: Completions sync
In order for DataCamp to automatically sync completions to Workday, a client has to share a mapping between employee email and their Workday IDs. With that solution, completions are synced close to real time, which means that if a learner completes some content item on DataCamp, the completion should appear in Workday within a maximum of a few minutes.
If you don’t want to share your Workday IDs, you can use DataCamp’s external API to fetch the completions data, map it to individual’s Workday user account ID and add them to Workday using the Workday Learning WSDL Web Service: https://{workday_instance}/ccx/service/{tenant}/Learning/v42.0?wsdl
Please note that DataCamp currently doesn’t mark content as “in_progress” on Workday when a learner clicks a content item in Workday, but it is possible.
FAQ
Will a user completion be registered in Workday if a course is skipped?
Completions are not sent to Workday when a course is skipped, and learning hours are not counted for skipped courses. (Courses can be skipped as part of a track, when passing a "test-out" assessment).