Instagramの趨勢電卓ブックからSEOコンテンツを生成して保存(SharePoint/Drive/Dropbox)

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、47個のノードを含みます。主にIf, Set, Code, Wait, Gmailなどのノードを使用。 GPT-4o、FAL AI、複数ストレージによるトレンドの自動SEOコンテンツ生成

前提条件
  • Googleアカウント + Gmail API認証情報
  • HTTP Webhookエンドポイント(n8nが自動生成)
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "J5BZO9ezilMiswH7",
  "meta": {
    "instanceId": "2cf742429c2e3ee4e5a20069d3d8a75208519303b864f026a79464efa726bd95",
    "templateCredsSetupCompleted": true
  },
  "name": "Generate SEO content from trends spreadsheet to storage (SharePoint/Drive/Dropbox)",
  "tags": [
    {
      "id": "wpMIpESnBZpdPCpj",
      "name": "Marketing",
      "createdAt": "2025-06-03T11:38:37.020Z",
      "updatedAt": "2025-06-03T11:38:37.020Z"
    }
  ],
  "nodes": [
    {
      "id": "5a9c11b3-a0d8-419f-a447-828ca7908f0a",
      "name": "トレンドデータを読み取る",
      "type": "n8n-nodes-base.spreadsheetFile",
      "position": [
        -4288,
        -2048
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "9988898b-23ab-4b37-8bc2-76a97f96c669",
      "name": "トレンドからトピックを選択",
      "type": "n8n-nodes-base.code",
      "position": [
        -4016,
        -2048
      ],
      "parameters": {
        "jsCode": "// Get all trends from the spreadsheet\nconst trends = $('Read Trends Data').all().map(item => item.json.Trend).filter(trend => trend);\n\n// Random selection\nconst randomTopic = trends[Math.floor(Math.random() * trends.length)];\n\n// For cyclic selection, you could implement a counter mechanism\n// This is a simplified version using random selection\n\nreturn {\n  json: {\n    Selected_Topic: randomTopic,\n    Available_Trends: trends,\n    Selection_Method: 'Random'\n  }\n};"
      },
      "typeVersion": 1
    },
    {
      "id": "362b5cd0-5253-4ffe-84dc-d1c286977b7d",
      "name": "ニュースレターを作成",
      "type": "n8n-nodes-base.code",
      "position": [
        -2608,
        -2512
      ],
      "parameters": {
        "jsCode": "// Get the raw AI output (string with possible markdown)\nlet rawOutput = $node[\"Prepare Newsletter Data\"].json.output;\n\n// Strip markdown code block if present (```json ... ```)\nrawOutput = rawOutput.replace(/```json|```/g, '').trim();\n\n// Parse cleaned JSON string\nconst aiContent = JSON.parse(rawOutput);\n\n// Get template and selected topic\nconst templateContent = $node[\"Extract from Text File\"].json.data;\nconst selectedTopic = $json.Selected_Topic || 'Thema fehlt';\n\n// Helper for safe replacements\nconst getSafe = (obj, key) => obj?.[key] ?? 'undefined';\n\n// Replace placeholders for German content\nlet newsletterContent = templateContent;\nnewsletterContent = newsletterContent.replace(/\\{\\{INTRODUCTION_DE\\}\\}/g, getSafe(aiContent, 'INTRODUCTION_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_DE\\}\\}/g, getSafe(aiContent, 'TOPIC_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{DESCRIPTION_DE\\}\\}/g, getSafe(aiContent, 'DESCRIPTION_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER1_DE\\}\\}/g, getSafe(aiContent, 'TEASER1_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER2_DE\\}\\}/g, getSafe(aiContent, 'TEASER2_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER3_DE\\}\\}/g, getSafe(aiContent, 'TEASER3_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{CTA_DE\\}\\}/g, getSafe(aiContent, 'CTA_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_TEXT_DE\\}\\}/g, getSafe(aiContent, 'FOOTER_TEXT_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_NAME_DE\\}\\}/g, getSafe(aiContent, 'FOOTER_NAME_DE'));\n\n// Replace placeholders for English content\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_TITLE_EN\\}\\}/g, getSafe(aiContent, 'TOPIC_TITLE_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{INTRODUCTION_EN\\}\\}/g, getSafe(aiContent, 'INTRODUCTION_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_EN\\}\\}/g, getSafe(aiContent, 'TOPIC_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{DESCRIPTION_EN\\}\\}/g, getSafe(aiContent, 'DESCRIPTION_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER1_EN\\}\\}/g, getSafe(aiContent, 'TEASER1_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER2_EN\\}\\}/g, getSafe(aiContent, 'TEASER2_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER3_EN\\}\\}/g, getSafe(aiContent, 'TEASER3_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{CTA_EN\\}\\}/g, getSafe(aiContent, 'CTA_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_TEXT_EN\\}\\}/g, getSafe(aiContent, 'FOOTER_TEXT_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_NAME_EN\\}\\}/g, getSafe(aiContent, 'FOOTER_NAME_EN'));\n\n// Add date if needed (you can add this to template if required)\nnewsletterContent = newsletterContent.replace(/\\{\\{DATE\\}\\}/g, new Date().toLocaleDateString('de-DE'));\n\n// Return final output\nreturn {\n  json: {\n    newsletter_content: newsletterContent,\n    topic: selectedTopic,\n    topic_de: getSafe(aiContent, 'TOPIC_DE'),\n    topic_en: getSafe(aiContent, 'TOPIC_EN'),\n    generated_date: new Date().toISOString(),\n    // Include all generated content for debugging/reference\n    ai_content: aiContent\n  }\n}; "
      },
      "typeVersion": 1
    },
    {
      "id": "7e3d41de-6fdd-4b7d-8e56-2f967108dad2",
      "name": "承認ステータスを確認",
      "type": "n8n-nodes-base.if",
      "position": [
        624,
        -2144
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.data.approved }}",
              "value2": "true",
              "operation": "contains"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "85b0946e-4df0-43e5-9615-020b326b85c0",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -3424,
        -2320
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "E4PFATctY0kV00hl",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dca2ef6d-5179-46a4-b916-5f2bfcf79d1e",
      "name": "トレンドXLSXを取得",
      "type": "n8n-nodes-base.microsoftSharePoint",
      "position": [
        -4512,
        -2048
      ],
      "parameters": {
        "file": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWA7UGSM3K5CVPFDYJROPHJOTUYP5",
          "cachedResultName": "social-media-trends.xls"
        },
        "site": {
          "__rl": true,
          "mode": "list",
          "value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
          "cachedResultName": "plemeo"
        },
        "folder": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWAZCILJ3WHMIXBGZA2UP2JMQ5CXO",
          "cachedResultName": "Newsletter Workflow"
        },
        "requestOptions": {}
      },
      "credentials": {
        "microsoftSharePointOAuth2Api": {
          "id": "jZkLTQXyVEzxtmp3",
          "name": "Microsoft SharePoint account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c8d706a3-3bad-4686-a712-350b49314935",
      "name": "ニュースレターテンプレートを取得",
      "type": "n8n-nodes-base.microsoftSharePoint",
      "position": [
        -3024,
        -2512
      ],
      "parameters": {
        "file": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWAZJXIV2AOHITFCL5DPA4QV764XS",
          "cachedResultName": "newsletter_template.html"
        },
        "site": {
          "__rl": true,
          "mode": "list",
          "value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
          "cachedResultName": "plemeo"
        },
        "folder": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWAZCILJ3WHMIXBGZA2UP2JMQ5CXO",
          "cachedResultName": "Newsletter Workflow"
        },
        "requestOptions": {}
      },
      "credentials": {
        "microsoftSharePointOAuth2Api": {
          "id": "jZkLTQXyVEzxtmp3",
          "name": "Microsoft SharePoint account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d1466c51-eb0b-4994-ac1a-e234821de281",
      "name": "スイッチ",
      "type": "n8n-nodes-base.switch",
      "position": [
        -2688,
        -1760
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "0de41f03-c4cc-45d8-bb11-0458995cdb2d",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
                    "rightValue": "true"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "9ebba67d-70fb-4fcd-b62a-5ea6d97a0a3c",
                    "operator": {
                      "type": "boolean",
                      "operation": "false",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
                    "rightValue": "false"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "0b9a10a8-c84a-47ba-bd8f-0d01d86f013f",
      "name": "動画を取得",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1824,
        -1824
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/kling-video/requests/{{ $('Create FAL Video').item.json.request_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "logs",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "db8e8f18-f2d8-476f-ac83-b365aa67451c",
      "name": "FAL動画を作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2320,
        -1760
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/kling-video/v2/master/image-to-video",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "={{ $('Parse Fields').item.json.video_prompt }}"
            },
            {
              "name": "image_url",
              "value": "={{ $('Switch').item.json.downloadUrl }}"
            },
            {
              "name": "duration",
              "value": "={{ $('Configuration Settings').first().json.ENV_FALAI_VIDEO_DURATION }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2a729954-8812-473e-a0be-0c9399a4c454",
      "name": "音声を作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1376,
        -1760
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/lyria2",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "={{ $('Parse Fields').item.json.audio_prompt }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
      "name": "音声を待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1152,
        -1760
      ],
      "webhookId": "ddffe40c-99fa-4a7d-a626-902d8dd363d9",
      "parameters": {
        "amount": 59
      },
      "typeVersion": 1.1
    },
    {
      "id": "a172b117-221e-4707-a213-f70397e70418",
      "name": "音声を取得",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -944,
        -1824
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/lyria2/requests/{{ $('Create Audio').item.json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f4b95592-3803-4dca-a41d-71bd20746cb4",
      "name": "マージリクエストを作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -496,
        -1760
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ffmpeg-api/merge-audio-video",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "video_url",
              "value": "={{ $('Get Video').first().json.video.url }}"
            },
            {
              "name": "audio_url",
              "value": "={{ $json.audio.url }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f419cf55-ca78-4beb-b62d-910e1db9e841",
      "name": "マージを待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        -272,
        -1760
      ],
      "webhookId": "ffb62d76-30ac-49b9-a29e-f2ff100522b9",
      "parameters": {
        "amount": 50
      },
      "typeVersion": 1.1
    },
    {
      "id": "336374fa-8e2d-4402-b152-d68fc407a885",
      "name": "マージ済み動画を取得",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -64,
        -1760
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $('Create Merge Request').item.json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d4449512-70d3-4856-b5fc-606b7b505ff0",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        128,
        -2192
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "includeUnpaired": true
        },
        "combineBy": "combineByPosition",
        "numberInputs": 5
      },
      "typeVersion": 3
    },
    {
      "id": "90347ce0-1238-448d-abf2-96ecb228b8e0",
      "name": "設定",
      "type": "n8n-nodes-base.set",
      "position": [
        -4752,
        -2048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e7c84a97-6018-4a2d-a4fa-e7565c5cd063",
              "name": "ENV_FALAI_VIDEO_DURATION",
              "type": "string",
              "value": "={{ $json.video_duration }}"
            },
            {
              "id": "431d7768-f55f-4ea8-b5db-0ca5f90b87ae",
              "name": "ENV_APPROVER_EMAIL",
              "type": "string",
              "value": "test@mail.com"
            },
            {
              "id": "5b27d8be-cf58-481d-bf03-7298f532a250",
              "name": "ENV_USECASE",
              "type": "string",
              "value": "={{ $json.usecase }}"
            },
            {
              "id": "f59f8ef5-853f-4457-a3e1-458f270d1955",
              "name": "ENV_INCLUDE_VIDEO",
              "type": "boolean",
              "value": "={{ $json.include_video }}"
            },
            {
              "id": "aef0d1ef-731d-4b18-b144-c810e33295fe",
              "name": "ENV_FALAI_APIKEY",
              "type": "string",
              "value": "<YOUR_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5a58eb7e-1993-4a8e-9d66-53b33b3d11de",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -3408,
        -1856
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "chatgpt-4o-latest"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "E4PFATctY0kV00hl",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
      "name": "動画および音声プロンプトを生成",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -3392,
        -2064
      ],
      "parameters": {
        "text": "=You are a Social Media Content Creator. The goal is to create a video, audio and image that will get posted along with a blog text as a blog post to the website.\nCreate a Prompt for video generation, audio generation and image generation that is in line with the usecase and the topic. The prompt should be maximum 1 sentence (short to medium length). The image should not contain any text or images that have text in it (i.e. computer screen with text). The image prompt should maximum have 110 characters.\n\n** USE-CASE ***\n{{ $('Configuration Settings').first().json.ENV_USECASE }}\n\n** BLOG POST TOPIC ***\n{{ $('Select Topic from Trends').first().json.Selected_Topic }}\n\nOutput the 3 fields in a json format with \"video_prompt\" and \"audio_prompt\" and \"image _prompt\".",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "0639f081-0402-4534-b448-d23e45032037",
      "name": "意図を判定",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -5392,
        -2048
      ],
      "parameters": {
        "text": "=Please extract 3 fields out of the following query. Respond with a valid JSON object.\n1) \"usecase\" - string\n2) \"include_video\" - boolean, if not determined \"false\"\n3) \"video_duration\" - string, if not determined \"5\". If user wants more than 5, set it to \"10\". Possible values: either \"5\" or \"10\". If the user wants less than 5, set it to \"5\".\n\n** USER QUERY ***\n{{$('Receive Request').first().json.body.text }}\n",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "a6f8688e-95a7-4169-9224-682762a8372b",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -5312,
        -1824
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "chatgpt-4o-latest"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "E4PFATctY0kV00hl",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aa3ab2ba-e08b-49cf-ac57-3789107435c2",
      "name": "フィールドを解析",
      "type": "n8n-nodes-base.code",
      "position": [
        -3024,
        -2064
      ],
      "parameters": {
        "jsCode": "const item = $input.first();\nlet raw = item.json.output;\n\n// Remove markdown code block wrapper if present\nraw = raw.replace(/```json\\s*|\\s*```/g, \"\");\n\n// Now parse as JSON\nconst prompts = JSON.parse(raw);\n\n// Assign as fields\nitem.json.video_prompt = prompts.video_prompt;\nitem.json.audio_prompt = prompts.audio_prompt;\nitem.json.image_prompt = prompts.image_prompt;\n// Create random 8-character filename\nitem.json.random_filename = Math.random().toString(36).substring(2, 10);\n\nreturn [item];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "38f5414a-7e8b-4350-8c15-474d44453602",
      "name": "意図フィールドを解析",
      "type": "n8n-nodes-base.code",
      "position": [
        -4992,
        -2048
      ],
      "parameters": {
        "jsCode": "const item = $input.first();\nlet raw = item.json.output;\n\n// Remove markdown code block wrapper if present\nraw = raw.replace(/```json\\s*|\\s*```/g, \"\");\n\n// Now parse as JSON\nconst prompts = JSON.parse(raw);\n\n// Assign as fields\nitem.json.usecase = prompts.usecase;\nitem.json.include_video = prompts.include_video;\nitem.json.video_duration = prompts.video_duration;\n\nreturn [item];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "50c07304-8521-43f7-9e0c-16fe48ed90e2",
      "name": "HTMLをバイナリに変換",
      "type": "n8n-nodes-base.code",
      "position": [
        832,
        -2144
      ],
      "parameters": {
        "jsCode": "// Convert HTML content into binary buffer\nconst html = $('Build Newsletter').first().json.newsletter_content;\nconst fileName = \"test\"\n\nreturn [{\n  binary: {\n    data: {\n      data: Buffer.from(html, 'utf8'),\n      mimeType: \"text/html\",\n      fileName: `${fileName}.html`\n    }\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "da4da730-32f9-47e8-92a8-2ad2651376eb",
      "name": "TXTをバイナリに変換",
      "type": "n8n-nodes-base.code",
      "position": [
        2048,
        -2144
      ],
      "parameters": {
        "jsCode": "const url = $('Get Merged Video').first().json.video.url;\nconst fileName = \"video_url\";\n\nreturn [{\n  binary: {\n    data: {\n      data: Buffer.from(url, 'utf8'),\n      mimeType: \"text/plain\", // ✅ correct MIME type for .txt\n      fileName: `${fileName}.txt`\n    }\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ac207979-019c-47fe-a7a1-d53d70afbb35",
      "name": "JPGをバイナリに変換",
      "type": "n8n-nodes-base.code",
      "position": [
        1280,
        -2144
      ],
      "parameters": {
        "jsCode": "const source = $('Generate Image').first();\n\nreturn [{\n  binary: {\n    data: source.binary.data\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "c8684458-4bb9-45ee-af72-adea5b174168",
      "name": "動画URLが存在する場合は保存",
      "type": "n8n-nodes-base.if",
      "position": [
        1760,
        -2128
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "21f6961e-0671-4a85-bddf-939dab2e8cb0",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "cdbc12f2-d5f3-4236-a136-b8259f3d12ee",
      "name": "HTMLをアップロード",
      "type": "n8n-nodes-base.microsoftSharePoint",
      "position": [
        1056,
        -2144
      ],
      "parameters": {
        "site": {
          "__rl": true,
          "mode": "list",
          "value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
          "cachedResultName": "plemeo"
        },
        "folder": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
          "cachedResultName": "SEO Workflow"
        },
        "fileName": "=/{{ $('Parse Fields').first().json.random_filename }}.html",
        "operation": "upload",
        "fileContents": "=data",
        "requestOptions": {}
      },
      "credentials": {
        "microsoftSharePointOAuth2Api": {
          "id": "jZkLTQXyVEzxtmp3",
          "name": "Microsoft SharePoint account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "270a6ba6-83cd-45fd-a733-7799f787b244",
      "name": "JPGをアップロード",
      "type": "n8n-nodes-base.microsoftSharePoint",
      "position": [
        1504,
        -2144
      ],
      "parameters": {
        "site": {
          "__rl": true,
          "mode": "list",
          "value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
          "cachedResultName": "plemeo"
        },
        "folder": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
          "cachedResultName": "SEO Workflow"
        },
        "fileName": "=/{{ $('Parse Fields').first().json.random_filename }}.jpg",
        "operation": "upload",
        "fileContents": "=data",
        "requestOptions": {}
      },
      "credentials": {
        "microsoftSharePointOAuth2Api": {
          "id": "jZkLTQXyVEzxtmp3",
          "name": "Microsoft SharePoint account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3",
      "name": "動画URLをアップロード",
      "type": "n8n-nodes-base.microsoftSharePoint",
      "position": [
        2304,
        -2144
      ],
      "parameters": {
        "site": {
          "__rl": true,
          "mode": "list",
          "value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
          "cachedResultName": "plemeo"
        },
        "folder": {
          "__rl": true,
          "mode": "list",
          "value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
          "cachedResultName": "SEO Workflow"
        },
        "fileName": "={{ $('Parse Fields').first().json.random_filename }}.txt",
        "operation": "upload",
        "fileContents": "=data",
        "requestOptions": {}
      },
      "credentials": {
        "microsoftSharePointOAuth2Api": {
          "id": "jZkLTQXyVEzxtmp3",
          "name": "Microsoft SharePoint account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9ae9a529-370b-4d2d-acb8-ad3e3f1d3913",
      "name": "メッセージを送信して応答を待機",
      "type": "n8n-nodes-base.gmail",
      "position": [
        400,
        -2144
      ],
      "webhookId": "28fef477-06b8-4ddf-b656-23e09ba021f5",
      "parameters": {
        "sendTo": "={{$('Configuration Settings').first().json.ENV_APPROVER_EMAIL}}",
        "message": "={{ $json.newsletter_content }}\n\n<div style=\"margin-top:32px; text-align:center;\">\n  <img src=\"{{ $('Switch').item.json.downloadUrl }}\" style=\"max-width:100%; height:auto;\">\n</div>\n\n\n{{ $json.video?.url ? `\n  <div style=\"margin-top:24px; text-align:center;\">\n    <a href=\"${$json.video.url}\" target=\"_blank\" style=\"font-size:18px; color:#1276d3;\">\n      ▶ Watch Video\n    </a>\n  </div>\n` : '' }}\n",
        "options": {},
        "subject": "SEO Content Approval",
        "operation": "sendAndWait",
        "approvalOptions": {
          "values": {
            "approvalType": "double"
          }
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "fBvSTCpGJatuzJAy",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c3910d9b-81af-40c2-a0ef-e7953c265d9f",
      "name": "Base64フィールドを設定",
      "type": "n8n-nodes-base.set",
      "position": [
        -2512,
        -2064
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7ba2499f-53d2-4f5c-9a4a-ee8b61a97d5b",
              "name": "base64",
              "type": "string",
              "value": "={{ $('Generate Image').item.binary.data.data }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "efeefb3f-4856-4136-a230-af280b346468",
      "name": "Base64をファイルに変換",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        -2288,
        -2064
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "base64"
      },
      "typeVersion": 1.1
    },
    {
      "id": "e493b67f-360c-464c-a8b7-dae374751da7",
      "name": "リクエストを受信",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -5616,
        -2048
      ],
      "webhookId": "ff9c853e-f76e-4722-ba37-433ad1750e6b",
      "parameters": {
        "path": "ff9c853e-f76e-4722-ba37-433ad1750e6b",
        "options": {
          "rawBody": true
        },
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
      "name": "ニュースレターデータを準備",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -3408,
        -2512
      ],
      "parameters": {
        "text": "=You are a marketing copywriter tasked with creating content for a B2B newsletter on the topic: \"{{ $('Select Topic from Trends').first().json.Selected_Topic }}\".\n\nThe newsletter template uses the following structure for BOTH German and English versions:\n\n**German Content:**\n- {INTRODUCTION_DE}: A 2–3 sentence engaging intro that outlines why the topic is relevant now\n- {TOPIC_DE}: The main topic/headline for the section (max. 8 words)\n- {DESCRIPTION_DE}: A detailed description of what's new or important about this topic (3-4 sentences)\n- {TEASER1_DE}, {TEASER2_DE}, {TEASER3_DE}: Three highlight points showcasing key benefits, insights, or developments (1-2 sentences each)\n- {CTA_DE}: A compelling call-to-action encouraging engagement (max. 20 words)\n- {FOOTER_TEXT_DE}: Professional closing message (1-2 sentences)\n- {FOOTER_NAME_DE}: Sender name/signature\n\n**English Content:**\n- {TOPIC_TITLE_EN}: Main newsletter title in English (max. 8 words)\n- {INTRODUCTION_EN}: English version of the engaging intro (2–3 sentences)\n- {TOPIC_EN}: English version of the main topic/headline (max. 8 words)\n- {DESCRIPTION_EN}: English version of the detailed description (3-4 sentences)\n- {TEASER1_EN}, {TEASER2_EN}, {TEASER3_EN}: English versions of the three highlight points (1-2 sentences each)\n- {CTA_EN}: English version of the call-to-action (max. 20 words)\n- {FOOTER_TEXT_EN}: English version of professional closing message (1-2 sentences)\n- {FOOTER_NAME_EN}: English version sender name/signature\n\nTone: professional but accessible, informative, slightly optimistic  \nAudience: decision-makers and professionals in marketing, tech, and innovation roles  \nCompany Context: plemeo.ai (AI-powered marketing solutions)\n\nPlease return the result as structured JSON in this format:\n\n```json\n{\n  \"INTRODUCTION_DE\": \"\",\n  \"TOPIC_DE\": \"\",\n  \"DESCRIPTION_DE\": \"\",\n  \"TEASER1_DE\": \"\",\n  \"TEASER2_DE\": \"\",\n  \"TEASER3_DE\": \"\",\n  \"CTA_DE\": \"\",\n  \"FOOTER_TEXT_DE\": \"\",\n  \"FOOTER_NAME_DE\": \"\",\n  \"TOPIC_TITLE_EN\": \"\",\n  \"INTRODUCTION_EN\": \"\",\n  \"TOPIC_EN\": \"\",\n  \"DESCRIPTION_EN\": \"\",\n  \"TEASER1_EN\": \"\",\n  \"TEASER2_EN\": \"\",\n  \"TEASER3_EN\": \"\",\n  \"CTA_EN\": \"\",\n  \"FOOTER_TEXT_EN\": \"\",\n  \"FOOTER_NAME_EN\": \"\"\n}\n```",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "b20d69ab-97c5-4a2e-9926-77252b735ab3",
      "name": "テキストファイルから抽出",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2816,
        -2512
      ],
      "parameters": {
        "options": {},
        "operation": "text"
      },
      "typeVersion": 1
    },
    {
      "id": "3a93f461-3ad3-4cd3-923c-4e04e1b8fd92",
      "name": "画像を生成",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 5,
      "position": [
        -2800,
        -2064
      ],
      "parameters": {
        "url": "=https://image.pollinations.ai/prompt/{{ $json.image_prompt.replaceAll(' ','-').replaceAll(',','').replaceAll('.','').slice(0,100) }}?width=1080&height=1350&model=flux&nologo=true",
        "options": {}
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "5cfef6a7-5f21-4493-89df-c699bf927116",
      "name": "データをダウンロードサービスに送信",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2944,
        -1760
      ],
      "parameters": {
        "url": "https://operator.velvetsyndicate.de:8090/api/upload-image",
        "method": "POST",
        "options": {
          "allowUnauthorizedCerts": true
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
      "name": "動画を待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        -2032,
        -1760
      ],
      "webhookId": "153655c9-2cb6-4f82-a497-7233abc21b04",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "a4149035-a9f4-4d19-ac57-49b5bac89ed6",
      "name": "動画はまだ処理中",
      "type": "n8n-nodes-base.if",
      "position": [
        -1600,
        -1760
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ab7cdeb1-40bf-4cc0-bfe6-ccf9a7ee1d1d",
              "operator": {
                "type": "boolean",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.error.name.toBoolean() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "23060783-5d2f-4a2e-89fc-3138f0c8d681",
      "name": "音声はまだ処理中",
      "type": "n8n-nodes-base.if",
      "position": [
        -720,
        -1760
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "4369b67d-7975-419a-84b2-acfe4e78bc28",
              "operator": {
                "type": "boolean",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.error.name.toBoolean() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "8c4e8075-1c2f-4fa2-a1ab-f858ff9bc426",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4912,
        -2432
      ],
      "parameters": {
        "width": 496,
        "height": 288,
        "content": "### Trends Input Branch  \n**What it does**  \n• Downloads a trends spreadsheet from SharePoint.  \n• Randomly selects one trending topic for content generation.\n\n**Credentials needed**  \nMicrosoft SharePoint OAuth2 (for **Get Trends XLSX**).\n\n**User tweaks**  \n• Change the spreadsheet file location in **Get Trends XLSX**.  \n• Modify selection logic in **Select Topic from Trends** (currently random; could be weighted, chronological, etc.)."
      },
      "typeVersion": 1
    },
    {
      "id": "ff1a4101-c39d-418d-a6e4-9f893dabed74",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3408,
        -3008
      ],
      "parameters": {
        "width": 592,
        "height": 368,
        "content": "### Newsletter Template Branch  \n**What it does**  \n• Downloads your HTML template from SharePoint.  \n• **Extract from Text File → Build Newsletter** replaces placeholders with AI-generated content.\n\n**Credentials needed**  \nMicrosoft SharePoint OAuth2 (for **Get Newsletter Template**).\n\n**User must provide**  \n• Your own HTML template with these exact placeholders:  \n  `{{INTRODUCTION_DE}} {{TOPIC_DE}} {{DESCRIPTION_DE}} {{TEASER1_DE}} {{TEASER2_DE}} {{TEASER3_DE}} {{CTA_DE}} {{FOOTER_TEXT_DE}} {{FOOTER_NAME_DE}} {{TOPIC_TITLE_EN}} {{INTRODUCTION_EN}} {{TOPIC_EN}} {{DESCRIPTION_EN}} {{TEASER1_EN}} {{TEASER2_EN}} {{TEASER3_EN}} {{CTA_EN}} {{FOOTER_TEXT_EN}} {{FOOTER_NAME_EN}}`  \n• Upload this template to the SharePoint folder referenced in **Get Newsletter Template**."
      },
      "typeVersion": 1
    },
    {
      "id": "a0ac2239-2eae-4100-bb03-99b8365a038e",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3856,
        -1696
      ],
      "parameters": {
        "width": 688,
        "height": 288,
        "content": "### Image Assets Branch  \n**What it does**  \n• Uses Pollinations AI to create a 1080 × 1350 image from the AI-generated `image_prompt`.  \n• Converts to binary and uploads to Velvet Syndicate (optional CDN).\n\n**Credentials needed**  \nNone (Pollinations & Velvet accept unauthenticated requests).\n\n**User tweaks**  \n• Edit the prompt in **Generate Video and Audio Prompt** to change image style.  \n• Replace Velvet Syndicate URL in **Send Data to Download Service** if using another CDN."
      },
      "typeVersion": 1
    },
    {
      "id": "93b1ab5a-e522-48b0-9208-41bda43cfb7b",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2688,
        -1488
      ],
      "parameters": {
        "width": 624,
        "height": 304,
        "content": "### Video Assets Branch  \n**What it does**  \n• **FAL AI (kling-video)** creates a short video from the generated image.  \n• **FAL AI (lyria2)** generates background music.  \n• FFmpeg API merges video + audio → returns a public `video.url`.\n\n**Credentials needed**  \n`ENV_FALAI_APIKEY` (stored in **Configuration Settings**).\n\n**User tweaks**  \n• Set `include_video` and `video_duration` via webhook request.  \n• Edit `video_prompt` & `audio_prompt` generation in **Generate Video and Audio Prompt**."
      },
      "typeVersion": 1
    },
    {
      "id": "65ebb1ee-baa2-4dae-a780-f3a0b51836e0",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        -1952
      ],
      "parameters": {
        "width": 608,
        "height": 272,
        "content": "### Storage Branch  \n**What it does**  \n• Converts newsletter HTML, generated JPG, and video URL into binary files.  \n• Uploads all three files to SharePoint (or your chosen storage).\n\n**Credentials needed**  \nMicrosoft SharePoint OAuth2 (for all three **Upload …** nodes).\n\n**User tweaks**  \n• Change target folder IDs in each upload node.  \n• Replace SharePoint nodes with Google Drive, Dropbox, S3, etc.  \n• Modify filename pattern (currently `${random_filename}.html/.jpg/.txt`)."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "18a250cb-ac2d-4101-a49a-400be7b37f7f",
  "connections": {
    "d4449512-70d3-4856-b5fc-606b7b505ff0": {
      "main": [
        [
          {
            "node": "9ae9a529-370b-4d2d-acb8-ad3e3f1d3913",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d1466c51-eb0b-4994-ac1a-e234821de281": {
      "main": [
        [
          {
            "node": "db8e8f18-f2d8-476f-ac83-b365aa67451c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a172b117-221e-4707-a213-f70397e70418": {
      "main": [
        [
          {
            "node": "23060783-5d2f-4a2e-89fc-3138f0c8d681",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b9a10a8-c84a-47ba-bd8f-0d01d86f013f": {
      "main": [
        [
          {
            "node": "a4149035-a9f4-4d19-ac57-49b5bac89ed6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "270a6ba6-83cd-45fd-a733-7799f787b244": {
      "main": [
        [
          {
            "node": "c8684458-4bb9-45ee-af72-adea5b174168",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cdbc12f2-d5f3-4236-a136-b8259f3d12ee": {
      "main": [
        [
          {
            "node": "ac207979-019c-47fe-a7a1-d53d70afbb35",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a729954-8812-473e-a0be-0c9399a4c454": {
      "main": [
        [
          {
            "node": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aa3ab2ba-e08b-49cf-ac57-3789107435c2": {
      "main": [
        [
          {
            "node": "3a93f461-3ad3-4cd3-923c-4e04e1b8fd92",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac207979-019c-47fe-a7a1-d53d70afbb35": {
      "main": [
        [
          {
            "node": "270a6ba6-83cd-45fd-a733-7799f787b244",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da4da730-32f9-47e8-92a8-2ad2651376eb": {
      "main": [
        [
          {
            "node": "61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3a93f461-3ad3-4cd3-923c-4e04e1b8fd92": {
      "main": [
        [
          {
            "node": "c3910d9b-81af-40c2-a0ef-e7953c265d9f",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "50c07304-8521-43f7-9e0c-16fe48ed90e2": {
      "main": [
        [
          {
            "node": "cdbc12f2-d5f3-4236-a136-b8259f3d12ee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0": {
      "main": [
        [
          {
            "node": "0b9a10a8-c84a-47ba-bd8f-0d01d86f013f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6984c8c5-0f4c-4881-85fd-782b848ca5f6": {
      "main": [
        [
          {
            "node": "a172b117-221e-4707-a213-f70397e70418",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f419cf55-ca78-4beb-b62d-910e1db9e841": {
      "main": [
        [
          {
            "node": "336374fa-8e2d-4402-b152-d68fc407a885",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dca2ef6d-5179-46a4-b916-5f2bfcf79d1e": {
      "main": [
        [
          {
            "node": "5a9c11b3-a0d8-419f-a447-828ca7908f0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e493b67f-360c-464c-a8b7-dae374751da7": {
      "main": [
        [
          {
            "node": "0639f081-0402-4534-b448-d23e45032037",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "362b5cd0-5253-4ffe-84dc-d1c286977b7d": {
      "main": [
        [
          {
            "node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "db8e8f18-f2d8-476f-ac83-b365aa67451c": {
      "main": [
        [
          {
            "node": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0639f081-0402-4534-b448-d23e45032037": {
      "main": [
        [
          {
            "node": "38f5414a-7e8b-4350-8c15-474d44453602",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "336374fa-8e2d-4402-b152-d68fc407a885": {
      "main": [
        [
          {
            "node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "5a9c11b3-a0d8-419f-a447-828ca7908f0a": {
      "main": [
        [
          {
            "node": "9988898b-23ab-4b37-8bc2-76a97f96c669",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c3910d9b-81af-40c2-a0ef-e7953c265d9f": {
      "main": [
        [
          {
            "node": "efeefb3f-4856-4136-a230-af280b346468",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3": {
      "main": [
        []
      ]
    },
    "85b0946e-4df0-43e5-9615-020b326b85c0": {
      "ai_languageModel": [
        [
          {
            "node": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "5a58eb7e-1993-4a8e-9d66-53b33b3d11de": {
      "ai_languageModel": [
        [
          {
            "node": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "a6f8688e-95a7-4169-9224-682762a8372b": {
      "ai_languageModel": [
        [
          {
            "node": "0639f081-0402-4534-b448-d23e45032037",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "38f5414a-7e8b-4350-8c15-474d44453602": {
      "main": [
        [
          {
            "node": "90347ce0-1238-448d-abf2-96ecb228b8e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f4b95592-3803-4dca-a41d-71bd20746cb4": {
      "main": [
        [
          {
            "node": "f419cf55-ca78-4beb-b62d-910e1db9e841",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7e3d41de-6fdd-4b7d-8e56-2f967108dad2": {
      "main": [
        [
          {
            "node": "50c07304-8521-43f7-9e0c-16fe48ed90e2",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "23060783-5d2f-4a2e-89fc-3138f0c8d681": {
      "main": [
        [
          {
            "node": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "f4b95592-3803-4dca-a41d-71bd20746cb4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "90347ce0-1238-448d-abf2-96ecb228b8e0": {
      "main": [
        [
          {
            "node": "dca2ef6d-5179-46a4-b916-5f2bfcf79d1e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efeefb3f-4856-4136-a230-af280b346468": {
      "main": [
        [
          {
            "node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
            "type": "main",
            "index": 1
          },
          {
            "node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
            "type": "main",
            "index": 2
          },
          {
            "node": "5cfef6a7-5f21-4493-89df-c699bf927116",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b20d69ab-97c5-4a2e-9926-77252b735ab3": {
      "main": [
        [
          {
            "node": "362b5cd0-5253-4ffe-84dc-d1c286977b7d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a4149035-a9f4-4d19-ac57-49b5bac89ed6": {
      "main": [
        [
          {
            "node": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2a729954-8812-473e-a0be-0c9399a4c454",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c8d706a3-3bad-4686-a712-350b49314935": {
      "main": [
        [
          {
            "node": "b20d69ab-97c5-4a2e-9926-77252b735ab3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef936c7c-c40d-450c-9dda-5cf55dac2027": {
      "main": [
        [
          {
            "node": "c8d706a3-3bad-4686-a712-350b49314935",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c8684458-4bb9-45ee-af72-adea5b174168": {
      "main": [
        [
          {
            "node": "da4da730-32f9-47e8-92a8-2ad2651376eb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9988898b-23ab-4b37-8bc2-76a97f96c669": {
      "main": [
        [
          {
            "node": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
            "type": "main",
            "index": 0
          },
          {
            "node": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5cfef6a7-5f21-4493-89df-c699bf927116": {
      "main": [
        [
          {
            "node": "d1466c51-eb0b-4994-ac1a-e234821de281",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6": {
      "main": [
        [
          {
            "node": "aa3ab2ba-e08b-49cf-ac57-3789107435c2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9ae9a529-370b-4d2d-acb8-ad3e3f1d3913": {
      "main": [
        [
          {
            "node": "7e3d41de-6fdd-4b7d-8e56-2f967108dad2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

上級 - コンテンツ作成, マルチモーダルAI

有料ですか?

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

ワークフロー情報
難易度
上級
ノード数47
カテゴリー2
ノードタイプ16
難易度説明

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

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34