8
n8n 中文网amn8n.com

[astro/nextjs] 为文章/帖子分配类别/标签

高级

这是一个Content Creation, AI Summarization领域的自动化工作流,包含 29 个节点。主要使用 Code, Form, Merge, Github, Switch 等节点。 使用OpenAI GPT-4、GitHub和Google Sheets为Astro/Next.js博客文章自动分类

前置要求
  • GitHub Personal Access Token
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "c3REFIr9ubIDDYJ5",
  "meta": {
    "instanceId": "2295c029f4cb86c8f849f9c87dade323734dc279619eb9e2704f8473c381e4d1",
    "templateCredsSetupCompleted": true
  },
  "name": "[astro/nextjs] 为文章/帖子分配类别/标签",
  "tags": [],
  "nodes": [
    {
      "id": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2192,
        96
      ],
      "parameters": {
        "text": "={{ $json.path }}",
        "options": {
          "systemMessage": "You are a helpful assistant which helps to assign proper tags and categories for post. Example of post is added in section <post>.  \n\nEach post has a section which starts with \"---\" and ands with next ocurance of \"---\". This section is metadata which describes the post. After second ocurance of \"---\" file has a content. \n\nRead tags and categories and assign them to <tags> and <categories> variables used later in response.\n\nBased on content please provide categories assigned to <new_assigned_categories> and tags list assigned to <new_assigned_tags> as example below:\n\n<example>\ncategories: [\"business\"] \ntags: [\"DigitalGirls\", \"ITPioneers\", \"WomenInIT\", \"IT\", \"FemalePower\", \"Debugging\", \"GraceHopper\"] \n</example>\n\nFinal result should be post with updated metadata passed to variable <content>.\n\n<post> \n--- \ntitle: \"Where Did the Term ‘Debug’ Come From? – Women in IT\" \npubDate: 2024-07-23 description: \"Did you know that the term ‘debug’ was coined by Admiral Grace Hopper?\" \ncategories: [\"business\"] \ntags: [\"DigitalGirls\", \"ITPioneers\", \"WomenInIT\", \"IT\", \"FemalePower\", \"Debugging\", \"GraceHopper\"] \ncoverImage: \"@assets/2024-07-23-skad-sie-wzielo-okreslenie-debug-kobiety-w-it.jpeg\" \n---\n\nDid you know that the term debug was coined by Admiral Grace Hopper?\nWhile working on the Mark II computer at Harvard University, a moth got trapped in a relay, interfering with the machine’s operation. Removing the dead insect was humorously referred to by Admiral Hopper as debugging.\n\nPS. After a conversation with Wioletta Klimczak, I got my hands on the book “Digital Girls. Pioneers of Polish Computer Science” by Karolina Wasielewska. The story above comes from that book. It’s proof that women are an important part of the IT world!\n\n#DigitalGirls #ITPioneers #WomenInIT #IT #FemalePower #Debugging #GraceHopper\n</post>"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "1844db4c-6da3-47cb-be7a-2aad32126178",
      "name": "简单记忆",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2272,
        288
      ],
      "parameters": {
        "sessionKey": "simple_memory",
        "sessionIdType": "customKey",
        "contextWindowLength": 2
      },
      "typeVersion": 1.3
    },
    {
      "id": "5467bd31-25c6-4133-ba33-a6c66c332881",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2128,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {
          "responseFormat": "json_object"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "7lmHcPMAjhsZFa1f",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d462260a-ba85-4e3b-9ddf-f3e0d37ea249",
      "name": "列出帖子/文章/页面",
      "type": "n8n-nodes-base.github",
      "position": [
        -240,
        512
      ],
      "webhookId": "ecf1a2e3-4fc4-4660-b4a9-a97743df2a1b",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "list",
          "value": "pjsikora",
          "cachedResultUrl": "https://github.com/pjsikora",
          "cachedResultName": "pjsikora"
        },
        "filePath": "src/content/blog/pl/",
        "resource": "file",
        "operation": "list",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "astro-n8n-test",
          "cachedResultUrl": "https://github.com/pjsikora/astro-n8n-test",
          "cachedResultName": "astro-n8n-test"
        }
      },
      "credentials": {
        "githubApi": {
          "id": "Qjzxc6aMdLBzUGJB",
          "name": "GitHub account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "3fb2d73a-f707-46dc-8357-67772d6a9b67",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        208
      ],
      "parameters": {
        "color": 6,
        "width": 256,
        "height": 480,
        "content": "## 定义仓库"
      },
      "typeVersion": 1
    },
    {
      "id": "41217dfe-2aa3-43bc-a415-88d22bb7e042",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -576
      ],
      "parameters": {
        "color": 5,
        "height": 416,
        "content": "## 获取文件内容"
      },
      "typeVersion": 1
    },
    {
      "id": "9985d456-e5ec-4546-9020-ce0a0f9eb57c",
      "name": "添加包含帖子/文章分析的行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2768,
        400
      ],
      "parameters": {
        "columns": {
          "value": {
            "Tags": "={{ JSON.stringify($json.output.old_tags) }}",
            "FileName": "={{ $('Get post/article file').item.json.path }}",
            "Categories": "={{ JSON.stringify($json.output.old_categories) }}",
            "Proposed Tags": "={{ JSON.stringify($json.output.tags) }}",
            "Proposed Categories": "={{ JSON.stringify($json.output.categories) }}"
          },
          "schema": [
            {
              "id": "FileName",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "FileName",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Categories",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Proposed Categories",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Proposed Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Proposed Tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Proposed Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit?usp=drivesdk",
          "cachedResultName": "[AstroPosts]"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sgj6aGeryqEVmS3h",
          "name": "GSheets - Piotr.Sikora.Ck@gmail.com"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "2476998a-9a1b-4d40-b9d1-32f6f68d5d02",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 368,
        "height": 464,
        "content": "## 将建议保存到 Google Sheets 文件"
      },
      "typeVersion": 1
    },
    {
      "id": "b8e31673-da84-4368-9f88-7a9cc2980e43",
      "name": "获取帖子/文章文件",
      "type": "n8n-nodes-base.github",
      "position": [
        1504,
        -352
      ],
      "webhookId": "682a79e6-7c61-452d-8170-6f83196743a8",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "list",
          "value": "pjsikora",
          "cachedResultUrl": "https://github.com/pjsikora",
          "cachedResultName": "pjsikora"
        },
        "filePath": "={{ $json.path }}",
        "resource": "file",
        "operation": "get",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "piotr-sikora.com",
          "cachedResultUrl": "https://github.com/pjsikora/piotr-sikora.com",
          "cachedResultName": "piotr-sikora.com"
        },
        "additionalParameters": {}
      },
      "credentials": {
        "githubApi": {
          "id": "Qjzxc6aMdLBzUGJB",
          "name": "GitHub account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "980668bc-d2d2-4452-8f89-b16bec365c91",
      "name": "获取表格中的行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -512,
        -512
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit?usp=drivesdk",
          "cachedResultName": "[AstroPosts]"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sgj6aGeryqEVmS3h",
          "name": "GSheets - Piotr.Sikora.Ck@gmail.com"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "00c43343-2e97-43fb-96d7-a1df7492516e",
      "name": "仅列出文件名/移除重复项",
      "type": "n8n-nodes-base.code",
      "position": [
        -240,
        -512
      ],
      "parameters": {
        "jsCode": "const filteredList = $input.all().map(item => {\n  return {\n    json: {\n      path: item.json.FileName\n    }\n  };\n});\n\n\nconst seen = new Set();\nconst unique = [];\n\nfor (const item of filteredList) {\n  const name = item.json.path;\n  if (!seen.has(name)) {\n    seen.add(name);\n    unique.push(item);\n  }\n}\n\nreturn unique;"
      },
      "typeVersion": 2
    },
    {
      "id": "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44",
      "name": "仅从 GitHub 仓库获取文件路径",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        48,
        512
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "githubPaths",
              "fieldToAggregate": "path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "31799c27-6a3b-4220-bceb-e7dcf6277f5f",
      "name": "仅从 Google Sheets 获取文件路径",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        32,
        -512
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "googlesheetsPaths",
              "fieldToAggregate": "path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3aba4eab-3305-4f86-9976-ef33d5a7c96e",
      "name": "检查新仓库文件以进行 AI 处理",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        -448
      ],
      "parameters": {
        "jsCode": "const allItems = $input.all();\n\n// Extract arrays \nconst googlePaths = allItems.find(i => i.json.googlesheetsPaths)?.json.googlesheetsPaths || [];\nconst githubPaths = allItems.find(i => i.json.githubPaths)?.json.githubPaths || [];\n\n// Compute difference: elements in githubPaths not in googlesheetsPaths\nconst difference = githubPaths.filter(path => !googlePaths.includes(path));\n\n// Return as n8n item array\nreturn difference.map(path => ({ json: { path } }));"
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "1b542ec1-b963-4064-89fb-40a2a846c5f6",
      "name": "分支",
      "type": "n8n-nodes-base.switch",
      "position": [
        1008,
        -448
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Empty JSON",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "7a2c39ae-c079-4e60-ac98-163b1b148244",
                    "operator": {
                      "type": "object",
                      "operation": "empty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Not empty JSON",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "90067dec-6a4b-4a26-8703-61d4fd44ed7a",
                    "operator": {
                      "type": "object",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "8e129b23-d5a7-4630-ab8a-e780373657db",
      "name": "表单提交时",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -832,
        -512
      ],
      "webhookId": "67880b06-ee61-4732-9324-3440d25c9f95",
      "parameters": {
        "options": {},
        "formTitle": "Start process ",
        "formDescription": "Start process of adding tags and categories"
      },
      "typeVersion": 2.3
    },
    {
      "id": "47908ded-1702-483c-9ab9-f60a1ba3c82f",
      "name": "GitHub 中没有新帖子/文章",
      "type": "n8n-nodes-base.form",
      "position": [
        1488,
        -848
      ],
      "webhookId": "bee21cb0-92f3-45a1-b680-d9fc37b4f9d8",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "List is empty",
        "completionMessage": "List of articles is empty (there is no new articles/pages in repository)"
      },
      "typeVersion": 2.3
    },
    {
      "id": "a1410a1b-0ce6-490e-912b-3c14107b13bb",
      "name": "处理完成 - 已添加类别和标签",
      "type": "n8n-nodes-base.form",
      "position": [
        2176,
        -560
      ],
      "webhookId": "bee21cb0-92f3-45a1-b680-d9fc37b4f9d8",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "Proces finished",
        "completionMessage": "Categories and tags added"
      },
      "typeVersion": 2.3
    },
    {
      "id": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
      "name": "合并 GitHub 和 Google Sheets 读取",
      "type": "n8n-nodes-base.merge",
      "position": [
        560,
        -448
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "ba6b4acc-e548-4df7-9559-bf3ba9b087b6",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2416,
        288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"old_categories\": [\"category1\"],\n  \"categories\": [\"category1\",\"category2\"],\n  \"old_tags\": [\"tag1\",\"tag2\"],\n  \"tags\": [\"tag1\",\"tag2\",\"tag3\",\"tag4\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "a637ee7d-af38-420d-8717-e82dbafb3edb",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -960
      ],
      "parameters": {
        "color": 4,
        "width": 256,
        "height": 608,
        "content": "## 从 Google Sheets 获取帖子列表"
      },
      "typeVersion": 1
    },
    {
      "id": "3fa92146-9b0d-45a9-be49-9cf6be9d66ec",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -960
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 608,
        "content": "## 仅列出文件名并移除重复项"
      },
      "typeVersion": 1
    },
    {
      "id": "1653cada-fdf6-418e-aab6-bb715d25ebf1",
      "name": "便利贴5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -960
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 608,
        "content": "## 将 JSON 转换为数组"
      },
      "typeVersion": 1
    },
    {
      "id": "45a2544a-424d-466c-9fa4-afa25ea1f08c",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -1008
      ],
      "parameters": {
        "height": 352,
        "content": "## GitHub 仓库中没有新文件"
      },
      "typeVersion": 1
    },
    {
      "id": "8b7ed568-b0fb-4589-9d5d-cf10699794d1",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        208
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 480,
        "content": "## 将 JSON 转换为数组"
      },
      "typeVersion": 1
    },
    {
      "id": "c39a9ece-2d68-47c0-b4e5-82e6acb0eb1e",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -608
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 320,
        "content": "## 比较来自 Google Sheets 的列表与来自 Github 的列表"
      },
      "typeVersion": 1
    },
    {
      "id": "97c232f0-6358-442d-a8c1-8234e7afff4d",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2080,
        -288
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 736,
        "content": "## AI Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "935037f1-860d-42a3-b898-fccbd545c145",
      "name": "循环处理帖子/页面",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1776,
        -352
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "779d1b8f-1523-4c49-bdcc-6f4ed34ca301",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        -736
      ],
      "parameters": {
        "height": 352,
        "content": "## GitHub 仓库中没有新文件"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e501f3f5-a580-4fdb-94cb-62bb5de8d0dc",
  "connections": {
    "Switch": {
      "main": [
        [
          {
            "node": "No new posts/articles in GitHub",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get post/article file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Append rows with posts / article analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "List posts/articles/pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "List FileName only / Remove duplicates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get post/article file": {
      "main": [
        [
          {
            "node": "Loop Over Posts/Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Posts/Pages": {
      "main": [
        [
          {
            "node": "Proces finished - Categories and tags added",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "List posts/articles/pages": {
      "main": [
        [
          {
            "node": "Get paths to files only from GitHub repository",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge GitHub and Google Sheets read": {
      "main": [
        [
          {
            "node": "Check new repo files for AI processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check new repo files for AI processing": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get file paths only  from GoogleSheets": {
      "main": [
        [
          {
            "node": "Merge GitHub and Google Sheets read",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List FileName only / Remove duplicates": {
      "main": [
        [
          {
            "node": "Get file paths only  from GoogleSheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append rows with posts / article analysis": {
      "main": [
        [
          {
            "node": "Loop Over Posts/Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get paths to files only from GitHub repository": {
      "main": [
        [
          {
            "node": "Merge GitHub and Google Sheets read",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, AI 摘要总结

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量29
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

外部链接
在 n8n.io 查看

分享此工作流