Chào mừng bạn đến với series hướng dẫn về n8n! Nếu bạn đã theo dõi các bài viết trước và cài đặt thành công n8n trên máy tính hoặc VPS của mình, thì hôm nay chúng ta sẽ cùng nhau đi sâu vào một ứng dụng cực kỳ thú vị: tạo ra một con chatbot AI thông minh trên Telegram.

Bài viết này sẽ hướng dẫn bạn từng bước, từ việc kết nối Telegram, tích hợp trí tuệ nhân tạo của Google (Gemini), và thậm chí “dạy” cho con bot của chúng ta những kỹ năng như ghi nhớ cuộc trò chuyện hay kiểm tra thời tiết. Dù bạn là người mới hoàn toàn, đừng lo lắng, bài hướng dẫn này được thiết kế để bạn có thể làm theo một cách dễ dàng nhất.

Bắt đầu thôi nào!

Mục tiêu của chúng ta:

Xây dựng một quy trình (workflow) trên n8n có khả năng:

  1. Nhận tin nhắn từ người dùng trên Telegram.
  2. Sử dụng AI (Gemini) để hiểu và tạo ra câu trả lời.
  3. Gửi câu trả lời đó ngược lại cho người dùng.
  4. Trang bị “bộ nhớ” để chatbot có thể duy trì ngữ cảnh cuộc trò chuyện.
  5. Trang bị “công cụ” để chatbot có thể lấy thông tin thời gian thực như ngày giờ, thời tiết.

Nếu bạn là một người học theo dạng Video, bạn có thể tham khảo clip bài giảng của mình ở đây nhé:


Bước 1: Thiết lập Trigger – Lắng nghe tin nhắn từ Telegram

Mọi quy trình tự động hóa trong n8n đều bắt đầu bằng một Trigger (trình kích hoạt). Trong trường hợp này, trigger của chúng ta chính là hành động “khi có tin nhắn mới trên Telegram”.

  1. Tạo Workflow mới: Trên giao diện n8n, hãy tạo một workflow trống.
  2. Thêm node Telegram: Bấm vào dấu +, tìm kiếm “Telegram” và chọn node Telegram Trigger. Bạn sẽ thấy một node có biểu tượng hình sấm sét, đây chính là dấu hiệu của một node trigger.
    Giao diện n8n với node Telegram Trigger vừa được thêm vào
    Giao diện n8n với node Telegram Trigger vừa được thêm vào
  3. Tạo Credential (Thông tin xác thực):
    Để n8n có thể “nói chuyện” với Telegram, bạn cần cung cấp cho nó một chiếc chìa khóa, gọi là “Access Token”. Đây là bước quan trọng nhất.

    • Mở Telegram và tìm “BotFather”: BotFather là một con bot chính thức của Telegram dùng để tạo và quản lý các bot khác.
    • Tạo bot mới: Gửi lệnh /newbot cho BotFather.
    • Đặt tên cho bot: BotFather sẽ hỏi bạn tên của bot. Hãy đặt một cái tên thân thiện, ví dụ: Trợ lý AI của tôi.
    • Đặt username cho bot: Tiếp theo, đặt một username duy nhất, và bắt buộc phải kết thúc bằng chữ “bot”. Ví dụ: MyAssistantAIBot.
    • Nhận Access Token: Nếu username hợp lệ, BotFather sẽ gửi cho bạn một tin nhắn chúc mừng kèm theo một chuỗi ký tự dài. Đó chính là HTTP API Token mà chúng ta cần.
    Cuộc trò chuyện với BotFather và dòng API Token được bôi đậm
    Cuộc trò chuyện với BotFather và dòng API Token được bôi đậm
    • Quay lại n8n: Trong node Telegram Trigger, bấm vào mục Credential -> Create New.
    • Dán Token: Dán đoạn token bạn vừa copy từ BotFather vào ô Access Token.
    • Lưu lại: Bấm Save. Nếu token chính xác, bạn sẽ thấy một dấu tích màu xanh lá.
    • Bấm vào nút Execute Node (hoặc Test step) ở góc dưới bên phải của n8n.
    • Mở Telegram, tìm con bot bạn vừa tạo và gửi cho nó một tin nhắn bất kỳ (ví dụ: “Xin chào”).
    • Quay lại n8n, bạn sẽ thấy node Telegram Trigger đã nhận được dữ liệu từ tin nhắn của bạn.Kiểm tra Trigger:

    Mẹo hay: Dữ liệu test này sẽ biến mất nếu bạn thay đổi các node. Để giữ lại dữ liệu này cho các bước sau, hãy bấm vào biểu tượng chiếc ghim (Pin) ở góc trên của bảng kết quả. Điều này giúp bạn không phải gửi lại tin nhắn mỗi lần thử nghiệm.

Bước 2: Tối giản hóa dữ liệu với node “Set”

Node Trigger trả về rất nhiều thông tin (ID người gửi, ID cuộc trò chuyện, thời gian, v.v.). Để quy trình gọn gàng hơn, chúng ta chỉ nên giữ lại những gì cần thiết.

  1. Thêm node Set: Bấm vào dấu + sau node Telegram, tìm và chọn node Set.
  2. Trích xuất thông tin quan trọng: Chúng ta cần 2 thứ chính:
    • chatId: ID của cuộc trò chuyện để bot biết phải trả lời vào đâu.
    • message: Nội dung tin nhắn của người dùng.
  3. Cấu hình node Set:
    • Trong ô Name, đặt tên là chatId.
    • Trong ô Value, kéo thả trường message.chat.id từ dữ liệu đầu vào (cột bên trái) vào.
    • Bấm Add Value.
    • Trong ô Name thứ hai, đặt tên là message.
    • Trong ô Value, kéo thả trường message.text vào.

    Bây giờ, đầu ra của chúng ta đã rất gọn gàng, chỉ còn 2 thông tin cần thiết cho các bước tiếp theo.

Giao diện node Set đã được cấu hình để lấy ra chatId và message
Giao diện node Set đã được cấu hình để lấy ra chatId và message

Bước 3: Tích hợp bộ não AI (Gemini)

Đây là lúc chúng ta thêm trí thông minh cho con bot.

  1. Thêm node AI Agent: Bấm dấu + sau node Set, tìm và chọn node AI Agent.
  2. Cấu hình AI Agent:
    • Input: Kéo trường message từ node Set vào ô Input. Đây chính là câu hỏi/tin nhắn của người dùng mà chúng ta sẽ gửi cho AI.
    • Model: Chọn Chat Model.
    • Service: Chọn Google Gemini. Lý do chọn Gemini vì nó có một gói miễn phí rất hào phóng, đủ để chúng ta thử nghiệm và sử dụng cho các nhu cầu cá nhân.
  3. Tạo Credential cho Gemini: Tương tự Telegram, Gemini cũng cần một API Key.
    • Truy cập Google AI Studio (bạn có thể tìm “Google AI Studio” trên Google).
    • Đăng nhập bằng tài khoản Google của bạn.
    • Tìm và bấm vào nút Get API key.
    • Tạo một API key mới và copy nó.
    • Quay lại n8n, trong node AI Agent, mục Credential, chọn Create New.
    • Dán API key của bạn vào và lưu lại.
  4. Chọn Model: Trong mục Model Name, bạn có thể chọn gemini-1.5-flash. Đây là một model vừa nhanh, vừa thông minh, rất phù hợp cho các ứng dụng chatbot.
  5. Kiểm tra: Bấm Execute Node. Node AI Agent sẽ lấy tin nhắn “Xin chào” của bạn và tạo ra một câu trả lời.
    Node AI Agent trả về một đoạn text trả lời từ Gemini
    Node AI Agent trả về một đoạn text trả lời từ Gemini

Bước 4: Gửi câu trả lời về lại Telegram

AI đã xử lý xong, nhưng câu trả lời vẫn đang nằm trong n8n. Chúng ta cần gửi nó về cho người dùng.

  1. Thêm node Telegram Action: Bấm dấu + sau node AI Agent, tìm “Telegram” và lần này chọn node Telegram (node hành động, không có sấm sét).
  2. Cấu hình node:
    • Credential: Chọn credential Telegram bạn đã tạo ở Bước 1.
    • Resource: Chọn Message.
    • Operation: Chọn Send Text.
    • Chat ID: Đây là lúc chatId phát huy tác dụng. Kéo trường chatId từ node Set vào ô này. Điều này đảm bảo bot trả lời đúng người.
    • Text: Kéo trường output từ node AI Agent vào ô này. Đây chính là câu trả lời của AI.
    • Parse Mode: Chọn HTML để hạn chế lỗi định dạng.
    Cấu hình node Telegram Send Text với các trường Chat ID và Text đã được điền
    Cấu hình node Telegram Send Text với các trường Chat ID và Text đã được điền
  3. Test toàn bộ quy trình: Bấm nút Execute Workflow ở góc dưới. Bạn sẽ thấy tin nhắn của bot xuất hiện trong Telegram!

Bước 5: Kích hoạt Workflow

Hiện tại, quy trình chỉ chạy khi bạn bấm nút thủ công. Để nó hoạt động 24/7, hãy bấm vào công tắc Inactive ở góc trên bên trái để chuyển nó thành Active.

Công tắc Active/Inactive của workflow
Công tắc Active/Inactive của workflow

Bây giờ, chatbot của bạn đã “sống”. Hãy thử trò chuyện với nó trên Telegram!

Bước 6: Nâng cấp – Thêm “Bộ nhớ” cho Chatbot

Bạn sẽ nhận ra một vấn đề: nếu bạn nói “Tôi tên là Trí”, rồi hỏi lại “Tôi vừa nói tên tôi là gì?”, con bot sẽ không biết. Đó là vì nó không có bộ nhớ, mỗi tin nhắn là một lần xử lý độc lập.

Hãy trang bị cho nó một “bộ não” để ghi nhớ.

  1. Mở lại node AI Agent.
  2. Tìm đến mục Memory và bấm Add Memory.
  3. Chọn Simple Memory.
  4. Memory Key: Đây là mã định danh cho mỗi cuộc trò chuyện. Chúng ta sẽ sử dụng chatId để bot biết cuộc trò chuyện nào thuộc về người dùng nào. Hãy kéo trường chatId từ node Set vào ô Memory Key.
  5. Memory Max Messages: Bạn có thể đặt giới hạn số lượng tin nhắn gần nhất mà bot sẽ nhớ, ví dụ là 15.
    Cấu hình phần Memory trong node AI Agent với Memory Key là chatId
    Cấu hình phần Memory trong node AI Agent với Memory Key là chatId
  6. Lưu và kích hoạt lại workflow.

Bây giờ hãy thử lại cuộc trò chuyện. Nói tên của bạn, sau đó hỏi lại. Bạn sẽ ngạc nhiên vì bot đã có thể nhớ được!

Bước 7: Nâng cấp – Thêm “Công cụ” cho Chatbot

AI mặc định không biết thông tin thời gian thực như “hôm nay là ngày bao nhiêu?” hay “thời tiết ở Hà Nội thế nào?”. Chúng ta cần trao cho nó các “công cụ” (Tools) để làm việc này.

Công cụ 1: Lấy Ngày/Giờ hiện tại

  1. Trong node AI Agent, tìm đến mục Tools và bấm Add Tool.
  2. Chọn Date & Time Tool.
  3. Không cần cấu hình gì thêm! Chỉ cần thêm vào là AI sẽ tự biết cách sử dụng khi cần.

Bây giờ hãy hỏi bot: “Hôm nay là ngày bao nhiêu?”. Nó sẽ trả lời chính xác!

Công cụ 2: Lấy thông tin thời tiết

  1. Thêm Tool mới: Trong mục Tools của node AI Agent, bấm Add Tool và chọn OpenWeatherMap.
  2. Lấy API Key của OpenWeatherMap:
    • Truy cập trang openweathermap.org.
    • Đăng ký một tài khoản miễn phí.
    • Vào phần API keys trong tài khoản của bạn để lấy key.
    • Tạo một Credential mới trong n8n cho OpenWeatherMap và dán key vào.
  3. Cấu hình Tool:
    • Trong tool OpenWeatherMap, bạn sẽ thấy các mục như City. Hãy bấm vào biểu tượng bánh răng cưa và chọn Use Expressions. Sau đó, bật công tắc bên cạnh để cho phép AI tự điền thông tin này. Làm tương tự cho Language.
    Bật công tắc để AI có thể tự điền tham số City cho tool OpenWeatherMap
    Bật công tắc để AI có thể tự điền tham số City cho tool OpenWeatherMap
    • Trong node AI Agent, tìm mục Options -> Tool Instructions.
    • Thêm vào một câu chỉ dẫn như: Khi sử dụng tool thời tiết, hãy truyền vào tên thành phố dưới dạng tiếng Anh không dấu.Tinh chỉnh Prompt (Rất quan trọng):
      Các dịch vụ quốc tế thường gặp vấn đề với tiếng Việt có dấu. Để AI hoạt động tốt hơn, hãy thêm một chỉ dẫn cho nó.
  4. Thêm chỉ dẫn vào ô Tool Instructions
    Thêm chỉ dẫn vào ô Tool Instructions

Bây giờ, hãy thử hỏi bot: “Thời tiết ở Hồ Chí Minh hôm nay thế nào?”. Nó sẽ sử dụng tool OpenWeatherMap, lấy dữ liệu và trả lời bạn một cách chi tiết.

Kết luận

Chúc mừng bạn! Bạn vừa xây dựng thành công một con chatbot AI Telegram cực kỳ mạnh mẽ bằng n8n. Từ một quy trình đơn giản, chúng ta đã thêm vào bộ não AI, bộ nhớ và các công cụ để nó trở nên thông minh và hữu ích hơn rất nhiều.

Đây chỉ là một ứng dụng nhỏ. Với n8n, bạn có thể kết nối hàng trăm dịch vụ khác nhau: tự động gửi email, lưu dữ liệu vào Google Sheets, quản lý công việc trên Trello, và nhiều hơn nữa. Khả năng là vô tận.

Hy vọng bài viết này đã giúp bạn có một khởi đầu thuận lợi với n8n. Nếu có bất kỳ câu hỏi nào, đừng ngần ngại để lại bình luận bên dưới nhé


Gọi điện ngay