is one of the most popular learning content providers we see being used. Organizations generally pay a subscription for their people to complete content across a range of providers like but then lack visibility into how much that content is being used and who is completing what. Sure, and other platforms have reporting functionality built in, but when you’re juggling several content providers, you don’t want to be going into each individually to see what’s been happening. By pulling all of the data into Watershed you can see complete learner records for individuals and groups giving you much faster insight into what’s been used and the learning being undertaken by your people.

 Please note: This article relates to the platform. If your organization has already migrated to LinkedIn Learning, you may be able to connect via xAPI instead. (Article for LinkedIn Learning coming soon!)

CSV integration

Watershed’s data CSV import functionality empowers you to import data from almost any source as a csv file. To do this, the first step is to create a CSV template. The create a CSV template takes you through creating the template step by step and you should use that guide along with the information below to create your import template.

CSV Source File

As you create the csv template, you will need to upload a CSV source file. The file that you need to upload is CertificateOfCompletion.csv which you can download from Speak to your contact for help finding that download. Be sure to download the file as a csv rather than any other format.

Import template

You can copy and paste the template below into the import template field. Be careful to ensure you copy the whole thing and don’t miss the opening or closing curly braces.

Please note: we have seen some variation of date format in the ‘Completion date’ column.  If your csv does not match the date pattern MM/dd/yy HH:mm then you’ll need to adjust line 4 of the template to match.

 "statements": [
   "timestamp": "{{toDateTime "MM/dd/yy HH:mm Z" (join columns.[Completion date] ' +0000' '')}}",
   "actor": {
    "name": "{{columns.[First name]}} {{columns.[Last name]}}",
    "mbox": "mailto:{{columns.[Email]}}"
   "verb": {
    "id": "",
    "display": {
     "en": "completed"
   "object": {
    "id": "{{columns.[Course ID]}}",
    "objectType": "Activity",
    "definition": {
     "moreInfo": "{{slugify columns.[Course]}}",
     "name": {
      "en": "{{columns.[Course]}}"
     "type": ""
   "context": {
    "contextActivities": {
     "category": [
       "id": "htts://",
       "definition": {
        "type": ""
   "result": {
    "completion": true

Import the CSV

With your template in place, you can import the CSV. Make sure when you download each CSV that you use date filters to ensure that you don’t import the same data in multiple CSVs. You can always void imports if you make an error though.

API integration

Importing a CSV is a manual process and some organizations prefer automatic data import to save time. If that’s you, then you’ll be glad to know that there are options for API integration. is not able to push data directly to Watershed via xAPI, however you can use a simple connector either hosted yourself or a vendor to pull the data from’s API. Please do speak to us if you need help choosing the best option for you or implementing either option.

Host yourself

Some of our clients choose to host connector applications on their own server. This normally requires some buy in from IT, but has the advantage of giving you control and ownership of the connector. For the connector needs to pull the data from’s API and then push it into Watershed. API documentation is not publically available so you’ll need to obtain this from your contact.

Completion data from’s API comes as a simple JSON object. This can easily be translated into a CSV structure and pushed to our CSV import API using the template shown above. To give you an idea of the simplicity of this process, one of our clients uses a Python script for this that’s only 120 lines including plenty of white space. Alternatively, you could translate the data into xAPI statements following the template above for the structure and use one of the xAPI code libraries to send the data directly into Watershed.  



Data from is simply a record of who completed which courses and when. The following measures can be used with the data and visualized using the reports described in the next section. Measures are created using the Measure Editor.

Person Count

A count of how many people have completed the course. This is configured as shown below:


Course Count

A count of how many courses have been completed. This is configured as shown below:


Completion Count

How many times have courses been completed? This is configured as shown below:


First Completion

When was the course first completed by the learner? This is configured as shown below:


Most recent completion is configured similarly except that the Last aggregation is used instead of First.

Active Weeks

How many weeks did the learner complete something on? This measure works best with a date filter e.g. the last month. This is configured as shown below:



The measure above can be used in the following reports:

Completions over time

This report is shows the number of courses completed over time to give you insight into changes of usage. It is a Line chart using the Completion Count measure. It can be filtered to show just 1 course, a group or courses or all courses. Similarly, it can be filtered by people, groups and time periods.


Most active learners

This report shows which learners are most active. It is a Leaderboard using all of the measures defined above except person count (because person count per learner is always 1). It can be filtered to show just 1 course, a group or courses or all courses. Similarly, it can be filtered by people, groups and time periods.


Most completed content

The most completed content report gives you insight into what’s being completed the most. It is a heatmap using the Completion Count, Person Count and Active Weeks measures. Like the other reports, it can be filter by groups of people or courses and by time periods. For example, you might want to filter this report to show only the last month to see which courses have been most popular recently.


Was this article helpful?
0 out of 0 found this helpful

If you can't find what you need or you want to ask a real person a question, please contact customer support.