Skip to main content

Generic SFTP integration

About the integration

DataCamp supports integrating with an LMS via SFTP. In the integration, the DataCamp content catalog and learning events are sent to an SFTP server provided by the customer’s LMS in the form of flat CSV files on a periodic basis. The LMS then uses these files to update its internal catalog and progress/completion records.

Content and events sync process

DataCamp can sync its full catalog to the LMS. This includes courses, projects, practices, assessments, certifications, skill and career tracks and custom tracks. For courses, projects, practices, assessments and certifications, content completions can be synced. Furthermore, for courses, we can sync started events.

The sync interval is customizable, we support hourly, daily, weekly and monthly syncs. Furthermore, the timestamp on which the sync happens can be customized to your needs. It’s also possible to plan the first sync ahead of time.

CSV file structure

To cope with the variety in LMS’es, the content of the CSV files sent by DataCamp is fully customizable. The structure of the CSV file is defined in a template, for which the Handlebars syntax is used. The DataCamp team is happy to help you set up the right template, based on the available fields found in the available fields section below.

Available fields

The table below summarizes the fields that can be used in the content CSV files.

Name

Description

General

General

contentType

The content type of the item, e.g. COURSE

id

The unique identifier for the content item on DataCamp

xapiId

The IRI for the item used in the xApi integration

title

The title of the content item. Titles are in the format “[title] - [contentType]”, e.g. “Wrangling and Visualizing Musical Data - Project

description

The description of the content item

url

The url to the content item

imageUrl

The URI for the thumbnail, based on the technology (R, SQL …) if available, the DataCamp logo if not. You can chose between svg, jpg or png

live

Set to “true” for active content, “false” for archived content

technology

If available, the technology of the content item

updatedAt

The timestamp when the item was last updated

Courses

Courses

topic

the topic of the course, consisting of a name and description

instructors

The list of instructors for the item, consisting of a fullName per instructor

timeNeededInHours

The amount of hours needed to complete the item

includedInLicenses

The products the content item is part of

infoUrl

The url of the internal description page for the content item

publicInfoUrl

The url of the external landing page for the content item

Projects

Projects

isGuided

Whether this is a guided or unguided project

topics

A list of topics for the item, consisting of a name and description per topic

instructors

The list of instructors for the item, consisting of a fullName per instructor

timeNeededInHours

The amount of hours needed to complete the item

publicInfoUrl

The url of the external landing page for the content item

Assessments

Assessments

infoUrl

The url of the internal description page for the content item

publicInfoUrl

The url of the external landing page for the content item

Practices

Practices

infoUrl

The url of the internal description page for the content item

Skill and career tracks

Skill and career tracks

category

“Skill” for skill tracks, “career” for career tracks

content

The list of content items included in the track, consisting of contentType, contentId and position per content item

includedInLicenses

The products the content item is part of

Custom tracks

Custom tracks

category

Set to “custom”

content

The list of content items included in the track, consisting of contentType, contentId and position per content item

Certifications

Certifications

category

"career", "technology" or "fundamentals"

The table below summarizes the available fields for the learning events CSV files.

Name

Description

contentId

The DataCamp id of the item associated with the event

contentType

The content type of the completed or started item

email

The e-mail address of the user that completed or started the item

nameid

If available, the nameid (send by the IDP) of the user that completed or started the item

timestamp

The timestamp on which the event was generated

eventType

The type of the event (possible values are 'completion' or 'started')

SSO and deeplinking

All content items sent by DataCamp have a url, which is a so-called deeplink. If single sign-on is enabled and set to required for your organization on the DataCamp side, these links will redirect learners to their identity provider before redirecting them to the actual content on DataCamp.

If single sign-on with the same identity provider is configured on the LMS, this allows a seamless experience between the LMS and DataCamp. If learners are already logged into their LMS, they will not have to sign in again when they launch a content item on DataCamp.

Full and delta files

DataCamp can sync its catalog and events via SFTP in two ways: full files and delta files.

When making use of full files, the CSV files sent for every sync will contain all items in the DataCamp catalog and all events made for the organization. In that case, the LMS is responsible for only inserting what it hasn’t stored yet, and making sure that what it has stored is up-to-date according to the file.

When using delta files, this responsibility lies at DataCamp. The first file for both content and learning events will be a full file as described above. The files that follow in the following syncs will each time be deltas on the previous sync. This means that they will only contain:

  • New content items launched since the last successful sync;

  • Updates to existing content items that happened since the last successful sync;

  • events that occurred since the last successful sync.

You can choose to make use of one of these files, but it is also possible to include both files in every sync.

File naming

The integration can be set up to flexibly name the files. Files can have a fixed name, in which case files uploaded during a sync will overwrite any existing files from the previous sync. In the case of flexible names, a timestamp can be included in the filename. This timestamp is the timestamp on which the file is generated. We currently support all common date and time formats.

File encryption

DataCamp supports sending CSV files in an encrypted way using PGP encryption. When enabled, files are encrypted with your public key before they are uploaded to the SFTP server. The corresponding private key will then be needed on your side to decrypt the files while importing them into your LMS.

Server authentication

DataCamp supports password and public key authentication for SFTP. In the first case, you can provide DataCamp with a username and password. In the second case, DataCamp can provide a public key that you can whitelist on your server.

Prerequisites

Before setting up an integration via SFTP, the following requirements must be met:

  • You need to have an SFTP server available with either:

    • An account created that can be used by DataCamp to upload files

    • The possibility to add trusted public keys

  • An LMS that supports importing content via CSV files

Setup

In order to set up an integration via SFTP, start by configuring your LMS to download and process CSV files from your SFTP server.

Next, provide DataCamp with the following information:

  • Whether you want to make use of full or delta files;

  • What content types should be synced (courses, projects …);

  • If learning events should be synced, which event types the file should include (completion and/or started)

  • The credentials for your SFTP server, including:

    • Hostname,

    • Port

    • Username/password in case of password-based SFTP authentication,

    • Path to which the files should be uploaded, with sufficient permissions for the provided user

  • File format (csv, txt …)

  • CSV delimiter (“,”, “;” …)

  • Your PGP public key if files should be encrypted;

  • How the files should be named;

  • The sync cadence and timestamp of the first sync.

The DataCamp team will set up the integration.

FAQ

Will a user completion be included in an SFTP sync if a course is skipped?

Completions for skipped courses are not included in SFTP files containing learning events files.(Courses can be skipped as part of a track, when passing a "test-out" assessment).

Did this answer your question?