You configure these webhook URLs in your channel provider’s dashboard. Once you connect a channel in PingBack, the routing and processing happen automatically — you do not need to write any additional code.
Available webhook endpoints
| Channel | Method | Endpoint | Notes |
|---|---|---|---|
| GET | /api/v1/webhooks/whatsapp | Meta verification challenge. | |
| POST | /api/v1/webhooks/whatsapp | Inbound message delivery. | |
| GET | /api/v1/webhooks/instagram | Meta verification challenge. | |
| POST | /api/v1/webhooks/instagram | Inbound message delivery. | |
| POST | /api/v1/webhooks/email | Inbound email delivery. | |
| Telegram | POST | /api/v1/webhooks/telegram/{channel_id} | Replace {channel_id} with your Telegram channel ID. |
| X (Twitter) | POST | /api/v1/webhooks/x/{channel_id} | Replace {channel_id} with your X channel ID. |
Meta webhook verification (WhatsApp and Instagram)
When you register a webhook URL in the Meta App Dashboard, Meta sends a one-timeGET request to verify that your endpoint is reachable. PingBack handles this automatically.
Meta sends three query parameters:
| Parameter | Description |
|---|---|
hub.mode | Always "subscribe" for a verification request. |
hub.verify_token | The token you entered when registering the webhook in Meta. |
hub.challenge | A random string Meta expects you to echo back. |
hub.challenge value when hub.verify_token matches pingback_verify. Use pingback_verify as your verify token when setting up the webhook in your Meta App.
Open your Meta App Dashboard
Go to developers.facebook.com, select your app, and navigate to WhatsApp → Configuration (or Instagram → Webhooks).
Telegram and X setup
For Telegram and X, the webhook URL includes your channel ID. You can find your channel ID in PingBack under Settings → Channels after connecting the channel. Telegram example:What happens after a webhook fires
When PingBack receives a webhook event, it:- Identifies the channel and the customer who sent the message.
- Finds or creates a conversation for that customer.
- Saves the message and emits a
new_messageSocket.IO event to your connected agents in real time.