Artifactcompleted
Sent when an artifact finishes generating — summary, action_items, decisions, topics, open_questions or custom. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope id.
{
"id": "whdel_9f2c...",
"event": "artifact.completed",
"version": "1",
"occurred_at": "2026-06-16T09:06:00Z",
"data": {
"session_id": "mtgsess_9b2f...",
"artifact_id": "mtgart_4e7c...",
"type": "summary",
"content": {
"text": "Decisions: hold pricing flat through Q3. Actions: Casey to send the summary."
},
"model_provenance": {
"model": "example-model",
"provider": "telnyx"
},
"prompt": null
}
}Headers
Signature header t=<unix-seconds>,v1=<hex>. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal . byte, and the exact raw request-body bytes; hex-encode and compare v1 in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
Body
Unique event id; deduplicate deliveries on it.
"whdel_9f2c..."
Event type.
artifact.completed Envelope version.
"1"
When the event occurred.
Completed artifact, including its generated content.
Show child attributes
Show child attributes
Response
Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
Was this page helpful?
{
"id": "whdel_9f2c...",
"event": "artifact.completed",
"version": "1",
"occurred_at": "2026-06-16T09:06:00Z",
"data": {
"session_id": "mtgsess_9b2f...",
"artifact_id": "mtgart_4e7c...",
"type": "summary",
"content": {
"text": "Decisions: hold pricing flat through Q3. Actions: Casey to send the summary."
},
"model_provenance": {
"model": "example-model",
"provider": "telnyx"
},
"prompt": null
}
}