Application developer manual

  1. Learning Manager User Guide
  2. Introduction
    1. New features summary
    2. Release Notes
    3. System requirements | Adobe Learning Manager
    4. Adobe Learning Manager reference site (ALM reference site) package for AEM Sites
    5. Adobe Learning Manager App for Microsoft Teams
    6. Learning Manager compliance to GDPR
    7. Accessibility in Learning Manager
    8. Support for custom domain
  3. Get Started
    1. Getting started as Administrator
    2. Getting started as an Author
    3. Getting started as a Learner
    4. Getting started for Managers
    5. Getting started as an instructor in Learning Manager
  4. Administrator
    1. User log in
    2. Add users and create user groups
    3. Add classroom locations
    4. Create course modules, instances, and learning programs
    5. Content marketplace
    6. Reports
    7. Learning Paths
    8. Learning plans
    9. Manage Learning Manager orders and billing
    10. Job Aids
    11. Certifications
    12. Catalogs
    13. Add users in bulk
    14. Impersonate a Learner and Manager
    15. Multiple SSO Logins
    16. Peer accounts
    17. Create and modify skills and levels
    18. AI-based recommendation of courses
    19. Gamification
    20. Customize learner homepage
    21. Badges
    22. Color themes
    23. Learner transcripts
    24. Waitlist & attendance management
    25. Fluidic player
    26. Announcements
    27. Email templates
    28. Adobe Connect integration
    29. Settings
    30. Notifications
    31. iPad & Android tablet users
    32. Getting started as Administrator
    33. Purge users
    34. Tags
    35. Learning Manager Content Catalog
    36. Custom roles
    37. Catalog labels
    38. xAPI in Learning Manager
    39. Monitoring and moderating Social Learning as an admin
    40. Enable full control of shared catalog
    41. Map skill with skill domains
  5. Integration Admin
    1. Migration manual
    2. Learning Manager Connectors
    3. Integrate Learning Manager with AEM
    4. Install Salesforce package in Learning Manager
    5. Install Microsoft Teams connector
    6. Application developer manual
    7. Learning Manager App for Salesforce
    8. Settings
    9. Manage custom roles via CSV files
  6. Authors
    1. User login
    2. Content library
    3. Creating, modify, and publish courses
    4. Catalogs
    5. Job Aids
    6. Adobe Connect integration
    7. Add learning objects in different locales
    8. User notifications
    9. Email templates
    10. How to choose course modules?
    11. Preview as learner
    12. Settings
    13. xAPI in Learning Manager
  7. Instructor
    1. Modules
    2. Managing learners for your session
  8. Learner
    1. Log in
    2. Profile Settings
    3. Catalogs
    4. Courses
    5. Fluidic player
    6. Learning Programs
    7. Certifications
    8. Job Aids
    9. Badges
    10. Skills & Levels
    11. Gamification
    12. User notifications
    13. Announcements
    14. Waitlist & attendance management
    15. Learning Manager app for Salesforce
    16. Adobe Connect integration
    17. Learner App for mobiles and tablets
    18. Social Learning in Learning Manager
    19. Adobe Learning Manager desktop application
    20. Learner home page
    21. Share to Social Learning
    22. System requirements | Adobe Learning Manager desktop application
  9. Manager
    1. User log in
    2. Manager dashboard
    3. Reports
    4. Learning Objects
    5. User notifications
    6. Learner transcripts
    7. Settings
    8. iPad & Android tablet users
  10. Frequently Asked Questions
    1. Frequently Asked Questions for Administrators
    2. Frequently Asked Questions for Authors
    3. Frequently Asked Questions for Instructors
    4. Frequently Asked Questions for Managers
  11. Knowledge Base
    1. Unable to log in to Learning Manager
    2. Learning Summary does not display current data
    3. Unable to upload a CSV
    4. Generate a HAR file
    5. L1 feedback auto popup does not appear
    6. Unable to view certain courses under catalog while creating a Certification
    7. Unable to view certain course under catalog while creating a Learning Program
    8. Issues in retiring a Learning Program
    9. Unable to assign a badge
    10. Session expires in Learning Manager
    11. Unable to search a course
    12. Troubleshoot migration issues
    13. Troubleshoot Learning Manager app issues
    14. Users get auto deleted in Learning Manager
    15. Publishing issues in the EU domain
    16. Unable to register as external user
    17. Okta Active Directory integration with Adobe Learning Manager
    18. Unable to view learners in a course
    19. Unable to view calendar
    20. Module is not marked complete after completing a course
    21. Unable to achieve a skill after completing a course
    22. Radio buttons are missing
    23. Unable to view file submissions in Learning Manager
Note:

Learning Manager V1 API is now deprecated. The V1 APIs will stop working from 28th February 2021. We recommend that you use V2 APIs to interact with Learning Manager.

Overview

Adobe Learning Manager is a cloud-hosted, learner-centric, and self-service learning management solution. Customers can access Learning Manager resources programmatically using the Learning Manager API to integrate it with other enterprise applications. The API can also be used by Adobe partners to enhance the value proposition of Learning Manager, by extending its functionality or by integrating it with other applications or services.

Usage scenario

Using Learning Manager API, developers can build self-contained applications that extend the functionality of Learning Manager or integrate Learning Manager with other enterprise applications workflows. You can develop a web application, desktop client or a mobile app using any technology of your choice. As a developer you can access your application data from within Learning Manager. The deployment of the application that you develop is external to the Learning Manager platform and you have full control over the software development lifecycle as the application evolves. Typically, applications are developed by a customer organization for use with their Learning Manager account, and these applications are private to that specific customer organization. Also, Adobe partners can build generic applications with Learning Manager API, that can be used by a large set of Learning Manager customers.

Learning Manager API

The Learning Manager API is based on principles of REST, and exposes key elements of the Learning Manager Object Model to application developers through HTTP. Before knowing the details of the API endpoints and the HTTP methods, developers can become familiar with the various Learning Manager objects, their attributes and inter-relationships. Once the models are understood, it will be useful to get a basic understanding of the structure of API requests and responses, and a few common programming terms that we use generically across the API.

For details of the various API endpoints and methods, refer to the Learning Manager API documentation.

API authentication

When writing an application that makes API calls to Learning Manager, you have to register your application using the Integration Admin app. 

Learning Manager APIs use OAuth 2.0 framework to authenticate and authorize your client applications. 

Procedure

1. Set up your application 

You can set up your application with client id and client secret to use the proper end points. Once you register your application, you can get the clientId and clientSecret. Get URL should be used in browser as it authenticates the Learning Manager users using their pre-configured accounts such as SSO, Adobe ID, and so on. 

GET https://learningmanager.adobe.com/oauth/o/authorize?client_id=<Enter your clientId>&redirect_uri=<Enter a url to redirect to>&state=<Any String data>&scope=<one or more comma separated scopes>&response_type=CODE.

After successful authentication, your browser redirects to the redirect_uri mentioned in the above URL. A parameter code is appended along with the redirect uri.

2. Get refresh token from code

POST https://learningmanager.adobe.com/oauth/token Content-Type: application/x-www-form-urlencoded

Body of the post request:

client_id:<Enter your clientId>&
client_secret:<Enter your clientSecret>&
code:<code from step 1>

3. Obtain an access token from refresh token

URL to obtain access token: 

POST https://learningmanager.adobe.com/oauth/token/refresh Content-Type: application/x-www-form-urlencoded

Body of the post request:

client_id:<Enter your clientId>&
client_secret:<Enter your clientSecret>&
refresh_token:<refresh token>

URL to verify access token details

GET https://learningmanager.adobe.com/oauth/token/check?access_token=<access_token>

URL to verify access token details

A headless LMS application gets hold of refresh_token up on first login. Afterwards, the refresh_token is used for generating access_token for its client applications to make API calls. Similarly, content playback uses oauth endpoint to generate cookie for managing playback which involves multiple content files and api calls invoked by those files using cookie. The cookie that is generated by oauth has same validity as the access_token which is seven days. Once the cookie is generated, there is no way to clear it unlike typical web application logout. The Oauth cookie and web application cookie are two different cookies and are not aware of each other.

So, to clear the cookie, we've introduced a new endpoint, which revokes refresh_token, cookie, and both cookie and refresh token.

DETAILS

Endpoint Query parameters Request body
POST oauth/o/revoke

cookie=true|false

indicates that cookie needs to be revoked

refresh_token=true|false

indicates that refresh

Body required for revoking refresh_token or (refresh_token and cookie)

{

      “client_id”: <>,

      “client_secret”: <>,

      “refresh_token”: <>

}

Body required for revoking oauth cookie only

{

      “access_token”: <>

}

Usage limitation

An access token is valid for seven days. After a day, you have to generate a new access token using refresh token. If you generate a new access token from refresh token while an existing access token is still valid, the existing token is returned. 

Some of the frequently used terms in Learning Manager API are explained below for your reference. 

Includes

Developers can access a single API object model and also multiple models associated with that model. To access the subsequent related models, you need to understand the relationship of each model with other models. Includes parameter enables developers to access the dependant models. You can use comma separator to access multiple models. For sample usage and more details on includes, refer to sample API model section in this page. 

API request

The API requests can be made by making a HTTP Request. Depending upon the end point and method developer may have a choice of various HTTP verbs such as GET, PUT, POST, DELETE, PATCH, etc. For some requests query parameters can be passed. When making a request for a specific data model, the user can also request for related models as described in the JSON API specifications. The structure of a typical API Request is described in sample model usage.

API response

When an API request is made by a client, a SON document is obtained according to the JSON API specification. The response also contains the HTTP Status code, which the developer can verify to perform the appropriate next steps in his application logic. The structure of a typical API Response is described in sample model usage.

Errors

When an API request fails, an Error response is obtained. The HTTP Status code returned in the response indicates the nature of error. Error codes are represented with numbers for each model in the API reference. 200, 204, 400 and 404 are some of the common errors represented in APIs indicating HTTP access issues.  

Fields

API object's attributes and its relationships are collectively called Fields. Refer to JSON API for more information. You can use Fields as a parameter while making API calls to fetch one or more speicific attributes from the model. In absence of the Fields parameter, the API call fetches all the available attributes from the model. For example, in the following API call, fields[skill]=name fetches you the name attribute of the skill model alone. 

https://learningmanager.adobe.com/learningmanagerapi/v2/users/{userId}/userSkills/{id}?include=skillLevel.skill&fields[skill]=name 

Pagination

Sometimes, an API request results in a long list of objects to be returned in the response. In such cases, the pagination attribute enables the developer to fetch the results sequentially in terms of multiple pages, where each page contains a range of records. For example, pagination attribute in Learning Manager enables you to set the maximum number of records to be displayed in a page. Also, you can define the range value of records to be displayed on page. 

Sorting

Sorting is allowed in API models. Based on the model, choose the type of sorting to be applied for the results. Sorting can be applied in ascending or descending order. For example, if you specify sort=name, then it is ascending sort by name. If you specify sort=-name, it is descending sort by name. Refer to JSON API spec for more information

API usage illustration

Let us consider a scenario where a developer wants to get skill name, max points assigned for skill level and points earned by the learner for that skill.

A userSkill model in Learning Manager APIs consists of id, type, dateAchieved, dateCreated, pointsEarned as default attributes. So, when a developer uses GET method to acquire details of userSkill model, the current data pertaining to the default attributes is shown in the response output. 

But, in this scenario, the developer wants to get the skill name, and points of skill level for the user. Learning Manager API enables you to access this related information using relationship fields and include parameter. The associated models for userSkill are obtained in relatioships tag. You can get the details of each associated models by calling these models along with the userSkill. To get this information, use include parameter with dot (period) separated values for each of the associated models. You can use comma as separator to request another model like user include=skillLevel.skill,course

API Call

https://learningmanager.adobe.com/learningmanagerapi/v2/users/{userId}/userSkills/{id}?include=skillLevel.skill&fields[skill]=name&fields[skillLevel]=maxCredits&fields[userSkill]=pointsEarned

For example userId can be 746783 and the userSkills id: 746783_4426_1. 

Response of API call

{ 
   "links": {"self": "https://learningmanager.adobe.com/learningmanagerapi/v2/users/746783/userSkills/746783_4426_1?include=skillLevel.skill&fields[userSkill]=pointsEarned&fields[skillLevel]=maxCredits&fields[skill]=name"}, 
   "data":    { 
      "id": "746783_4426_1", 
      "type": "userSkill", 
      "attributes": {"pointsEarned": 5}, 
      "links": {"self": "https://learningmanager.adobe.com/learningmanagerapi/v2/users/746783/userSkills/746783_4426_1"} 
   }, 
   "included":    [ 
            { 
         "id": "4426", 
         "type": "skill", 
         "attributes": {"name": "Java"}, 
         "links": {"self": "https://learningmanager.adobe.com/learningmanagerapi/v2/skills/4426"} 
      }, 
            { 
         "id": "4426_1", 
         "type": "skillLevel", 
         "attributes": {"maxCredits": 10} 
      } 
   ] 
} 

Learning Manager models

The Learning Manager API allows developers to access Learning Manager objects as RESTful resources. Each API endpoint represents a resource, typically an object instance like Badge, or a collection of such objects. The developers then use the HTTP verbs such as PUT, GET, POST and DELETE to perform the CRUD operations on those objects (collections).

The following diagram represents the various elements of the Learning Manager Object Model in V1 API.

V1 API Object Model
V1 API Object Model

Serial No

Learning Manager Object

Description

1.      

user

User is the key model in Learning Manager. Users are typically the internal or external learners of an organization who consume learning objects. However they may play some other roles such as author and Manager along with learner role. User id, type, email are some of the inline attributes. 

2.      

course

Course is one of the learning objects supported in Learning Manager, that consists of one or more modules. 

3.      

module

Module is a building block to create learning objects in Learning Manager. Modules can be of four different types such as Class room, virtual class room, activity and self-paced. Use this module model to get the details of all modules in an account. 

4.      

certification

Certification is awarded to learners based on successful completion of courses. Courses are required in the application before you use certifications. 

5.      

learning program

Learning programs are uniquely designed courses meeting specific learning requirements of users. Typically, learning programs are used to drive learning goals spanning across individual courses. 

6.      

badge

Badge is a token of accomplishment that learners get when they reach specific milestones as they progress within a course. 

7.      

skill

Skills model consists of levels and credits. Skills can be acquired by learners after relevant course completion. 

8.      

certificationEnrollment

This model provides details of an enrollment by a user to a single certification.

9.  

courseEnrollment

This model provides details of an enrollment by a user to a single course. 

10.  

courseInstance

A course can have one or many instances associated with it. You can get Course instance 

11.  

courseSkill

A courseSkill model specifies the progress of a single skill that is achieved by completing a course.

12.  

courseModule

A courseModule model specifies how a module is included  in a course. For instance, whether the module is used for pretest or for content.

13.  

learningProgramInstance

A learning program can consist of multiple instances imbibing similar properties of a learning program or customized instances. 

14.  

job aid

Job aid is a learning content accessible to learners without any enrollment or completion criteria. You can fetch, updated date, state, id information along with its related models such as job aid version, authors and skill level. 

15.  

jobAidVersion

Job aid can have one or many versions associated to it based on number revisions in content and number of uploads. This model provides details of a single job aid version. 

16.  

learningProgramInstanceEnrollment

Learning program consists of one or many instances. Learners can enroll to a learning program instance by themselves or assigned by administrator. This model provides details of an enrollment by a user to a single learning program instance. 

17.  

moduleVersion

A module can have one or many versions based on its revised content uploads. Use this model to obtain specific info about any single module version. 

18.  

skillLevel

A skill level comprises of one or many courses to be consumed in order to acquire a level along with its associated credits. 

19.  

userBadge

UserBadge relates a single badge with a single user. It contains details such as when was it achieved, assertionUrl and so on. 

20.  

userSkill

UserSkill indicates how much of a single skill level is achieved by a single user.

Following are the various elements of the Learning Manager class diagram in V2 API.

V2 API class diagram
V2 API class diagram

Learning Manager Object Description
account Encapsulates the details of a Learning Manager customer.
badge Badge is a token of accomplishment that learners get when they reach specific milestones as they progress within a course. 
catalog Catalog is a collection of learning objects.
user User is the key model in Learning Manager. Users are typically the internal or external learners of an organization who consume learning objects. However, they may play some other roles such as author and Manager along with learner role. User id, type, email are some of the inline attributes. 
resource This is used to model each content resource that a module seeks to encapsulate. All resources encapsulated within an loResource are equivalent in terms of the learning objective, but they differ from each other in terms of delivery type or content locale.
userNotification This model contains notification information pertaining to a learner.
userSkill UserSkill indicates how much of a single skill level is achieved by a single user.
userBadge UserBadge relates a single badge with a single user. It contains details such as when was it achieved, assertionUrl and so on. 
skill Skills model consists of levels and credits. Skills can be acquired by learners after relevant course completion. 
skillLevel A skill level comprises of one or many courses to be consumed in order to acquire a level along with its associated credits. 
learningObject A Learning Object is an abstraction for various kinds of objects which users can enroll into and learn from. Currently Learning Manager has the four types of Learning Objects – Course, Certification, Learning Program and Job Aid.
learningObjectInstance
A specific instance of a learning object.
learningObjectResource This is equivalent to the concept of module . A course is composed of one of more modules. In Learning Manager, a module can be delivered in a variety of equivalent ways. Therefore the loResource essentially encapsulates all those equivalent resources.
loResourceGrade
This encapsulates the outcome of the user consuming a specific resource in the context of a learning object he is enrolled into. It has information such as the duration spent by user in the resource, percentage progress made by the user, pass/fail status and the score obtained by the user in any associated quiz.
calendar
A calendar object is a list of upcoming classroom or virtual classroom courses that the user can enroll into.
l1FeedbackInfo
L1 Feedback encapsulates the answers provided by a learner for the feedback questions associated with Learning Objects. Typically this is collected after the user completes a Learning Object if configured to collect such feedback from learners.
enrollment
This abstraction encapsulates the details pertaining to the transaction representing the assignment of a specific user to a specific learning object instance.

Application development process

Pre-requisites

As a developer you have to create a trial account on Learning Manager, so that you can have full access to all the roles within that account. To be able to write an application, a developer has to create some users and courses and get the account to a reasonable state so that the application being developed can have access to some sample data.

Create client id and secret

  1. In Integration Admin login, click Applications on the left pane. 

  2. Click Register at the upper-right corner of the page to register your application details. Registration page appears. 

    Register a new applicant
    Register a new applicant

    It is mandatory to fill up all the fields in this page. 

    Application Name: Enter your application name. It is not mandatory to use the same application name, it can be any valid name. 

    URL: If you know the exact URL where the application is hosted, you can mention it. If you are not aware, then you can mention your company URL. Valid URL name is mandatory in this field. 

    Redirect Domains: Enter the domain name of the application where you want the Learning Manager application to redirect after OAuth authentication. You can mention multiple URLs here but you have to use the valid URLs such as http://google.com, http://yahoo.com and so on. 

    Description: Enter the brief description for your application. 

    Scopes: Choose one of the four available options to define the scope of your application. Based on your choice mentioned here, Learning Manager API endpoint are accessible for your application. For example, If you chose Learner role read access, then all the Learning Manager learner API end points are read-only accessible to your application. 

    For this account only? 
    Yes - if you choose Yes, then the application is not visible to other account administrators.
    No - if you choose No, other account admins can also access this application but they need to use the application id to access this application. Application id is generated and displayed in Learning Manager application Edit mode. 

    Note:

    If you choose Admin role read and write access as scope while registering the application and choose Admin role read access while authoring the APIs, you can still have write access for the application as the app registration scope supersedes the authorization workflow. 

  3. Click Register at the upper-right corner after filling up the details in the registration page.

Application development and testing

The Learning Manager API can be used by developers to build any application. Developers have to ensure that their accounts consist of some valid users and courses. They can create a few dummy users and courses and simulate activity in the trial account, so that they can test functionality of the application.

Application deployment

We recommend that the Learning Manager Administrator or an Integration Administrator for the production account, to take ownership of making the application available to users within their organization. Once the application has been tested and is considered ready for production, inform the administrator of the production account. Ideally, the administrators want to generate a new client-id and client-secret for the application in the production account, and perform the necessary steps to incorporate them inside the application in a secure manner. The actual procedure for deploying applications varies from enterprise to enterprise, and the Learning Manager Administrator of your organization has to take support from the IT/IS department within your organization to complete the deployment.

External application approval

You can add external applications by clicking Approve at the upper-right corner of the Applications page. Provide the external application id and click Save.

Add an external applicant
Add an external applicant

Frequently Asked Questions

1. Does Learning Manager have an E-commerce integration?

Adobe Learning Manager has integration with Adobe Commerce.

Get help faster and easier

New user?