• Udemy Business Learning Management System Integration: xAPI Statements

    This article outlines the statements Udemy Business sends to report a learner’s progress and completion of a course, through the xAPI integration with a third-party system like an LMS/LXP/LRS.

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


    Supported Statements

    Udemy Business will be sending the following verbs corresponding to a learner’s progress and completion of a course:

    1. Progress event
    2. Completion event

    These statements will be POSTed to the LMS/LXP system in near real-time as the events occur.


    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: 


    Example of an actor identified using account object: 


    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, we’ll be sending the mbox identifier by default.



    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:



    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 a 100% completion.

    Below is a sample completion statement:



    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:


    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