Completion Subscription Events
Subscription key: completion_subscription
Events delivered to your completion_subscription URL are fired when a user completes or passes a content item on the platform.
content.completed and content.passed
| Event | When it fires |
|---|---|
content.completed |
A user completes a content item |
content.passed |
A user passes a content item (e.g. achieves a passing score on an assessment) |
| Field | Type | Nullable | Description |
|---|---|---|---|
eventType |
string | No | content.completed or content.passed |
tenantId |
string | No | Your Thrive tenant identifier |
user |
object | No | The user who completed the content |
user.id |
string | No | User ID |
user.reference |
string | Yes | External reference (e.g. HR system ID). May be null if not set |
user.email |
string | Yes | User email address. May be null if lookup failed |
user.firstName |
string | Yes | Users first name. May be null if lookup failed. |
user.lastName |
string | Yes | Users last name. May be null if lookup failed. |
content |
object | No | The content item that was completed |
content.id |
string | No | Content ID |
content.title |
string | Yes | Content title. May be null if lookup failed at dispatch time |
content.type |
string | Yes | Content type (e.g. course, pathway). May be null if lookup failed |
content.urls |
string[] | No | Full URLs to the content item on each of your configured tenant domains |
createdAt |
string | No | ISO 8601 timestamp of when the event occurred on the platform |
dispatchedAt |
string | No | ISO 8601 timestamp of when this webhook was dispatched |
Example payload (content.completed):
{
"eventType": "content.completed",
"tenantId": "acme-corp",
"user": {
"id": "usr_abc123",
"reference": "EMP-00042",
"email": "jane.smith@acme.com",
"firstName": "Jane",
"lastName": "Smith",
},
"content": {
"id": "64a1b2c3d4e5f6789abcdef0",
"title": "Health & Safety Induction",
"type": "course",
"urls": ["https://acme.learn.link/content/64a1b2c3d4e5f6789abcdef0"]
},
"createdAt": "2024-03-15T10:30:00.000Z",
"dispatchedAt": "2024-03-15T10:30:01.234Z"
}