Deep Link Support

Deep Links direct Learners to a specific page within the LMS, provided the User is logged into the LMS and has access to the page that they are being directed to. This article explains the Deep Links that are available to you and how to create them. If you are using SSO, this article will also explain how to encode SSO into the Deep Link.

Important Advisory
  • Learners must be logged in and have permissions to access the page that the deep link is sending them to. If they do not have access, they will be directed to their Learner Dashboard. This is something to keep in mind particularly with Availability Rules when deep linking to a Course.
  • For Portal IDs, please make sure to change the domain to your specific region. ex: myabsorb.CA/.EU/.COM.AU/.CN. The examples given in this article use .COM
  • At this time, we do not support deep linking as a part of OpenIdConnect SSO.

 

Login/Logout Methods

Please note that the following methods are not intended for secure information, and should only be used with non-private details.

 

Enrollment Key

The following link will bypass the Enrollment Key Name entry screen. New Users will be directed to the signup page, while logged in Users will be enrolled in any Courses offered by the Enrollment Key.

This link can also be found on the Enrollment Key page as the "Direct Link URL".

https://yourdomain.myabsorb.com?keyname=enrollmentkeyname

 

Log out

The following link will log a User out of Absorb LMS.

https://yourdomain.myabsorb.com/#/logout

 

Automation

These Deep Links will interact with a system setting so as to set something by default, or as a page is loaded.

 

Set the Learner Interface Language

The following link will translate the Learner Interface and ensures that the Language is updated as per the Deep Link. Note that this link will only work with the available Languages specified in your Portal Settings.

The language-code will be a 2 character ISO 639-1 value (EN, FR, ES, etc.).

https://yourdomain.myabsorb.com?Language=languagecode

 

Course Related Links

The Deep Links in this section direct Users to content such as Online Courses or Curricula.

 

Online Course Page

The following link will take Users to a specific Online Course page. Courseid can be found in the Courses report.

https://yourdomain.myabsorb.com/#/online-courses/courseid

 

Instructor-Led Course Page

The following link will take Users to a specific ILC page. Courseid can be found in the Courses report.

https://yourdomain.myabsorb.com/#/instructor-led-courses/courseid

 

Curriculum Page

The following link will take Users to a specific Curriculum page. Courseid can be found in the Courses report.

https://yourdomain.myabsorb.com/#/curricula/courseid

 

Launch a Lesson

The following link will open a Course and launch a particular Lesson within it. This link also allows a check for Prerequisites (i.e., Terms & Conditions, Course Prerequisites, Proctor Login, etc.)

Courseid can be found in the Courses report.

Lessonid can be found in the Lessons report.

https://yourdomain.myabsorb.com/#/online-course-player/courseid?lessonId=lessonid

 

Courses List

The following link will take Users to their Courses page, listing all of the Courses they are currently enrolled in.

https://yourdomain.myabsorb.com/#/courses

 

Courses List (Category)

The following link will take Users to a specific Category in their Courses page. Categoryid can be found in the Manage Categories report.

https://yourdomain.myabsorb.com/#/catalog/categoryid

 

Catalog

The following link will take Users to their Catalog page, listing all of the Courses available for enrollment or purchase.

https://yourdomain.myabsorb.com/#/catalog

 

Catalog (Category)

The following link will take Users to a specific category in their Catalog page. Categoryid can be found in the Manage Categories report.

https://yourdomain.myabsorb.com/#/catalog/categoryid

 

Navigation & Filtering

The following link will take Users to the Search page using a specific search term. Additionally, you may modify the search be specifying the type of content you are looking for.

EX: OnlineCourse, InstructorLedCourse, Curriculum, CourseBundle, GlobalResource, NewsArticle, Poll.

https://yourdomain.myabsorb.com/#/search/all?entityType=OnlineCourse,InstructorLedCourse

 

Filtering for multiple content types, and a search term.

https://yourdomain.myabsorb.com/#/search/all?entityType=entityType&term=searchterm

 

Filtering by Course Rating.

EX: OneAndUp, TwoAndUp, ThreeAndUp, FourAndUp.

https://yourdomain.myabsorb.com/#/search/all?courseRating=rating

 

Global Resources

The following link will take Users to their Global Resources page, listing all of the Global Resources available to them.

https://yourdomain.myabsorb.com/#/resources

 

Calendar

The following link will take Users to their Calendar page.

https://yourdomain.myabsorb.com/#/courses?viewType=Calendar

 

Transcript

The following link will take Users to their Transcript page.

https://yourdomain.myabsorb.com/#/transcript

 

FAQs

The following link will take Users to their FAQs page.

https://yourdomain.myabsorb.com/#/faq

 

News

The following link will take Users to their News page (Absorb Engage only).

https://yourdomain.myabsorb.com/#/news

 

Polls

The following link will take Users to their Polls page (Absorb Engage only).

https://yourdomain.myabsorb.com/#/polls

 

Search

The following link will take Users to the Search page using a specific search term.

https://yourdomain.myabsorb.com/#/search/all?term=searchterm

 

E-Commerce

The following Deep Links interact with the E-Commerce functionality.

Public Dashboard Requirement

Please advise that some E-Commerce Deep Links require the Public Dashboard to be turned on, and accessible to function as intended. As an example, the Public Dashboard is not required to be enabled for AddToCart links but it is required by the Categories Deep Link.

 

Purchase

The following link will take new or logged out Users to the Purchase page, listing all of the Courses available for Public Purchase prior to sign-in or sign-up.

https://yourdomain.myabsorb.com/#/catalog

 

Purchase (Category)

The following link will take new or logged out Users to a specific Category in the Purchase page. Categoryid can be found in the Manage Categories report.

https://yourdomain.myabsorb.com/#/purchase/category/categoryid

 

Purchase (Department)

The following link will take new or logged out Users to a specific Category on the Purchase page and it can accommodate additional pages/views not just for the catalog/checkout process. Variable pricing and Department specific Course availability can be provided on the Dashboard using the below deep link. Categoryid can be found in the Manage Categories report.

https://yourdomain.myabsorb.com/?departmentId=departmentId

 

Variable Pricing and Department specific Course availability can also be provided in the Catalog using the below Deep Link.

https://yourdomain.myabsorb.com/?departmentId=departmentId#/catalog

 

Purchase (Department + Category)

The previous two links can be combined to take new or logged out Users to a specific Category on the Purchase page while also offering Department specific Variable Pricing.

https://yourdomain.myabsorb.com/?departmentId=departmentid#/catalog/categoryid

 

Add Course(s) to Cart via Deep Link

An unauthenticated User can add Course(s) to their cart via Deep Link. We verify the User meets the availability rule requirements before adding the Course to the cart. Multiple Course types can be added via a single Deep Link.

Up to 5 Courses can be added to the cart via the Deep Link; only single seat purchases are allowed for each Course. Formatting for the Deep Link(s) are as follows:

 

Adding a Single Course

https://yourdomain.myabsorb.com/#/AddToCart?CourseIds=GUID

 

Adding an ILC with a Session

https://yourdomain.myabsorb.com/#/AddToCart?CourseIds=ILCGUID>SessionGUID

 

Adding Multiple Courses

https://yourdomain.myabsorb.com/#/AddToCart?CourseIds=GUID,GUID,GUID,GUID,GUID

 

Encoding SSO Authentication

If a User is authenticated via SSO and then follows a Deep Link, they should be taken to the LMS page as expected. If a User is not authenticated and then follows a Deep Link, the behavior will be different based on the Mode selected in your SSO Settings. Those differences are detailed below.

 

Deep Links with Service Provider Initiated SSO

Normal Deep Links will work as expected if your SSO is properly configured to use Service-Provider Initiated SSO. You can check this by reviewing your SSO Settings within Absorb. The Mode should be set to Service Provider Initiated and the Login URL should be populated with the correct endpoint for SAML requests.

Given the above configuration, the following order of operations will occur:

  1. User follows Deep Link.
  2. User is authenticated by the IDP.
  3. User lands on the specific LMS page contained in the Deep Link.

 

Deep Links with Identity Provider Initiated SSO

If your SSO is configured as Identity Provider Initiated, normal Deep Links will not work for unauthenticated Users. After the User is authenticated, they will be directed to the Dashboard page. If a User accesses a Deep Link the following order of operations are expected with Identity Provider Initiated SSO:

  1. User follows Deep Link.
  2. User is authenticated by the IDP.
  3. User lands on the Dashboard.

 

If you want the SSO process to retain the LMS destination throughout the authentication process, you will need to update the Deep Link to append a RelayState. The recommended process is described below. Please advise this process may not work for all SSO configurations and IDPs.

 

IDP SSO Abiding Deep Links

To create an IDP SSO abiding Deep Link, first select the Deep Link you want to use. We will use the following example:

https://company.myabsorb.com/#/online-courses/4d14c306-c7ed-4554-b421-f729fba3a9e3

 

Next, the URL must be encoded. When working with IDP SSO, URLs must be encoded to ensure they are correctly interpreted and processed. The reasons for encoding are as follows:

  • Special Characters: URLs often contain special characters (like `&`, `=`, `?`, etc.) that have specific meanings in URLs. If these characters are not encoded, they can be misinterpreted by the IDP, leading to errors or incorrect processing.
  • Security: Encoding helps prevent injection attacks by ensuring that any special characters in the URL are treated as data rather than executable code.
  • RelayState Parameter: The RelayState parameter is used to maintain state information between the Service Provider (SP) and the IDP. It often contains a URL or other data that needs to be passed back and forth during the authentication process. If the RelayState value is not properly URL-encoded, it may not be correctly retained or interpreted, causing the user to land on an unexpected page or encounter errors.

 

URL encoding ensures that the URL and any parameters, including the RelayState, are correctly and securely processed by the IDP during the SSO process.

To encode the Deep Link, you can use a site like: urlencoder.org

Once our example Deep Link has been encoded, it looks like:

https%3A%2F%2Fcompany.myabsorb.com%2F%23%2Fonline-courses%2F4d14c306-c7ed-4554-b421-f729fba3a9e3

 

Next find the Login URL for your SSO configuration. This is a field available on the SSO Settings page that would be configured when your SSO was setup.

 

For example:

https://company.idp.com/home/absorblms/test/1234

 

Append the URL encoded Deep Link to the end of the Login URL, inserting &relaystate= between them. Our example ends up looking like this:

https://company.idp.com/home/absorblms/test/1234&relaystate=https%3A%2F%2Fcompany.myabsorb.com%2F%23%2Fonline-courses%2F4d14c306-c7ed-4554-b421-f729fba3a9e3

 

Using a deep link modified this way in a IDP SSO setup will result in the following order of operations:

  1. User follows Deep Link.
  2. User is authenticated by the IDP.
  3. User lands on the specific LMS page contained in the Deep Link.
Relay State Variable Across Providers

Some software suites, regions and/or organizations use different characters, and we recommend consulting documentation from different products ahead of building and using IDP SSO abiding Deep Links. For example, OKTA will require "?" be used instead of "&" before string "relaystate" for Deep Links to work as expected via IDP SSO.

 

Absorb LMS supports Learner Experience deep links when using an ADP SSO route. If an unauthenticated Learner starts from a configured ADP SSO route that includes a deep link, they are sent through ADP for authentication and then returned to the exact LMS destination (rather than landing on the generic Learner Dashboard).

Learner Experience Only

This behavior applies to Learner Experience focused deep links only.

 

How It Works

When a Learner uses an ADP SSO route that includes a deep link, the system preserves the Learner’s intended destination through authentication.

  • The Learner follows an ADP SSO route that includes a deep link (for example, a route that ends in #/courses or a specific course page).
  • If the Learner is not signed in, the route initiates authentication with the identity provider (IDP).
  • After successful authentication, the Learner lands on the deep-linked page in the LMS (not the generic Learner Dashboard).

 

Recommended Admin Configuration

To support deep links through ADP learner SSO, configure a single Learner SSO route and ensure unauthenticated Learners are automatically redirected through ADP.

  1. Configure a single ADP Learner SSO route that Learners will use for deep links (ensure the route is reachable by Learners).
  2. Enable the automatic redirect behavior associated with this SSO configuration and route so unauthenticated Learners who hit the route are automatically sent through ADP SSO.

     
  3. Construct Learner links using the ADP route host followed by the LMS deep link path. Example (illustrative only):

    https://sso1adp.example/#/courses
  4. If your IDP requires a relay/return-state parameter, ensure the deep link value is URL-encoded and appended to the login endpoint according to your IDP’s requirements (for example, using &relaystate= or an equivalent parameter). Validate in a test environment before sharing links with learners.

 

With the configuration above, Learners can deep link to a wide range of Learner Experience pages. Common examples include the following.

  • Courses list and views (for example: #/courses, #/catalog/categoryid)
  • Catalog pages (including categories)
  • Online Course detail pages (for example: #/online-courses/courseid)
  • Instructor-Led Course (ILT) pages (and session-specific links)
  • Curricula pages
  • AddToCart links that add items to the cart
  • Search links (including filtered searches)
  • Profile, Transcript, FAQs, and other Learner pages

 

Testing and Troubleshooting

Test ADP Learner SSO deep links using an incognito/private browsing session to confirm the deep link is preserved through authentication.

  • Verify the Learner is routed through ADP and lands on the intended deep-linked destination after authentication.
  • If Learners land on the Learner Dashboard instead, confirm your IDP is preserving relay/return state and that the relay value is properly URL-encoded (if required).
  • Confirm the Learner has permission to access the deep-linked page and meets any Availability Rules. If they do not, they may be redirected to the dashboard.

 

Accessibility and Security Considerations

Deep links can include parameters. Use care when distributing links and follow your organization’s security practices.

  • Do not include sensitive or private information in query strings unless it is necessary and appropriate for your environment.
  • If your IDP requires URL encoding for relay/return-state values, always encode the deep link to prevent special characters from being misinterpreted.

 

Was this article helpful?
3 out of 4 found this helpful

Comments

0 comments

Article is closed for comments.