Available events
Sent only to project webhooks. These do not include message or conversation events.
whatsapp.phone_number.created
Fires when a customer successfully connects their WhatsApp through a setup link. See Connection detection for implementation guide. Payload:whatsapp.phone_number.deleted
Fires when a WhatsApp phone number is removed from your project. This event triggers at the start of the teardown process, before the number is fully deleted. Payload:whatsapp.phone_number.offboarded
Fires when Meta offboards a phone number from the Cloud API. These three events (offboarded, disconnected, reconnected) are only available on project-scoped webhooks using payload version v2. Subscribing with payload_version: "v1" returns 422.
Payload:
whatsapp.phone_number.disconnected
Fires when Meta reports that your partner access to the number was removed (PARTNER_REMOVED) or the partner app was uninstalled (PARTNER_APP_UNINSTALLED). The number can no longer send or receive messages through Kapso until it is reconnected.
Same payload as whatsapp.phone_number.offboarded, plus a disconnection object with the lowercased Meta values:
disconnection.reason and disconnection.initiated_by come straight from Meta and may be absent.
whatsapp.phone_number.reconnected
Fires when Meta reports that the Cloud API connection was restored (ACCOUNT_RECONNECTED). Same payload as whatsapp.phone_number.offboarded, with source.event set to ACCOUNT_RECONNECTED.
Account enforcement events
whatsapp.account.disabled, whatsapp.account.restricted, whatsapp.account.reinstated and whatsapp.account.violation report Meta enforcement against the WhatsApp Business Account (WABA), not against a single number.
Like the phone number lifecycle events, they are only available on project-scoped webhooks using payload version v2. Subscribing with payload_version: "v1" returns 422.
Because the underlying Meta payloads carry no phone number, you receive one delivery per project and WABA, with every affected number listed in phone_numbers - not one delivery per number.
Payload:
Keys with no value are omitted from the payload.
whatsapp.account.disabled and whatsapp.account.reinstated both come from Meta’s DISABLED_UPDATE event, split by ban state:
workflow.execution.handoff
Fires when a workflow execution is handed off to a human agent. Payload:workflow.execution.failed
Fires when a workflow execution fails due to an error. Payload:project.event
Fires when a custom project event is emitted. This event is only available on project-scoped webhooks. Phone-number webhooks do not receive custom project events. Subscribing to this event requires project events to be available on your plan. Payload:conversation_id is included only when the event is linked to a WhatsApp conversation.
See Events for emitting and triggering workflows from project events.
Kapso Agent run events
Fire when a Kapso Agent run triggered through the Agent API needs approval, completes, fails, or is cancelled. Runs started from the dashboard or Slack don’t emit these events. Payload (kapso_agent.run.completed):
kapso_agent.run.approval_required includes pending_approval with the tool name and parameters. Failed and cancelled runs include error with code (run_failed or run_cancelled) and message. Null fields are omitted.
