Webhook Events
Common envelope
Section titled “Common envelope”Every webhook payload wraps event data in a common envelope:
{ "id": "evt_xxx", "event": "submission.created | session.expired", "timestamp": "2026-06-23T10:30:00Z", "data": { }}| Field | Type | Description |
|---|---|---|
id | string | Unique event ID |
event | string | Event type |
timestamp | string | ISO 8601 timestamp |
data | object | Event-specific payload |
submission.created
Section titled “submission.created”Fired when a human submits a form (complete or partial).
{ "id": "evt_xxx", "event": "submission.created", "timestamp": "2026-06-23T10:30:00Z", "data": { "submission_id": "sub_def456", "form_id": "form_abc123", "form_slug": "support-intake", "form_version": 1, "session_id": "sess_xyz789", "partial": false, "answers": { "email": "user@example.com", "priority": "high", "message": "My billing page is broken" }, "metadata": { "thread_id": "thread_42" }, "submitted_at": "2026-06-23T10:30:00Z" }}| Field | Type | Description |
|---|---|---|
submission_id | string | Unique submission ID |
form_id | string | The form this submission belongs to |
form_slug | string | The form slug for human-readable reference |
form_version | number | Version of the form at submission time |
session_id | string | The session this submission came through |
partial | boolean | true if allowPartial is enabled and required fields are missing |
answers | object | Map of field id → submitted value |
metadata | object | Session metadata passed through from creation |
submitted_at | string | ISO 8601 submission timestamp |
session.expired
Section titled “session.expired”Fired when a session reaches its expiry time without a submission.
{ "id": "evt_xxx", "event": "session.expired", "timestamp": "2026-06-23T11:00:00Z", "data": { "session_id": "sess_xyz789", "form_id": "form_abc123", "form_slug": "support-intake", "created_at": "2026-06-23T10:00:00Z", "expired_at": "2026-06-23T11:00:00Z", "metadata": { "thread_id": "thread_42" } }}| Field | Type | Description |
|---|---|---|
session_id | string | The session that expired |
form_id | string | The form the session was for |
form_slug | string | Form slug |
created_at | string | When the session was created |
expired_at | string | When the session expired |
metadata | object | Session metadata |