Skip to main content
When a task reaches a final state, we send a POST request to the webhook URL configured for your account. The body is an envelope object:
FieldDescription
signatureUsed to verify the payload (e.g. HMAC).
eventEvent type; for task completion always "task_finished".
created_atWhen the webhook was sent (ISO 8601).
dataThe task object (same shape as GET /tasks/), including optional trajectory_id.
Final statuses (in data.status)
StatusMeaning
completedTask finished successfully.
completed_with_issuesTask finished with caveats; check data.notes for details.
failedTask did not succeed; data.notes and data.failedAt provide context.
Acknowledgment Your endpoint must respond with a 2xx status code so we know delivery succeeded. If we do not receive 2xx, we may retry. Example webhook payload
{
  "signature": "",
  "event": "task_finished",
  "created_at": "2025-03-18T12:05:00.000Z",
  "data": {
    "id": 1,
    "accountId": 1,
    "task_number": 1,
    "status": "completed",
    "handler": "submit_claim_1",
    "title": "Submit claim #1",
    "instructions": "SOP: Log in to portal, open claim form, enter member and procedure details, submit and capture confirmation number.",
    "trajectory_id": 42,
    "startedAt": "2025-03-18T12:01:00.000Z",
    "completedAt": "2025-03-18T12:05:00.000Z",
    "failedAt": null,
    "notes": "Claim submitted with reference PA-2025-03-1842.",
    "createdAt": "2025-03-18T12:00:00.000Z",
    "updatedAt": "2025-03-18T12:05:00.000Z"
  }
}
Configure your webhook URL with support@chooseserene.com.