Webhook Payloads

Webhooks deliver data from eduMe to the application of your choice as soon as a specific event happens. Here’s a collection of the sample payloads for events we currently support:

Course level webhooks

Name Type Triggered when
course.added   An admin adds a new course in the specified group
course.deleted   An admin deletes a course in the specified group
course.published   An admin publishes a course in the specified group
course.unpublished   An admin unpublishes a course in the specified group
course.updated title.changed A course title is updated in the specified group
  team.assigned A team is assigned to a course in the specified group
  team.removed A team is unassigned from a course in the specified group

Learner level webhooks

Name Type Triggered when
learner.activated   A learner added to the specified course activates their eduMe account
learner.added   A new learner is added to the specified course
learner.activity.started Course A learner starts the specified course
  Lesson activity A learner starts a lesson in the specified course
  Assessment activity A learner starts an assessment in the specified course
learner.activity.finished Course
Note:  This payload contains high-level course information. If you’re looking only for detailed course information, refer to the learner.course.completed payload.
A learner completes the specified course
  Lesson activity A learner completes the specified course lesson
  Assessment activity A learner completes an assessment in the specified course
  In-course survey A learner completes a survey in the specified course
  Standalone survey
Note: Standalone surveys are identical to in-course surveys, except for the missing course and module properties.
A learner completes a standalone survey
learner.course.completed
Note: This payload contains detailed course information. If you’re looking only for high-level course information, refer to the payload type ‘course’ in learner.activity.finished. JSON schema
  A learner completes the specified course

learner.activity.started and learner.activity.finished webhooks are currentlyactivated for selected courses only.  If you have any questions on this, please reach out to your dedicated Customer Success Manager or contact our Support team via support@edume.com.

course.added

JSON schema

{
  type: "course.added",
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.added",
  payload: {
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

course.deleted

JSON schema

{
  type: "course.deleted",
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.deleted",
  payload: {
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

course.published

JSON schema

{
  type: "course.published",
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.published",
  payload: {
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

course.unpublished

JSON schema

{
  type: "course.unpublished",
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.unpublished",
  payload: {
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

course.updated

title.changed

JSON schema

{
  type: "course.updated",
  payload: {
    type: "title.changed",
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.updated",
  payload: {
    type: "title.changed",
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

team.assigned

JSON schema

{
  type: "course.updated",
  payload: {
    type: "team.assigned",
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.updated",
  payload: {
    type: "team.assigned",
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

team.removed

JSON schema

{
  type: "course.updated",
  payload: {
    type: "team.removed",
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
    },
    modules: Array<{
      moduleId: 24775,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  type: "course.updated",
  payload: {
    type: "team.removed",
    group: {
      groupId: 12779,
    },
  teams: [{
      teamId: 55526,
  }],
    course: {
      courseId: 22299,
      courseKey: "tips_for_good_mental_health7506",
    },
  modules: [{
      moduleId: 24775,
  }],
    version: 1,
  },
  timestamp: "2022-07-13T12:03:54.530Z",
}

 

learner.activated

JSON schema

{
type: "learner.activated",
payload: {
user: {
  eId: string,
    userId: number,
    identifiers: Array<{
    id: number,
      key: string,
      value: string,
      createdAt: string,
    }>,
  },
  group: {
  groupId: number,
  },
  courses: Array<{
  courseId: number,
  }>,
  version: 1,
},
timestamp: string,
}

Sample payload

{
  "type": "learner.activated",
  "payload": {
    "user": {
      "eId": "62b35f8b-b2c0-45a5-8310-5ed1d0948e30",
      "userId": 10217,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "courses": [
      {
        "courseId": 202
      },
      {
        "courseId": 2045
      },
      {
        "courseId": 2099
      }
    ],
    "version": 1
  },
  "timestamp": "2022-07-21T13:29:32.454Z"
}

 

learner.added

JSON schema

{
  type: "learner.added",
  payload: {
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    courses: Array<{
      courseId: number,
    }>,
    version: 1,
  },
  timestamp: string,
}

Sample payload

{
  "type": "learner.added",
  "payload": {
    "user": {
      "eId": "62b35f8b-b2c0-45a5-8310-5ed1d0948e30",
      "userId": 10217,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "courses": [
      {
        "courseId": 202
      },
      {
        "courseId": 2045
      },
      {
        "courseId": 2099
      }
    ],
    "version": 1
  },
  "timestamp": "2022-07-21T13:29:32.423Z"
}

 

learner.activity.started

Course

JSON schema

{
  type: "learner.activity.started",
  payload: {
    type: "course",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.started",
  "payload": {
    "type": "course",
    "user": {
      "eId": "baa4e1be-55c3-4505-84e5-2e0d5154337b",
      "userId": 10218,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "version": 1
  },
  "timestamp": "2022-07-21T14:16:45.111Z"
}

 

Lesson activity

JSON schema

{
  type: "learner.activity.started",
  payload: {
    type: "lesson",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    lesson: {
      lessonId: number,
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.started",
  "payload": {
    "type": "lesson",
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "lesson": {
      "lessonId": 28856
    },
    "module": {
      "moduleId": 10658
    },
    "version": 1
  },
  "timestamp": "2022-07-21T13:01:59.636Z"
}

 

Assessment activity

JSON schema

{
  type: "learner.activity.started" | "learner.activity.finished",
  payload: {
    type: "assessment",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    assessment: {
      assessmentId: number,
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.started",
  "payload": {
    "type": "assessment",
    "user": {
      "eId": "62b35f8b-b2c0-45a5-8310-5ed1d0948e30",
      "userId": 10217,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
  },
    "assessment": {
      "assessmentId": 29216
  },
  "version": 1
  },
  "timestamp": "2022-07-21T13:29:32.968Z"
}

 

Learner.activity.finished

Course

JSON schema

{
  type: "learner.activity.finished",
  payload: {
    type: "course",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.finished",
  "payload": {
    "type": "course",
    "user": {
      "eId": "baa4e1be-55c3-4505-84e5-2e0d5154337b",
      "userId": 10218,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "version": 1
  },
  "timestamp": "2022-07-21T14:16:45.111Z"
}

 

Lesson activity

JSON schema

{
  type: "learner.activity.finished",
  payload: {
    type: "lesson",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    lesson: {
      lessonId: number,
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.finished",
  "payload": {
    "type": "lesson",
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "lesson": {
      "lessonId": 28856
    },
    "module": {
      "moduleId": 10658
    },
    "version": 1
  },
  "timestamp": "2022-07-21T13:01:59.636Z"
}

 

Assessment activity

JSON schema

{
  type: "learner.activity.finished",
  payload: {
    type: "assessment",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    assessment: {
assessmentId: number,
status: "passed" | "failed",
score: number,
minimumScoreRequired: number
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.finished",
  "payload": {
    "type": "assessment",
    "user": {
      "eId": "62b35f8b-b2c0-45a5-8310-5ed1d0948e30",
      "userId": 10217,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
    },
  "assessment": {
    "assessmentId": 29216,
"status": "passed",
"score": 100,
"minimumScoreRequired": 20
  },
"version": 1
  },
  "timestamp": "2022-07-21T13:29:32.968Z"
}

 

In-course survey

JSON schema

{
  type: "learner.activity.finished",
  payload: {
    type: "survey",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    survey: {
      surveyId: number,
    type: "enpsScore" | "multipleChoice" | "reaction",
  hasFreeText: boolean,
    status: "dismissed" | "completed"
    },
version: 1
  },
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.finished",
  "payload": {
    "type": "survey",
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
    },
    "survey": {
  "surveyId": 2159,
      "type": "multipleChoice",
    "hasFreeText": true,
    "status": "completed"
    },
    "version": 1
  },
  "timestamp": "2022-07-21T13:01:58.322Z"
}

 

Standalone survey

JSON schema

{
  type: "learner.activity.finished",
  payload: {
    type: "survey",
    user: {
      eId: string,
      userId: number,
      identifiers: Array<{ 
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    survey: {
      surveyId: number,
      type: "enpsScore" | "freeText" | "multipleChoice",
  hasFreeText: boolean,
      status: "dismissed" | "completed",
    },
    version: 1,
  }
  timestamp: string,
}

Sample payload

{
  "type": "learner.activity.finished",
  "payload": {
    "type": "survey",
    "user": {
      "eId": "34dd8aac-9063-48b3-9bf4-d498e86a3204",
      "userId": 10216,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "survey": {
  "surveyId": 2161,
    "type": "enpsScore",
  "hasFreeText": true,
      "status": "completed",
    },
    "version": 1
  },
  "timestamp": "2022-07-21T13:06:59.283Z"
}

 

learner.course.completed

JSON schema

{
  type: "course.complete"
  payload: {
    user: {
      id: number
      email: string
      isAnonymous: boolean
      isAdmin: boolean
      firstName: string
      createdAt: string
      updatedAt: string
      phone: any
      inviteCode: any
      employeeId: string
      activated: boolean
      lastName: string
      locked: boolean
      authVersion: number
      isCompanyAdmin: boolean
      isEditor: boolean
      isAnalyst: boolean
      isManager: boolean
      seenWebOnboarding: boolean
      language: string
      hidden: boolean
      deleted: boolean
      isSuperAdmin: boolean
      hasSignedInAsLearner: boolean
      hasCreatedCourse: boolean
      hasInvitedAdmins: boolean
      isCompanyOwner: boolean
      sendActivationReminders: boolean
      timezone: any
      isUnsubscribedFromEngagementEmails: boolean
      authType: string
      activationDate: string
      shouldShowGamificationOnboarding: boolean
      depositedPoints: number
      name: string
      identifiers: Array<{
        key: string
        value: string
        createdAt: string
      }>
    }
    course: {
      id: number
      customerId: number
      title: string
      courseKey: string
      public: boolean
      icon: string
      createdAt: string
      updatedAt: string
      courseImageUrl: any
      colour: string
      published: boolean
      type: string
      requiresEnrolment: boolean
      isSample: boolean
      completionMessage: any
      completionButtonUrl: any
      completionButtonText: any
      isHidden: boolean
      learnersCount: any
    }
    parentGroup: {
      id: number
      customerId: number
      name: string
      createdAt: string
      updatedAt: string
      parentGroupId: any
      welcomePageConfigId: any
      selfSignupConfigId: any
      language: any
      deleted: boolean
      ssoConfigId: any
      cookieConsentDisabled: boolean
      usersCount: any
      activatedUsersCount: any
    }
    completion: {
      overallAssessmentScore: number
      overallLessonScore: number
      scoresBreakdown: Array<{
        id: number
        activityKey: string
        type: string
        score?: number
      }>
      courseStartDate: string
      courseCompletionDate: string
      courseCompletionDurationInSeconds: number
      completionLanguage: string
    }
  }
  timestamp: string
}

Sample payload

{
  "type": "course.completed",
  "payload": {
    "user": {
      "id": 5398399,
      "email": "hook.captain@test.com",
      "isAnonymous": false,
      "isAdmin": false,
      "firstName": "Hook",
      "createdAt": "2021-05-18T10:34:32.907Z",
      "updatedAt": "2021-05-18T10:38:15.122Z",
      "phone": null,
      "inviteCode": null,
      "employeeId": "IDOptionallyProvidedByClient123",
      "activated": true,
      "lastName": "Captain",
      "locked": false,
      "authVersion": 1,
      "isCompanyAdmin": false,
      "isEditor": false,
      "isAnalyst": false,
      "isManager": false,
      "seenWebOnboarding": true,
      "language": "en",
      "hidden": false,
      "deleted": false,
      "isSuperAdmin": false,
      "hasSignedInAsLearner": false,
      "hasCreatedCourse": false,
      "hasInvitedAdmins": false,
      "isCompanyOwner": false,
      "sendActivationReminders": true,
      "timezone": null,
      "isUnsubscribedFromEngagementEmails": false,
      "authType": "default",
      "activationDate": "2021-05-18T10:34:32.907Z",
      "shouldShowGamificationOnboarding": false,
      "depositedPoints": 0,
      "name": "Hook Captain",
    "identifiers": [
    {
      "key": "fountain.applicantId",
          "value": "18d0f780-95b4-4ab1-a12b-ef7d8815338d",
          "createdAt": "2022-02-24T13:11:48.642Z"
      },
      {
          "key": "fountain.email",
          "value": "hook.captain@test.com",
          "createdAt": "2022-02-24T13:11:48.642Z"
        },
        {
          "key": "bamboo.employeeId",
          "value": "111",
          "createdAt": "2022-02-24T13:19:20.890Z"
        }
    ]
    },
    "course": {
      "id": 17167,
      "customerId": 5,
      "title": "How to capture Peter Pan",
      "courseKey": "webhook4798",
      "public": false,
      "icon": "cardchart",
      "createdAt": "2021-05-18T10:15:39.614Z",
      "updatedAt": "2021-05-18T10:15:39.614Z",
      "courseImageUrl": null,
      "colour": "#DBD56E",
      "published": true,
      "type": "ongoing",
      "requiresEnrolment": false,
      "isSample": false,
      "completionMessage": null,
      "completionButtonUrl": null,
      "completionButtonText": null,
      "isHidden": false,
      "learnersCount": null
    },
    "parentGroup": {
      "id": 8884,
      "customerId": 5,
      "name": "Neverland Group",
      "createdAt": "2021-05-13T13:55:35.533Z",
      "updatedAt": "2021-05-13T13:55:35.533Z",
      "parentGroupId": null,
      "welcomePageConfigId": null,
      "selfSignupConfigId": null,
      "language": null,
      "deleted": false,
      "ssoConfigId": null,
      "cookieConsentDisabled": false,
      "usersCount": null,
      "activatedUsersCount": null
    },
    "completion": {
      "overallAssessmentScore": 66.67,
      "overallLessonScore": 50,
      "scoresBreakdown": [
        {
          "id": 39726,
          "activityKey": "activity_1_lesson_no_quiz7706",
          "type": "lesson"
        },
        {
          "id": 39727,
          "activityKey": "activity_2_assessment4385",
          "type": "assessment",
          "score": 66.67
        },
        {
          "id": 39728,
          "activityKey": "activity_3_lesson_with_quiz4829",
          "type": "lesson",
          "score": 50
        }
      ],
      "courseStartDate": "2021-05-18T10:38:08.165Z",
      "courseCompletionDate": "2021-05-18T10:39:02.187Z",
      "courseCompletionDurationInSeconds": 54,
    "completionLanguage": "en"
    }
  },
  "timestamp": "2021-05-18T10:39:02.230Z"
}