Skip to main content

Nightly SFTP Events

Descriptoin

Data from events that occur on the platform can be sent in bluk to your SFTP server every night, where you can then process and/or pass this data onward to any third party system for automation / reporting / analytics purposes.

An SFTP Transfer is a nightly transfer of events from the platform to a secure client FTP (SFTP) in CSV or JSON format. For example, every night on an automated basis, you could receive a file containing all courseComplete events that occurred over the previous day.

What is SFTP (Simple File Transfer Protocol)?

Integration Details

  • Delivery Time - SFTP transfers are fired at roughly 2am ET (timezone based on instance configuration, but usually ET) and continue every 24 hours until requested otherwise.
  • Delivery Format - Files can be in either CSV or JSON format. See event details for more info.
  • Data Sent - The file will contain all events from the previous day. For example, the SFTP transfer sent at 2am on Friday will contain all of Thursday's events.
  • Automation - Files can be automatically detected and transformed into a format consumable by enterprise software / email marketing systems, or can be manually processed asynchronously.
  • Data Reliability - The connection will time out in 60 seconds. If your server does not respond before the connection times out, or takes longer than 5 minutes total to transfer the file, we will consider the delivery of the message as a failed attempt.
    • If SFTP transfer delivery fails, we will automatically retry over time. We will retry ten times total with an exponential backoff starting from 20 seconds up to 3600 seconds, giving up approximately 3.5 hours after the first SFTP transfer attempt.

Configuration

  1. Have a running and accessible SFTP server.

  2. Send your IE representitive the SFTP URL where you would like files to be sent. The URL should include a username, password, domain, port, and path.

  • Example: sftp://username:password@host:22/path
  • username and password should have the following special characters percent-encoded. Double check there are no erroneous spaces or other characters in the URL.
][?/<~#`!@$%^&*}+=:";',>{space
%5D%5B%3F%2F%3C%7E%23%60%21%40%24%25%5E%26%2A%7D%2B%3D%3A%22%3B%27%2C%3E%7B%20
  1. Let us know your desired data format. Choices are: JSON or CSV. See event details for more info.

Testing Your Integration

Here are a few strategies that you can employ in order to test the integration

Before your SFTP URL is configured on our end:

  • You can use the event examples from our documentation to test against your automations directly. You can either copy and paste the file directly to your SFTP folder or use an SFTP client like FileZilla to send the file to your folder via SFTP.

After your SFTP URL is configured on our end:

  • When configured, a test file will be sent to your SFTP server, which you can use to verify that the connection is working properly.
  • You can confirm that a file is being sent to the correct location and in the desired format every night at around 2am ET. Then you can use this file to test your automations.

Authenticating Requests

For security reasons, you may want to limit requests to your endpoint to those coming from our platform. In order to authenticate incoming requests, you can allow access only to the ones coming from our IP addresses. All other requests should be blocked / ignored.

  • 54.243.7.71
  • 18.209.174.66
  • 3.83.213.76
  • 168.245.34.51
  • 167.89.97.235

Event Details

courseComplete

Trigger

When a learner completes a course

Notable Event Attributes

AttributeDescription
userThe leaner's email address
notifiableIdThe ID of the course that was completed
userDetail > externalCustomerIdThe learner's ID, the value associated to their account. This value is utilized during SSO to associate the learner coming from the IDP with their account in the SP (IE product).
ref1 - ref3Optional data passed from the IDP to the SP (IE product) during SSO can be found in these attributes.

Sample Payload

  • File Name Example: courseCompletion-1589259213_2020-05-18T18-00-13-7vcph2i.json
  • Format Notes: Data will be an array of events sent in batch nightly. In other words, the standard JSON event for courseComplete, but multiple of them grouped into an JSON array.
courseCompletion-1589259213_2020-05-18T18-00-13-7vcph2i.json
[{
"id": "32ed16df-27cb-5f72-90ff-4eaf39346f86",
"source": "course_completed",
"timestamp": "2019-10-17T20:50:53.103Z",
"type": "status_change",
"user": "[email protected]", // learner email
"companyId": "3aabdfb8-3891-5011-ad35-8e2351c5fdaf",
"event": "courseCompletion",
"notifiableId": "7670fdbe-15ed-504b-a680-d404fa4b0eb4", // course id
"title": "New Student Orientation", // course title
"userDetail": { // learner details
"id": "61149b2c-3f37-5032-be63-f5d984de10b6",
"firstName": "Bob",
"lastName": "Johnson",
"externalCustomerId": "111222333444",
"sfContactId": null,
"sfAccountId": null,
"client": "00f928f4-8718-5043-9164-32398b165c60",
"ref1": "111222333444",
"ref2": "Department",
"ref3": "..."
}
}, {
...
}]
note

Currently, the only supported event is courseComplete