Webhooks
Getting started with webhooks
Overview
Webhooks allow your application to receive real-time updates whenever new messages are received through InboxComponents. Once configured, our system will send HTTP POST requests to your specified URL containing event payloads.
Use webhooks to trigger workflows like:
Saving incoming messages to your database
Notifying users in your app
Syncing with third-party tools (e.g., CRMs, ticketing systems)
Setting up a webhook
Go to your dashboard at app.inboxcomponents.com
Navigate to the Webhooks section
Click Create Webhook
Enter your endpoint URL (e.g.,
https://yourdomain.com/webhooks/inbox)Choose which events to subscribe to
Once saved, we'll send webhook events to your endpoint as they occur.
You can manage your webhooks here: https://app.inboxcomponents.com/portal/webhooks
Supported events
message.sent
A new message was sent
message.received
A message was received
Example payloads
{
"id": "0195f17d-0031-7b10-ac8b-454e0f57a85d",
"event": "message.received",
"data": {
"conversation_id": "0195f0b1-5f4c-7bbe-8826-de31472446d0",
"id": "0195f17d-0031-7b10-ac8b-454e0f57a85d",
"modified_at": 1743513255,
"date": 1743513245,
"type": "whatsapp",
"metadata": [],
"attachments": [],
"is_sent": false,
"is_hidden": false,
"is_event": false,
"event_type": null,
"account_id": "01951e90-1435-7169-8388-37827397b7a2",
"inline_attachments": [],
"body": "test",
"from": [
{
"name": "Micheal Scott",
"profilePicture": "example.com/picture.jpg"
}
],
"snippet": "test",
"is_supported": true,
"reactions": [],
"quote": null,
"deleted": false,
"provider_id": "rhfds2435rasdd",
"custom": []
},
"idempotency_key": "ae74038cfaa2ead7095ef0517ead67f58eeca1abeb8dc60fa7a39b3bdfb04793"
}{
"id": "0195f17d-0031-7b10-ac8b-454e0f57a85d",
"event": "message.sent",
"data": {
"conversation_id": "0195f0b1-5f4c-7bbe-8826-de31472446d0",
"id": "0195f17d-0031-7b10-ac8b-454e0f57a85d",
"modified_at": 1743513255,
"date": 1743513245,
"type": "whatsapp",
"metadata": [],
"attachments": [],
"is_sent": true,
"is_hidden": false,
"is_event": false,
"event_type": null,
"account_id": "01951e90-1435-7169-8388-37827397b7a2",
"inline_attachments": [],
"body": "test",
"from": [
{
"name": "Micheal Scott",
"profilePicture": "example.com/picture.jpg"
}
],
"snippet": "test",
"is_supported": true,
"reactions": [],
"quote": null,
"deleted": false,
"provider_id": "rhfds2435rasdd",
"custom": []
},
"idempotency_key": "ae74038cfaa2ead7095ef0517ead67f58eeca1abeb8dc60fa7a39b3bdfb04793"
}Best practices
✅ Use HTTPS for all webhook endpoints
✅ Respond with
200 OKquickly to acknowledge receipt✅ Retry logic: We retry failed requests up to 5 times with exponential backoff
✅ Use idempotency to prevent duplicate processing
Troubleshooting
I'm not receiving events
✅ Make sure your webhook endpoint is publicly accessible over HTTPS.
✅ Double-check that you're subscribed to the correct event types in the dashboard.
✅ Inspect your webhook logs in the dashboard to see if we attempted delivery.
I'm receiving duplicate events
Implement idempotency in your webhook handler.
Use unique identifiers like
idto detect and ignore already-processed events.
The webhook stopped working
Make sure you applied the best practices.
Check the webhook status in the Webhooks section in your dashboard.
Re-enable the webhook manually from your dashboard after resolving the issue(s).
If a webhook endpoint returns an error (non-2xx response) 5 times in a row, it will be automatically disabled.
Last updated
Was this helpful?
