Mục lục bài viết
Workflow Tóm tắt Google Trends gửi qua Telegram sẽ giúp bạn tự động lấy danh sách từ khoá đang thịnh hành trên Google Trends, tổng hợp lại thành một tin nhắn gọn gàng và gửi vào Telegram theo lịch cố định mỗi ngày. Workflow gồm 5 node, chạy nối tiếp nhau.
Tổng quan kiến trúc workflow
Cơ chế hoạt động
Workflow chạy theo trình tự sau mỗi khi được kích hoạt:
- Kích hoạt theo lịch: node Schedule Trigger tự động chạy vào 2 mốc giờ cố định mỗi ngày (8h30 và 14h00). Đây là điểm khởi đầu duy nhất, không cần can thiệp thủ công.
- Gọi Google Trends RSS: node HTTP Request gửi một request GET tới địa chỉ
https://trends.google.com/trending/rss?geo=VN. Đây là feed RSS chính thức của Google Trends, trả về dữ liệu dạng XML (không phải JSON) chứa danh sách các từ khoá đang được tìm kiếm nhiều trong khoảng thời gian gần nhất tại Việt Nam. Mỗi từ khoá trending được bọc trong thẻ<item>, bên trong có tiêu đề (<title>), lượng tìm kiếm ước tính (<ht:approx_traffic>), và các tin tức liên quan (<ht:news_item>). - Parse XML bằng regex: vì n8n không có node "XML to JSON" xử lý tốt namespace ht: của Google Trends, node Code dùng regular expression để tự bóc tách thủ công:
- Quét toàn bộ khối
<item>...</item>trong chuỗi XML - Từ mỗi khối, lấy tiêu đề (ưu tiên dạng có CDATA, nếu không có thì lấy dạng thường)
- Lấy số liệu lượng tìm kiếm và tối đa 2 tin tức liên quan mỗi từ khoá
- Giới hạn kết quả ở 10 từ khoá đầu tiên để tin nhắn không quá dài
- Đồng thời tính sẵn giờ và ngày hiện tại theo múi giờ Việt Nam (Asia/Ho_Chi_Minh) để hiển thị trong tin nhắn
- Quét toàn bộ khối
- Dựng nội dung tin nhắn: node Code thứ hai nhận dữ liệu đã parse (vnTrends, timeStr, dateStr) và ghép thành một chuỗi text định dạng Markdown của Telegram. Nếu không có từ khoá nào (vnTrends rỗng), tin nhắn sẽ hiển thị dòng "Không có dữ liệu" thay vì để trống.
- Gửi qua Telegram Bot API: node Telegram cuối cùng gọi API sendMessage của Telegram, dùng Bot Token đã lưu trong credential để gửi nội dung message tới đúng chatId được chỉ định.
Thiết lập ban đầu trước khi triển khai
Trước khi bắt đầu, hãy chuẩn bị sẵn:
- Tài khoản n8n (self-hosted hoặc cloud)
- Credential Telegram Bot API đã kết nối trong n8n. Xem bài: Hướng dẫn cách tạo Bot Telegram và kết nối với n8n nhanh nhất
Hướng dẫn triển khai cấu hình Workflow
Bước 1: Cấu hình node lịch chạy (Schedule Trigger)
Node Schedule 8h30 & 14h dùng loại Schedule Trigger với hai biểu thức cron chạy song song:
- 30 8 * * * – chạy lúc 8:30 sáng mỗi ngày
- 0 14 * * * – chạy lúc 14:00 chiều mỗi ngày
Cách thiết lập:
- Kéo node Schedule Trigger vào khu vực làm việc
- Trong phần Rule → Interval, chọn kiểu Cron Expression
- Thêm 2 dòng interval với 2 biểu thức cron ở trên
- Kiểm tra và đặt múi giờ Asia/Ho_Chi_Minh trong phần cài đặt instance để giờ chạy đúng với giờ Việt Nam.
Bước 2: Cấu hình node lấy dữ liệu Google Trends (HTTP Request)
Node Fetch Google Trends VN:
- URL:
https://trends.google.com/trending/rss?geo= - Trong Options → Response → Response Format, chọn Text (vì kết quả trả về là XML, không phải JSON)
- Bật On Error → Continue (using error output) để nếu Google Trends lỗi tạm thời, workflow vẫn tiếp tục chạy thay vì dừng hẳn
Bước 3: Cấu hình node xử lý dữ liệu
Node Parse & Merge Trends dùng loại Code (JavaScript) để:
- Đọc XML trả về từ node HTTP Request phía trên
- Dùng regex bóc tách các thẻ
<item>,<title>,<ht:approx_traffic>,<ht:news_item_title>trong RSS feed - Tự phân loại dữ liệu VN/Global dựa trên chuỗi geo=VN / geo=US có trong nội dung XML trả về
- Tính thời gian hiện tại theo múi giờ Việt Nam để hiển thị trong tin nhắn
Bạn dán nguyên đoạn JavaScript xử lý parse RSS vào ô code (đoạn code này đã có sẵn trong file JSON workflow, không cần viết lại).
Bước 4: Cấu hình node dựng nội dung tin nhắn
Node Build Telegram Message này lấy dữ liệu đã parse ở bước 3 và định dạng thành chuỗi văn bản Markdown, có emoji, tiêu đề, danh sách từ khoá trending kèm số lượt tìm kiếm và tin tức liên quan. Kết quả cuối cùng là một field message chứa toàn bộ nội dung sẽ gửi đi.
Bước 5: Cấu hình node gửi Telegram
Mở node Send Telegram và điền:
| Trường | Giá trị |
| Credential | Chọn Telegram API đã kết nối |
| ChatID | ID của group/channel nhận thông báo |
| Text | {{ $json.message }} |
Bước 6: Kiểm tra và kích hoạt
- Bấm Execute Workflow để chạy thử thủ công, kiểm tra node Fetch Google Trends VN có trả về XML hợp lệ không.
- Kiểm tra tin nhắn nhận được trên Telegram có hiển thị đúng định dạng, đủ danh sách trending
- Sau khi chạy thử ổn, bấm Public ở góc trên bên phải để bật lịch chạy tự động
Lỗi thường gặp
1. Tin nhắn Telegram luôn hiện "Không có dữ liệu"
- Nguyên nhân phổ biến nhất: tham số geo= trong URL của node Fetch bị để trống hoặc sai mã quốc gia. Kiểm tra lại URL phải là
https://trends.google.com/trending/rss?geo=VN - Chạy thử riêng node Fetch Google Trends VN (nút "Test step"), xem output có phải chuỗi XML chứa các thẻ
<item>hay không. Nếu output rỗng hoặc là trang lỗi HTML, khả năng cao Google đã chặn request hoặc đổi endpoint
2. Node HTTP Request báo lỗi 429 hoặc 403
- Google có thể giới hạn tần suất gọi RSS từ cùng một IP. Vì workflow chỉ chạy 2 lần/ngày nên trường hợp này hiếm, nhưng nếu bạn test thủ công nhiều lần liên tiếp trong thời gian ngắn có thể bị chặn tạm thời, trong trường hợp đó đợi vài phút rồi thử lại.
- Vì node đã bật onError: continueRegularOutput, workflow sẽ không dừng hẳn nhưng dữ liệu output có thể chứa thông báo lỗi thay vì XML thật - cần kiểm tra output thủ công để phát hiện.
3. Tin nhắn không gửi được tới Telegram (node Send Telegram báo lỗi)
- Sai chatId: nếu bạn nhập nhầm ID hoặc chưa từng nhắn tin cho bot trước đó, Telegram sẽ trả lỗi "chat not found". Với chat cá nhân, bạn phải chủ động nhắn
/startcho bot ít nhất một lần trước khi bot có thể gửi tin cho bạn. - Sai hoặc hết hạn Bot Token trong credential: kiểm tra lại token đã dán đúng chưa, hoặc token có bị bạn vô tình revoke qua BotFather (/revoke) không.
- Bot chưa được thêm vào group (nếu gửi vào group): cần add bot vào group và cấp quyền gửi tin nhắn.
4. Node Code báo lỗi khi chạy
Thường do dữ liệu đầu vào không phải chuỗi text như mong đợi (ví dụ node Fetch trả JSON thay vì text). Kiểm tra lại node Fetch đã chọn đúng Response Format: Text trong phần Options chưa
Lưu ý khi vận hành
- Nếu workflow không ra dữ liệu, kiểm tra trước tiên tham số geo= trong URL của node Fetch Google Trends VN (xem Bước 2)
- Google Trends RSS đôi khi thay đổi cấu trúc XML — nếu tin nhắn trống dù đã sửa geo=VN, hãy chạy thử riêng node Fetch để xem nội dung XML trả về có đúng định dạng
<item>...</item>như code đang tìm không - Bot Token là thông tin nhạy cảm, không nên chia sẻ file JSON export workflow nếu chưa xoá phần credential
Hướng dẫn AI
AI Tools
Học IT
AI
Hàm Excel