Events and Payloads

Learn about when each webhook event occurs and what the payload contains

All eduMe webhooks have the following top-level properties:

  • type indicates the type of the event that triggered the webhook.

  • payload contains the data associated with the event.

  • timestamp the date and time when the event occurred.

{
  "type": "course.deleted",
  "payload": { /* ... */ },
  "timestamp": "2022-07-13T12:03:54.530Z"
}

Course-level WebhooksCopied!

course.addedCopied!

This event occurs when a new course is created

{
  "type": "course.added",
  "payload": {
    "group": {
      "groupId": 1297
    },
    "teams": [],
    "course": {
      "courseId": 14148,
      "courseKey": "reboarding_your_workforce4900",
      "title": "Reboarding your workforce",
    },
    "modules": [
      {
        "moduleId": 15010
      }
    ],
    "activities": [
      {"activityId": 8558, "published": false, "type": "lesson"},
      {"activityId": 2642, "published": false, "type": "survey"},
      {"activityId": 6743, "published": false, "type": "assessment"},
    ],
    "version": 1
  },
  "timestamp": "2023-05-31T11:42:57.633Z"
}
interface courseAdded {
  type: "course.added";
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
      title: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    activities: Array<{
        activityId: number,
        type: "lesson" | "survey" | "assessment"
        published: boolean,
    }>,
    version: 1,
  };
  timestamp: string;
}

course.deletedCopied!

This event occurs when a course is deleted

{
  "type": "course.deleted",
  "payload": {
    "group": {
      "groupId": 3294
    },
    "teams": [
      {
        "teamId": 3493
      }
    ],
    "course": {
      "courseId": 14147,
      "courseKey": "reboarding_your_workforce4900"
      "title": "Reboarding your workforce",
    },
    "modules": [
      {
        "moduleId": 15009
      }
    ],
    "activities": [],
    "version": 1
  },
  "timestamp": "2023-05-31T11:34:31.290Z"
}
interface courseDeleted {
  type: "course.deleted";
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
      title: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    activities: Array<{
      activityId: number,
      type: "lesson" | "survey" | "assessment"
      published: boolean,
    }>,
    version: 1,
  };
  timestamp: string;
}

course.publishedCopied!

This event occurs when a course is published

{
  "type": "course.published",
  "payload": {
    "group": {
      "groupId": 12779
    },
    "teams": [
      {
        "teamId": 55526
      }
    ],
    "course": {
      "courseId": 22299,
      "courseKey": "tips_for_good_mental_health7506"
      "title": "Tips for good mental health",
    },
    "modules": [
      {
        "moduleId": 24775
      }
    ],
    "activities": [
      {"activityId": 8558, "published": true, "type": "lesson"},
      {"activityId": 2642, "published": true, "type": "survey"},
      {"activityId": 6743, "published": true, "type": "assessment"},
    ],
    "version": 1
  },
  "timestamp": "2023-06-09T09:27:28.210Z"
}
interface coursePublished {
  type: "course.published";
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
      title: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    activities: Array<{
      activityId: number,
      type: "lesson" | "survey" | "assessment"
      published: boolean,
    }>,
    version: 1,
  };
  timestamp: string;
}

course.unpublishedCopied!

This event occurs when a course is unpublished

{
  "type": "course.unpublished",
  "payload": {
    "group": {
      "groupId": 12779
    },
    "teams": [
      {
        "teamId": 55526
      }
    ],
    "course": {
      "courseId": 22299,
      "courseKey": "tips_for_good_mental_health7506",
      "title": "Tips for good mental health",
    },
    "modules": [
      {
        "moduleId": 24775
      }
    ],
    "activities": [
      {"activityId": 8558, "published": false, "type": "lesson"},
      {"activityId": 2642, "published": false, "type": "survey"},
      {"activityId": 6743, "published": false, "type": "assessment"},
    ],
    "version": 1
  },
  "timestamp": "2023-06-09T09:27:30.665Z"
}
interface courseUnpublished {
  type: "course.unpublished";
  payload: {
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
      title: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    activities: Array<{
      activityId: number,
      type: "lesson" | "survey" | "assessment"
      published: boolean,
    }>,
    version: 1,
  };
  timestamp: string;
}

course.updatedCopied!

This event occurs when:

  • A course title is updated

  • A new activity is published within a published course

  • A team is assigned to a course

  • A team is unassigned from a course

{
  "type": "course.updated",
  "payload": {
    "type": "title.changed",
    "group": {
      "groupId": 12779
    },
    "teams": [
      {
        "teamId": 55526
      }
    ],
    "course": {
      "courseId": 22299,
      "courseKey": "tips_for_good_mental_health7506",
      "title": "Tips for good mental health",
    },
    "modules": [
      {
        "moduleId": 24775
      }
    ],
    "activities": [
      {"activityId": 8558, "published": true, "type": "lesson"},
      {"activityId": 2642, "published": true, "type": "survey"},
      {"activityId": 6743, "published": true, "type": "assessment"},
    ],
    "version": 1
  },
  "timestamp": "2023-06-09T09:27:35.655Z"
}
interface courseUpdated {
  type: "course.updated";
  payload: {
    type: "title.changed" | "activity.published" | "team.assigned" | "team.removed",
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
      courseKey: string,
      title: string,
    },
    modules: Array<{
      moduleId: number,
    }>,
    activities: Array<{
        activityId: number,
        type: "lesson" | "survey" | "assessment"
        published: boolean,
    }>,
    version: 1,
  };
  timestamp: string;
}

Learner-level WebhooksCopied!

learner.addedCopied!

This event occurs when a learner is added to group or team

{
  "type": "learner.added",
  "payload": {
    "user": {
      "eId": "e1004a57-bac6-4e9d-9c5f-758b6582800b",
      "userId": 112125,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "courses": [
      {
        "courseId": 14148
      }
    ],
    "version": 1
  },
  "timestamp": "2023-05-31T15:10:15.380Z"
}
interface learnerAdded {
  type: "learner.added";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    courses: Array<{
      courseId: number,
    }>,
    version: 1,
  };
  timestamp: string;
}

learner.activatedCopied!

This event occurs when a learner activates their eduMe account

{
  "type": "learner.activated",
  "payload": {
    "user": {
      "eId": "eca95b3b-84be-40bd-83ae-aea08bda66f2",
      "userId": 112122,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "courses": [
      {
        "courseId": 8078
      }
    ],
    "version": 1
  },
  "timestamp": "2023-05-31T11:50:16.409Z"
}
interface learnerActivated {
  type: "learner.activated";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    courses: Array<{
      courseId: number,
    }>,
    version: 1,
  };
  timestamp: string;
}

learner.started.courseCopied!

This event occurs when a learner starts a course

{
  "type": "learner.started.course",
  "payload": {
    "user": {
      "eId": "e1004a57-bac6-4e9d-9c5f-758b6582800b",
      "userId": 112125,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 14148
    },
    "version": 1
  },
  "timestamp": "2023-05-31T15:11:50.655Z"
}
interface learnerStartedCourse {
  type: "learner.started.course";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
    },
    version: 1,
  };
  timestamp: string;
}

learner.started.lessonCopied!

This event occurs when a learner starts a lesson

{
  "type": "learner.started.lesson",
  "payload": {
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
    },
    "lesson": {
      "lessonId": 28856
    },
    "version": 1
  },
  "timestamp": "2023-06-09T09:26:30.740Z"
}
interface learnerStartedLesson {
  type: "learner.started.lesson";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    lesson: {
      lessonId: number,
    },
    version: 1,
  };
  timestamp: string;
}

learner.started.assessmentCopied!

This event occurs when a learner starts a assessment

{
  "type": "learner.started.assessment",
  "payload": {
    "user": {
      "userId": 112121,
      "identifiers": []
    },
    "group": {
      "groupId": 3294
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 13615
    },
    "module": {
      "moduleId": 14461
    },
    "assessment": {
      "assessmentId": 37856
    },
    "version": 1
  },
  "timestamp": "2023-05-31T11:35:20.209Z"
}
interface learnerStartedAssessment {
  type: "learner.started.assessment";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    assessment: {
      assessmentId: number
    },
    version: 1,
  };
  timestamp: string;
}

learner.started.guideCopied!

This event occurs when a learner starts a guide

{
  "type": "learner.started.guide",
  "payload": {
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "guide": {
      "guideId": 1
    },
    "version": 1
  },
  "timestamp": "2024-02-08T11:18:19.369Z"
}
interface learnerStartedGuide {
  type: "learner.started.guide";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    guide: {
      guideId: number,
    },
    version: 1,
  };
  timestamp: string;
}

learner.completed.courseCopied!

This event occurs when a learner completes a course

{
  "type": "learner.completed.course",
  "payload": {
    "user": {
      "eId": "e1004a57-bac6-4e9d-9c5f-758b6582800b",
      "userId": 112125,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 14148
    },
    "version": 1
  },
  "timestamp": "2023-05-31T15:12:15.194Z"
}
interface learnerCompletedCourse {
  type: "learner.completed.course";
  payload: {
    user: {
      eId?: string;
      userId: number;
      identifiers: Array<{
        id: number;
        key: string;
        value: string;
        createdAt: string;
      }>;
    };
    group: {
      groupId: number;
    };
    teams: Array<{
      teamId: number;
    }>;
    course: {
      courseId: number;
      certificateId?: string;
    };
    version: 1;
  };
  timestamp: string;
}

learner.completed.lessonCopied!

This event occurs when a learner completes a lesson

{
  "type": "learner.completed.lesson",
  "payload": {
    "user": {
      "eId": "e1004a57-bac6-4e9d-9c5f-758b6582800b",
      "userId": 112125,
      "identifiers": []
    },
    "group": {
      "groupId": 1297
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 14148
    },
    "module": {
      "moduleId": 15010
    },
    "lesson": {
      "lessonId": 39298
    },
    "version": 1
  },
  "timestamp": "2023-05-31T15:12:00.927Z"
}
interface learnerCompletedLesson {
  type: "learner.completed.lesson";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    lesson: {
      lessonId: number,
    },
    version: 1,
  };
  timestamp: string;
}

learner.completed.assessmentCopied!

This event occurs when a learner completes an assessment

{
  "type": "learner.completed.assessment",
  "payload": {
    "user": {
      "eId": "62b35f8b-b2c0-45a5-8310-5ed1d0948e30",
      "userId": 10217,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
    },
    "assessment": {
      "assessmentId": 29216,
      "status": "passed",
      "score": 100,
      "minimumScoreRequired": 0
    },
    "version": 1
  },
  "timestamp": "2023-06-09T09:25:58.375Z"
}
interface learnerCompletedAssessment {
  type: "learner.completed.assessment";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    course: {
      courseId: number,
    },
    module: {
      moduleId: number,
    },
    assessment: {
      assessmentId: number,
      status: "passed" | "failed",
      score: number,
      minimumScoreRequired: number
    },
    version: 1,
  };
  timestamp: string;
}

learner.completed.surveyCopied!

This event occurs when a learner completes a survey

{
  "type": "learner.completed.survey",
  "payload": {
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "course": {
      "courseId": 9961
    },
    "module": {
      "moduleId": 10658
    },
    "survey": {
      "surveyId": 2159,
      "type": "multipleChoice",
      "hasFreeText": true,
      "status": "completed"
    },
    "version": 1
  },
  "timestamp": "2023-06-09T09:25:12.462Z"
}
interface learnerCompletedSurvey {
  type: "learner.completed.survey";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    survey: {
      surveyId: number,
      type: "enpsScore" | "freeText" | "multipleChoice",
      hasFreeText: boolean,
      status: "dismissed" | "completed",
    },
    version: 1,
  };
  timestamp: string;
}

learner.completed.guideCopied!

This event occurs when a learner completes a guide

{
  "type": "learner.completed.guide",
  "payload": {
    "user": {
      "eId": "3497b389-7076-43ef-b53b-13bec756cae5",
      "userId": 10215,
      "identifiers": []
    },
    "group": {
      "groupId": 5
    },
    "teams": [
      {
        "teamId": 8429
      }
    ],
    "guide": {
      "guideId": 1
    },
    "version": 1
  },
  "timestamp": "2024-02-08T11:18:00.653Z"
}
interface learnerCompletedGuide {
  type: "learner.completed.guide";
  payload: {
    user: {
      eId?: string,
      userId: number,
      identifiers: Array<{
        id: number,
        key: string,
        value: string,
        createdAt: string,
      }>,
    },
    group: {
      groupId: number,
    },
    teams: Array<{
      teamId: number,
    }>,
    guide: {
      guideId: number,
    }
    version: 1,
  };
  timestamp: string;
}