Webhooks
Configure HTTPS endpoints that receive JSON when messages arrive or forms submit.
Open Webhooks → Webhook.
What this page is for
Webhooks send real-time POST requests from Kirisan to URLs you control. Use them when your CRM, helpdesk, or custom backend should react to inbound messages or completed autoreply forms — without polling the dashboard.
This is a developer feature. If you only send from the dashboard, you can skip webhooks.

Sample data shown.
| Control | What it does |
|---|---|
| Add webhook | Open the editor for a new HTTPS endpoint |
| Summary cards | Count configured endpoints, device links, and Active rows |
| Developer notice | Reminder that webhooks target your own server |
Summary cards
| Card | Meaning |
|---|---|
| Webhooks | Distinct endpoint groups (same name + URL + secret count as one) |
| Device links | Total device attachments across all endpoints |
| Active | Endpoints delivering live traffic after a successful test |
Endpoints table
Each row is one logical webhook — one destination URL with its events and linked devices.
| Column | Meaning |
|---|---|
| Webhook | Display name you chose in the editor |
| Channel | WhatsApp, Telegram, WABA, or Mixed channels when one URL spans more than one channel |
| Devices | Count of linked lines or bots — click to open the device list |
| Destination | HTTPS URL Kirisan POSTs to |
| Events | Enabled event badges (Incoming Message, Submission, Message status on WABA) |
| Status | Active (live) or Pending test (saved but not verified yet) |
| Row actions | Edit or Delete the whole endpoint group |

Sample data shown.
Search appears when you have endpoints. Filter by Name or URL (minimum three characters).
Pagination shows when the list exceeds one page.
No webhooks yet
When you have not configured an endpoint, the page shows an empty state.

Sample data shown.
Click Add webhook to create your first endpoint, then complete Webhooks → Test so status becomes Active.
Add or edit a webhook
Click Add webhook or Edit on a row.

Sample data shown.
The editor has four sections:
Endpoint
| Field | Required | Meaning |
|---|---|---|
| Display name | Yes | Label shown in the table and logs |
| URL | Yes | HTTPS endpoint on your server |
| Delivery | — | Kirisan sends POST with application/json |
Devices
Pick one or more lines or bots per channel tab (WhatsApp, Telegram, WABA).
| Control | What it does |
|---|---|
| Channel tabs | Switch channel without losing selections on other channels |
| Search | Find devices in the current channel list |
| Select all / Select filtered / Clear | Bulk attach or detach devices |
| Selected chips | Remove individual devices |
Each device can use only one inbound handler at a time. For Incoming Message events, set On incoming message → Webhook on the device (WhatsApp, Telegram, or WABA device settings). Submission events fire when a user completes an autoreply form on a linked device.
Events
| Event | When Kirisan POSTs |
|---|---|
| Incoming Message | A customer sends a message on a linked device with webhook inbound handling |
| Submission | A user completes an autoreply submission form on a linked device |
| Message status | WABA only — delivery or read receipts for outbound WABA messages |
Only checked events trigger delivery. Options depend on the channel tab.
Security
| Field | Meaning |
|---|---|
| Signing secret (optional) | When set, Kirisan adds an X-Webhook-Secret header on each POST so your server can reject unsigned traffic |
After you click Save → test, Kirisan opens Webhooks → Test. The endpoint stays Pending test until a test returns 200 or 201. Edits reset status to Pending test until you test again.
Delivery format (quick reference)
The page footer summarizes the contract:
- HTTPS only
- Respond with 200 or 201 quickly — queue heavy work on your server
- JSON body includes top-level keys such as event, device, channel, sender, message, and timestamp (exact shape varies by event)
- Request headers include X-Kirisan-Event and X-Kirisan-Device; X-Webhook-Secret when you configured a secret
For the full payload reference (verification, retries, and per-channel JSON examples), see Webhooks integration docs. For {{…}} shortcuts in templates and autoreply, open Resources → Variables → Incoming.
Active vs pending
| Status | Meaning |
|---|---|
| Pending test | Saved but not delivering live traffic |
| Active | Last test succeeded — live events POST to your URL |
Check delivery attempts on Webhooks → Logs. Send sample payloads from Webhooks → Test.
Related
- Webhook logs — delivery history and error details
- Test webhooks — verify your URL before going live
- Webhook payload reference — JSON, verification, and per-channel examples
- Run a webhook test — step-by-step test tutorial
- Add a webhook endpoint — step-by-step tutorial
- Autoreply submissions — form events that can trigger Submission webhooks
- WhatsApp devices — set On incoming message → Webhook
- Resources → Variables — full JSON envelope reference