CÁC WORKFLOW CƠ BẢN
Chuyên mục này sẽ khá dài, bạn nên chú ý và đọc kỹ để có thể thiết lập một workflow hoàn chỉnh. Làm xong một thứ gì đó rồi nâng cao sẽ dễ hơn bắt đầu với một thứ quá khó.
Còn nếu bạn cảm thấy quá dài, quá mệt để đọc thì cách dễ nhất là copy & paste cho AI Persona của bạn để brief lại (nếu bạn đã đọc qua chuyên mục đó và xây dựng cho mình một AI Persona hoàn hảo).
Hahah.
Tổng quan workflow
Workflow chạy theo lịch, lấy dữ liệu song song từ hai nguồn — Supabase và Meta Catalog API — gộp lại, lấy giá và tồn kho mới nhất, rồi đẩy thẳng lên Meta Catalog. Toàn bộ quá trình tự động, không cần can thiệp thủ công.
Catalog ID — Vào Meta Business Manager, tìm Catalog ID của bạn. Đừng ngồi gõ từng chữ số tay — chụp màn hình rồi paste cho AI Persona đọc giùm là xong. (Meta không có nút copy sẵn cho cái này, khá cùi bắp.)
Access Token — Cần có Meta Access Token hợp lệ để gọi Graph API. Nếu chưa biết cách lấy, AI Persona của bạn sẽ hướng dẫn.
Supabase table — Tạo table sản phẩm trên Supabase, sync từ Google Sheet hoặc Excel đang dùng để quản lý danh mục sản phẩm. Table này là nguồn dữ liệu giá và tồn kho cho toàn bộ workflow.
Node 1 — Schedule Trigger
Node khởi động workflow theo lịch cố định. Không cần ai bấm nút — cứ đến giờ là workflow tự chạy. Ở đây trigger được set chạy mỗi giờ để đảm bảo giá và tồn kho trên Meta Catalog luôn được cập nhật sát với thực tế.
Node 2 — Get-Meta-Catalog (HTTP Request — GET)
Gọi Meta Graph API để lấy toàn bộ danh sách sản phẩm đang có trong catalog. Kết quả trả về là list sản phẩm với retailer_id — đây là mã sản phẩm dùng để đối chiếu với dữ liệu trong Supabase ở bước tiếp theo. Node này chạy song song với Check-Supabase, không phụ thuộc nhau.
Node 3 — Check-Supabase (Supabase — getAll)
Lấy toàn bộ dữ liệu sản phẩm từ Supabase — bao gồm mã sản phẩm, giá, tồn kho. Đây là nguồn dữ liệu chính xác nhất vì Supabase được sync từ hệ thống nội bộ. Node này chạy song song với Get-Meta-Catalog — cả hai cùng lấy data một lúc để tiết kiệm thời gian thay vì chờ nhau tuần tự.
Node 4 — Merge (append)
Gộp kết quả từ hai nhánh song song lại thành một luồng duy nhất. Mode append — giữ nguyên tất cả items từ cả hai input, không loại bỏ gì. Sau bước này, node tiếp theo mới có đủ dữ liệu từ cả hai nguồn để xử lý.
Node 5 — Get-Price-Stocks (Code)
Node Code xử lý logic đối chiếu: lấy retailer_id từ danh sách Meta Catalog, tìm sản phẩm tương ứng trong data Supabase, ghép giá và tồn kho mới nhất vào. Output là list sản phẩm đã có đủ thông tin cần thiết để đẩy lên Meta. Dùng Code node ở đây vì logic đối chiếu hai nguồn dữ liệu này không có node có sẵn nào làm được.
Node 6 — Push-Price-Stock-Meta-Catalog (HTTP Request — POST)
Đẩy toàn bộ dữ liệu giá và tồn kho đã được xử lý lên Meta Catalog qua Graph API /batch endpoint. Gửi một request duy nhất chứa toàn bộ sản phẩm cần update — nhanh hơn gọi từng sản phẩm một. Sau node này, Meta Catalog đã được cập nhật xong.
Tổng quan workflow
Workflow chạy theo lịch, đọc danh mục sản phẩm từ Google Sheet, lọc giá và tồn kho, rồi đẩy song song lên ba nơi: Supabase (để workflow Meta Catalog ở trên dùng), Shopee và TikTok Shop. Toàn bộ tự động theo lịch, không cần can thiệp thủ công.
Node 1 — Schedule Trigger
Node khởi động workflow theo lịch cố định. Cứ đến giờ là toàn bộ pipeline tự chạy — lấy data, lọc, đẩy lên cả ba platform mà không cần ai thao tác.
Node 2 — Refresh-Tokens (Code)
Refresh token của cả Shopee và TikTok Shop cùng một lúc trước khi bắt đầu gọi API. Token có thời hạn — nếu không refresh thường xuyên thì các node Push phía sau sẽ báo lỗi authentication. Node này đảm bảo token luôn còn hạn trước khi workflow đi tiếp.
Node 3 — Danh Mục Sản Phẩm (Google Sheets)
Đọc toàn bộ danh mục sản phẩm từ Google Sheet — mã sản phẩm, giá, tồn kho, ID Shopee, ID TikTok. Đây là nguồn dữ liệu duy nhất cần cập nhật khi có thay đổi giá hay tồn kho, toàn bộ workflow sẽ tự sync theo.
Chọn vùng data: Chỉ định rõ dòng bắt đầu của data thực tế trong sheet — ví dụ nếu dòng 1-3 là tiêu đề và ghi chú thì set từ dòng 4 trở đi. n8n đọc đúng vùng data, không bị lẫn với header.
Node 4 — Lọc-Giá-Tồn-ID (Code)
Lọc và format lại data từ Google Sheet thành đúng cấu trúc mà từng platform yêu cầu. Shopee và TikTok có format request khác nhau — node này chuẩn bị đúng payload cho từng nơi trước khi đẩy lên. Sau node này workflow rẽ ra ba nhánh song song.
Node 5 — Push-Giá-Tồn-Supabase (HTTP Request — POST)
Đẩy giá và tồn kho lên Supabase — đây là bước cập nhật nguồn dữ liệu trung tâm để workflow Meta Catalog Sync ở trên có thể đọc và đồng bộ lên Meta. Hai workflow kết nối với nhau qua Supabase table chung.
Node 6 — Push-Shopee (HTTP Request — POST)
Gọi Shopee API để cập nhật giá và tồn kho cho từng sản phẩm theo product ID. Node này chạy song song với Push-TikTok và Push-Supabase — cả ba đẩy lên cùng lúc, không chờ nhau.
Node 7 — Push-TikTok (HTTP Request — POST)
Gọi TikTok Shop API để cập nhật giá và tồn kho. TikTok phức tạp hơn Shopee một chút — cần cả product ID lẫn product SKU ID, không chỉ một mình product ID là đủ.
Product SKU ID: TikTok không hiển thị SKU ID trực tiếp trên giao diện — cần script riêng để lấy qua API. Hỏi AI Persona của bạn, cung cấp access token là sẽ có full script luôn.
Tổng quan workflow
Workflow chạy mỗi 4 tiếng, quét toàn bộ video trên channel, lấy comment mới, dùng AI tạo reply phù hợp rồi đăng lên tự động. Không có comment nào bị bỏ sót dù channel có bao nhiêu video đi nữa.
Anthropic Console — Cần có tài khoản Anthropic và API key để dùng node Generate Reply. Nếu thấy Sonnet tốn kém thì chuyển sang Haiku — nhẹ hơn nhiều về chi phí. Không muốn dùng Anthropic thì ChatGPT API cũng được, free tier là đủ cho lượng comment thông thường.
Node 1 — Schedule Trigger (mỗi 4 tiếng)
Workflow chạy mỗi 4 tiếng một lần — đủ thường xuyên để comment không bị bỏ quên quá lâu, nhưng không quá dày để tránh chạm rate limit của YouTube API.
Node 2 — Search-Channel (HTTP Request — GET)
Lấy danh sách toàn bộ video trên channel từ YouTube Data API. Đây là bước đầu tiên để workflow biết cần quét comment ở những video nào.
Node 3 — Split Out
Tách danh sách video ra thành từng item riêng lẻ để xử lý tuần tự. Channel nhiều video thì API không thể trả về hết trong một lần — Split Out đảm bảo mỗi video được xử lý độc lập, không bị bỏ sót.
Node 4 — Get-Comment (HTTP Request — GET)
Lấy danh sách comment mới nhất của từng video từ YouTube API. Workflow chạy video nào thì lấy comment của video đó, xử lý xong mới qua video tiếp theo.
Node 5 — IF
Kiểm tra xem video có comment mới không. Nếu có thì đi tiếp sang Generate Reply — nếu không có thì dừng lại, không làm gì thêm. Node này tránh cho workflow gọi API AI không cần thiết khi video không có comment mới.
Node 6 — Generate-Reply (Anthropic)
Gọi Claude API để tạo reply phù hợp cho từng comment. Node nhận nội dung comment làm input, AI đọc và tạo reply tự nhiên theo tone và persona đã được định nghĩa trong system prompt. Tôi dùng Sonnet 4.6 với AI Persona Cass — reply ra tự nhiên, thân thiện, không giống bot.
Node 7 — Post-Reply (HTTP Request — POST)
Đăng reply vừa được AI tạo lên YouTube qua API. Sau node này comment đã được reply tự động — người xem thấy phản hồi, channel trông active, không có comment nào bị bỏ trống.