Skip to main content
Project webhooks are scoped to the whole project rather than a single phone number. They never receive message or conversation events - for those, see Message events. Configure them in Integrations → Webhooks → Platform webhooks.

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 contain lowercased Meta values and are null when Meta does not provide them.

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 reaching the WhatsApp Business Account (WABA). 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. You receive one delivery per project and WABA, with the affected numbers listed in phone_numbers - not one delivery per number. Most enforcement is account-wide and phone_numbers lists every number in the project on that WABA. whatsapp.account.restricted and whatsapp.account.violation can also target a single number: when Meta identifies one, the payload carries a top-level phone_number (or phone_number_id) and phone_numbers contains only that number. whatsapp.account.disabled and whatsapp.account.reinstated are always account-wide. Payload:
Keys with no value are omitted from the payload. A restriction targeting a single number:
If the targeted number is not in your project, no delivery is sent for it, and the other numbers on the WABA are left untouched. 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.