Tích hợp

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.

A

Aura Team

· 12 phút đọc
Webhook Là Gì? Cách Webhook Hoạt Động Và Ví Dụ Với Zalo, Facebook

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
Robot AI trắng nhận một phong bì phát sáng vừa bay ra từ chiếc chuông cửa trên màn hình, nhân viên bán hàng ngước lên nhìn điện thoại báo đơn mới
Webhook giống chuông cửa: có đơn mới là hệ thống tự 'bấm chuông', dữ liệu đến ngay mà không ai phải đứng canh.

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ĩaVí 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ấphttps://n8n.congty.vn/webhook/don-moi
PayloadDữ liệu gửi kèmMã đơn, khách hàng, tổng tiền (JSON)
Chữ ký / secretChứng minh đúng nguồn gửiChữ ký HMAC trong header
Cơ chế gửi lạiBên nhận lỗi thì gửi lạiThử 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.

So sánh hai cảnh: bên trái nhân viên liên tục mở cửa kho kiểm tra không có hàng, bên phải robot AI trắng nhận ngay kiện hàng khi chuông reo
Polling hỏi liên tục và phần lớn là hỏi thừa; webhook chỉ gửi khi thật sự có sự kiện, nên nhanh hơn và nhẹ hơn cho cả hai hệ thống.
Tiêu chíAPI (gọi chủ động / polling)Webhook
Ai chủ độngBên cần dữ liệuBê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ốngNhiều lần gọi thừaChỉ gửi khi có sự kiện
Lấy dữ liệu cũ, tra cứuLàm đượcKhông, chỉ báo sự kiện mới
Độ phức tạp phía nhậnThấpCần URL công khai, xác thực, xử lý trùng
Dùng tốt nhất choTra cứu, báo cáo, đồng bộ theo lịchPhả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:

  1. Tạo workflow mới, thêm node Webhook, chọn method POST.
  2. 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).
  3. 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).
  4. 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.
  5. 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:

  1. Trigger: Zalo gửi webhook “khách vừa nhắn: đơn DH45821 tới đâu rồi shop?”
  2. Phân loại: agent hiểu đây là câu hỏi tra đơn.
  3. 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.
  4. Thực thi: agent soạn và gửi câu trả lời kèm link theo dõi.
  5. 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útWebhook + AI Agent
Thời gian từ khi khách đặt đến khi nhận xác nhận0–15 phútVà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ó đơnBằ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ặpHiếm
Phản hồi tin nhắn khách giờ cao điểmChờ nhân viên rảnhDướ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:

  1. 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”.
  2. 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.
  3. Phản hồi nhanh, xử lý sau. Trả về mã 200 OK ngay 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.
  4. 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.
  5. 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:

webhook là gì webhook webhook url webhook zalo webhook và api webhook n8n

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.

AT

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