Webhooks Documentation

Available Webhook TopicsLink

Webhooks can be registered for the following topics:

ModelTopicsTriggerOrderorder.createdWhen an order is successfully completedUseruser.signupTriggered when a new user signs up to your site

user.signinTriggered when a user signs into your site signs in by all the existing ways (regular sign in, LinkedIn sign in, express sign in, checkout sign in and sso)Enrollmentenrollment.trialTriggered when a user enrolls for a trial in any course.enrollment.createdTriggered when a paid enrollment is created in any of your coursesenrollment.completedTriggered when a enrollment reaches 100% progress completionenrollment.progressTriggered when a student progresses forward through a course (ie. when they complete lessons or a lesson is removed from a course and admin updates users's progress).

Note: This event is similar to the lesson.completed event, but delivers a payload that includes the % progress in a course.Coursecourse.createdTriggered when a new course is createdcourse.deletedTriggered when a course is deletedcourse.updatedTriggered when a course's name or settings are changed.Lessonlesson.completedTriggered when a student completes a lesson in their course.Quizquiz.attemptedTriggered when a student answers the final question of a quiz.Appapp.uninstalledTriggered when a user uninstalled an app.

Example PayloadsLink

Order CreatedLink

PayloadLink

{
  "id": "20180126172320940835610",
  "resource": "order",
  "action": "created",
  "tenant_id": "3",
  "created_at": "2018-01-26T22:23:20.808Z",
  "payload": {
    "affiliate_referral_code": null,
    "amount_cents": 5000,
    "amount_dollars": 50,
    "billing_name": "Robert Smith",
    "coupon": null,
    "created_at": "2018-01-26T22:23:18.400Z",
    "id": 19796,
    "order_number": 1010,
    "payment_type": "one-time",
    "product_id": 1,
    "product_name": "Introduction to Webhooks",
    "status": "Complete",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

User SigninLink

PayloadLink

{
  "id": "20180123154501518395902",
  "resource": "user",
  "action": "signin",
  "tenant_id": "73394",
  "created_at": "2018-01-23T20:45:00.314Z",
  "payload": {
    "administered_course_ids": null,
    "affiliate_code": "e7c7eb",
    "affiliate_commission": "15.00",
    "affiliate_commission_type": "%",
    "affiliate_payout_email": "user@thinkific.com",
    "avatar_url": "https://s3.amazonaws.com/thinkific/profiles/002/121/9021516740299.thumb.?1516740299",
    "bio": null,
    "company": "",
    "created_at": "2017-07-23T02:42:13.043Z",
    "custom_profile_fields": [],
    "email": "ninjas@thinkific.com",
    "external_source": null,
    "first_name": "Robert",
    "headline": "Software Engineer",
    "id": 123456,
    "last_name": "Smith",
    "roles": [
      "affiliate"
    ]
  }
}

User SignupLink

PayloadLink

{
  "id": "20180123170248040678392",
  "resource": "user",
  "action": "signup",
  "tenant_id": "73394",
  "created_at": "2018-01-23T22:02:45.001Z",
  "payload": {
    "administered_course_ids": null,
    "affiliate_code": null,
    "affiliate_commission": null,
    "affiliate_commission_type": "%",
    "affiliate_payout_email": null,
    "avatar_url": null,
    "bio": null,
    "company": null,
    "created_at": "2018-01-23T22:02:44.987Z",
    "custom_profile_fields": [],
    "email": "ninjas@thinkific.com",
    "external_source": null,
    "first_name": "Robert",
    "headline": null,
    "id": 123456,
    "last_name": "Smith",
    "roles": []
  }
}

Enrollment CreatedLink

PayloadLink

{
  "id": "20180126171756020665195",
  "resource": "enrollment",
  "action": "created",
  "tenant_id": "3",
  "created_at": "2018-01-26T22:17:01.924Z",
  "payload": {
    "activated_at": "2018-01-26T22:16:52.255Z",
    "completed_at": null,
    "course": {
      "id": 4,
      "name": "Introduction to Webhooks"
    },
    "course_id": 4,
    "created_at": "2018-01-26T22:16:52.285Z",
    "expiry_date": null,
    "free_trial": false,
    "id": 97472,
    "percentage_completed": "0.0",
    "started_at": "2018-01-26T22:17:01.891Z",
    "updated_at": "2018-01-26T22:17:01.924Z",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Enrollment TrialLink

PayloadLink

{
  "id": "20180116184610563698247",
  "resource": "enrollment",
  "action": "trial",
  "tenant_id": "1008",
  "created_at": "2018-01-16T23:45:06.466Z",
  "payload": {
    "activated_at": null,
    "completed_at": null,
    "course": {
      "id": 2692,
      "name": "Introduction to Webhooks"
    },
    "course_id": 2692,
    "created_at": "2018-01-16T23:45:03.227Z",
    "expiry_date": null,
    "free_trial": true,
    "id": 97197,
    "percentage_completed": "0.0",
    "started_at": "2018-01-16T23:45:06.436Z",
    "updated_at": "2018-01-16T23:45:06.466Z",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Enrollment CompletedLink

PayloadLink

{
  "id": "20180126171947527620204",
  "resource": "enrollment",
  "action": "completed",
  "tenant_id": "3",
  "tenant_global_id": "09b66093-fc51-409d-af42-4c40d5a0f529",
  "created_at": "2018-01-26T22:19:47.432Z",
  "payload": {
    "activated_at": "2018-01-26T22:19:26.972Z",
    "completed_at": "2018-01-26T22:19:47.308Z",
    "course": {
      "id": 3891,
      "name": "Introduction to Webhooks"
    },
    "course_id": 3891,
    "created_at": "2018-01-26T22:19:26.995Z",
    "expiry_date": null,
    "free_trial": false,
    "id": 97473,
    "percentage_completed": "1.0",
    "started_at": "2018-01-26T22:19:29.025Z",
    "updated_at": "2018-01-26T22:19:47.432Z",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Enrollment ProgressLink

PayloadLink

{
  "id": "20180118171806111886309",
  "resource": "enrollment",
  "action": "progress",
  "tenant_id": "987",
  "created_at": "2018-01-18T22:18:05.984Z",
  "payload": {
    "activated_at": "2018-01-18T22:17:52.380Z",
    "completed_at": null,
    "course": {
      "id": 3035,
      "name": "Introduction to Webhooks"
    },
    "course_id": 3035,
    "created_at": "2018-01-18T22:17:52.459Z",
    "expiry_date": null,
    "free_trial": false,
    "id": 97254,
    "last_percentage_completed": "0.0",
    "percentage_completed": "0.333333333333333",
    "started_at": "2018-01-18T22:17:58.569Z",
    "updated_at": "2018-01-18T22:18:05.984Z",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Course CreatedLink

Note: This event can only be created using the Webhooks API

PayloadLink

{
  "id": "01EJ79N9456763TEVEAKD2YWWC",
  "resource": "course",
  "action": "created",
  "tenant_id": "12345",
  "tenant_global_id": "e266fqp6-6789-41cd-a283-544f123233ff",
  "created_at": "2020-09-14T21:52:13.000Z",
  "timestamp": 1600120333,
  "payload": {
    "id": 909850,
    "name": "New Webhooks Course",
    "slug": "new-webhooks-course",
    "subtitle": null,
    "description": null,
    "contact_information": null,
    "keywords": null,
    "duration": null,
    "banner_image_url": null,
    "course_card_image_url": "/assets/defaults/default-product-card.png",
    "course_card_text": null,
    "created_at": "2020-09-14T21:52:13.530Z",
    "updated_at": "2020-09-14T21:52:13.530Z",
    "product": {
      "id": 234567
    },
    "instructor": {
      "id": 890789,
      "first_name": "John",
      "last_name": "Donald",
      "title": ""
    }
  }
}

Course DeletedLink

Note: This event can only be created using the Webhooks API

PayloadLink

{
  "id": "01EJ795432A1HNPQFCH5Y4G0TSR",
  "resource": "course",
  "action": "deleted",
  "tenant_id": "12345",
  "tenant_global_id": "e266fqp6-6789-41cd-a283-544f123233ff",
  "created_at": "2020-09-14T21:55:26.000Z",
  "timestamp": 1600120526,
  "payload": {
    "id": 909850,
    "name": "New Webhooks Course",
    "slug": "the-webhooks-course",
    "subtitle": null,
    "description": null,
    "contact_information": null,
    "keywords": null,
    "duration": null,
    "banner_image_url": null,
    "course_card_image_url": "/assets/defaults/default-product-card.png",
    "course_card_text": null,
    "created_at": "2020-09-14T21:52:13.530Z",
    "updated_at": "2020-09-14T21:54:55.275Z",
    "product": {
      "id": 234567
    },
    "instructor": {
      "id": 890789,
      "first_name": "John",
      "last_name": "Donald",
      "title": ""
    }
  }
}

Course UpdatedLink

Note: This event can only be created using the Webhooks API

PayloadLink

{
  "id": "0111237A8R3468VNZGAG62PQO",
  "resource": "course",
  "action": "updated",
  "tenant_id": "12345",
  "tenant_global_id": "e266fqp6-6789-41cd-a283-544f123233ff",
  "created_at": "2020-09-14T21:54:55.000Z",
  "timestamp": 1600120495,
  "payload": {
    "id": 909850,
    "name": "New Webhooks Course",
    "slug": "the-webhooks-course",
    "subtitle": null,
    "description": null,
    "contact_information": null,
    "keywords": null,
    "duration": null,
    "banner_image_url": null,
    "course_card_image_url": "/assets/defaults/default-product-card.png",
    "course_card_text": null,
    "created_at": "2020-09-14T21:52:13.530Z",
    "updated_at": "2020-09-14T21:54:55.275Z",
    "product": {
      "id": 234567
    },
    "instructor": {
      "id": 890789,
      "first_name": "John",
      "last_name": "Donald",
      "title": ""
    }
  }
}

Lesson CompletedLink

The Lesson Completed Webhook events will fire whenever a lesson is completed in Thinkific, however the lesson types available in Thinkific have different rules that guide when that lesson may be completed. The following is a guide for the different lesson types available:

  1. Video Lessons

Video Lessons are completed in one of two ways: (a) Automatically upon the successful playthrough of the video in the lesson (b) When the student manually selects the "Complete Lesson" button. (Some course creators will use custom CSS classes to remove this button entirely so only the first case may apply).

  1. Text, Audio, PDF, Multimedia, Download, & Presentation Lessons

In all of the following lessons, Thinkific relies on the completion of the lesson to be done by the Students using the "Complete Lesson" button. The event fires when the student presses this button in the UI.

  1. Survey Lessons

Survey Lessons are completed upon the completion of the survey in full by the Student. Once they have completed their answers and submitted the survey the Lesson Completion event will fire.

  1. Quiz Lessons

Quiz Lessons are completed depending on the configuration the Course Creator sets for the Quiz in question. If the Course Creator has defined a minimum grade for the Quiz, the lesson is only completed once this passing grade is achieved by the student. A failure to achieve this grade will not fire a lesson completion event and require the student to retake the quiz. If no passing grade is defined, the Quiz Lesson Completed Event will fire on any completion of the quiz, regardless of final grade.

Note: This event does not send any data that is unique to just one lesson type. For example - The grade of a quiz is not currently available because it does not relevant to the other lesson types available.

  1. Assignment Lessons

Assignment lessons are unique in Thinkific because they are completed by the Instructor, not by the student. In an Assignment lesson, the student completes their portion of the work by submitting an assignment to the instructor. The Lesson is completed only once the Instructor reviews the assignment submission and approves the work. If the Instructor reviews and rejects the student's assignment, the lesson will not be completed and will be sent back to the student to review and resubmit.

  1. Exam (Brillium) Lessons

Exam Lessons refer to our integration with Brillium. Because this is an external integration, the definition of a successful exam completion is defined in the Brillium system. When a student reaches an Exam Lesson in their learning they are directed to Brilliums exam tool and a Lesson Completion is only sent back to Thinkific

PayloadLink

{
  "id": "20191029145629636106318",
  "resource": "lesson",
  "action": "completed",
  "tenant_id": "12345",
  "tenant_global_id": "feb8d00d-8040-4382-afee-491a6c8013af",
  "created_at": "2019-10-29T18:56:29.474Z",
  "payload": {
    "chapter": {
    "id": 123,
    "name": "Chapter 1"
    },
    "course": {
      "id": 123,
      "name": "Introduction to Webhooks"
    },
    "enrollment": {
      "id": 1084282
    },
    "lesson": {
      "id": 24220,
      "name": "Getting started with Webhooks",
      "position": 0,
      "type": "Video"
    },
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Quiz AttemptedLink

PayloadLink

{
  "id": "20191029145629636106318",
  "resource": "quiz",
  "action": "attempted",
  "tenant_id": "12345",
  "tenant_global_id": "zd29cd8r-l18e-4288-adce-5f999c27e00a",
  "created_at": "2019-08-27T21:02:50.000Z",
  "timestamp": 1598562170,
  "payload": {
    "attempts": 2,
    "correct_count": 1,
    "grade": 20,
    "incorrect_count": 4,
    "result_id": 12511,
    "user": {
      "id": 124567,
      "first_name": "Sam",
      "last_name": "Davis",
      "email": "sammy@thinkific.com"
    },
    "quiz": {
      "id": 43811,
      "name": "Webhook Quiz"
    }
  }
}

App UninstalledLink

PayloadLink

{
  "id": "01EWG55HHGG8BA3E2PGMPRH04E",
  "resource": "app",
  "action": "uninstalled",
  "created_at": "2021-01-20T15:02:50.000Z",
  "payload": {
    "site": {
      "id": "zd29cd8r-l18e-4288-adce-5f999c27e00a",
      "subdomain": "connecting-the-dots"
    }
  }
}

Up Next: Create Webhooks with Webhooks APILink