GODRICH

9 n8n Workflow Templates, không cần tài khoản

n8n nối các dịch vụ lại để tự động hóa công việc, không cần viết code. Mới nghe tên n8n khi tự xây gì đó bằng AI?

Tự chạy · bấm ô để tới mục đó · cả 9 trong một zip

Cả 9 cái chạy ngay khi bạn nhấn Manual Trigger, mục gọi API công khai thì đã kiểm tra thực tế trả 200. 9 cái được xếp theo đúng thứ tự công việc thật sự diễn ra. Đầu tiên là 3 cái nhận dữ liệu (01 RSS, 02 API công khai, 03 webhook), rồi đến 2 cái chạy theo lịch (04 báo cáo tuần, 05 chia lô), tiếp theo là 3 cái gộp và dọn dữ liệu (06 merge, 07 dọn dẹp, 08 trích xuất), cuối cùng là 1 cái rẽ nhánh theo điều kiện (09 switch). Hầu hết automation bạn xây sau này cũng lớn dần theo đúng thứ tự này.

01Tổng hợp RSS hằng ngày

Schedule Trigger tự chạy mỗi sáng lúc 7 giờ (Manual Trigger cũng chạy được ngay khi bạn cần test), RSS Read đọc trang chủ Hacker News, Limit chỉ giữ 10 mục đầu, rồi node Code gộp title và link thành một khối markdown, đưa vào field digest. Dùng nó khi cần bản tin buổi sáng cho team tự chạy, hoặc chỉ đơn giản là gom các blog quan tâm về một chỗ mỗi sáng.

Schedule + ManualRSS Read → Limit → CodeV2 실행 확인
{
  "name": "Build Digest",
  "type": "n8n-nodes-base.code",
  "typeVersion": 2,
  "parameters": {
    "jsCode": "const lines = $input.all().map(item => `- [${item.json.title}](${item.json.link})`);\nconst digest = '# Daily Digest\\n\\n' + lines.join('\\n');\nreturn [{ json: { digest } }];"
  }
}

02API công khai ra bảng HTML

HTTP Request gọi API thời tiết open-meteo không cần key, rồi Set chỉ giữ lại nhiệt độ, tốc độ gió, và thời điểm trước khi node HTML với operation Convert to HTML Table dựng thành bảng. Field output của operation này tên là table, không phải html. Hợp để nhét vào một widget dashboard, hoặc dán thẳng thành bảng trong nội dung email gửi đi.

HTTP RequestSet → HTMLV2 실행 확인
{
  "name": "Build Table",
  "type": "n8n-nodes-base.html",
  "typeVersion": 1.2,
  "parameters": {
    "operation": "convertToHtmlTable",
    "options": {
      "capitalize": true,
      "caption": "Seoul current weather"
    }
  }
}

03Webhook kiểm tra rồi phản hồi

Webhook nhận một POST, IF kiểm tra emailname có mặt hay không, rồi Respond to Webhook trả 200 hoặc 400 tùy nhánh. Mục này mới xác minh được bước import — chạy thật cần một URL webhook đang sống, mà URL đó chỉ có khi n8n đang chạy. Đây là bộ khung để dùng khi bạn cần nhận dữ liệu form hoặc xử lý callback từ dịch vụ ngoài gọi vào.

WebhookIF → RespondV1 가져오기 확인
{
  "conditions": [
    {
      "id": "c1",
      "leftValue": "={{ $json.body.email }}",
      "rightValue": "",
      "operator": {
        "type": "string",
        "operation": "notEmpty",
        "singleValue": true
      }
    },
    {
      "id": "c2",
      "leftValue": "={{ $json.body.name }}",
      "rightValue": "",
      "operator": {
        "type": "string",
        "operation": "notEmpty",
        "singleValue": true
      }
    }
  ],
  "combinator": "and"
}

04Khung báo cáo hằng tuần

Schedule chạy mỗi thứ Hai lúc 09:00, HTTP lấy danh sách bài viết từ jsonplaceholder, Aggregate gộp title và số lượng thành mảng, rồi node Markdown biến mảng đó thành đoạn báo cáo, ghi vào field report. Múi giờ đặt trong cài đặt workflow. Dùng khi bạn cần KPI hằng tuần tự động, hoặc một bản tóm tắt vận hành sẵn sàng mỗi sáng thứ Hai.

Schedule triggerAtHour 9Aggregate → MarkdownV2 실행 확인
{
  "name": "Build Report",
  "type": "n8n-nodes-base.markdown",
  "typeVersion": 1,
  "parameters": {
    "mode": "markdownToHtml",
    "markdown": "={{ '# Weekly Report\\n\\n' + $json.postId.length + ' posts fetched this week.\\n\\n- ' + $json.title.slice(0, 5).join('\\n- ') }}",
    "destinationKey": "report",
    "options": {}
  }
}

05Chạy vòng lặp theo lô

Code tạo ra 25 dòng, Loop Over Items chia thành từng lô 5 dòng, rồi mỗi lô đi qua một node Set để gắn số lô và số thứ tự trước khi quay lại Loop Over Items — thiếu đường nối quay lại này thì nó chỉ chạy đúng một lần. Aggregate gộp tất cả lại ở cuối. Dạng này hợp cho việc gửi hàng loạt hoặc bất cứ khi nào bạn cần tránh giới hạn tốc độ API.

Loop Over Items 5AggregateV2 실행 확인
{
  "name": "Loop Over Items",
  "type": "n8n-nodes-base.splitInBatches",
  "typeVersion": 3,
  "parameters": {
    "batchSize": 5,
    "options": {}
  }
}

06Gộp hai nguồn theo khóa

Hai node HTTP lấy users và posts riêng biệt, rồi Merge ghép id của user với userId của post và gộp các cặp khớp thành một dòng bằng chế độ Keep Matches. Đây là dạng bạn dùng khi hai nguồn đặt tên field khóa khác nhau. Dùng khi cần nối khách hàng với đơn hàng, hoặc join hai sheet có tên cột khóa khác nhau.

HTTP ×2Merge combine by fieldV2 실행 확인
{
  "name": "Merge By User",
  "type": "n8n-nodes-base.merge",
  "typeVersion": 3.2,
  "parameters": {
    "mode": "combine",
    "combineBy": "combineByFields",
    "advanced": true,
    "mergeByFields": {
      "values": [
        {
          "field1": "id",
          "field2": "userId"
        }
      ]
    },
    "joinMode": "keepMatches",
    "outputDataFrom": "both",
    "options": {}
  }
}

07Lọc trùng, lọc điều kiện, sắp xếp

Remove Duplicates xóa các dòng trùng theo email, Filter chỉ giữ điểm từ 60 trở lên, Sort xếp điểm cao lên trước. Ba thao tác dọn dữ liệu hay gặp nhất, xếp gọn thành một hàng. Hợp để dọn danh sách lead trước khi import, hoặc dựng điểm số thành bảng xếp hạng.

Remove DuplicatesFilter ≥60 → SortV2 실행 확인
{
  "conditions": {
    "options": {
      "caseSensitive": true,
      "leftValue": "",
      "typeValidation": "strict",
      "version": 2
    },
    "conditions": [
      {
        "id": "c1",
        "leftValue": "={{ $json.score }}",
        "rightValue": 60,
        "operator": {
          "type": "number",
          "operation": "gte"
        }
      }
    ],
    "combinator": "and"
  },
  "options": {}
}

08Trích tiêu đề từ trang công khai

HTTP lấy một trang công khai mà robots.txt cho phép, dưới dạng text thuần, rồi node HTML dùng CSS selector .titleline a để chỉ rút title và link trước khi Set dọn lại kết quả. Đừng dùng cách này cho trang cần đăng nhập hay chứa dữ liệu cá nhân. Dùng để theo dõi thông báo trên một trang hay đổi, hoặc thu thập danh sách công khai mà không cần API.

HTTP → HTML extractCSS 선택자V2 실행 확인
{
  "operation": "extractHtmlContent",
  "sourceData": "json",
  "dataPropertyName": "data",
  "extractionValues": {
    "values": [
      {
        "key": "title",
        "cssSelector": ".titleline a",
        "returnValue": "text",
        "returnArray": true
      },
      {
        "key": "link",
        "cssSelector": ".titleline a",
        "returnValue": "attribute",
        "attribute": "href",
        "returnArray": true
      }
    ]
  },
  "options": {}
}

09Định tuyến theo điều kiện (Switch)

Code tạo 6 đơn hàng mẫu, Switch định tuyến theo 3 mức số tiền (dưới 50, từ 50 đến 150, từ 150 trở lên), mỗi nhánh có một Set gắn nhãn route, rồi Merge gom cả 3 nhánh lại. Nếu IF cho bạn 2 nhánh thì Switch cho bạn N nhánh, đúng theo kiểu này. Đây là dạng để xử lý theo hạng số tiền hay trạng thái, và tự động phân công người phụ trách cho từng nhánh.

Switch 3 routesSet ×3 → MergeV2 실행 확인
{
  "mode": "rules",
  "rules": {
    "values": [
      {
        "conditions": {
          "conditions": [
            {
              "id": "r1",
              "leftValue": "={{ $json.amount }}",
              "rightValue": 50,
              "operator": {
                "type": "number",
                "operation": "lt"
              }
            }
          ],
          "combinator": "and"
        },
        "outputKey": "small"
      }
    ]
  }
}

Chuẩn bị — tài khoản, quyền, phiên bản

Mọi dòng dưới đây đều ghi "không cần" nhưng bảng vẫn có ý nghĩa, vì grade và phiên bản n8n khác nhau ở từng mục. Grade đi từ V0 (cấu trúc) qua V1 (đã xác minh import) đến V2 (đã xác minh chạy thật) — trong bộ này chỉ 03 dừng ở V1, tám mục còn lại đều lên tới V2.

Mục Grade Chuẩn bị Phiên bản n8n
01 Tổng hợp RSS hằng ngày V2 không cần 2.38.5
02 API công khai ra bảng HTML V2 không cần 2.38.5
03 Webhook kiểm tra rồi phản hồi V1 (đã xác minh import; chạy thật cần URL webhook của riêng bạn) không cần 2.38.5
04 Khung báo cáo hằng tuần V2 không cần 2.38.5
05 Chạy vòng lặp theo lô V2 không cần 2.38.5
06 Gộp hai nguồn theo khóa V2 không cần 2.38.5
07 Lọc trùng, lọc điều kiện, sắp xếp V2 không cần 2.38.5
08 Trích tiêu đề từ trang công khai V2 không cần 2.38.5
09 Định tuyến theo điều kiện (Switch) V2 không cần 2.38.5

Có ba cách import một workflow: dán thẳng JSON lên canvas n8n bằng Ctrl/Cmd+V, dùng Import from File trong menu canvas và chọn file trong zip, hoặc chạy n8n import:workflow --input=file.json bằng CLI. Import xong thì nhấn Test workflow ở góc trên bên trái (hoặc nút play trên node Manual Trigger) để chạy thử ngay tại chỗ. Nếu n8n của bạn cũ hơn bảng này, bạn sẽ gặp lỗi typeVersion — xem đoạn bẫy bên dưới.

Chỗ nào dễ vỡ — một cái bẫy

Chỗ dễ vấp nhất là đoán tên field output thay vì kiểm tra thật: node HTML ở mục 02 nhìn qua tưởng sẽ ra field html, nhưng operation Convert to HTML Table thật ra đặt tên output là table — bỏ qua bước kiểm tra này thì workflow vẫn chạy bình thường, chỉ là node kế tiếp lặng lẽ không tìm thấy dữ liệu nó mong đợi. Mật khẩu mở file zip là jj9hgmc4, và sau khi mở ra, thư mục workflows/ chứa đúng 9 file JSON như trong bài này. typeVersion cũng dễ vỡ vì lý do tương tự — đoán một con số rồi n8n cũ báo lỗi "typeVersion not supported", nên kiểm tra n8n bạn đang cài thực sự hỗ trợ giá trị nào trước khi viết vào vẫn an toàn hơn.

FAQ

Có chạy được trên n8n cloud không?

Được. Không workflow nào ở đây dùng community node hay credential cần tài khoản, nên import qua menu Import là chạy được ngay. Chỉ 03 cần một URL webhook thật do n8n cloud của bạn cấp để chạy thử thật.

Nếu phiên bản n8n của mình khác thì sao?

Nếu gặp lỗi typeVersion, bạn tạo lại node đó trên canvas, export ra, rồi đọc giá trị nó thực sự lưu. File zip này đã được xác minh import và chạy thật trên n8n 2.38.5, chạy trên Node 24.

Muốn thêm node cần API key thì làm sao?

Thêm credential qua tùy chọn Authentication của node HTTP Request, hoặc bỏ một expression như {{ $env.API_KEY }} vào header để key nằm trong biến môi trường thay vì trong file. Không để key nằm thẳng trong JSON workflow khi chia sẻ cũng là điều tài liệu n8n khuyên làm.

Mới bắt đầu với n8n? Danh mục automation có thêm nhiều ví dụ cùng hướng, và trang giới thiệu ghi rõ trang này xác minh mọi thứ theo tiêu chuẩn nào trước khi đăng.

Nhập mật khẩu file nén

Mật khẩu nằm ngay trong bài viết này. Đọc tới đó bạn sẽ thấy.