Giữa buổi họp, sếp nhắn: “Doanh thu tuần này bao nhiêu rồi em?”. Bạn mở laptop, mở file, lọc ngày, cộng tổng rồi mới trả lời được. Câu hỏi đơn giản, nhưng lặp lại nhiều lần mỗi tuần. Bài viết này hướng dẫn bạn xây một chatbot hỏi đáp dữ liệu trên Telegram bằng n8n và Claude: người dùng gõ câu hỏi bằng tiếng Việt tự nhiên, bot trả lời con số chính xác từ Google Sheets chỉ sau vài giây.
📂 NỘI DUNG BÀI VIẾT
Chatbot hỏi đáp dữ liệu hoạt động thế nào?
Cách làm dễ nhất là đưa cả file dữ liệu cho AI rồi hỏi. Nhưng như vậy AI phải tự cộng hàng trăm dòng, dễ tính sai mà không ai biết, và bạn phải gửi toàn bộ dữ liệu ra ngoài. Chatbot trong bài chia việc theo đúng thế mạnh của từng bên:
Kiến trúc chatbot: 6 node
NODE 1 · TELEGRAM
Telegram Trigger
Nhận tin nhắn người dùng gửi cho bot
➜ Nội dung câu hỏi và Chat ID
NODE 2 · BẢO VỆ
Filter – Kiểm tra quyền
Chỉ cho người trong danh sách được hỏi
➜ Tin nhắn hợp lệ
NODE 3 · AI
Basic LLM Chain + Claude – Hiểu câu hỏi
Chuyển câu hỏi thành JSON: chỉ số, kỳ thời gian, cửa hàng
➜ Yêu cầu có cấu trúc
NODE 4 · DATA
Google Sheets – Đọc dữ liệu
Đọc dữ liệu bán hàng
➜ Các dòng giao dịch
NODE 5 · CODE
Code – Tính và soạn trả lời
Lọc theo yêu cầu, tính số, ghép câu trả lời
➜ Nội dung trả lời
NODE 6 · TRẢ LỜI
Telegram – Trả lời
Gửi câu trả lời về đúng cuộc trò chuyện
➜ Tin nhắn trả lời
Xây chatbot từng bước
🧰 Bước 0✈ Bước 1🛡 Bước 2✦ Bước 3▦ Bước 4{ } Bước 5➤ Bước 6
BƯỚC 0🧰 CHUẨN BỊ
Bước 0: Chuẩn bị dữ liệu, bot và credentials
- Dữ liệu: một Google Sheet tên DuLieuBanHang, mỗi dòng là một giao dịch với các cột NgayBan, CuaHang, SanPham, SoLuong, ThanhTien. Định dạng cột NgayBan là văn bản dạng YYYY-MM-DD (chọn cột, vào Format › Number › Plain text) để việc lọc theo ngày luôn chính xác.
- Bot Telegram: mở @BotFather, gõ
/newbot, đặt tên và nhận Access Token. - Credentials trong n8n: Telegram (token vừa nhận), Google (cho Google Sheets) và Anthropic (API key để dùng Claude).
- Địa chỉ công khai: Telegram gửi tin nhắn về n8n qua webhook, nên n8n phải truy cập được từ internet qua HTTPS. Bản n8n cloud đã sẵn sàng; nếu tự cài, bạn cần tên miền có HTTPS và cấu hình biến môi trường
WEBHOOK_URL. - Múi giờ: trong Settings của workflow, đặt Timezone là Asia/Ho_Chi_Minh để “hôm nay”, “tuần này” được tính theo giờ Việt Nam.
BƯỚC 1✈ TELEGRAM
Bước 1: Telegram Trigger – nhận câu hỏi
Thêm node Telegram Trigger, chọn credential Telegram và Trigger On là Message. Bấm nút nghe sự kiện thử trên node, rồi nhắn cho bot một câu bất kỳ. Đầu ra có nội dung câu hỏi ở message.text và mã cuộc trò chuyện ở message.chat.id. Hãy ghi lại chat.id của bạn (và của những người được phép dùng bot) để dùng ở bước sau.
BƯỚC 2🛡 BẢO VỆ
Bước 2: Filter – chỉ cho người được phép hỏi
Bot Telegram là công khai: ai biết tên bot đều nhắn được. Thêm node Filter, điều kiện {{ $json.message.chat.id }} is equal to chat.id của bạn. Có nhiều người dùng thì thêm điều kiện cho từng người và đổi kiểu kết hợp sang OR. Tin nhắn từ người lạ sẽ dừng lại ở đây, không tốn lượt gọi AI và không lộ dữ liệu.
BƯỚC 3✦ AI
Bước 3: Basic LLM Chain + Claude – hiểu câu hỏi
Thêm node Basic LLM Chain, đặt tên Hiểu câu hỏi, gắn sub-node Anthropic Chat Model (chọn một model Claude, đặt temperature bằng 0 để kết quả ổn định). Phần prompt nhập như sau:
Với câu “doanh thu tuần này của cửa hàng Quận 1?”, Claude trả về {“chiSo”: “doanhThu”, “ky”: “tuanNay”, “cuaHang”: “Quận 1”} trong trường text. Claude chỉ nhìn thấy câu hỏi, không nhìn thấy dữ liệu.
BƯỚC 4▦ DATA
Bước 4: Google Sheets – đọc dữ liệu bán hàng
Thêm node Google Sheets, đặt tên Đọc dữ liệu, chọn thao tác Get row(s) in sheet, trỏ tới sheet DuLieuBanHang. Node nhận một item từ bước trước nên chỉ đọc một lần và trả về toàn bộ các dòng giao dịch.
BƯỚC 5{ } CODE
Bước 5: Code – tính số và soạn câu trả lời
Thêm node Code (JavaScript, chế độ Run Once for All Items), đặt tên Tính và trả lời:
Câu trả lời luôn kèm khoảng ngày đã tính, để người hỏi biết ngay bot hiểu “tuần này” là từ ngày nào đến ngày nào. Nếu Claude hiểu sai câu hỏi hoặc trả về không phải JSON, bot trả lời hướng dẫn cách hỏi thay vì đưa ra một con số sai.
BƯỚC 6➤ TRẢ LỜI
Bước 6: Telegram – gửi câu trả lời
Thêm node Telegram, chọn thao tác Send Message:
Cuối cùng, lưu và kích hoạt workflow (nút Active, hoặc Publish ở một số phiên bản mới). Chỉ khi workflow được kích hoạt, bot mới tự trả lời mà không cần bạn mở n8n.
Thử nghiệm: những câu hỏi bot trả lời được
Trước khi chia sẻ bot cho người khác, hãy thử nhiều cách hỏi khác nhau và đối chiếu con số với Google Sheets. Bảng dưới đây cho thấy cách Claude hiểu từng câu (số liệu trong câu trả lời do dữ liệu của bạn quyết định):
Câu cuối rất quan trọng: dữ liệu không có tồn kho, nên bot phải nói không biết thay vì đoán. Một chatbot dữ liệu đáng tin là chatbot biết giới hạn của mình.
Kiểm soát rủi ro: để chatbot trả lời đúng và an toàn
⚠ RỦI RO 01 Người lạ hỏi dữ liệu
Ví dụ: Ai đó tìm thấy tên bot và hỏi doanh thu
Cách phòng tránh: Node Filter chỉ cho các chat.id trong danh sách; không chia sẻ tên bot công khai
⚠ RỦI RO 02 Claude hiểu sai câu hỏi
Ví dụ: “tuần rồi” bị hiểu thành tuần này
Cách phòng tránh: Câu trả lời luôn ghi rõ chỉ số và khoảng ngày đã tính để người hỏi tự kiểm tra; bổ sung ví dụ vào prompt khi gặp cách hỏi mới
⚠ RỦI RO 03 AI bịa số
Ví dụ: Bot nêu một con số không có trong dữ liệu
Cách phòng tránh: Claude không nhìn thấy dữ liệu và không viết câu trả lời; mọi con số do node Code tính
⚠ RỦI RO 04 Dữ liệu ngày sai định dạng
Ví dụ: Bot báo “chưa có dữ liệu” dù sheet có số
Cách phòng tránh: Đặt cột NgayBan là văn bản YYYY-MM-DD như Bước 0
⚠ RỦI RO 05 Bot không trả lời
Ví dụ: Nhắn tin nhưng không thấy phản hồi
Cách phòng tránh: Kiểm tra workflow đã kích hoạt, n8n truy cập được qua HTTPS, và xem tab Executions để biết dừng ở node nào
🔒 Về bảo mật và chi phí: Claude chỉ nhận câu hỏi ngắn, không nhận dữ liệu bán hàng, nên dữ liệu không rời hệ thống của bạn và mỗi câu hỏi chỉ tốn rất ít token. Với dữ liệu nhạy cảm, nên dùng n8n tự cài trên máy chủ công ty và tuân theo chính sách IT.
Mở rộng chatbot
Khi phiên bản đầu chạy ổn, bạn có thể nâng cấp dần:
➕ Thêm chỉ số mới
thêm tên chỉ số vào prompt ở Bước 3 và thêm một nhánh tính tương ứng trong code ở Bước 5, ví dụ giá trị trung bình mỗi giao dịch hay so sánh với kỳ trước.
🗄 Dùng dữ liệu từ SQL
thay node Google Sheets bằng node Postgres, MySQL hoặc Microsoft SQL, với câu truy vấn chỉ lấy khoảng thời gian cần thiết.
✦ Thêm nhận xét của AI
sau khi code đã tính xong, gửi các con số cho Claude viết một câu nhận xét ngắn, theo đúng cách của bài báo cáo tuần.
📅 Gửi báo cáo định kỳ qua cùng bot
kết hợp với workflow chạy theo lịch để bot vừa trả lời khi được hỏi, vừa tự gửi bản tóm tắt mỗi sáng thứ Hai.
Checklist trước khi chia sẻ bot
☑ TRƯỚC KHI CHIA SẺ BOT
chat.id được phép6/6 mục đạt → gửi tên bot cho người dùng
📅 Muốn học cách kết hợp phân tích dữ liệu với AI và tự động hóa? Xem Lịch khai giảng tháng 10/2026 các khóa Power BI, SQL, Python, AI tại MCNA.
Câu hỏi thường gặp (FAQ)
?Sao không đưa cả dữ liệu cho AI trả lời luôn cho đơn giản?
Vì AI cộng hàng trăm dòng số liệu rất dễ sai mà vẫn trả lời tự tin, và bạn phải gửi toàn bộ dữ liệu ra ngoài. Tách “hiểu câu hỏi” cho AI và “tính số” cho code giúp câu trả lời luôn kiểm tra lại được.
?n8n có node AI Agent, sao không dùng?
AI Agent cho phép AI tự chọn công cụ và tự truy vấn dữ liệu, linh hoạt hơn nhưng khó kiểm soát và khó kiểm tra hơn. Với người mới và các câu hỏi lặp lại, cách trong bài đơn giản, rẻ và đáng tin hơn; khi đã vững, bạn có thể thử AI Agent.
?Thêm bot vào nhóm chat được không?
Được. Mặc định, bot trong nhóm chỉ nhận tin nhắn bắt đầu bằng lệnh hoặc tin nhắc tên bot. Nhớ thêm chat.id của nhóm (số âm) vào node Filter.
?Dùng Zalo hoặc Microsoft Teams thay Telegram được không?
n8n có node cho Microsoft Teams và Slack; Zalo không có node dựng sẵn phổ biến nên thường phải tích hợp API riêng. Telegram là lựa chọn dễ nhất để bắt đầu vì tạo bot miễn phí và có sẵn Telegram Trigger.
?Chi phí AI có cao không?
Thường rất thấp, vì mỗi câu hỏi chỉ gửi cho Claude một đoạn prompt ngắn và nhận về một dòng JSON. Giá API có thể thay đổi, hãy xem bảng giá hiện hành của Anthropic khi ước tính cho công ty.
Kết luận
Một chatbot hỏi đáp dữ liệu không cần hệ thống BI đắt tiền: 6 node n8n, một file Google Sheets, Claude và một bot Telegram là đủ để sếp hỏi “doanh thu tuần này?” và có câu trả lời sau vài giây. Chìa khóa là nguyên tắc AI hiểu câu hỏi, code tính số, câu trả lời luôn kèm khoảng ngày đã tính, và bot biết nói “chưa hiểu” thay vì đoán. Bắt đầu với ba chỉ số quen thuộc nhất, rồi mở rộng dần theo câu hỏi thật của người dùng.
Nếu bạn muốn học bài bản cách kết hợp phân tích dữ liệu với AI và tự động hóa, các khóa học tại MCNA Technology School sẽ đồng hành cùng bạn. Đọc thêm: Tự động hóa báo cáo tuần với n8n và AI và AI Automation cho Data Analyst.
👉 Xem lịch khai giảng tháng 10/2026: Power BI, SQL, Python, AI – MCNA

