n8n chưa có node Messenger riêng, nên bạn kết nối Messenger API bằng node Webhook: Meta gửi yêu cầu GET để xác minh Callback URL (n8n trả lại hub.challenge), sau đó gửi mỗi tin nhắn tới Fanpage dưới dạng POST. Bạn cần app trên Meta for Developers, một Fanpage và n8n có địa chỉ HTTPS công khai.
Bài này dừng ở bước nhận được tin nhắn đầu tiên trong n8n. Phần soạn câu trả lời bằng AI và gửi lại qua Send API có ở bài tạo chatbot Facebook với n8n, dùng node AI Agent trong n8n. Các bước kiểm theo tài liệu Meta ngày 23/10/2026 (Graph API v26.0).
Vì sao phải kết nối Messenger API qua node Webhook?
Messenger Platform đẩy sự kiện (tin nhắn, bấm nút, đã đọc) tới một Callback URL do bạn khai báo, nên phía n8n cần một node Webhook để nhận. Khi có dữ liệu, các node HTTP Request, If, Edit Fields, Code xử lý tiếp mà không cần dựng máy chủ riêng.
- n8n chưa có node Messenger chính thức: node Facebook Graph API của n8n không nhận sự kiện tin nhắn; Webhook là đường vào.
- Webhook là cơ chế chuẩn của Meta: sự kiện như người dùng gửi tin, bấm nút postback, đổi trạng thái hội thoại đều đến qua Callback URL.
- Xử lý linh hoạt: nối thêm If, Edit Fields, Code, HTTP Request để lọc, lưu và trả lời. Cách dùng node có ở bài node Webhook trong n8n.
Cần chuẩn bị gì trước khi kết nối Messenger API với n8n?
Bạn cần bốn thứ: tài khoản Meta for Developers, một app có sản phẩm Messenger, một Fanpage mà tài khoản của bạn có quyền kiểm duyệt (task MODERATE), và n8n có tên miền HTTPS. Meta không gửi webhook tới chứng chỉ tự ký.
- Tài khoản Meta for Developers: đăng ký tại developers.facebook.com.
- Fanpage: Messenger API hoạt động qua Trang liên kết với app.
- n8n chạy 24/7 có HTTPS: n8n Cloud, hoặc tự host theo bài cài đặt n8n trên VPS.
- Page Access Token có quyền pages_messaging: cần khi gửi trả lời; cách lấy có ở bài lấy Page Access Token Facebook.
Cách kết nối Messenger API trên n8n bằng Webhook như thế nào?
Quy trình gồm tám bước: tạo Webhook trong n8n, tạo app Meta, khai báo Callback URL và Verify Token, dựng nhánh xác minh, bấm Verify and Save, nối Fanpage và đăng ký trường messages, xử lý POST, rồi chuyển app sang Live.

Bước 1: Tạo workflow mới và thêm node Webhook trên n8n
Đăng nhập n8n, tạo workflow mới và thêm node Webhook làm trigger.

- Trong tab Settings của node, bật Allow Multiple HTTP Methods, rồi chọn HTTP Methods là GET và POST. Node sẽ có hai đầu ra riêng.
- Ở Respond, chọn Using ‘Respond to Webhook’ Node.
- Đặt Path dễ nhận ra thay cho chuỗi ngẫu nhiên nếu muốn.
Sao chép URL ở tab Production URL để khai báo với Meta. Test URL chỉ nhận yêu cầu trong lúc bạn bấm Listen for test event, phù hợp khi thử lần đầu.

Lưu ý: với n8n tự host, URL phải là HTTPS có chứng chỉ hợp lệ, đúng tên miền công khai (biến N8N_WEBHOOK_URL ở n8n 2.x).
Bước 2: Tạo ứng dụng trên Meta for Developers
Mở tab mới, vào Meta for Developers, bấm Ứng dụng của tôi (My Apps) → Tạo ứng dụng (Create App).


- Nhập Tên ứng dụng (ví dụ: test-n8n) và email liên hệ.
- Ở bước trường hợp sử dụng (use case), chọn Khác (Other), bấm Tiếp.
- Chọn loại ứng dụng Business, bấm Tiếp, rồi Tạo ứng dụng.




Trong App Dashboard, tìm Messenger trong danh sách sản phẩm và bấm Thiết lập (Set Up).

Bước 3: Khai báo Callback URL và Verify Token
Trong mục Đặt cấu hình webhook của Messenger:
- Dán Webhook URL của n8n vào ô URL gọi lại (Callback URL).
- Ô Xác minh mã (Verify Token): nhập một chuỗi ngẫu nhiên, đủ dài, chỉ bạn biết. Chuỗi này phải khớp với giá trị kiểm ở Bước 4; đừng dùng chữ dễ đoán như tên công ty.

Chưa bấm Xác minh và lưu: phải dựng nhánh xác minh trong n8n trước.
Bước 4: Dựng nhánh xác minh GET trong n8n
Khi bấm Xác minh và lưu, Meta gửi GET kèm hub.mode=subscribe, hub.verify_token và hub.challenge. Theo tài liệu Webhooks for Messenger Platform, bạn phải kiểm token đúng rồi trả lại nguyên văn hub.challenge; sai thì trả 403. Bản cũ của bài này trả challenge mà không kiểm token, nên ai biết URL cũng đăng ký được.
- Ở đầu ra GET của Webhook, thêm node If với hai điều kiện (AND):
{{ $json.query["hub.mode"] }}bằngsubscribevà{{ $json.query["hub.verify_token"] }}bằng chuỗi Verify Token của bạn. - Nhánh true: node Respond to Webhook, Respond With = Text, Response Body =
{{ $json.query["hub.challenge"] }}. - Nhánh false: node Respond to Webhook trả Response Code 403.

Bấm Listen for test event (nếu dùng Test URL) hoặc bấm Publish workflow (nếu dùng Production URL) để n8n sẵn sàng nhận yêu cầu xác minh.

Bước 5: Xác minh và lưu Webhook trên Meta
Quay lại Meta for Developers, bấm Xác minh và lưu (Verify and Save). Thấy dấu tích xanh ở mục Đặt cấu hình webhook là xong.

Nếu thất bại, kiểm lại:
- Callback URL đúng từng ký tự, là HTTPS hợp lệ.
- Verify Token trong Meta và trong node If khớp nhau.
- Workflow đang lắng nghe (Listen for test event) hoặc đã Publish khi dùng Production URL.
Bước 6: Kết nối Fanpage và đăng ký trường messages
Ở mục Tạo mã truy cập, bấm Connect và chọn Trang cho phép app truy cập.



Bấm Thêm đăng ký và bật trường messages (tin nhắn của người dùng). Thêm messaging_postbacks nếu chatbot có nút bấm.

Bước 7: Xử lý tin nhắn POST an toàn
Ở đầu ra POST của Webhook, nối ngay một Respond to Webhook trả mã 200 (ví dụ nội dung EVENT_RECEIVED) rồi mới xử lý tiếp. Meta yêu cầu phản hồi 200 trong 5 giây; quá hạn, Meta gửi lại và có thể tắt webhook nếu lỗi kéo dài.
- Kiểm chữ ký: mỗi POST có header
X-Hub-Signature-256là HMAC SHA256 của payload với App Secret. Bật tuỳ chọn Raw Body của Webhook, dùng node Crypto (Hmac, SHA256, khoá App Secret) trên chuỗi body gốc, so với phần sausha256=; không khớp thì dừng. - Lọc trùng: Meta có thể gửi lại cùng một sự kiện; lưu
message.midđã xử lý và bỏ qua lần lặp. - Lấy dữ liệu: PSID của người gửi ở
{{ $json.body.entry[0].messaging[0].sender.id }}, nội dung ở…message.text.
Bước 8: Thêm chính sách quyền riêng tư và chuyển app sang Live
Vào Cài đặt ứng dụng → Thông tin cơ bản, điền URL chính sách quyền riêng tư trỏ tới trang chính sách trên website của bạn, mô tả đúng dữ liệu chatbot thu thập và cách người dùng yêu cầu xoá. Bấm Lưu thay đổi, rồi gạt Chế độ của ứng dụng từ Phát triển sang Chính thức.

Ở Development và Standard Access, webhook chỉ nhận tin của người có vai trò trên app (quản trị viên, nhà phát triển, người thử nghiệm). Muốn nhận tin của khách thật, app cần Live và được Advanced Access cho pages_messaging qua App Review.
Bước 9: Gửi tin nhắn thử
Bấm Execute workflow (hoặc Publish nếu dùng Production URL), dùng tài khoản có vai trò trên app nhắn vào Fanpage. Dữ liệu tin nhắn xuất hiện ở phần Output của node Webhook là kết nối đã chạy.
Messenger API có giới hạn gửi tin nào cần biết?
Messenger API chỉ cho Trang trả lời tự do trong 24 giờ kể từ tin nhắn gần nhất của người dùng. Ngoài cửa sổ đó, chỉ gửi được tin có message tag đúng mục đích (không khuyến mãi), theo tài liệu Send API của Meta.
- Mỗi tin mới của người dùng mở lại cửa sổ 24 giờ.
- Không dùng Messenger để gửi tin hàng loạt cho danh sách khách chưa nhắn tới Trang.
- Chi tiết message tag, thời hạn và cách gửi trả lời có ở bài tạo chatbot Facebook với n8n.
Không nhận được tin nhắn Messenger trong n8n thì kiểm tra gì?
Khi Messenger không đẩy tin vào n8n, nguyên nhân thường nằm ở bốn chỗ: chưa đăng ký trường messages, Trang chưa liên kết, người nhắn không có vai trò trên app, hoặc workflow chưa Publish nên Production URL không nhận.
Hiện tượng Nguyên nhân thường gặp Cách xử lý Verify and Save báo lỗi Token không khớp, URL sai, workflow không lắng nghe Kiểm node If, dùng đúng URL, Publish workflow Đã xác minh nhưng không có tin Chưa bật trường messages hoặc chưa liên kết Trang Bước 6: Connect Trang, Thêm đăng ký Chỉ nhận tin của mình App ở Development hoặc chưa có Advanced Access Chuyển Live, xin App Review cho pages_messaging Nhận trùng một tin nhiều lần Không trả 200 trong 5 giây Trả 200 ngay ở đầu nhánh POST, lọc theo message.mid Webhook bị tắt Lỗi liên tục khoảng một giờ Sửa lỗi rồi đăng ký lại webhook
Lỗi chung khi gọi API trong n8n (401, 403, 429) xem ở bài lỗi kết nối API thường gặp trong n8n. Webhook Messenger cần n8n chạy liên tục với tên miền HTTPS.
Muốn chạy n8n 24/7 mà không tự cài? VPS n8n của Tino cài sẵn n8n trên VPS NVMe đặt tại Việt Nam; bạn vẫn có quyền root để cấu hình. Xem cấu hình và giá trên trang sản phẩm.
Những câu hỏi thường gặp
Cần quyền gì để kết nối app với Fanpage?
Tài khoản của bạn phải làm được task MODERATE trên Trang (vai trò quản trị hoặc kiểm duyệt). Token dùng để đăng ký webhook cho Trang cần quyền pages_messaging và pages_manage_metadata.
Tại sao phải nhập chính sách quyền riêng tư?
Meta yêu cầu app có URL chính sách quyền riêng tư trước khi chuyển sang chế độ Chính thức (Live). Trang chính sách nên nằm trên website của bạn và mô tả đúng dữ liệu chatbot thu thập, thời gian lưu và cách yêu cầu xoá.
Tại sao n8n không có node Messenger riêng?
Messenger nhận tin qua webhook do Meta đẩy tới, nên node Webhook của n8n đảm nhận phần nhận; phần gửi dùng HTTP Request gọi Send API. Cách ghép này đủ cho cả chatbot hoàn chỉnh.
Tại sao không nhận được tin nhắn từ Messenger trong n8n?
Thường do chưa đăng ký trường messages, Trang chưa liên kết với app, người nhắn không có vai trò trên app khi app còn ở Development, hoặc workflow chưa Publish nên Production URL không nhận yêu cầu.
Có cần kiểm Verify Token không, hay chỉ cần trả hub.challenge?
Cần kiểm. Nếu chỉ trả hub.challenge, bất kỳ ai biết URL đều đăng ký webhook của họ vào workflow của bạn. Kiểm hub.mode và hub.verify_token, sai thì trả 403, đúng như tài liệu của Meta.
