[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] Assign cattegories / tags for article / post",
  "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": "Simple Memory",
      "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 Chat Model",
      "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": "## Define repository\nDefine repository and directory in which workflow can find articles / post "
      },
      "typeVersion": 1
    },
    {
      "id": "41217dfe-2aa3-43bc-a415-88d22bb7e042",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -576
      ],
      "parameters": {
        "color": 5,
        "height": 416,
        "content": "## Get file content\nGet file content and pass it to AI Agent"
      },
      "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": "## Save propositions to Google SHeet file\n\nPrepare Google Sheet to contain following columns:\n- FileName\n- Categories\n- Proposed Categories\n- Tags\n- Proposed Tags"
      },
      "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": "Switch",
      "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シートの読み取り結果をマージ",
      "type": "n8n-nodes-base.merge",
      "position": [
        560,
        -448
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "ba6b4acc-e548-4df7-9559-bf3ba9b087b6",
      "name": "Structured Output Parser",
      "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": "## Get list of posts from Google Sheets\n\nThis step prevents repeating usage of AI Agent for previously analysed posts/pages.\n\nPrepare Google Sheet to contain following columns:\n- FileName\n- Categories\n- Proposed Categories\n- Tags\n- Proposed Tags"
      },
      "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": "## List FileNames only and Remove duplicates\n\nThis function filters out duplicate items from a list of Google Sheet objects based on the value of each item’s `FileName` property"
      },
      "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": "## Conver JSON to Array\n\nConvert from:\n```\n{\n\"path\": \"src1\"\n},\n{\n\"path\": \"src2\"\n},\n```\nTo\n```\n{\n\"googlesheetsPaths\": \n[\n\"src1\", \n\"src2\"\n]\n}\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "45a2544a-424d-466c-9fa4-afa25ea1f08c",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -1008
      ],
      "parameters": {
        "height": 352,
        "content": "## No new files in GitHub repository\n"
      },
      "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": "## Conver JSON to Array\n\nConvert complex JSON to Array\n```\n{\n\"githubPaths\": \n[\n\"src1\", \n\"src2\"\n]\n}\n```"
      },
      "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": "## Compare list from Google Sheets with list from Github\n"
      },
      "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\n\nRole of **AI Agent** is to:\n- Analyse content of the file (post/page)\n- Assign categories and tags per analysed file\n- Return JSON in format by `Structured output` like below:\n\n```\n{\n  \"old_categories\": [\"category1\"],\n  \"categories\": [\"category1\",\"category2\"],\n  \"old_tags\": [\"tag1\",\"tag2\"],\n  \"tags\": [\"tag1\",\"tag2\",\"tag3\",\"tag4\"]\n}\n```"
      },
      "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": "## No new files in GitHub repository\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e501f3f5-a580-4fdb-94cb-62bb5de8d0dc",
  "connections": {
    "1b542ec1-b963-4064-89fb-40a2a846c5f6": {
      "main": [
        [
          {
            "node": "47908ded-1702-483c-9ab9-f60a1ba3c82f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b8e31673-da84-4368-9f88-7a9cc2980e43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "48cac2b7-14b3-4d02-8db7-082c9a8a5cec": {
      "main": [
        [
          {
            "node": "9985d456-e5ec-4546-9020-ce0a0f9eb57c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1844db4c-6da3-47cb-be7a-2aad32126178": {
      "ai_memory": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "5467bd31-25c6-4133-ba33-a6c66c332881": {
      "ai_languageModel": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8e129b23-d5a7-4630-ab8a-e780373657db": {
      "main": [
        [
          {
            "node": "980668bc-d2d2-4452-8f89-b16bec365c91",
            "type": "main",
            "index": 0
          },
          {
            "node": "d462260a-ba85-4e3b-9ddf-f3e0d37ea249",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "980668bc-d2d2-4452-8f89-b16bec365c91": {
      "main": [
        [
          {
            "node": "00c43343-2e97-43fb-96d7-a1df7492516e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b8e31673-da84-4368-9f88-7a9cc2980e43": {
      "main": [
        [
          {
            "node": "935037f1-860d-42a3-b898-fccbd545c145",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "935037f1-860d-42a3-b898-fccbd545c145": {
      "main": [
        [
          {
            "node": "a1410a1b-0ce6-490e-912b-3c14107b13bb",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ba6b4acc-e548-4df7-9559-bf3ba9b087b6": {
      "ai_outputParser": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "d462260a-ba85-4e3b-9ddf-f3e0d37ea249": {
      "main": [
        [
          {
            "node": "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec135e1d-ba4d-4069-8da0-a1d663ad839c": {
      "main": [
        [
          {
            "node": "3aba4eab-3305-4f86-9976-ef33d5a7c96e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3aba4eab-3305-4f86-9976-ef33d5a7c96e": {
      "main": [
        [
          {
            "node": "1b542ec1-b963-4064-89fb-40a2a846c5f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "31799c27-6a3b-4220-bceb-e7dcf6277f5f": {
      "main": [
        [
          {
            "node": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "00c43343-2e97-43fb-96d7-a1df7492516e": {
      "main": [
        [
          {
            "node": "31799c27-6a3b-4220-bceb-e7dcf6277f5f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9985d456-e5ec-4546-9020-ce0a0f9eb57c": {
      "main": [
        [
          {
            "node": "935037f1-860d-42a3-b898-fccbd545c145",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44": {
      "main": [
        [
          {
            "node": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - コンテンツ作成, AI要約

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
OpenAI、ElevenLabs、Fal.ai を使用した動画・パ odcast・ASM R向けのウイルス性コンテンツ自動作成
OpenAI、ElevenLabs、そして Fal.ai を使って動画、ポッドキャスト、ASMR に向けたウイルスのコンテンツ作成を自動化
Set
Code
Wait
+
Set
Code
Wait
97 ノードAdam Crafts
コンテンツ作成
Bright Data MCP と AI Agents を使用してソーシャルメディアプロフィールを検索し、分析する
AIを使用した360度ソーシャルメディアレポートの生成 - Bright Data MCP
Set
Code
Form
+
Set
Code
Form
50 ノードRomuald Członkowski
リード獲得
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
💥 NanoBanana、Seedream 4、ChatGPT Image、Veo 3 を使って動画広告を自動化 - VIDEO
AI(NanoBanana、Seedream、GPT-4o、Veo 3)を使って動画広告キャンペーンを自動化し公開
Set
Code
Wait
+
Set
Code
Wait
63 ノードDr. Firas
コンテンツ作成
バッチSEOコンテンツ生成とAI画像付きWebflowドラフト作成(テンプレート)
GPT、Gemini画像、Webflowデラフトで行う大量SEOコンテンツ生成
If
Set
Code
+
If
Set
Code
54 ノードDahiana
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数29
カテゴリー2
ノードタイプ14
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34