Logohocn8n.ai
Đổi server VN (nếu load chậm)

Telegram Bot tự động - Tạo Bot Telegram đầu tiên

Telegram là một nền tảng nhắn tin khá phổ biến vì nó miễn phí, nhanh, lưu trữ không giới hạn.

Tuy nhiên, có thể bạn chưa biết, Telegram còn hỗ trợ tạo bot, viết code để đọc/gửi tin nhắn tự động. Rất nhiều anh em sử dụng Telegram để quản lý quy trình vì nó có rất nhiều ưu điểm:

  • API miễn phí: Không giới hạn tin nhắn hay files ảnh, video, audio... (khác với SMS tốn phí!)
  • Dễ cài đặt: Việc tạo bot, cài đặt cho bot trò chuyện chỉ mất 10-15 phút (nhanh và dễ hơn nhiều so với Facebook/Zalo...)
  • Real-time: Xử lý tin nhắn và trả lời ngay lập tức, không cần chờ phải hay refresh
  • Security cao: End-to-end encryption, an toàn gần như tuyệt đối
  • Interactive: Tạo buttons/link để tương tác ngay trong chat

Với n8n, bạn có thể tạo Telegram Bot để đọc/gửi tin nhắn tự động, tích hợp với các hệ thống khác mà không cần viết dòng code nào luôn!

intro_telegram_bot

Tạo Bot Telegram với BotFather

Trước khi có thể tích hợp Telegram với n8n, bạn cần tạo một con bot Telegram để gửi/nhận tin nhắn.

Quá trình này cũng khá đơn giản. Bạn sẽ sử dụng BotFather. Đây là "ông trùm" quản lý tất cả bot trên Telegram. Bạn cần "xin phép" nó để tạo con bot của riêng mình!

1. Gặp gỡ BotFather

  1. Mở Telegram và tìm @BotFather

    botfather_search

  2. Bắt đầu cuộc trò chuyện (gõ /start):

    botfather_welcome

  3. Yêu cầu tạo bot mới (gõ /newbot hoặc bấm vào command /newbot trong tin nhắn là được):

    botfather_newbot

2. Điền thông tin cho bot

Bạn sẽ lần lượt trả lời 2 tin nhắn của BotFather để tạo Bot.

  1. BotFather sẽ hỏi tên bot (Tên gì cũng được):

    👤 BotFather: How are we going to call it?
    🧑‍💻 Bạn: N8N Course Bot (hoặc tên gì tuỳ bạn)
    
  2. BotFather sẽ hỏi username (phải kết thúc bằng "bot", nếu không sẽ không tạo được):

    👤 BotFather: Now let's choose a username. It must end in `bot`.
    🧑‍💻 Bạn: n8n_course_bot
    

    botfather_newbot

Xong rồi đây, bạn sẽ nhận được Bot Token và một link của bot đã tạo (Ví dụ <t.me/n8n_course_bot>):

🔑 Use this token to access the HTTP API:
1234567890:ABCdefGHIjkXXXXwxYZ1234567890

🔒 Bot Token này quan trọng như mật khẩu để n8n hoặc các chương trình khác ra lệnh cho bot của bạn. Nhớ giữ kĩ chứ đừng để lộ nhé!

Nếu quên, bạn có thể tìm lại BotFather, sau đó tuỳ chỉnh bot hoặc lấy lại token bằng lệnh /mybot, sau đó bấm vào API token để lấy lại:

bot_info

3. Kết nối n8n với Telegram Bot

  1. Từ trang chủ, bấm dấu + ở góc trên bên trái -> Credentials

  2. Tìm Telegram API

    add_telegram_credential

  3. Dán Bot Token vừa lấy được vào ô Access Token:

    telegram_token_input

  4. Đặt tên cho credential ở góc trên bên trái, sau đó bấm nút Save. n8n sẽ thử kết nối với bot của bạn.

    telegram_token_input

Nếu thấy hiện Connection tested successfully như trong hình là ok rồi! n8n đã có thể tích hợp với bot của bạn để bắt đầu nhận tin nhắn, tự động trả lời.

Thử nhận tin nhắn từ Telegram

Từ n8n, bạn có thể tích hợp với Telegram để gửi tin nhắn, hình ảnh, file, và nhiều tính năng khác. Có 2 nhóm tính năng chính:

  • Triggers: Kích hoạt Workflow khi có tin nhắn mới cho bot hoặc trong channel, hoặc khi người dùng bấm nút chọn
  • Actions: Gửi tin nhắn, hình ảnh, file, ...

Trong bài này, ta sẽ thử nhận tin nhắn từ Telegram với Trigger (on message) node.

Trigger (on message) - Kích hoạt Workflow khi có tin nhắn mới

  1. Tạo workflow đơn giản. Bấm vào Add First Step -> On app event -> Gõ tìm Telegram -> Chọn Trigger (on message)

    telegram_trigger

  2. Bấm Execute step. n8n sẽ chờ tin nhắn mới từ Telegram để kích hoạt workflow.

    bot_start

  3. Từ Telegram, gửi tin nhắn bất kì (hoặc /start để test) cho bot của bạn

  4. Quay lại n8n, bạn sẽ thấy workflow đã được kích hoạt.

    • Output sẽ bao gồm các thông tin về tin nhắn đã nhận được (thông tin người gửi, thời gian, tin nhắn, ...) telegram_pull_input

Output của node Trigger (on message)

Đây là output của node Trigger (on message).

[
  {
    "update_id": 744628102,
    "message": {
      "message_id": 780,
      "from": {
        "id": 622132332,
        "is_bot": false,
        "first_name": "Harry",
        "last_name": "Pham",
        "username": "codedao",
        "language_code": "en"
      },
      "chat": {
        "id": 622132332,
        "first_name": "Harry",
        "last_name": "Pham",
        "username": "codedao",
        "type": "private"
      },
      "date": 1764600952,
      "text": "/start",
      "entities": [
        {
          "offset": 0,
          "length": 6,
          "type": "bot_command"
        }
      ]
    }
  }
]

Đây là một số trường quan trọng mà các bạn cần lưu ý.

Trường Ý nghĩa Giá trị mẫu
message.message_id ID của tin nhắn trong cuộc trò chuyện (dùng để edit/xoá) 780
message.from.id ID của người gửi tin nhắn 622132332
message.from.username Username Telegram của người gửi codedao
message.chat.id Chat ID - quan trọng nhất, dùng để reply hoặc gửi tin 622132332
message.chat.type Loại chat: private, group, supergroup, hoặc channel private
message.date Thời gian gửi tin nhắn 1764600952
message.text Nội dung tin nhắn /start
message.entities Các thành phần đặc biệt trong tin nhắn (commands, links, mentions...)

Mỗi cuộc trò chuyện giữa người dùng và bot được tính là 1 chat. Để gửi tin nhắn, bạn cần biết Chat ID để bot biết gửi tin nhắn vào cuộc trò chuyện nào!

  • Nếu bạn invite bot vào 1 group, ta sẽ có Chat ID để gửi vào group đó.
  • Nếu bạn dùng Telegram để gửi tin nhắn tới account Telegram cá nhân, hãy lưu Chat ID này lại để dùng nó trong tất cả workflow gửi tin nhắn. (Chat ID này lộ cũng không quá nguy hiểm, vì phải có token mới gửi được tin nhắn)

Tạm kết

Sau bài học này, bạn đã biết cách tạo, cấu hình Telegram Bot và thử đọc tin nhắn được gửi tới.

Ở bài tiếp theo, chúng ta sẽ học thêm về cách gửi lại tin nhắn, tạo workflow cơ bản và một số điểm cần lưu ý khi dùng Telegram Node.

📚 Tài liệu tham khảo

Facebook Messenger

fb.com/toidicodedao

Email Support

[email protected]

Telegram

t.me/hoccodeai