Webhook Là Gì? Cách Webhook Hoạt Động Và Ví Dụ Với Zalo, Facebook
Webhook là gì? Giải thích dễ hiểu cơ chế webhook, khác gì API, ví dụ thực tế với Zalo OA, Facebook, cổng thanh toán, cách nhận webhook bằng n8n và các lưu ý bảo mật.
Aura Team
Webhook là cơ chế một hệ thống tự động gửi thông báo kèm dữ liệu sang hệ thống khác ngay khi có sự kiện xảy ra, ví dụ “vừa có đơn mới” hay “khách vừa nhắn tin”. Bên nhận chỉ cần cung cấp một địa chỉ URL; mỗi khi sự kiện diễn ra, bên gửi gọi vào URL đó. Webhook giúp phần mềm phản ứng tức thì thay vì phải liên tục hỏi “có gì mới chưa”.
Một shop mỹ phẩm từng cài một công cụ “đồng bộ đơn” cứ 15 phút kiểm tra phần mềm bán hàng một lần. Khách đặt đơn lúc 9h01, tin xác nhận đến lúc 9h15. Khách đã kịp nhắn hỏi “shop nhận đơn chưa ạ” hai lần. Khi chuyển sang webhook, tin xác nhận đến trong vài giây sau khi khách bấm đặt. Cùng một việc, khác biệt chỉ nằm ở chỗ ai chủ động báo tin.
Tóm tắt nhanh:
- Webhook là “chuông cửa” của phần mềm: có sự kiện thì tự bấm chuông báo, không cần ai đứng canh
- Bên nhận cung cấp một webhook URL; bên gửi đẩy dữ liệu (payload, thường là JSON) vào URL đó khi có sự kiện
- API là bạn hỏi; webhook là hệ thống tự báo. Thực tế thường dùng cả hai
- Zalo OA, Facebook Messenger, cổng thanh toán, đơn vị vận chuyển đều dùng webhook
- Ba việc bắt buộc khi nhận webhook: xác thực nguồn gửi, phản hồi nhanh, xử lý trùng lặp
Webhook Là Gì? Chuông Cửa Và Người Đứng Canh
Có hai cách để biết có khách đến nhà.
Cách 1: cứ 5 phút ra mở cửa nhìn một lần. Phần lớn số lần mở cửa không có ai. Khách đến lúc bạn vừa đóng cửa thì phải đứng chờ gần 5 phút. Trong phần mềm, cách này gọi là polling: liên tục gọi API để hỏi “có dữ liệu mới chưa”.
Cách 2: lắp chuông cửa. Khách đến, bấm chuông, bạn biết ngay. Đó là webhook.
Về kỹ thuật, webhook là một yêu cầu HTTP (thường là POST) mà hệ thống A gửi tới một địa chỉ URL của hệ thống B mỗi khi có sự kiện. Yêu cầu đó mang theo payload: dữ liệu mô tả sự kiện. Ví dụ khi có đơn mới, payload có thể trông như sau:
{
"event": "order.created",
"ma_don": "DH45821",
"khach_hang": "Nguyễn Thị Lan",
"so_dien_thoai": "84901234567",
"tong_tien": 1250000,
"thoi_gian": "2026-10-10T09:01:12+07:00"
}
Hệ thống B nhận, đọc, rồi làm việc của nó: ghi vào Google Sheets, gửi tin xác nhận, báo cho kho, hoặc đánh thức một AI Agent.
Năm thành phần của một webhook
| Thành phần | Ý nghĩa | Ví dụ |
|---|---|---|
| Sự kiện (event) | Điều gì xảy ra thì gửi | Đơn mới, khách nhắn tin, thanh toán thành công |
| Webhook URL | Địa chỉ bên nhận cung cấp | https://n8n.congty.vn/webhook/don-moi |
| Payload | Dữ liệu gửi kèm | Mã đơn, khách hàng, tổng tiền (JSON) |
| Chữ ký / secret | Chứng minh đúng nguồn gửi | Chữ ký HMAC trong header |
| Cơ chế gửi lại | Bên nhận lỗi thì gửi lại | Thử lại sau vài giây, vài phút |
Webhook Và API Khác Nhau Thế Nào?
Đây là câu hỏi phổ biến nhất sau “webhook là gì”. Ngắn gọn: API là kéo, webhook là đẩy.
| Tiêu chí | API (gọi chủ động / polling) | Webhook |
|---|---|---|
| Ai chủ động | Bên cần dữ liệu | Bên có sự kiện |
| Độ trễ | Phụ thuộc chu kỳ hỏi (vài phút) | Gần như tức thì |
| Tải hệ thống | Nhiều lần gọi thừa | Chỉ gửi khi có sự kiện |
| Lấy dữ liệu cũ, tra cứu | Làm được | Không, chỉ báo sự kiện mới |
| Độ phức tạp phía nhận | Thấp | Cần URL công khai, xác thực, xử lý trùng |
| Dùng tốt nhất cho | Tra cứu, báo cáo, đồng bộ theo lịch | Phản ứng ngay khi có đơn, tin nhắn, thanh toán |
Trong thực tế, hai cơ chế đi cùng nhau. Webhook báo “đơn DH45821 vừa đổi trạng thái”, rồi hệ thống nhận gọi API để lấy đầy đủ chi tiết đơn. Nhiều nhà cung cấp chỉ gửi payload tối thiểu qua webhook vì lý do bảo mật và để bạn luôn lấy dữ liệu mới nhất qua API.
Ví Dụ Webhook Thực Tế Cho Doanh Nghiệp Việt
Zalo OA: nhận tin nhắn của khách
Khi bạn tạo ứng dụng trên Zalo for Developers và liên kết với Zalo OA, bạn đăng ký một webhook URL và chọn các sự kiện muốn nhận, như khách gửi tin nhắn văn bản, gửi ảnh, bấm quan tâm OA. Mỗi khi khách nhắn, Zalo gửi sự kiện tới URL của bạn. Đây là nền tảng để mọi chatbot hay AI Agent trên Zalo OA hoạt động. Chi tiết cách đăng ký có trong bài Zalo API cho doanh nghiệp.
Facebook Messenger và Fanpage
Meta dùng webhook để báo tin nhắn mới, bình luận mới trên Fanpage. Khi đăng ký, Facebook gửi một yêu cầu xác minh (verify token) để kiểm tra URL của bạn là thật. Các công cụ chatbot Facebook đều chạy trên cơ chế này.
Cổng thanh toán và chuyển khoản
Cổng thanh toán và nhiều dịch vụ đối soát chuyển khoản gửi webhook khi giao dịch thành công. Hệ thống của bạn nhận, đối chiếu mã đơn, tự đổi trạng thái đơn sang “đã thanh toán” và gửi tin cảm ơn. Không ai phải mở app ngân hàng dò từng giao dịch.
Đơn vị vận chuyển
Các hãng giao vận thường cho đăng ký webhook để nhận cập nhật trạng thái vận đơn: đã lấy hàng, đang giao, giao thành công, hoàn hàng. Từ đó bạn tự động báo khách mà không cần nhân viên tra mã vận đơn.
Phần mềm bán hàng và CRM
Nhiều phần mềm quản lý bán hàng và CRM cho đăng ký webhook khi có đơn mới, đơn đổi trạng thái, khách hàng mới, sản phẩm cập nhật tồn kho. Hãy kiểm tra mục “Webhook” hoặc “Tích hợp” trong phần quản trị của phần mềm bạn đang dùng.
💡 Mẹo: Khi chọn phần mềm, ngoài hỏi “có API không”, hãy hỏi thêm “có webhook cho những sự kiện nào”. Phần mềm có API nhưng không có webhook buộc bạn phải polling, chậm và tốn tài nguyên hơn.
Cách Nhận Webhook Bằng n8n (Không Cần Viết Code)
n8n có sẵn node Webhook để nhận dữ liệu:
- Tạo workflow mới, thêm node Webhook, chọn method
POST. - n8n sinh ra hai URL: Test URL (dùng khi đang dựng, chỉ hoạt động khi bạn bấm “Listen for test event”) và Production URL (dùng khi workflow đã bật).
- Dán Production URL vào phần cấu hình webhook của hệ thống gửi (Zalo, Facebook, phần mềm bán hàng).
- Gửi thử một sự kiện, xem dữ liệu xuất hiện trong node, rồi nối các node xử lý phía sau.
- Thêm xác thực: kiểm tra token trong header hoặc chữ ký trước khi xử lý.
Lỗi người mới hay gặp nhất là dán Test URL vào hệ thống thật, rồi thắc mắc vì sao workflow không chạy khi đã tắt màn hình dựng. Lỗi thứ hai là n8n tự host chưa có HTTPS: phần lớn hệ thống gửi webhook từ chối URL không có HTTPS. Bài 5 mẫu n8n workflow có ví dụ đầy đủ một luồng nhận webhook đơn mới.
Webhook Và AI Agent: Ai “Đánh Thức” Agent?
Một AI Agent không tự ngồi chờ. Nó cần được đánh thức khi có việc, và webhook chính là cái chuông đó.
Luồng điển hình trên một nền tảng Agentic Workflow:
- Trigger: Zalo gửi webhook “khách vừa nhắn: đơn DH45821 tới đâu rồi shop?”
- Phân loại: agent hiểu đây là câu hỏi tra đơn.
- Xử lý: agent gọi API phần mềm bán hàng (hoặc công cụ qua MCP) lấy trạng thái đơn.
- Thực thi: agent soạn và gửi câu trả lời kèm link theo dõi.
- Thông báo: nếu đơn có vấn đề (giao trễ quá 3 ngày), agent báo nhân viên.
Cả quá trình mất vài giây. Webhook lo phần “biết ngay”, API và MCP lo phần “làm được việc”.
| Chỉ số | Kiểm tra định kỳ 15 phút | Webhook + AI Agent |
|---|---|---|
| Thời gian từ khi khách đặt đến khi nhận xác nhận | 0–15 phút | Vài giây |
| Số lần gọi hệ thống mỗi ngày | ~96 lần/luồng, kể cả khi không có đơn | Bằng số sự kiện thật |
| Tin nhắn khách hỏi lại “shop nhận đơn chưa” | Thường gặp | Hiếm |
| Phản hồi tin nhắn khách giờ cao điểm | Chờ nhân viên rảnh | Dưới 30 giây |
Số liệu minh họa theo kinh nghiệm triển khai phổ biến.
Nếu bạn muốn AI Agent trả lời khách trên Zalo OA và Facebook ngay khi có tin nhắn, mà không tự dựng webhook, xác thực và hàng đợi, có thể đặt lịch demo miễn phí để xem Aura xử lý luồng này.
Bảo Mật Và Độ Tin Cậy Khi Dùng Webhook
Webhook URL là một cánh cửa mở ra internet. Năm nguyên tắc bắt buộc:
- Xác thực nguồn gửi. Kiểm tra chữ ký (signature) hoặc secret token mà bên gửi đính kèm. Không có bước này, bất kỳ ai biết URL đều gửi dữ liệu giả vào được, ví dụ giả một giao dịch “đã thanh toán”.
- Chỉ dùng HTTPS. Dữ liệu khách hàng không được đi trên kết nối không mã hóa.
- Phản hồi nhanh, xử lý sau. Trả về mã
200 OKngay khi nhận, rồi mới xử lý nặng. Nếu bạn phản hồi chậm, bên gửi tưởng lỗi và gửi lại. - Xử lý trùng lặp (idempotency). Cùng một sự kiện có thể đến hai lần. Lưu mã sự kiện hoặc mã đơn đã xử lý để không gửi khách hai tin xác nhận.
- Ghi log và cảnh báo. Lưu mọi webhook nhận được trong ít nhất vài ngày để đối chiếu khi khách phản ánh.
💡 Mẹo: Khi kiểm tra webhook, dùng một dịch vụ “webhook tester” để xem chính xác bên gửi đẩy dữ liệu gì, trước khi nối vào hệ thống thật.
Câu Hỏi Thường Gặp Về Webhook
Webhook URL là gì?
Webhook URL là địa chỉ web mà bên nhận cung cấp cho bên gửi. Mỗi khi có sự kiện, bên gửi gửi một yêu cầu HTTP kèm dữ liệu tới địa chỉ này. URL phải truy cập được từ internet và nên dùng HTTPS.
Webhook có phải là API không?
Webhook là một dạng giao tiếp qua HTTP giống API, nhưng ngược chiều. Với API, bạn gửi yêu cầu để lấy dữ liệu. Với webhook, hệ thống khác tự gửi dữ liệu cho bạn khi có sự kiện. Nhiều người gọi webhook là “API ngược”.
Zalo OA có hỗ trợ webhook không?
Có. Ứng dụng liên kết với Zalo OA trên Zalo for Developers có thể đăng ký webhook để nhận các sự kiện như khách gửi tin nhắn, gửi ảnh, quan tâm hoặc bỏ quan tâm OA.
Webhook bị lỗi thì dữ liệu có mất không?
Tùy bên gửi. Nhiều hệ thống tự gửi lại vài lần khi không nhận được phản hồi thành công, nhưng sau số lần nhất định sẽ bỏ. Vì vậy bên nhận cần hoạt động ổn định, ghi log và có cách đối soát định kỳ qua API.
Làm sao bảo vệ webhook khỏi dữ liệu giả?
Kiểm tra chữ ký hoặc secret token mà bên gửi đính kèm trong header, chỉ chấp nhận HTTPS, và với dữ liệu quan trọng như thanh toán thì gọi API để xác minh lại trước khi xử lý.
Không biết code có dùng webhook được không?
Được. Các công cụ như n8n, Make, Zapier có sẵn bước nhận webhook. Nền tảng AI Agent như Aura cũng tự xử lý webhook của Zalo OA, Facebook và các phần mềm được kết nối.
Khi nào nên dùng webhook thay vì gọi API định kỳ?
Khi bạn cần phản ứng nhanh với sự kiện: tin nhắn khách, đơn mới, thanh toán, trạng thái giao hàng. Gọi API định kỳ phù hợp hơn cho báo cáo, đồng bộ danh mục hoặc khi hệ thống không hỗ trợ webhook.
Webhook là mảnh ghép nhỏ nhưng quyết định tốc độ phản hồi của cả hệ thống. Khi phần mềm bán hàng, kênh chat và AI Agent được nối bằng webhook, khách nhận phản hồi trong vài giây thay vì vài giờ. Đọc thêm về API và MCP để hiểu trọn bộ ba kết nối, xem các bài khác trên blog Aura, hoặc tìm hiểu về nền tảng Aura.
Trải nghiệm Chat Hub ngay hôm nay
Bắt đầu quản lý tin nhắn đa kênh thông minh, tăng hiệu suất chăm sóc khách hàng với nền tảng AI-powered.
Từ khóa liên quan:
Sẵn sàng nâng cấp giao tiếp khách hàng?
Tham gia cùng hàng ngàn doanh nghiệp đang sử dụng Chat Hub để tối ưu giao tiếp khách hàng và tăng năng suất.
Aura Team
Content Writer
Chuyên gia nội dung tại Aura — Agentic Workflow Platform giúp doanh nghiệp xây dựng và phối hợp các AI Agent với hệ thống nội bộ: CRM, ERP, quản lý kho, POS và các kênh giao tiếp đa nền tảng.
Bài viết liên quan
Zapier, Make Và n8n: So Sánh Công Cụ Tự Động Hóa Low-code
Zapier là gì, Make (Make.com) là gì, khác n8n ra sao? So sánh cách tính phí, độ dễ dùng, kết nối Zalo, khả năng AI và cách chọn công cụ low-code cho doanh nghiệp Việt.
Zalo ZNS Là Gì? Bảng Giá, Điều Kiện Và Cách Gửi Tự Động
ZNS là gì, khác tin nhắn Zalo OA và SMS thế nào, bảng giá ZNS mới, điều kiện đăng ký, quy định mẫu tin và cách gửi ZNS tự động từ CRM, phần mềm bán hàng kèm AI Agent.
Zalo API Cho Doanh Nghiệp: Hướng Dẫn Zalo OA API, Webhook, ZNS
Zalo API là gì và doanh nghiệp dùng thế nào? Hướng dẫn từng bước Zalo OA API: tạo app, access token, webhook nhận tin, các loại tin nhắn, ZNS, giới hạn và cách nối với AI Agent.
