Payload Format
When an event fires, your endpoint receives an HTTP POST request with Content-Type: application/json and this JSON body.
Email Event Payload
For
email.received and email.sent events.email.received / email.sent
{
"event": "email.received",
"timestamp": "2026-02-07T12:00:00Z",
"webhook_id": "<webhook-uuid>",
"agent_id": "<agent-uuid>",
"email_account_id": "<account-uuid>",
"email": {
"id": "<email-uuid>",
"message_id": "<message-id@xobni.ai>",
"thread_id": "<thread-uuid>",
"direction": "inbound",
"from_address": "sender@example.com",
"is_trusted_sender": true,
"trusted_sender_name": "John Smith",
"to_addresses": ["agent@xobni.ai"],
"cc_addresses": [],
"subject": "Hello from a customer",
"snippet": "First 200 characters of the email body...",
"status": "received",
"has_attachments": true,
"attachment_count": 2,
"received_at": "2026-02-07T12:00:00Z"
}
}Email payloads are lightweight — they include metadata and a 200-character snippet, not the full body. Use the read_email API or MCP tool to fetch full content when needed.
Calendar Reminder Payload
For
calendar.event_reminder events. Fired 15 minutes before a confirmed event starts.calendar.event_reminder
{
"event": "calendar.event_reminder",
"timestamp": "2026-03-05T09:45:00Z",
"webhook_id": "<webhook-uuid>",
"agent_id": "<agent-uuid>",
"email_account_id": "<account-uuid>",
"calendar_event": {
"id": "<event-uuid>",
"title": "Weekly standup",
"description": "Team sync meeting",
"start_time": "2026-03-05T10:00:00+00:00",
"end_time": "2026-03-05T10:30:00+00:00",
"timezone": "America/New_York",
"is_all_day": false,
"location": "Zoom",
"status": "confirmed",
"attendees": [{"email": "alice@example.com"}],
"recurrence_rule": null,
"created_at": "2026-03-01T08:00:00Z"
}
}Scheduled Email Payload
For
scheduled_email.sent and scheduled_email.failed events.scheduled_email.sent / scheduled_email.failed
{
"event": "scheduled_email.sent",
"timestamp": "2026-03-05T14:00:00Z",
"webhook_id": "<webhook-uuid>",
"agent_id": "<agent-uuid>",
"email_account_id": "<account-uuid>",
"scheduled_email": {
"id": "<scheduled-email-uuid>",
"send_at": "2026-03-05T14:00:00+00:00",
"status": "sent",
"attempt_count": 1,
"last_error": null,
"sent_email_id": "<email-uuid>",
"to": ["recipient@example.com"],
"subject": "Follow-up reminder"
}
}Document Created Payload
For
document.created events.document.created
{
"event": "document.created",
"timestamp": "2026-03-05T14:30:00Z",
"webhook_id": "<webhook-uuid>",
"agent_id": "<agent-uuid>",
"email_account_id": "<account-uuid>",
"document": {
"id": "<document-uuid>",
"collection_name": "meeting-notes",
"metadata": {"source": "transcript"},
"created_at": "2026-03-05T14:30:00Z"
}
}Top-level Fields
eventEvent type (see Available Events)timestampISO 8601 timestamp of when the event occurredwebhook_idUUID of the webhook that triggered this deliveryagent_idUUID of the agentemail_account_idUUID of the email accountemailEmail data (email events only)calendar_eventCalendar event data (reminder events only)scheduled_emailScheduled email data (scheduled email events only)documentDocument data (storage events only)