VeriboxVeriboxWebhook Action

Webhook Action

The Webhook action sends an HTTP POST request to your endpoint whenever an intent fires. Use it to integrate with any external system — CRMs, Zapier, Make, Slack, or your own backend. To learn how to set up webhook actions on your intents, see the Intent Detection guide.


Request Format

POST <your-url>
Content-Type: application/json
User-Agent: rag-go-intent-webhook/1.0
Authorization: Bearer <token>   (only when token is configured)

Payload

The request body contains the extracted entities as a flat JSON object:

json
{
  "customer_name": "John Doe",
  "appointment_date": "2026-03-15",
  "phone": "+84901234567"
}

The keys correspond to the slot names defined in your intent configuration.


Authorization

Set an optional token in the webhook action config to secure your endpoint. The server automatically sends it as Authorization: Bearer <token>.

You only need to enter the raw token value (e.g. abc123) — the Bearer prefix is added automatically.

Verifying in Node.js

js
app.post("/webhook", express.json(), (req, res) => {
  const auth = req.headers["authorization"]
  if (auth !== `Bearer ${process.env.WEBHOOK_TOKEN}`) {
    return res.status(401).send("Unauthorized")
  }
  console.log("Intent fired:", req.body)
  res.sendStatus(200)
})

Verifying in Python

python
import os
from flask import Flask, request

@app.route("/webhook", methods=["POST"])
def webhook():
    auth = request.headers.get("Authorization")
    if auth != f"Bearer {os.environ['WEBHOOK_TOKEN']}":
        return "Unauthorized", 401
    data = request.get_json()
    print("Intent fired:", data)
    return "OK", 200

Response & Timeout

  • Return any 2xx status to acknowledge the request. Any other status is treated as a failure.
  • The webhook call has a 10-second timeout. Return 200 immediately and process asynchronously if your handler is slow.

Webhook Logging

Every webhook call is logged with full request and response details. You can view these logs in the Intent History page — click the webhook status badge to see:

  • Request: URL, method, headers, and body sent
  • Response: HTTP status code and response body

Retry Policy

Webhooks are currently fire-and-forget — if your endpoint is unavailable, the event is not retried. For reliability, point the webhook at a queue-backed endpoint (e.g. a Zapier catch hook, Make scenario, or your own message queue).