Overview
Webhooks are HTTP callbacks that deliver notifications to your server whenever specific events occur - in this case, when recipients reply to your WhatsApp messages. Benefits include:- Real-time processing of customer responses
- Seamless integration with your existing systems
- Automated workflows triggered by customer messages
- Enhanced customer experience through timely interactions
Webhook Configuration
Managing Endpoints
Access Webhook Settings
Navigate to the Developer section in your dashboard sidebar to manage webhook configurations.
Endpoint Requirements
Your webhook endpoint must:- Accept HTTP POST requests
- Process JSON payloads
- Return a 2xx status code within 10 seconds
- Implement idempotency handling (see best practices below)
Webhook Payload
When a user replies to your WhatsApp message, we’ll send a POST request to your configured endpoint with a detailed payload.Sample Payload
Payload Fields
Array containing the recent messages in the conversation
Human-readable summary of the recent conversation
The phone number of the recipient who sent the message
The name of the recipient if available
Unique identifier for the user in your system
The last message sent by the user
The last message sent by your system
The type of the latest message (text, image, audio, video, document, location)
Unix timestamp of the user’s last message
Unix timestamp of your system’s last message
URL to media file if the latest message contains media (null for text messages)
Custom note field for additional context
Automation-related notes
Comma-separated labels for categorizing the conversation
Webhook Management API
You can programmatically manage your webhook endpoints using our API.Create Webhook Endpoint
POST https://api.insightssystem.com/api:qh9OQ3OW/webhook/dev/create
Register a new webhook endpoint to receive incoming message notifications. Send a valid Bearer token (same credential used for the dashboard).
Request Body
Full HTTPS URL of your endpoint.
Whether the webhook is enabled.
Incoming message trigger on/off.
Schedule activity trigger on/off. When enabled, your bot can send multiple sequential messages with natural delays between them — useful for simulating human-like conversation flow.

waiting_duration to the maximum delay window you need. When schedule_activity is false, set waiting_duration to 0.
How long (in seconds) to wait for schedule activity when
schedule_activity is true. Set to 0 when schedule activity is off.Dashboard presets: 15, 30, 60, 1800, 3600, 18000, 36000, 86400, 172800, 259200, 432000, 604800, 1209600, 2592000, 5184000 (15 seconds → 2 months). Prefer these values if mirroring the app UI.If
true, enables request signing. The server returns a signature_secret once in the response — copy and store it immediately, as it will not be shown again.
Response
Returns a JSON object for the created webhook row.Webhook ID.
Whether the webhook is enabled.
Incoming message trigger.
Outgoing message trigger.
Stored endpoint URL.
Unix timestamp in milliseconds.
Schedule activity wait time in seconds.
Schedule activity flag.
When
active_signature was true: a one-time secret string — copy and store it immediately, it will not be retrievable again. When active_signature was false: null.Webhook Signature Verification
When a webhook is created withactive_signature: true, every request our system sends to your endpoint will include an X-Webhook-Signature header. Use it to confirm the request genuinely came from us and was not tampered with.
| Header | Example value |
|---|---|
X-Webhook-Signature | RNEefV2V_tiDZeiOpeqMzWsR3X4zGOxIYARIF5-Ia2MXWIgT48jO-M4A1-bgr9bxdoHy5vb7azy_Vd-Gsp4qoAVhQCVyWZxhD1ZNJTQi9VNezJ6C7mnPy--osqcDSq1bfjjppAXBlyenWIa8_506ez5Z92p-eGucalu3-1g6wOk |
signature_secret returned at creation time. Compare it in your endpoint handler to validate each incoming request.
If
active_signature was false when the webhook was created, this header will not be present in requests sent to your endpoint.Troubleshooting
Webhook Not Receiving Events
Webhook Not Receiving Events
- Verify your endpoint is publicly accessible
- Check for HTTP 4xx or 5xx responses
- Ensure proper SSL certificate configuration
- Verify your webhook is enabled in the dashboard
"Same webhook exist" error when creating a webhook
"Same webhook exist" error when creating a webhook
Each endpoint URL must be unique. If you submit a
webhooks URL that is already registered, the API will return a “Same webhook exist” error.To resolve this:- Check your existing webhooks in the Developer → Incoming Webhooks tab of the dashboard to confirm whether the URL is already registered.
- If you want to update settings on an existing webhook (e.g. toggle
incoming, changewaiting_duration), use the update/edit endpoint instead of re-creating it. - If you genuinely need a fresh webhook at the same URL, delete the existing one first, then create a new one.
Need assistance?
Our technical support team is available to assist with webhook configuration, payload handling, and integration questions.