Hướng dẫn kết nối & đăng bài tự động bằng n8n trên Website Zozo
Mục tiêu: Thiết lập workflow n8n để lấy dữ liệu từ Google Sheets → sinh nội dung chuẩn SEO bằng AI → tự động tìm & chèn ảnh → gửi API tạo bài viết trên Zozo → đánh dấu đã đăng trong Sheet.
Lưu ý: Bài viết có sẵn phần mô tả, từng bước chi tiết và ghi chú theo node.
1) Tổng quan & ý nghĩa
n8n là gì? n8n là nền tảng tự động hóa workflow mã nguồn mở, giúp kết nối dịch vụ và API để thực thi quy trình tự động.
Lợi ích khi dùng n8n cho vận hành Zozo:
- Tiết kiệm thời gian đăng bài & giảm lỗi thủ công.
- Tích hợp AI để sinh nội dung chuẩn SEO, cấu trúc HTML rõ ràng.
- Tự động tìm ảnh và chèn đúng vị trí trong bài.
- Đẩy bài qua API Zozo và theo dõi trạng thái trên Google Sheets.
2) Các mô hình triển khai phổ biến
2.1. Đăng bài tự động từ Google Sheets → Zozo
Dùng Sheets làm nguồn dữ liệu, AI sinh nội dung & tìm ảnh, gửi API Zozo để tạo bài viết.
2.2. Đồng bộ nội dung/sản phẩm đa nguồn
Đồng bộ từ Excel/Shopify/Zoho sang Zozo thông qua API.
2.3. Phân phối đa kênh
Sau khi tạo bài trên Zozo có thể tự động chia sẻ lên Facebook/Zalo OA/email.
3) Chuẩn bị bắt buộc
3.1. Bật & lấy API Token Zozo
Vào Zozo Admin → Kênh bán hàng→ API → bật API → tạo api_token
. Ghi lại token để dùng trong n8n. Link hướng dẫn chi tiết (https://zozo.vn/tai-lieu-huong-dan/huong-dan-ket-noi-su-dung-api-connect-v1-tren-nen-tang-zozo-website).
3.2. Tạo Google Sheets dữ liệu
Tạo file, ví dụ: postnewn8n
với các cột:
name
(Tiêu đề)description
(Brief nội dung)image
(URL ảnh đại diện, có thể trống)categories
(Danh mục, ví dụ:["Tin tức","Hướng dẫn"]
)status
(Số nguyên, mặc định1
=đăng)author
(Tên tác giả)posted
(TRUE/FALSE – bài đã đăng)
3.3. Khóa API tìm ảnh
- Wikimedia Commons: không cần API key.
- Serper (Google Images): tạo
X-API-KEY
trên https://serpapi.com/manage-api-key (khuyến nghị lưu ở Credentials của n8n).
4) Kiến trúc workflow (mô hình hoạt động)
Lịch chạy → Đọc Sheets → AI sinh HTML → Chuẩn hoá → Trích H2 làm từ khóa ảnh → AI sinh câu truy vấn ảnh → Tìm ảnh (Wikimedia & Serper) → Chèn ảnh → POST Zozo → Đánh dấu đã đăng.

5) Hướng dẫn chi tiết (Step-by-Step)
Bước 1. Tạo workflow mới
Vào n8n → Workflows → New, đặt tên: Auto Publish to Zozo.
Bước 2. Node Schedule Trigger (Kích hoạt theo lịch)
Chức năng: Kích hoạt mỗi X phút để quét bài mới.
Cấu hình khuyến nghị:
- Every:
30
minutes (giảm rủi ro rate limit so với 1 phút).
Lưu ý: Tần suất cao có thể gây trùng lặp xử lý nếu không lọc tốt dữ liệu.
Bước 3. Node Google Sheets → Read Rows
Chức năng: Đọc các hàng chưa đăng từ sheet.
Cấu hình:
- Spreadsheet:
postnewn8n
- Filter: chỉ lấy hàng
posted != TRUE
- Trả về thêm
row_number
để cập nhật sau.
Lưu ý: Đảm bảo quyền OAuth cho n8n với Google Sheets.
Bước 4. Node Set / Edit Fields (Chuẩn hóa input)
Chức năng: Chuẩn hóa trường name
, description
… để đưa vào AI.
Lưu ý: Loại bỏ HTML không cần thiết trong description
(nếu có).
Bước 5. Node OpenAI Chat hoặc Google Gemini (Sinh HTML bài viết)
Chức năng: Sinh bài viết chuẩn SEO dạng HTML fragment.
Prompt gợi ý (rút gọn):
Yêu cầu
- Độ dài: ≥ 1300 từ
- Cấu trúc:
- Tiêu đề chính (H1 – chỉ là mô tả, không dùng thẻ)
- 5–7 mục cấp 2 (H2 – chỉ là mô tả), mỗi mục 2–3 đoạn văn
- Ngay dưới mỗi mục cấp 2 chèn 1 ảnh minh hoạ, đặt placeholder:
IMG src="__IMAGE_NEEDED__"
- Không sinh phần tử html/body hay thẻ ngoài phần nội dung
Lưu ý: Lưu API key trong Credentials; không hardcode.
Bước 6. Node Code → Normalize HTML
Chức năng: Loại bỏ escape, đảm bảo đầu ra có { name, html, articleIndex }
.
Lưu ý: Giữ nguyên thẻ article
, h2
để làm mốc chèn ảnh.
Bước 7. Node Code → Extract Image Keywords
Chức năng: Trích tất cả tiêu đề h2
làm chủ đề ảnh, tạo biến truy vấn (hint/ngữ cảnh).
Lưu ý: Loại bỏ ký tự đặc biệt, giữ từ khóa cốt lõi.
Bước 8. Node AI Agent → Build Image Queries
Chức năng: Sinh câu truy vấn ảnh (VI/EN), thêm minus terms để lọc nhiễu.
Đầu ra mẫu:
{ "query_sentence_vi": "bàn làm việc tối giản trong văn phòng hiện đại", "query_sentence_en": "minimalist desk in a modern office", "keywords_main": ["desk","workspace","modern"], "minus_terms": ["logo","watermark","stock icon"] }
Bước 9. Node HTTP → Wikimedia Commons & HTTP → Serper /images
Chức năng: Tìm ảnh minh họa theo mỗi mục h2
.
Cấu hình chung:
- Wikimedia: dùng endpoint
action=query∝=imageinfo
, kích thước thumb >= 1200px. - Serper: gắn header
X-API-KEY
từ Credentials, tham sốq
lấy từ câu truy vấn AI.
Lưu ý: Ưu tiên ảnh lớn, loại watermark/logo, tránh sprite/thumbnail nhỏ.
Bước 10. Node Code → Pick & Merge URLs
Chức năng: Chấm điểm & chọn 1 URL ảnh tốt/tiêu đề, gộp danh sách URL theo thứ tự mục.
Lưu ý: Ràng buộc số lượng ảnh = số placeholder để tránh lệch vị trí.
Bước 11. Node Merge (theo articleIndex
)
Chức năng: Ghép mảng URL ảnh vào item HTML tương ứng.
Bước 12. Node Code → Fill Placeholders
Chức năng: Thay src="__IMAGE_NEEDED__"
bằng URL ảnh tương ứng; thiết lập metadata.
Quy tắc ảnh đại diện: Ưu tiên cột image
từ Sheet; nếu trống → dùng ảnh đầu tiên trong bài.
Fallback: Có thể chỉ định 1 ảnh mặc định nếu thiếu kết quả tìm kiếm.
Bước 13. Node HTTP → Zozo API /api/v1/news/add
Chức năng: Gửi bài viết lên Zozo.
Headers mẫu:
{ "Content-Type": "application/json", "api_token": "" }
Payload mẫu:
{ "name": "Tiêu đề bài", "description": "
", "image": "https://example.com/cover.jpg", "categories": ["Tin tức","Hướng dẫn"], "status": 1, "author": "Biên tập viên" }
Lưu ý: Lưu token ở Credentials; kiểm tra mã phản hồi & nội dung lỗi để không đánh dấu đã đăng khi POST thất bại.
Bước 14. Node Google Sheets → Update Row
Chức năng: Cập nhật posted = TRUE
với đúng row_number
.
Lưu ý: Chỉ cập nhật khi bước POST Zozo trả về thành công.
6) Dữ liệu demo (để thử nghiệm nhanh)
6.1. Dòng mẫu trong Google Sheets
name: 10 mẹo tối ưu góc làm việc tại nhà description: Bài viết chia sẻ mẹo bố trí, lựa chọn nội thất và ánh sáng cho góc làm việc... image: (để trống) categories: ["Hướng dẫn","Nội thất"] status: 1 author: Nội dung Zozo posted: FALSE
6.2. Kết quả HTML (rút gọn sau khi AI sinh & đã chèn ảnh)
7) Lưu ý vận hành & bảo mật
- Tần suất chạy: 30 – 60 phút/lần để giảm rủi ro rate limit.
- Credentials: Lưu
api_token
Zozo vàX-API-KEY
Serper trong Credentials, không hardcode. - Xử lý lỗi: Thêm nhánh kiểm tra response; chỉ cập nhật
posted=TRUE
khi thành công. - Bản quyền ảnh: Wikimedia an toàn hơn; với ảnh web công cộng cần kiểm tra giấy phép trước khi xuất bản.
8) Câu hỏi thường gặp
Không tìm thấy ảnh phù hợp thì sao?
Thiết lập ảnh dự phòng (fallback) trong Node Fill Placeholders hoặc cho phép dùng ảnh đại diện từ cột image
trong Sheet.
Làm sao tránh đăng trùng?
Luôn lọc chỉ lấy hàng có posted != TRUE
và cập nhật posted=TRUE
ngay sau khi POST thành công.
Bài dài quá/thiếu mục?
Điều chỉnh prompt AI: số lượng h2 và h3, độ dài từ, và yêu cầu chèn ảnh.
Link download Workflow và file Google Sheet:
- Workflow : demon8n
- Google sheet: postnewn8n
Chia sẻ:
Bạn có câu hỏi cần giải đáp
Gửi ngay câu hỏi cho chúng tôi để nhận được những tư vấn, giải đáp hữu ích nhất