Payload reference
Technical details of every field in an Empath webhook JSON payload, including what's present with and without personal data.
Technical details of the JSON body of every webhook (JSON format).
What's in the body?
{
"id": "whk_course.assigned_
_
_
_
", "type": "course.assigned", "createdAt": "2026-09-25T14:22:01.000Z", "tenantId": "
", "data": { "user": { "id": "
", "email": "jane@customer.com", "displayName": "Jane Doe" }, "object": { "type": "course", "id": "
", "title": "Security Awareness 2026" } } }
id— Unique for this event on this webhook. Retries reuse it. Same asX-Empath-Delivery.type—course.assigned,course.completed,knowledge_check.failedorcontent.publishedcreatedAt— When Empath sent the request (UTC), not when the person was assigned or completed. Record your own receive time if you need it.tenantId— Your Empath company ID. See “Receiving webhooks for more than one company”.data.user— People events only; absent oncontent.published.{ "id" }only, unless personal data is on, which addsemailanddisplayName.data.object.type—course,knowledge_checkorcontentdata.object.id— The course, knowledge check or content IDdata.object.title— Included when Empath has a name. Usually missing onknowledge_check.failed.data.actor— May be present on some events. Don't rely on it.
Good to know
- This body isn't in a ConnectWise, Autotask, Halo or Rewst format. Map it in your receiver or automation.
- The due date isn't included on
course.assigned. - Later versions may add fields. Ignore fields you don't recognise rather than rejecting the request.
Still need help?
Reach out to your Partner Success Manager, or email us at support@empathmsp.com. We’re happy to help!
Related articles
- Example requests
- Identify people: user IDs or personal data
- The four events and when they're sent