Webhooks
Webhooks are automated mechanisms for real-time communication between systems, enabling one system to send data to another as soon as a specific event occurs.
Managing Webhooks
Note: Webhook triggers can be configured directly from the Channel360 frontend without using the API.
Webhook Triggers
Webhook triggers define which events will result in a webhook request being sent to your endpoint. For example, when a user reads a message, a webhook request is sent containing details about that event
Webhook Target
The webhook target defines the endpoint where Channel360 will send webhook event payloads.
appUserId
Webhook payloads include an appUserId, which uniquely identifies a user within the organisation.
The appUserId is created automatically when a user first interacts with your channel (for example, when they send a message). It can be used to correlate webhook events and to send notifications to that user.
notification:delivery:channel
Triggered when a notification is successfully delivered to a customer channel.
notification:delivery:failure
Triggered when a notification fails to be delivered to a customer channel / the user’s device.
notification:delivery:user
Triggered when a notification is successfully delivered to the user’s device.
conversation:read
Triggered when a user has read the conversation.
message:appUser
Triggered for inbound messages (from clients).
message:appMaker
Triggered for outbound messages, which are the messages the user sends in a conversation.
message:delivery:failure
Triggered for failed outbound messages from the /reply endpoint.
flow:submission
Triggered for whatsapp flow submissions.
Example payloads
Use these examples to test your webhook handler and map the fields returned for each event.
notification:delivery:channel
This event is sent when a notification is accepted by the channel (WhatsApp).
notification:delivery:user
This event is sent when a notification reaches the user's device.
conversation:read
This event is sent when the user reads the conversation.
notification:delivery:failure
This event is sent when a notification fails to deliver. Use the error object to inspect the failure reason returned by the channel.
message:appUser
This event is sent when a client sends an inbound message.
The example uses fictional data. It includes one prior notification.
recentNotifications is optional. It may be absent when the conversation has no earlier messages.
flow:submission
This event is sent when a user submits a WhatsApp Flow.
The example uses fictional data. Parse response_json to access submitted fields.
Create Webhook
POST https://www.channel360.co.za/v1.1/org/{{orgId}}/webhooks
Get Webhooks
GET https://www.channel360.co.za/v1.1/org/{{orgId}}/webhooks
Delete Webhook
DELETE https://www.channel360.co.za/v1.1/org/{{orgId}}/webhooks/{{webhook-id}}
Path Parameters
orgId
string required
Your Organization ID
webhook-id
string required
Unique identifier of the webhook
Retry Policy
A webhook call will be attempted up to 5 times over a 15 minute window. The attempts will happen at an exponentially increasing interval if the target responds with anything but a success (2XX) or a non-recoverable error. If no response is received within 20 seconds, the call will be considered a failure and will also be reattempted.
Non-recoverable Errors
The following status codes are deemed to be non-recoverable and Channel Mobile will not reattempt a call when receiving a response with them:
400: The target exists, but can’t process the payload.
401: The target is behind authentication or doesn’t recognize the webhook secret.
403: Channel Mobile should not be calling the target.
404: The target doesn’t exist.
406: The target exists, and rejected the webhook intentionally.
Last updated
Was this helpful?