Building Seamless Course Links with Connect Endpoint

Use the connect endpoint to build your seamless course links when you want to scale quickly and can invest 2+ days in implementation. This method is easy to scale and doesn’t require signature generation for individual links.

Seamless access removes friction from the user journey, resulting in higher completion rates which in turn leads to behaviour change across your organization and tangible business results. Seamless links securely take your users directly to their learning content, without the need for logging in. They increase course completion rates by removing barriers to accessing content.

What's covered

Why use a seamless course link

What is a seamless course link

Building course links

Prerequisites

Procedure

Webhook approach

Public API approach

Using the connect endpoint

Testing course links

Troubleshooting / errors

400

401

404

Embedding links within your app

Native mobile app

Web app

Estimated time frame for launch

Why use a seamless course link

Seamless course links are a great way to direct learners to specific content. A course then is comprised of multiple activities and will generally have content that takes more than a few minutes to complete in its entirety.

If a learner exits a course link before completing the entire course they can return to where they left off by clicking the course link and they will be able to start on the next incomplete activity.

Seamless course links are one of the most popular seamless link types. This is largely due to their versatility to address specific training opportunities with specific content. Examples of use cases are:

  • Triggered content - delivering a course to learners that have exhibited certain behaviours such as lower than average ratings.
  • Mandatory training - delivering mandatory content, with the assistance of webhooks to let your system know when the mandatory training is complete.
  • Training in the flow of work - delivering related courses at the point of need detailing a learner how to complete actions needed then and there.

What is a seamless course link

A seamless link allows you to add new learners, direct them to content, and assign them to teams without having to sign in. Each link requires a signature that authenticates the user and the link itself. With the connect endpoint, a successful request will return a complete signed link.

Content Required Parameter Source
c/ course ID Get List Courses API
    Course Level Webhooks
    Admin panel (Base link)
g= team ID Get Group Details with Teams
    Course Level Webhooks
    Admin panel (Base link)
e= your user ID Determined by you
sig= signature Created per link by SHA256 encryption of personalised URL & secret

Anatomy of a seamless link

Building course links

Prerequisites

  • You're an eduMe customer with a company admin account.
  • You have at least one course and one team created in your eduMe account.
  • You've assigned the course to a team.

Procedure

To generate a scalable flow with the connect endpoint you need to get the relevant IDs from eduMe for:

  • Course ID for the course (content) you want your learners to take
  • Team ID for the team that the learner will be assigned to once they click the seamless link

You can get these IDs from the seamless base links from within the admin panel, however this isn’t scalable as each time you want to add a new course or different type of content someone will have to get the base link to the development team to make changes.

We offer a couple of options for you to choose from:

  • Webhooks - once set up these can send relevant IDs to your back end
  • Public APIs - once set up these can request IDs when you need them

Webhook approach

Prerequisites

  • You're an eduMe customer
  • You have a destination URL/data receiver (or multiple) for the webhooks to be sent to
  • You have technical or developer resources

To enable webhooks, please reach out to your dedicated customer success manager, or contact our support team (support@edume.com), including the destination URL(s) you require.

Note: You can also activate learner level webhooks to support mandatory training flows. For more information, refer to our Webhooks document.

Procedure

Once webhooks have been enabled you can use a flow like the one below to automatically generate seamless links from the course level webhooks.

Sample flow to generate seamless links from course level webhooks

Public API approach

Prerequisites

  • You're an eduMe customer with a company admin account
  • You have technical or developer resources

Generating an API key

  1. Navigate to the API Keys page in your account using the following link: https://admin.edume.com/settings/developer-tools/api-keys. Alternatively, navigate to Settings in the top bar of your eduMe account and choose Company Settings > API Key.
  2. Select + Create API Key.
  3. Select the Access level details and choose Create API Key.

You can now copy the API key you've created using the clipboard icon available on the right of the API key.

Public APIs can be used to request different kinds of data from eduMe. For seamless link generation you can call for:

  • Course details. Use the List course API to request course details.

    Query parameter Source
    Group ID Use the Get Group Details with Teams API with the groupId parameter empty
  • Team info Use the Get Group Details with Teams API with groupId value in the query parameter

Using the connect endpoint

Generating an API key

  1. Navigate to the API Keys page in your account using the following link: https://admin.edume.com/settings/developer-tools/api-keys. Alternatively, navigate to Settings in the top bar of your eduMe account and choose Company Settings > API Key.
  2. Select + Create API Key.
  3. Select the Access level details and choose Create API Key.

You can now copy the API key you've created using the clipboard icon available on the right of the API key.

Generating API request for course links

Use the following connect endpoint to generate course seamless links:

<https://api.edume.com/public/getCourseLink?courseId={courseId}&teamId={teamId}&externalUserId={externalUserId}>

For more details refer to our documentation for Get a Course Link API.

The query parameters required are:

Parameter Name Parameter Source
Course ID courseId Get List Courses API
    Course Level Webhooks
    Admin panel (Base link)
Team ID teamId Get Group Details with Teams
    Course Level Webhooks
    Admin panel (Base link)
External user ID externalUserId Determined by you

The headers required are:

Header Name Header Source
X Api Key x-api-key Admin panel (Company Settings)

Testing course links

In case of incorrect query parameters, your API request will return errors.  If you receive a seamless link in the API response, the link should take you directly to the course.

Contact your customer success manager or our support team if your link does not direct you to the right place.

Troubleshooting / errors

400

Make sure you are providing the team ID parameter

{
"statusCode": 400,
"error": "Bad Request",
"message": "\\"value\\" must contain at least one of [teamId, groupId]",
"validation": {
"source": "query",
"keys": [
""
]
}
}

No external user ID

{
"statusCode": 400,
"error": "Bad Request",
"message": "You must specify `externalUserId` or provide at least one user identifier in the query, unless user is anonymous"
}

Using both external user ID and user identifiers

{
"statusCode": 400,
"error": "Bad Request",
"message": "You cannot use both externalUserId and user identifiers"
}

No course ID

{
"statusCode": 400,
"error": "Bad Request",
"message": "\\"courseId\\" is required",
"validation": {
"source": "query",
"keys": [
"courseId"
]
}
}

401

No x-api-key value or no x-api-key header

{
"statusCode": 401,
"error": "Unauthorized",
"message": "No API key found",
"attributes": {
"error": "No API key found"
}
}

Incorrect API key

{
"statusCode": 401,
"error": "Unauthorized",
"message": "Invalid API key: XXXXXX",
"attributes": {
"error": "Invalid API key: XXXXXX"
}
}

404

Course not assigned to team

{
"statusCode": 404,
"error": "Not Found",
"message": "Seamless link setup not found for the combination of group, course, and api key"
}

Embedding links within your app

Seamless links are URLs that direct to content. Their behavior is determined by the type of application they are being implemented into.

Native mobile app

Load the seamless link URL within an in-app browser to enable easy navigation back to your app once the training is complete.

Web app

Load the seamless link within a new browser tab, allowing the user to navigate back to the web app once training is complete.

Estimated time frame for launch

Based on data we've gathered from our customers, here's what we know:

Seamless link generation:  2 day engineering effort

Webhook integration: 3 day engineering effort

Note: These are average estimates based on our customers' experiences. The time to launch can vary depending on multiple factors such as your release cycle, testing time, and specific workflows you build.