POST
requests to the URLs you provide, and they will be resent if the request fails.
If you navigate to the Webhooks
tab on a Campaign
page, you can see a history of the events that have been sent to your URLs and check for any failures.
As of February 7th, you can configure your webhooks to send events for a subset of the phone numbers attached to your campaign. This can be helpful if you have a testing number.
Authentication
When you create a webhook URL on your dashboard, the system will generate a unique secret token. This token will be sent as aX-Webhook-Token
header with each request. You should verify the token to ensure that the request is coming from Sendo.
Retry policy
If our attempt to deliver thePOST
request to your webhook URL fails with an HTTP response that is not 2XX
, we will retry the request up to 6 times with a 60 second delay between each attempt. With each subsequent failure, the wait time will double. If after all attempts the webhook is still not acknowledged, no further attempts will be made.
Please contact us if you are experiencing issues receiving webhook events
message.incoming
Whenever a user sends a message to a phone number associated with a campaign, a POST
request will be sent to your provided webhook URL with the following JSON body:
Please contact us if you think you have issues receiving incoming messages
message.status
Whenever the status of a sent message changes (see full list below), a POST
request will be sent to your provided webhook URL with the following JSON body:
You can store custom metadata in the
metadata
field (learn more)Statuses
Status | Description |
---|---|
CREATED | The message has been created |
QUEUED | The message is queued for sending |
SCHEDULED | The message is scheduled for sending |
SENT | The message has been sent |
DELIVERED | The message has been delivered |
READ | The message has been opened |
FAILED | The message send has failed |
EXPIRED | The send has failed. Contact support |
See a full list of message errors here for the
FAILED
statusOften MMS messages will stay as
SENT
and are never marked as DELIVERED
recipient.optout
When a recipient texts STOP
or another keyword to unsubscribe from messages, a POST
request will be sent to your webhook URL with the following JSON body:
These opt-out texts will also be sent as
message.incoming
events