• Udemy Business Learning Management System Integration: xAPI Statements

    This article outlines the xAPI progression and completion statements Udemy Business sends to a third party LMS/LXP.

    Note: LMS/LXP integration is only available with the Enterprise Plan.

    Authorization

    Supported Statements

    Udemy Business will be sending the following verbs:

    Course Statements:

    • Progress Event: Tracks the learner’s progress within a specific course.
    • Completion Event: Records the completion of a course by the learner.

    Learning Path Statements:

    • Progress Event: Captures the learner’s progress across a series of learning content within a designated learning path.
    • Completion Event: Indicates the learner has completed all learning contents within a learning path.

    All these xAPI statements are transmitted to the LMS/LXP system in near real-time as events occur, ensuring timely updates on learner activities and achievements.

    Note that learning paths can include various types of content, some of which include Udemy courses, custom courses, portions of Udemy courses, links to articles, external video, podcasts, a wiki page, etc. For accounts that include Udemy Business Pro, there is also the option to add an assessment or lab to the learning path.

    Actor

    By default, the actor in the xAPI statement will be identified using the mbox (ie. email) property. However, some LMS/LXP systems do not require email for learners to access their systems. Hence, there is also support for identifying the actor using an account object. However, for the account object to be used as an identifier, the LMS/LXP should pass an lmsUserID of the learner to Udemy Business as part of the SSO handshake. Please refer to this Help Center article on configuring lmsUserID as part of SSO.

    Example of an actor identified using mbox object: 

    mbox_object.png

    Example of an actor identified using account object: 

    account_object.png

    The LMS/LXPs for which we’ll be sending an account object as actor identifier by default are as follows:

    • SumTotal LMS

    For the Udemy Business xAPI integrated LMS/LXPs not listed above, Udemy will send  the mbox identifier by default.

    Verb

    Course statements

    Progressed

    The progress statement will be used to send the learner’s progress within a course. The progress is calculated based on the ratio of completed lectures to the total number of lectures within the course. For example, if a course contains 4 lectures that are 30 mins, 40 mins, 50 mins and 60 mins long respectively and the learner completes the first lecture, then the progress will be recorded as 25% (1/4). The duration of each lecture will not be considered for the calculation of the progress percentage.

    The progress percentage will be passed within the result object with the completion attribute set to false and the percentage represented as a scaled score between 0 and 1.

    Below is a sample progressed statement:

    Completed

    The completion statement will be used to send the learner's completion of the course. Similar to the progress statement, the completion statement will contain a result object that would have the completion attribute set to true and the scaled score set to 1 to indicate 100% completion.

    Below is a sample completion statement:

    Learning Path Statements

    Progressed

    The progress statement will be used to send the learner’s progress within a learning path. The progress is calculated based on the ratio of completed learning content to the total number of learning content within the learning path. For example, if a learning path contains 5 courses, 2 links and 3 course portions, the learner completes 3 courses and 2 links then the progress will be recorded as 50% (5/10). The duration of each content will not be considered for the calculation of the progress percentage.

    The progress percentage will be passed within the result object with the completion attribute set to false, and the percentage represented within extension objects with a scaled score between 0 and 100.

    Below is a sample progressed statement:

    Completed

    The completion statement will be used to send the learner's completion of the learning path. Similar to the progress statement, the completion statement will contain a result object that would have the completion attribute set to true and the scaled score set to 100 to indicate the completion.

    Below is a sample completion statement:

    Object

    Course object

    The object of the statement will be of type Course and the id of the activity will be set to the course URL to uniquely identify a course object. Below is an example of an UB course passed as an object:

    Learning Path object

    The object of the statement will be of type Collection and the id of the activity will be set to the learning path URL to uniquely identify a learning path object. Below is an example of an UB learning path passed as an object:

    For SumTotal LMS/LXP integration, ID field starts with organization’s subdomain info which is sumtotaldemo as seen in the following sample.

    The object of the statement will be of type Course and the id of the activity will be set to the course URL to uniquely identify a course object. Below is an example of a Udemy Business course passed as an object:

    ub_course_passed_as_an_object.png

    Note: To reference the object's activity id from the xAPI statement to the appropriate course in the course API payload, a new attribute xapi_activity_id has been added to the course API.

    Error Handling - Retry Logic

    When sending the event to the LMS/LXP fails, Udemy Business will retry any failed statements twice per day for a period of 5 days.

    Read article