Chào các bạn, lại là Toàn đây. Chắc hẳn nhiều bạn khi làm chatbot cho Facebook Messenger cũng từng gặp phải một tình huống khá kém duyên: khi khách hàng đang gõ một câu dài và ngắt thành nhiều tin nhắn nhỏ, chatbot của chúng ta lại quá nhiệt tình, nhảy vào trả lời ngay từ tin nhắn đầu tiên, tạo ra một cuộc hội thoại đứt gãy và thiếu tự nhiên. Điều này không chỉ làm giảm trải nghiệm người dùng mà còn khiến con bot của bạn trông khá ngô nghê.
Mục lục
Để giải quyết triệt để vấn đề này, hôm nay Toàn sẽ chia sẻ một workflow n8n nâng cao, giúp xây dựng một con chatbot cho Facebook Messenger không chỉ thông minh nhờ Gemini AI mà còn cực kỳ tinh tế trong giao tiếp. Bí quyết nằm ở hai điểm nhấn chính: kỹ thuật Message Batching (Gộp tin nhắn) và việc ứng dụng một tính năng hoàn toàn mới của n8n là Data Table. Workflow này sẽ giúp bot của bạn kiên nhẫn chờ người dùng gõ xong ý, gộp tất cả các tin nhắn gần nhau thành một yêu cầu hoàn chỉnh rồi mới bắt đầu xử lý và phản hồi. Kết quả là một cuộc trò chuyện mượt mà, logic và chuyên nghiệp hơn rất nhiều.
Lưu ý quan trọng: Workflow này sử dụng node Data Table, một tính năng chỉ có từ phiên bản n8n 1.113.0 trở lên. Bạn hãy chắc chắn rằng phiên bản n8n của mình đã được cập nhật để có thể sử dụng nhé.
I. TỔNG QUAN VỀ WORKFLOW VÀ CƠ CHẾ HOẠT ĐỘNG
Trước khi chúng ta đi sâu vào từng nút lệnh, hãy cùng nhìn vào bức tranh toàn cảnh để hiểu cách workflow này vận hành một cách thông minh. Luồng xử lý được chia thành 4 giai đoạn chính, phối hợp nhịp nhàng với nhau như một dây chuyền được tối ưu hóa:
- Giai đoạn 1: Tiếp nhận và Lọc tin nhắn từ Facebook: Mọi thứ bắt đầu khi có tin nhắn mới trên Fanpage. Một node Facebook Webhook (một cơ chế cho phép các ứng dụng web giao tiếp với nhau theo thời gian thực) sẽ ngay lập tức bắt lấy tín hiệu. Workflow sau đó sẽ thực hiện các bước lọc cơ bản: xác định xem đây có phải là tin nhắn văn bản không và quan trọng là phải đảm bảo tin nhắn này đến từ người dùng, chứ không phải là tin nhắn echo (tiếng vọng) do chính con bot gửi ra.
- Giai đoạn 2: Kỹ thuật Gộp tin nhắn (Message Batching) với Data Table: Đây là trái tim của workflow. Mỗi tin nhắn từ người dùng sau khi được lọc sẽ được lưu tạm vào một bảng dữ liệu (Data Table) với trạng thái là “chưa xử lý”. Workflow sẽ án binh bất động trong khoảng 3 giây. Khoảng thời gian chờ này là thời gian vàng để gom tất cả các tin nhắn mà người dùng có thể gửi nối tiếp nhau. Sau 3 giây, nó sẽ truy vấn vào Data Table, lấy ra tất cả các tin nhắn “chưa xử lý” của cùng một người dùng và gộp chúng lại thành một đoạn văn bản duy nhất.
- Giai đoạn 3: AI xử lý yêu cầu và Lấy Lịch sử Trò chuyện: Yêu cầu đã được gộp hoàn chỉnh sẽ được gửi đến một AI Agent (sử dụng Google Gemini). Đồng thời, workflow cũng sẽ truy vấn vào Data Table để lấy lịch sử các đoạn chat trước đó của người dùng này. Việc cung cấp lịch sử giúp AI có đầy đủ ngữ cảnh, từ đó đưa ra câu trả lời chính xác và phù hợp hơn. Trước khi AI xử lý, một hiệu ứng typing… (đang trả lời) cũng được gửi tới người dùng để tăng tính tương tác.
- Giai đoạn 4: Gửi phản hồi và Cập nhật trạng thái: Câu trả lời từ AI sẽ được định dạng lại cho phù hợp với chuẩn của Facebook Messenger, sau đó được gửi lại cho người dùng. Cuối cùng, workflow sẽ quay lại Data Table và cập nhật trạng thái của các tin nhắn vừa xử lý thành “đã xử lý”, đồng thời lưu lại câu trả lời của bot. Việc này đảm bảo rằng các tin nhắn cũ sẽ không bị xử lý lại trong các lần chạy sau.
II. NHỮNG THỨ CẦN CHUẨN BỊ TRƯỚC KHI BẮT ĐẦU
Để quá trình cài đặt diễn ra thuận lợi, bạn cần chuẩn bị trước những “nguyên liệu” sau:
- Một tài khoản n8n: Có thể là bản Cloud hoặc tự host, nhưng bắt buộc phải từ phiên bản 1.113.0 trở lên. Xem thêm về các lựa chọn vũ khí tự động hoá tại: Make vs n8n vs Google Apps Script: Nên chọn vũ khí tự động hóa nào cho nhu cầu của bạn?
- Một Fanpage Facebook: Trang mà bạn muốn tích hợp chatbot.
- Một tài khoản Facebook Developer: Để tạo ứng dụng và kết nối API (Giao diện lập trình ứng dụng) Messenger.
- API Key từ Google AI Studio: Để sử dụng mô hình ngôn ngữ Gemini.
- Tải về workflow mẫu của Toàn: Để tiết kiệm thời gian, bạn hãy tải workflow được đóng gói sẵn tại đây:
Nhân tiện, Toàn cũng vui mừng chia sẻ rằng mình đã chính thức trở thành một trong những Creator được n8n công nhận toàn cầu với dấu tick xác thực. Đây là một sự ghi nhận quý báu cho những đóng góp của mình vào cộng đồng n8n. Các bạn có thể tìm thấy tất cả các workflow do mình xây dựng và chia sẻ một cách tập trung tại trang Creator chính thức của Toàn trên n8n tại đây: https://n8n.io/creators/nguyenthieutoan/.
III. HƯỚNG DẪN CÀI ĐẶT WORKFLOW CHI TIẾT TỪNG BƯỚC
Sau khi đã có đủ “đồ nghề”, chúng ta sẽ bắt tay vào việc cấu hình chi tiết.
1. BƯỚC 1: Cài đặt Bảng Dữ liệu (Data Table) trong n8n
Đây là bước nền tảng. Từ giao diện chính của n8n, bạn hãy tìm đến mục “Data tables” ở thanh công cụ bên trái và tạo một bảng mới với tên là Batch_messages. Sau đó, hãy tạo các cột (columns) với cấu trúc chính xác như sau:
- user_id: Kiểu dữ liệu `String`. Dùng để lưu ID của người dùng trên Messenger.
- user_text: Kiểu dữ liệu `String`. Dùng để lưu nội dung tin nhắn của người dùng.
- bot_rep: Kiểu dữ liệu `String`. Dùng để lưu nội dung phản hồi của bot.
- processed: Kiểu dữ liệu `Boolean` (True/False). Dùng để đánh dấu tin nhắn đã được xử lý hay chưa.
2. BƯỚC 2: Cấu hình Facebook App và kết nối Webhook
Bước này đòi hỏi một chút thao tác trên trang Facebook for Developers.
- Tạo App: Truy cập Facebook Developers, tạo một App mới với loại là “Business”.
- Thêm sản phẩm Messenger: Trong dashboard của App, tìm và thêm sản phẩm “Messenger”.
- Cấu hình Webhook:
- Trong mục Messenger Settings, tìm đến phần “Webhooks”.
- Sao chép URL Webhook từ node Facebook Webhook trong workflow n8n (chọn Production URL) và dán vào ô “Callback URL”.
- Tự đặt một chuỗi ký tự bất kỳ cho “Verify Token” (ví dụ: `nguyenthieutoan_token_batched_bot`) và điền vào cả trang Facebook App lẫn trong cài đặt của node Webhook trong n8n.
- Trong mục “Webhook fields”, hãy đăng ký (subscribe) các sự kiện quan trọng như `messages` và `messaging_postbacks`.
- Lấy Page Access Token: Vẫn trong trang cài đặt Messenger, chọn Fanpage bạn muốn kết nối, và tạo một “Page Access Token”. Hãy sao chép và lưu lại Token này cẩn thận.
3. BƯỚC 3: Import và tinh chỉnh Workflow trên n8n
Bây giờ, hãy import file workflow bạn vừa tải về vào n8n. Hầu hết các node đã được kết nối sẵn, bạn chỉ cần tinh chỉnh một vài thông số quan trọng.
Kết nối các node Data Table
Hãy kiểm tra các node có tên liên quan đến Data Table như Insert To Process, Get unprocessed message, Get history message, Update Page Rep, và Update FALSE to TRUE. Đảm bảo rằng mỗi node này đều được chọn đúng bảng Batch_messages mà bạn đã tạo ở Bước 1.
Điền Page Access Token
Tìm đến node Set Context. Trong node này, bạn sẽ thấy một trường `page_token` đang có giá trị placeholder. Hãy thay thế nó bằng chuỗi Page Access Token thật mà bạn đã lấy ở Bước 2.
Cấu hình AI Agent
Đây là bộ não của con bot. Hãy mở node Process Merged Message.
- Kết nối mô hình ngôn ngữ: Kéo node Google Gemini Chat Model vào khung làm việc và kết nối nó với node AI Agent. Trong node Gemini, hãy chọn hoặc tạo mới credential bằng cách dán API Key (một mã định danh duy nhất dùng để xác thực yêu cầu tới một dịch vụ) của bạn vào.
- Tùy chỉnh System Prompt: Trong node Process Merged Message, Toàn đã viết sẵn một prompt rất chi tiết để định hình nhân cách cho AI trợ lý tên là “Jenix”. Bạn có thể đọc kỹ và thay đổi lại vai trò, tên, dịch vụ… cho phù hợp với mục đích của mình. Prompt này cũng chứa logic để AI tự giới thiệu trong tin nhắn đầu tiên và trả lời thẳng vấn đề ở các tin nhắn sau dựa vào lịch sử chat. Xem thêm về cách ra lệnh cho AI tại: Prompt Engineering Nâng cao: Bí quyết ra lệnh cho AI tạo ra kết quả vượt mong đợi.
IV. KIỂM TRA VÀ VẬN HÀNH
Sau khi đã hoàn tất các bước cấu hình, hãy lưu lại và bấm nút “Activate” để kích hoạt workflow. Bây giờ, bạn có thể vào trang Facebook của mình, chuyển sang tài khoản cá nhân và bắt đầu nhắn tin cho Fanpage để kiểm tra. Hãy thử gõ nhanh 2-3 tin nhắn liên tiếp, ví dụ: “Chào bạn”, “Mình cần tư vấn”, “về giải pháp tự động hóa”. Nếu workflow hoạt động đúng, bạn sẽ thấy bot chỉ phản hồi một lần duy nhất sau khi bạn đã gửi xong cả 3 tin nhắn.
Nếu có lỗi xảy ra, hãy kiểm tra lại các mục sau:
- Page Access Token: Đã được điền đúng vào node Set Context chưa?
- Webhook: Đã được Facebook xác thực thành công chưa (có dấu tick xanh)?
- Data Table: Các node đã được kết nối đúng đến bảng Batch_messages chưa?
- Executions: Xem lại lịch sử thực thi trong n8n để biết chính xác workflow đang gặp lỗi ở bước nào.
Vậy là xong! Với workflow này, bạn đã nâng cấp chatbot của mình lên một tầm cao mới: thông minh hơn, kiên nhẫn hơn và giao tiếp tự nhiên hơn. Việc ứng dụng Data Table không chỉ giải quyết bài toán gộp tin nhắn mà còn mở ra vô số khả năng khác như lưu trữ và phân tích lịch sử hội thoại, quản lý thông tin khách hàng… Tự động hóa là một hành trình sáng tạo không ngừng, và Toàn hy vọng bài viết này sẽ là một mảnh ghép hữu ích trên hành trình đó của bạn.
Nếu bạn thấy nội dung này có giá trị, đừng quên chia sẻ cho bạn bè nhé. Và hãy đăng ký nhận tin từ website của Toàn để không bỏ lỡ những kiến thức, thủ thuật mới nhất về AI và Tối ưu Vận hành. Chúc các bạn thành công!