VeriboxVeriboxWebhook Action

Webhook Action

Webhook action gửi một yêu cầu HTTP POST đến endpoint của bạn mỗi khi một ý định được kích hoạt. Sử dụng nó để tích hợp với bất kỳ hệ thống bên ngoài nào — CRM, Zapier, Make, Slack, hoặc backend riêng. Để tìm hiểu cách thiết lập webhook action cho các ý định, xem hướng dẫn Nhận diện ý định.


Định dạng yêu cầu

POST <your-url>
Content-Type: application/json
User-Agent: rag-go-intent-webhook/1.0
Authorization: Bearer <token>   (chỉ khi token được cấu hình)

Dữ liệu gửi đi

Nội dung yêu cầu chứa các thực thể đã trích xuất dưới dạng đối tượng JSON phẳng:

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

Các key tương ứng với tên slot được định nghĩa trong cấu hình ý định của bạn.


Xác thực

Thiết lập token tùy chọn trong cấu hình webhook action để bảo mật endpoint. Server tự động gửi token dưới dạng Authorization: Bearer <token>.

Bạn chỉ cần nhập giá trị token thô (ví dụ: abc123) — tiền tố Bearer được thêm tự động.

Xác minh trong 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)
})

Xác minh trong 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

Phản hồi và thời gian chờ

  • Trả về bất kỳ mã trạng thái 2xx nào để xác nhận đã nhận yêu cầu. Mã trạng thái khác được coi là thất bại.
  • Lệnh gọi webhook có thời gian chờ 10 giây. Trả về 200 ngay lập tức và xử lý bất đồng bộ nếu handler của bạn chạy chậm.

Nhật ký Webhook

Mỗi lệnh gọi webhook được ghi lại với đầy đủ chi tiết yêu cầu và phản hồi. Bạn có thể xem nhật ký này trong trang Lịch sử ý định — nhấn vào badge trạng thái webhook để xem:

  • Yêu cầu: URL, phương thức, header và nội dung đã gửi
  • Phản hồi: Mã trạng thái HTTP và nội dung phản hồi

Chính sách thử lại

Webhook hiện hoạt động theo cơ chế gửi một lần — nếu endpoint của bạn không khả dụng, sự kiện sẽ không được gửi lại. Để đảm bảo độ tin cậy, hãy trỏ webhook đến endpoint có hàng đợi (ví dụ: Zapier catch hook, Make scenario, hoặc hàng đợi tin nhắn riêng của bạn).