Webhooks Documentation

    Plan Availability
    Legacy Plans
    Platform

Available Webhook Topics

Webhooks can be registered for the following topics:

Model Topics Trigger
Lead lead.created Triggered when a new lead is created in Thinkific
Cart cart.abandoned

Triggered when a cart still has items and no order has been placed after the configured abandoned-cart delay

Note: this webhook will only trigger if the consent collection is enabled on your account, which requires Thinkific Payments. This webhook will only trigger on transactions processed through Thinkific Payments.

Order order.created Triggered when an order is successfully completed
Transactions order_transaction.succeeded Triggered when a transaction was processed successfully
order_transaction.failed

Triggered when a transaction processed through Thinkific Payments failed

Note: this webhook will only trigger on transactions processed through Thinkific Payments.

order_transaction.refunded

Triggered when a transaction processed through Thinkific Payments was refunded

Note: this webhook will only trigger on transactions processed through Thinkific Payments.

Subscriptions subscription.cancelled

Triggered when a subscription processed through Thinkific Payments was cancelled

Note: this webhook will only trigger on subscriptions processed through Thinkific Payments.

subscription.past_due

Triggered when a subscription processed through Thinkific Payments changes its status from Active to Past Due

Note: this webhook will only trigger on subscriptions processed through Thinkific Payments.

subscription.unpaid

Triggered when all renewal payment attempts have been exhausted for a subscription processed through Thinkific Payments

Note: this webhook will only trigger on subscriptions processed through Thinkific Payments.

User user.signup Triggered when a new user signs up to your site
user.signin Triggered when a user signs into your site by any existing methods (regular sign-in, Linkedin sign-in, express sign-in, checkout sign-in and SSO)
user.updated Triggered when a user's email, name, or role is changed
user.deleted Triggered when a user is deleted
Enrollment enrollment.trial Triggered when a user enrolls for a trial in any course
enrollment.created Triggered when a full enrollment is created in any of your courses
enrollment.completed Triggered when an enrollment reaches 100% progress completion
enrollment.progress Triggered when a student progresses through a course (i.e. when they complete lessons or a lesson is removed from a course and admin updates users' progress)

Note: This event is similar to the lesson.completed event, but delivers a payload that includes the % progress in a course.
Course course.created Triggered when a new course is created
course.deleted Triggered when a course is deleted
course.updated Triggered when a course's name or settings are changed
Lesson lesson.completed Triggered when a student completes a lesson in their course
Quiz quiz.attempted Triggered when a student answers the final question of a quiz
App app.uninstalled Triggered when a user uninstalls an app (Learn more here: How can I get feedback when someone uninstalls my app in Thinkific?)
Product product.created Triggered when a new product is created
product.deleted Triggered when a product is deleted
product.updated Triggered when a product or its price is changed
Plan plan.updated Triggered when a Thinkific's subscription plan is updated

Example Payloads

Lead Created

Payload

{
  "id": "01J04SSDPGJC6TK3Q3TKZS7C8R",
  "resource": "lead",
  "action": "created",
  "tenant_id": "3,
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-06-11T23:23:03.000Z",
  "timestamp": 1718148183,
  "payload": {
    "id": 33,
    "user_gid": "",
    "created_at": "2024-06-11T23:23:03.758Z",
    "first_name": "[TEST] John",
    "last_name": "Doe",
    "email": "[TEST] john@doe.com",
    "site": {
      "id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0"
    },
    "subscribed": true
  }
}

Cart Abandoned

Payload

{
  "id": "01G93BXXF7AHB6XXX6E8X82B1R",
  "name": "thinkific.checkout.cart.abandoned",
  "version": "2.0.0",
  "tenant_guid": "1x2xxx3x-...",
  "correlation_id": "01G93BXXX7X8PBZXX0PXX34WQM",
  "timestamp": "2023-10-05T21:00:00+00:00",
  "data": {
    "tenant_id": 11111,
    "id": 111,
    "contact_id": "01XX4TXXXT0XP5MXXXXZFB4405",
    "contact_email": "user@example.com",
    "token": "123456x3-123X-4aee-b160-ed72fae7b5fb",
    "currency": "usd",
    "subtotal_subunits": 7999,
    "tax_subunits": 0,
    "total_subunits": 7999,
    "items": [
      {
        "product_id": 44,
        "product_price_id": 53,
        "product_name": "Intro to Photography",
        "amount_subunits": 4999,
        "quantity": 1
      },
      {
      "product_id": 46,
      "product_price_id": 104,
      "product_name": "Yet another one time",
      "amount_subunits": 3000,
      "quantity": 1
    }
    ],
     "coupon": {
      "id": 12345678,
      "code": "discount123",
      "promotion_id": 1234567
    }
  }
}

Order Created

Payload

{
  "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": {
      "id": 12345678,
      "code": "discount123",
      "promotion_id": 1234567
    },
    "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",
    "items": [
      {
        "product_id": 1,
        "product_name": "Introduction to Webhooks",
        "amount_dollars": 50,
        "amount_cents": 5000
      }
    ],
    "net_amount": 1234,
    "presentment_amount": 15896,
    "presentment_currency": "cad",
    "client_reference_id": "cart-order-99",
    "user": {
      "email": "ninjas@thinkific.com",
      "first_name": "Robert",
      "id": 123456,
      "last_name": "Smith"
    }
  }
}

Note: The net_amount is only returned for payments made using Thinkific Payments. Any payments made through other means return null

Transaction Succeeded

Payload

{
  "id": "01HXAAXSZ80KZ0QS58T75YMD8J",
  "resource": "order_transaction",
  "action": "succeeded",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-07T20:11:39.000Z",
  "timestamp": 1715112699,
  "payload": {
    "id": 22,
    "created_at": "2019-05-07T20:11:39.867Z",
    "amount": 85,
    "action": "purchase",
    "address": {
      "line_1": "123 Main Street",
      "line_2": "",
      "postal_code": "73843",
      "city": "Austin",
      "region": "TX",
      "country": "US"
    },
    "currency": "cad",
    "payment_provider": "thinkific_payments",
    "order": {
      "id": 73,
      "created_at": "2019-05-07T20:11:39.864Z",
      "payment_type": "one-time",
      "billing_name": "[TEST] John",
      "product_name": "[TEST] lorem ipsum",
      "product_id": 36,
      "affiliate_referral_code": "[TEST] f4k3c0d3",
      "status": "Complete",
      "amount_cents": 9950,
      "amount_dollars": 99.5,
      "order_number": "ORD000073",
      "product_price_id": null,
      "net_amount": 1234,
      "user": {
        "id": 22,
        "first_name": "[TEST] John",
        "last_name": "Doe",
        "email": "[TEST] john@doe.com"
      },
      "coupon": {
        "id": 76,
        "code": "[TEST] f4k3c0d3",
        "promotion_id": 81
      },
      "items": [
        {
          "product_id": 29,
          "product_name": "[TEST] lorem ipsum",
          "amount_dollars": 244,
          "amount_cents": 24400,
          "payments_captured": 1,
          "number_of_payments": null,
          "recurring": false,
          "quantity": 1
        }
      ]
    },
    "tax_amount": 0,
    "refunded": false,
    "refunded_amount": null,
    "refunded_tax_amount": 0,
    "failure_reason": null,
    "application_fee": 0,
    "net_amount": 1234,
    "presentment_amount": 4098,
    "presentment_currency": "usd",
    "client_reference_id": "cart-order-99"
  }
}

Note: The net_amount is only returned for payments made using Thinkific Payments. Any payments made through other means return null

Transaction Failed

Payload

{
  "id": "01HXABE4DKA1JF7WZ25W41C34H",
  "resource": "order_transaction",
  "action": "failed",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-07T20:20:34.000Z",
  "timestamp": 1715113234,
  "payload": {
    "id": 69,
    "created_at": "2019-05-07T20:20:34.853Z",
    "amount": 84,
    "action": "purchase",
    "address": {
      "line_1": "123 Main Street",
      "line_2": "",
      "postal_code": "73843",
      "city": "Austin",
      "region": "TX",
      "country": "US"
    },
    "currency": "cad",
    "payment_provider": "thinkific_payments",
    "order": {
      "id": 81,
      "created_at": "2019-05-07T20:20:34.849Z",
      "payment_type": "one-time",
      "billing_name": "[TEST] John",
      "product_name": "[TEST] lorem ipsum",
      "product_id": 94,
      "affiliate_referral_code": "[TEST] f4k3c0d3",
      "status": "Complete",
      "amount_cents": 9950,
      "amount_dollars": 99.5,
      "order_number": "ORD000081",
      "product_price_id": null,
      "net_amount": 0,
      "user": {
        "id": 15,
        "first_name": "[TEST] John",
        "last_name": "Doe",
        "email": "[TEST] john@doe.com"
      },
      "coupon": {
        "id": 41,
        "code": "[TEST] f4k3c0d3",
        "promotion_id": 53
      },
      "items": [
        {
          "product_id": 8,
          "product_name": "[TEST] lorem ipsum",
          "amount_dollars": 166,
          "amount_cents": 16600,
          "payments_captured": 1,
          "number_of_payments": null,
          "recurring": false,
          "quantity": 1
        }
      ]
    },
    "tax_amount": 0,
    "refunded": false,
    "refunded_amount": null,
    "refunded_tax_amount": 0,
    "failure_reason": null,
    "application_fee": 0,
    "net_amount": 1234,
    "presentment_amount": 4098,
    "presentment_currency": "usd"
  }
}

Note: The net_amount is only returned for payments made using Thinkific Payments. Any payments made through other means return null

Transaction Refunded

Payload

{
  "id": "01HXABGDF6FRND128ZM2MPR301",
  "resource": "order_transaction",
  "action": "refunded",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-07T20:21:49.000Z",
  "timestamp": 1715113309,
  "payload": {
    "id": 15,
    "created_at": "2019-05-07T20:21:49.654Z",
    "amount": 76,
    "action": "purchase",
    "address": {
      "line_1": "123 Main Street",
      "line_2": "",
      "postal_code": "73843",
      "city": "Austin",
      "region": "TX",
      "country": "US"
    },
    "currency": "cad",
    "payment_provider": "thinkific_payments",
    "order": {
      "id": 50,
      "created_at": "2019-05-07T20:21:49.651Z",
      "payment_type": "one-time",
      "billing_name": "[TEST] John",
      "product_name": "[TEST] lorem ipsum",
      "product_id": 41,
      "affiliate_referral_code": "[TEST] f4k3c0d3",
      "status": "Complete",
      "amount_cents": 9950,
      "amount_dollars": 99.5,
      "order_number": "ORD000050",
      "product_price_id": null,
      "net_amount": 1234,
      "user": {
        "id": 31,
        "first_name": "[TEST] John",
        "last_name": "Doe",
        "email": "[TEST] john@doe.com"
      },
      "coupon": {
        "id": 83,
        "code": "[TEST] f4k3c0d3",
        "promotion_id": 2
      },
      "items": [
        {
          "product_id": 97,
          "product_name": "[TEST] lorem ipsum",
          "amount_dollars": 114,
          "amount_cents": 11400,
          "payments_captured": 1,
          "number_of_payments": null,
          "recurring": false
        }
      ]
    },
    "tax_amount": 0,
    "refunded": false,
    "refunded_amount": null,
    "refunded_tax_amount": 0,
    "failure_reason": null,
    "net_amount": 1234,
    "presentment_amount": 4098,
    "presentment_currency": "usd"
  }
}

Note: The net_amount is only returned for payments made using Thinkific Payments. Any payments made through other means return null

Subscription Failed

Payload

{
  "id": "01HXD316PWQ2V4FXB1BNFMSP05",
  "resource": "subscription",
  "action": "canceled",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-08T21:51:25.000Z",
  "timestamp": 1715205085,
  "payload": {
    "id": 6,
    "created_at": "2019-05-08T21:51:25.830Z",
    "payment_type": "subscription",
    "billing_name": "[TEST] John",
    "product_name": "[TEST] lorem ipsum",
    "product_id": 36,
    "amount": "9374",
    "order_number": "ORD000046",
    "product_price_id": null,
    "number_of_payments": null,
    "interval": "month",
    "interval_count": "1",
    "status": "cancelled",
    "user": {
      "id": 86,
      "first_name": "[TEST] John",
      "last_name": "Doe",
      "email": "[TEST] john@doe.com"
    },
    "coupon": {
      "id": 48,
      "code": "[TEST] f4k3c0d3",
      "promotion_id": 86
    },
    "items": [
      {
        "product_id": 40,
        "product_name": "[TEST] lorem ipsum",
        "amount_dollars": 239,
        "amount_cents": 23900
      }
    ]
  }
}

Subscription Past Due

Payload

{
  "id": "01HXD3A77E2TRNG016HP4K7RYW",
  "resource": "subscription",
  "action": "past_due",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-08T21:56:21.000Z",
  "timestamp": 1715205381,
  "payload": {
    "id": 88,
    "created_at": "2019-05-08T21:56:21.259Z",
    "payment_type": "subscription",
    "billing_name": "[TEST] John",
    "product_name": "[TEST] lorem ipsum",
    "product_id": 44,
    "amount": "5801",
    "order_number": "ORD000084",
    "product_price_id": null,
    "number_of_payments": null,
    "interval": "month",
    "interval_count": "1",
    "status": "cancelled",
    "user": {
      "id": 5,
      "first_name": "[TEST] John",
      "last_name": "Doe",
      "email": "[TEST] john@doe.com"
    },
    "coupon": {
      "id": 79,
      "code": "[TEST] f4k3c0d3",
      "promotion_id": 93
    },
    "items": [
      {
        "product_id": 40,
        "product_name": "[TEST] lorem ipsum",
        "amount_dollars": 220,
        "amount_cents": 22000
      }
    ]
  }
}

Subscription Unpaid

Payload

{
  "id": "01HXD3J6FKZ2MX55F1GKG28W01",
  "resource": "subscription",
  "action": "unpaid",
  "tenant_id": "3",
  "tenant_global_id": "31xx00x2-x2x8-00x0-xxx0-000x2xx6xxx0",
  "created_at": "2024-05-08T22:00:42.000Z",
  "timestamp": 1715205642,
  "payload": {
    "id": 18,
    "created_at": "2019-05-08T22:00:42.665Z",
    "payment_type": "subscription",
    "billing_name": "[TEST] John",
    "product_name": "[TEST] lorem ipsum",
    "product_id": 27,
    "amount": "6654",
    "order_number": "ORD000018",
    "product_price_id": null,
    "number_of_payments": null,
    "interval": "month",
    "interval_count": "1",
    "status": "cancelled",
    "user": {
      "id": 42,
      "first_name": "[TEST] John",
      "last_name": "Doe",
      "email": "[TEST] john@doe.com"
    },
    "coupon": {
      "id": 42,
      "code": "[TEST] f4k3c0d3",
      "promotion_id": 75
    },
    "items": [
      {
        "product_id": 68,
        "product_name": "[TEST] lorem ipsum",
        "amount_dollars": 153,
        "amount_cents": 15300
      }
    ]
  }
}

User Signin

Payload

{
  "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 Signup

Payload

{
  "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": []
  }
}

User Updated

Payload

{
"id": "01G2RB8T432BGTQ7J7S8JQJS3X",
"resource": "user",
"action": "updated",
"tenant_id": "73394",
"tenant_global_id": "507a2dd6-0c09-4452-b8cd-69c9adaf2a24",
"created_at": "2022-05-11T01:20:54.000Z",
"timestamp": 1652232054,
"payload": {
"id": 2017237,
"first_name": "John",
"last_name": "Doo",
"email": "john@doo.com",
"roles": [],
"custom_profile_fields": [],
"site": {
"id": "507a2dd6-0c09-4452-b8cd-69c9adaf2a24"
}
}
}

User Deleted

Payload

{
"id": "01KFPB3BBQTYF9KKHXHRQ4BKRP",
"resource": "user",
"action": "deleted",
"tenant_id": "3124",
"tenant_global_id": "47fd0507-860b-4877-b4cb-bfb98ea2e923",
"created_at": "2022-05-11T01:20:54.000Z",
"timestamp": 1652232054,
"payload": {
"id": 2017237,
"first_name": "John",
"last_name": "Doo",
"email": "john@doo.com",
"roles": [],
"custom_profile_fields": [],
"site": {
"id": "507a2dd6-0c09-4452-b8cd-69c9adaf2a24"
}
}
}

Enrollment Created

Payload

{
  "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 Trial

Payload

{
  "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 Completed

Payload

{
    "id": "01JTVB3ZXNK1M928X2MMZ5CJ2X",
    "resource": "enrollment",
    "action": "completed",
    "tenant_id": "445230",
    "tenant_global_id": "f4a345bd-c9e2-4487-95c3-d85b1977d2fe",
    "created_at": "2025-05-09T20:17:20.000Z",
    "timestamp": 1746821840,
    "payload": {
        "id": 652268044,
        "created_at": "2025-05-09T20:16:37.082Z",
        "expiry_date": null,
        "course_id": 3093805,
        "percentage_completed": "1.0",
        "completed_at": "2025-05-09T20:17:20.571Z",
        "free_trial": false,
        "started_at": "2025-05-09T20:17:08.833Z",
        "activated_at": "2025-05-09T20:16:37.073Z",
        "updated_at": "2025-05-09T20:17:20.739Z",
        "credential_id": null,
        "certificate_url": null,
        "certificate_expiry_date": null,
        "last_percentage_completed": "0.75",
        "user": {
            "id": 222244858,
            "first_name": "Webhook",
            "last_name": "User",
            "email": "webhook@user.com"
        },
        "course": {
            "id": 3093805,
            "name": "Introduction to Webhooks"
        }
    }
}

Enrollment Progress

Payload

{
  "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 Created

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

Payload

{
  "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 Deleted

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

Payload

{
  "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 Updated

Note: This event can only be created using the Webhooks API. This event does not include changes related to course pricing.

Payload

{
  "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 Completed

The lesson.completed webhook does not work with the courses created using the new course builder. Other webhooks will work as expected.

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:

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).

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.

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.

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.

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.

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

Payload

{
  "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 Attempted

Payload

{
  "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 Uninstalled

Payload

{
  "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"
    }
  }
}

Product Created

Payload

{
"id": "01G2Z97HB88R49AXA13MS25C6J",
"resource": "product",
"action": "created",
"tenant_id": "3147",
"tenant_global_id": "e46fad25-02e3-4539-a989-bab075b09f12",
"created_at": "2022-05-13T17:59:57.000Z",
"timestamp": 1652464797,
"payload": {
"id": 12938,
"productable_id": 650,
"productable_type": "Bundle",
"status": "published",
"name": "API Bundle of Joy",
"private": false,
"hidden": false,
"slug": "my-bundle",
"card_image_url": "https://import.cdn.thinkific-staging.com/3147/xfaPbIi8TXKwynWCNfLg_Neymar-665.png",
"created_at": "2019-09-18T23:09:11.438Z",
"updated_at": "2022-05-13T17:59:25.753Z",
"product_prices": [
{
"id": 14020,
"is_primary": true,
"payment_type": "one-time",
"label": null,
"price": "99.99",
"days_until_expiry": null,
"pay_button_text": null,
"number_of_payments": null,
"interval": null,
"interval_count": null,
"trial_interval": null,
"trial_interval_count": null
}
],
"description": "This is a bundle with great courses about APIs, come and learn more about it!",
"site": {
"id": "e46fad25-02e3-4539-a989-bab075b09f12"
}
}
}

Product Deleted

Payload

{
"id": "01FWRQ2HCQ05N62BTRMPZGH29F",
"resource": "product",
"action": "deleted",
"created_at": "2022-02-25T15:13:01.000Z",
"timestamp": 1645801981,
"payload": {
"site": {
"id": "3088d468-983d-4fe4-8bc2-b98a6d2d78a8"
},
"id": 28570,
"productable_id": 27309,
"productable_type": "Course"
}
}

Product Updated

Payload

{
"id": "01G2Z97HB88R49AXA13MS25C6J",
"resource": "product",
"action": "updated",
"tenant_id": "3147",
"tenant_global_id": "e46fad25-02e3-4539-a989-bab075b09f12",
"created_at": "2022-05-13T17:59:57.000Z",
"timestamp": 1652464797,
"payload": {
"id": 12938,
"productable_id": 650,
"productable_type": "Bundle",
"status": "published",
"name": "API Bundle of Joy",
"private": false,
"hidden": false,
"slug": "my-bundle",
"card_image_url": "https://import.cdn.thinkific-staging.com/3147/xfaPbIi8TXKwynWCNfLg_Neymar-665.png",
"created_at": "2019-09-18T23:09:11.438Z",
"updated_at": "2022-05-13T17:59:25.753Z",
"product_prices": [
{
"id": 14020,
"is_primary": true,
"payment_type": "one-time",
"label": null,
"price": "99.99",
"days_until_expiry": null,
"pay_button_text": null,
"number_of_payments": null,
"interval": null,
"interval_count": null,
"trial_interval": null,
"trial_interval_count": null
}
],
"description": "This is a bundle with great courses about APIs, come and learn more about it!",
"site": {
"id": "e46fad25-02e3-4539-a989-bab075b09f12"
}
}
}

Plan Updated

Payload

{
  "id": "01GAPP19FN58RB4YKCYPZCEQGG",
  "resource": "plan",
  "action": "updated",
  "tenant_id": "12345",
  "tenant_global_id": "d317931e-6b96-4756-a181-18b692aef014",
  "created_at": "2022-08-30T19:56:08.000Z",
  "timestamp": 1660766168,
  "payload": {
    "site": {
      "id": "d317931e-6b96-4756-a181-18b692aef014",
      "plan": "premier",
      "features": [
        {
          "product_payees": {
            "enabled": true,
            "max_product_payees": "50"
          }
        },
        {
          "course_admins": {
            "enabled": true,
            "max_course_admins": "50"
          }
        },
        {
          "site_admins": {
            "enabled": true,
            "max_site_admins": "5"
          }
        },
        {
          "courses": {
            "enabled": true,
            "max_published_courses": "99999999"
          }
        },
        {
          "group_analysts": {
            "enabled": true,
            "max_group_analysts": "15"
          }
        },
        {
          "groups": {
            "enabled": true,
            "max_users_per_group": "99999999"
          }
        },
        {
          "bundles": {
            "enabled": true
          }
        },
        {
          "coupons": {
            "enabled": true
          }
        }
      ]
    }
  }
}

 

Up Next: Create Webhooks with Webhooks API

Was this article helpful?
3 out of 7 found this helpful