Webhooks
training.module.completed
A user completed one assigned module within a training campaign. The envelope time is the module completion time.
Subscription filters
- campaign — filter to specific campaign ids
postWebhooktraining.module.completed
Payload
Example payload
{
"data": {
"payload": {
"campaign": {
"id": "6c1d9a4e-2f7b-4d3a-9e8c-5b0a7f2d1c43",
"name": "Q3 Security Essentials"
},
"completed_at": "2026-06-09T18:00:00Z",
"module": {
"id": "4a7e1d2c-8b5f-4c9a-a6d3-2e0f7b1c5d84",
"name": "Recognizing Phishing Emails"
},
"user": {
"email": "jordan.lee@example.com",
"id": "8d2c1f6a-9b3e-4c7a-bf21-2a5e9c1d4b88"
}
}
},
"datacontenttype": "application/json",
"id": "9b2f6c1e-8d3a-4f0b-a1c2-5e7d9f3b6a48",
"source": "/adaptive",
"specversion": "1.0",
"time": "2026-06-09T18:00:00Z",
"type": "training.module.completed"
}Response
Return any 2xx status to acknowledge the delivery. Timeouts, 408, 429, and 5xx responses other than 501 are retried; any other status is a permanent failure.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.