Bạn đang tìm một một giải pháp chatbot trên Facebook nhưng muốn tiết kiệm chi phí và tự kiểm soát, không phụ thuộc vào bên thứ ba? n8n sẽ giúp bạn làm được điều đó. Bài viết dưới đây sẽ hướng dẫn cách tạo chatbot Facebook với n8n chi tiết, giúp bạn thiết lập một hệ thống trả lời tự động hiệu quả, tối ưu ngân sách và không cần viết code phức tạp.
Vì sao nên chọn n8n để tạo chatbot Facebook?
- Hoàn toàn miễn phí và mã nguồn mở: Không giống nhiều công cụ chatbot giới hạn tính năng ở gói miễn phí, n8n là mã nguồn mở và bạn có thể tự host trên server riêng, đảm bảo quyền kiểm soát và bảo mật tuyệt đối.
- Không cần viết code phức tạp: Với giao diện kéo – thả trực quan, n8n giúp bạn xây dựng luồng xử lý tin nhắn dễ dàng mà không cần kiến thức lập trình chuyên sâu. Bạn có thể thiết kế luồng trò chuyện chỉ bằng vài cú click.
- Tích hợp mạnh mẽ với nhiều nền tảng: n8n hỗ trợ kết nối với hơn 400 dịch vụ. Điều này giúp bạn mở rộng khả năng chatbot như lưu trữ dữ liệu khách hàng, gửi email tự động hoặc đồng bộ dữ liệu sang hệ thống CRM.
- Dễ dàng mở rộng và tùy biến: Bạn có thể dễ dàng viết script JavaScript trong các node để xử lý logic phức tạp hoặc tùy chỉnh hành vi chatbot theo nhu cầu mà không bị ràng buộc bởi nền tảng cloud của bên thứ ba.

Chuẩn bị trước khi bắt đầu tạo chatbot Facebook
Tài khoản Facebook và Fanpage đã xác minh
Để sử dụng chatbot trên Facebook, bạn bắt buộc phải có:
- Một tài khoản Facebook cá nhân đã được xác minh (có số điện thoại và email hợp lệ).
- Một Trang Facebook (Fanpage) mà bạn có quyền quản trị viên.
- Xác minh ứng dụng và chấp thuận quyền gửi – nhận tin nhắn thông qua Facebook Developer (trong môi trường development hoặc production).
Việc xác minh Fanpage và cấu hình quyền truy cập là điều kiện tiên quyết để Facebook cho phép bạn tích hợp webhook từ chatbot bên ngoài như n8n.
Cài đặt và cấu hình n8n
Bạn có thể lựa chọn một trong hai cách sau để chạy n8n:
- Self-hosted: Cài đặt n8n trên máy chủ riêng (VPS) để toàn quyền quản lý và tùy chỉnh.
- n8n.cloud: Dịch vụ n8n được host sẵn bởi nhà phát triển – bạn chỉ cần đăng ký và sử dụng ngay mà không cần cấu hình phức tạp.
Bạn muốn self-hosted mà ngại cấu hình phức tạp? VPS N8N – AI Workflow của Tino là giải pháp bạn cần. Sử dụng VPS N8N – AI Workflow, bạn sẽ được cài sẵn n8n với cấu hình chất lượng.
Bạn chỉ cần: Đăng ký VPS -> Đổi tên miền riêng (nếu có) -> Truy cập và sử dụng n8n ngay.
Đăng ký tại: Tino.vn. Nhập mã TINO03 để được giảm 30%.
Hoặc tham khảo bài viết: Cách đăng ký VPS cài sẵn n8n để được hướng dẫn chi tiết.

Một số lưu ý khi cài đặt n8n:
- Đảm bảo n8n có thể truy cập công khai từ internet (Facebook yêu cầu webhook phải có địa chỉ HTTPS hợp lệ).
- Nên sử dụng domain riêng và chứng chỉ SSL để tránh lỗi khi kết nối với Facebook API.
Hướng dẫn cách tạo chatbot Facebook với n8n
Bước 1: Tạo webhook để gọi API Messenger
Tạo một workflow mới -> nhấn dấu + -> thêm node Webhook.
Bạn có thể tham khảo chi tiết bài viết: Cách kết nối API Messenger với n8n thông qua node Webhook.
Bước 2: Thêm node IF để phân loại tin nhắn
Để workflow hiểu được được tin nhắn dạng text hay chỉ là một icon (ví dụ khách hàng lỡ tay nhấn like), bạn cần sử dụng node IF để phân loại.
Thêm node IF phía sau node Webhook và cấu hình node này như sau:
- Kéo phần Text từ mục Messenger ở phần bên trái vào ô Value 1 hoặc nhập: {{ $json.body.entry[0].messaging[0].message.text }}
- Chọn String -> Exists

Khi đó:
- Nếu tin nhắn không phải là văn bản (ví dụ khách hàng lỡ tay thả like) luồng thông tin sẽ chạy qua nhánh False
- Nếu tin nhắn là văn bản luồng thông tin sẽ chạy qua nhánh True
Nhấn Test workflow và nhập thử tin nhắn để kiểm tra.
Bước 3: Thêm node Set (Edit Fields)
Node này có vai trò lọc các thông tin cần thiết để cấu hình cho node AI Agent phía sau.
Thêm node Set sau nhánh True. Cấu hình như sau:
- Nhấn Add Field – Đặt tên “ID khách hàng” và kéo phần id tại mục Sender vào ô Value
- Nhấn Add Field – Đặt tên “ID page” và kéo phần id tại mục Recipient vào ô Value
- Nhấn Add Field – Đặt tên “Nội dung tin nhắn” và kéo phần text tại mục Message vào ô Value

Sau khi tạo xong, nhấn Test workflow và thử gửi 1 tin nhắn để tiện cho việc lấy dữ liệu ở các node sau.

Bước 4: Tạo node AI Agent
Thêm node AI Agent sau node Set (Edit Fields). Cấu hình chung:
- Chọn Define below tại mục Source for Prompt
- Như đã nói ở phần trên, việc tạo node Set giúp bạn lọc các dữ liệu chính, bạn chỉ việc kéo Nội dung tin nhắn vào ô Prompt hoặc nhập trực tiếp: {{ $json[‘Nội dung tin nhắn’] }}
- Nhấn Add Option -> chọn System Message -> nhập ngữ cảnh để mô tả quy tắc cho AI (tham khảo ở bài viết liên quan được nhắc đến bên dưới).

Với node AI Agent, bạn cần chuẩn bị:
- Chat Model: Google Gemini Chat Model đã xác thực để kết nối API (có thể thay thế bằng OpenAI nếu cần AI chất lượng hơn nhưng phải trả phí).

- Memory: Sử dụng Memory mặc định của n8n (Simple Memory)

- Tools: Bảng dữ liệu Google Sheet, chứa demo câu hỏi của khách hàng và câu trả lời được thiết lập sẵn. Cần xác thực Credential cho Google Sheets.

Vì cách thiết lập System Message, Chat Model, Tools và Memory của AI Agent cho chatbot giống nhau trên cả Zalo và Facebook nên bạn có thể tham khảo hướng dẫn cách thực hiện tại bài viết: Cách tạo chatbot Zalo cá nhân trên n8n.
Sau khi thiết lập xong, nhấn Test Workflow và nhắn thử 1 tin nhắn vào Fanpage Messenger để kiểm tra.

Bước 5: Tạo node Code
Vì n8n chưa hỗ trợ node Messenger trực tiếp nên bạn cần xử lý đầu ta thủ công thông qua node Code và HTTP Request.
Thêm node Code sau node AI Agent và xóa nội dung code bên trong cấu hình
Sau đó, quay lại trang Developers Facebook, vào Công cụ -> chọn Trình khám phá API Đồ thị

Thêm quyền pages_read_engagement và nhấn Generate Access Token.
Tiến hành kết nối với tài khoản Facebook quản trị viên Fanpage của bạn.
Sau khi kết nối xong, nhấn nút Gửi để lấy ID của ứng dụng.

Dán ID lên ô bên trên rồi nhập thêm phía sau /messages/
Tiếp theo, chuyển GET thành POST rồi nhấn vào nút JSON.

Nhập vào giữa 2 dấu ngoặc {} đoạn code sau:
{"recipient":{
"id":“{PSID}”
},
"message":{
"text":"Hello, World!"
}}
Thay “{PSID}” bằng ID khách hàng trong n8n và đổi phần text Hello, World! thành Xin chào! (hoặc một câu chào tùy bạn) rồi nhấn nút Gửi.

(Lưu ý: đây chỉ là ID của tài khoản bạn dùng để gửi tin nhắn trong quá trình test workflow, lát nữa chúng ta sẽ thay bằng thông tin trong n8n).
Nếu thành công, bạn sẽ nhận được thông báo trong Messenger của Fanpage.
Dán đoạn code sau vào node Code trong n8n và thực hiện các thao tác:
const body = {
"recipient": {
"id": `${$('Edit Fields').first().json['ID khách hàng']}`
},
"message": {
"text": `${$input.first().json.output}`
}
};
return {
data: body
};

Nhấn Test step để kiểm tra, thấy tích xanh ở phần Output là thành công!
Bước 6: Thêm node HTTP Request để Messenger trả lời tin nhắn khách hàng
Thêm node HTTP Request sau node Code.
Chuyển Method GET thành POST.
Nhập URL: https://graph.facebook.com/v22.0/108629477616764/messages/. Thay 108629477616764 thành ID của ứng dụng trong Trình khám phá API Đồ thị mà bạn đã thao tác ở bước Code.
Kích hoạt Send Header và nhập Header Parameters như sau:
- Name: Authorization
- Value: Bearer [mã truy cập của bạn trong Trình khám phá API đồ thị]

Kích hoạt Send Body, chọn Using JSON tại mục Specify Body rồi nhập vào ô: {{ $json.data }}

Bước 7: Thêm câu trả lời nếu dữ liệu đi vào nhánh False
Giả sử khách nhấn nhầm icon Like, dữ liệu sẽ đi vào nhánh False vì đây không phải là một văn bản. Khi đó, chatbot sẽ không phản hồi lại khách hàng.
Trong trường hợp này, nếu vẫn muốn tương tác với khách, bạn cần cấu hình đầu ra tại nhánh False.
Cách làm như sau:
Bạn copy 2 node Code và HTTP Requests rồi nối với nhánh False trong workflow.
Sau đó, cấu hình lại đoạn code trong node Code như sau:
const body = {
"recipient": {
"id": `${$input.first().json.body.entry[0].messaging[0].sender.id}`
},
"message": {
"text": `Xin chào, rất vui được hỗ trợ bạn, bạn muốn mình tư vấn về hạt macca và sữa hạt ạ!`
}
};
return {
data: body
};
Nhớ thay phần text bằng lời chào của riêng bạn nhé!

Bạn có thể nhấn Test workflow để kiểm tra.

Bước 8: Kích hoạt workflow
Trước khi cho chạy workflow, bạn cần đổi link webhook từ Test URL sang Production URL.
Cách thực hiện:
Nhấn nút Active để khởi động workflow.

Copy Production URL trong node Webhook.

Chuyển qua trang Cài đặt API Messenger bên Developer Facebook -> vào mục Đặt cấu hình webhook -> dán URL vào ô -> đặt Mã xác minh -> nhấn Xác minh và lưu.

Lúc này, bạn đã hoàn tất việc tạo chatbot cho Facebook. Hãy thử lại một tài khoản khác và nhắn tin với chatbot để kiểm tra nhé!
Kết quả:

Lưu ý: Mã truy cập sẽ hết hạn sau một khoảng thời gian, bạn cần tạo mới và nhập vào node HTTP Request để workflow hoạt động bình thường nhé!

Kết luận
Với các bước hướng dẫn chi tiết trong bài viết, bạn hoàn toàn có thể tự thiết lập chatbot mà không cần thuê của bên thứ ba. Nếu bạn muốn khám phá thêm nhiều giải pháp tự động hóa mạnh mẽ khác với n8n, đừng quên theo dõi blog của Tino để cập nhật các hướng dẫn mới nhất!
Những câu hỏi thường gặp
Tôi có cần trả phí để sử dụng AI Agent trong n8n không?
Việc sử dụng node AI Agent không tốn phí, tuy nhiên, nếu bạn chọn OpenAI GPT-4, bạn sẽ phải trả phí theo mức sử dụng API của OpenAI. Với Google Gemini, bạn có thể sử dụng miễn phí giới hạn tùy tài khoản.
Vì sao khi gửi tin nhắn vào Fanpage, chatbot không phản hồi?
Có thể do một trong các lý do sau:
Tin nhắn không phải là văn bản, nên đi vào nhánh False mà bạn chưa cấu hình phản hồi
Workflow chưa được kích hoạt (Active)
Webhook chưa được cấu hình đúng Production URL
Token Facebook bị hết hạn hoặc sai quyền
Làm sao để chatbot hiểu rõ sản phẩm của tôi?
Hãy cấu hình rõ phần System Message trong AI Agent và kết nối với Google Sheet chứa các thông tin sản phẩm, câu hỏi thường gặp. AI sẽ dựa vào dữ liệu đó để phản hồi chính xác.
Cần quyền gì để kết nối với Fanpage?
Tài khoản Facebook của bạn phải có quyền Quản trị viên (Admin) cao nhất của Fanpage thì mới có thể kết nối ứng dụng với trang và đăng ký webhook thành công.
Chatbot có thể trả lời nhiều người cùng lúc không?
Có. Workflow hoạt động theo từng phiên bản xử lý webhook độc lập, nên bạn có thể xử lý hàng loạt người dùng cùng lúc mà không bị xung đột.