Meta Graph APIを使ってGoogleスプレッドシートからInstagramストーリーを自動投稿

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、19個のノードを含みます。主にIf, Set, Sort, Wait, HttpRequestなどのノードを使用。 Meta Graph API を使って Google スプレッドシートから Instagram ストーリーの自動投稿

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
  • Facebook Graph API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "c86cef8a4808edf0fbf0288e26f131ef9d9ffb9633fdc6fda13cbd82ffdc8203",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ca8d9fd3-1e78-4e59-8038-c3e240e1a933",
      "name": "📖 セットアップガイド",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -112
      ],
      "parameters": {
        "width": 736,
        "height": 384,
        "content": "🎬 **Instagram Story Automation Template**\n\n**What this does:** Automatically posts Instagram Stories from videos listed in a Google Sheet.\n\n**Quick Setup (5 minutes):**\n1️⃣ Configure the ⚙️ Config node with your Instagram Business ID and Sheet details\n2️⃣ Connect your Google Sheets and Facebook Graph API credentials\nYou can download my template here:\nhttps://imanetworks.ch/wp-content/uploads/2025/09/Instagram-Videos-Template.xlsx\n\n3️⃣ Add video URLs to your Google Sheet\n4️⃣ Test with Manual Trigger, then enable Schedule\n\n**For Non-Technical Users:**\n• You only need to edit the ⚙️ Config node once\n• After setup, just add videos to your Google Sheet\n• The workflow handles everything automatically\n\n**Need Help?** Check the troubleshooting section below!"
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "2bc10b0a-49c6-438b-be8d-39dcecc210bc",
      "name": "⚙️ 設定ハブ",
      "type": "n8n-nodes-base.set",
      "notes": "🔧 **SETUP REQUIRED** - Replace these values:\n\n• **IG_BUSINESS_ID**: Your Instagram Business Account ID\n  → Find in Facebook Business Manager > Instagram Accounts\n  → It's a long number (e.g., 17841450311185426)\n\n• **GRAPH_VERSION**: Facebook API version (usually v21.0 or newer)\n  → Check https://developers.facebook.com/docs/graph-api\n\n• **SHEET_DOC_ID**: Your Google Sheet ID from the URL\n  → Copy from: docs.google.com/spreadsheets/d/[THIS_PART]/edit\n\n• **SHEET_TAB_NAME**: The exact name of your sheet tab\n  → Default: \"Instagram Videos\" (case-sensitive)\n\n⚠️ **Important**: Only change these values once during setup!",
      "position": [
        368,
        352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cfg-1",
              "name": "IG_BUSINESS_ID",
              "type": "string",
              "value": "Your Instagram ID"
            },
            {
              "id": "cfg-2",
              "name": "GRAPH_VERSION",
              "type": "string",
              "value": "v23.0"
            },
            {
              "id": "cfg-3",
              "name": "SHEET_DOC_ID",
              "type": "string",
              "value": "Google Sheet ID (you can see it in the url of your sheet)"
            },
            {
              "id": "cfg-4",
              "name": "SHEET_TAB_NAME",
              "type": "string",
              "value": "Instagram Videos"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "9df8e039-b164-45e7-9555-58d8435e6c55",
      "name": "🚀 手動開始",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": "🎯 **FOR TESTING**\n\nClick the ▶️ button to test your workflow immediately.\n\n**When to use:**\n• First-time setup testing\n• Checking if credentials work\n• Testing new videos before scheduling\n\n**Non-technical tip**: Always test manually before enabling the schedule!",
      "position": [
        0,
        288
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "5f866e09-81ce-474f-965d-905f0bf7aae5",
      "name": "⏰ 自動スケジュール",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "🕐 **AUTOMATIC POSTING**\n\nCurrently set to run daily at 8:30 PM.\n\n**To change the time:**\n1. Click this node\n2. Adjust 'triggerAtHour' (0-23, where 20 = 8 PM)\n3. Adjust 'triggerAtMinute' (0-59)\n\n**Examples:**\n• 9:00 AM = Hour: 9, Minute: 0\n• 2:30 PM = Hour: 14, Minute: 30\n• 11:45 PM = Hour: 23, Minute: 45\n\n**Tip**: Choose times when your audience is most active!",
      "position": [
        0,
        496
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 20,
              "triggerAtMinute": 30
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "047a3a06-0dc3-4ab1-bdc9-7a39ab2c9c24",
      "name": "📊 シート要件",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -112
      ],
      "parameters": {
        "width": 480,
        "height": 384,
        "content": "📋 **Google Sheet Format Requirements**\n\n**Required Columns:**\n• **Path** → Direct video URL (must be publicly accessible)\n• **Posted** → Leave empty for new videos\n\n**Video Requirements:**\n• Format: MP4\n• Max duration: 60 seconds\n• Aspect ratio: 9:16 (vertical) recommended\n• Max file size: 4GB\n• URL must not require login/authentication\n\n**Example Row:**\n| Path | Posted |\n|------|--------|\n| https://example.com/video.mp4 | |\n\n**After posting, 'Posted' will show 'true'**"
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "fa49cbfe-4746-4bad-acb7-f3db282bf84b",
      "name": "📊 シートから動画を取得",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "📥 **CREDENTIAL SETUP REQUIRED**\n\n**What it does:** Reads all videos from your Google Sheet\n\n**Setup Steps:**\n1. Click the 'Credential for Google Sheets' dropdown\n2. Select 'Create New Credential'\n3. Choose 'Google Sheets OAuth2 API'\n4. Click 'Connect my account' and sign in\n5. Grant permissions to access your sheets\n\n**Troubleshooting:**\n• Error 403: Check sheet sharing permissions\n• 'Sheet not found': Verify SHEET_TAB_NAME in Config\n• No data: Ensure sheet has headers 'Path' and 'Posted'",
      "position": [
        800,
        448
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "mode": "name",
          "value": "={{ $json.SHEET_TAB_NAME }}"
        },
        "documentId": {
          "mode": "list",
          "value": "={{ $json.SHEET_DOC_ID }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "ZcotjdhaT5mLuV86",
          "name": "Google Sheets account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.5,
      "alwaysOutputData": true
    },
    {
      "id": "e98b5339-cd2a-454f-980d-6585c79a67af",
      "name": "🎲 順序をランダム化",
      "type": "n8n-nodes-base.sort",
      "notes": "🔀 **SMART SELECTION**\n\n**What it does:** Shuffles your video list randomly\n\n**Why this helps:**\n• Prevents always posting the first video\n• Creates variety in your content schedule\n• Ensures fair rotation of all videos\n\n**No setup needed** - this works automatically!\n\n**Note:** The workflow will still skip videos already marked as 'Posted'",
      "position": [
        1040,
        448
      ],
      "parameters": {
        "type": "random"
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "7f427af0-2f29-43c8-9fbf-59e8e0fe60fc",
      "name": "🔄 各動画を処理",
      "type": "n8n-nodes-base.splitInBatches",
      "notes": "🔍 **VIDEO PROCESSOR**\n\n**What it does:** Checks each video one by one to find unposted content\n\n**How it works:**\n1. Takes the shuffled list\n2. Examines each video's 'Posted' status\n3. Finds the first video that hasn't been posted\n4. Processes only that video\n\n**No configuration needed** - this is automatic!\n\n**Result:** Only posts one new video per run",
      "position": [
        1280,
        448
      ],
      "parameters": {
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "46174ca9-894c-47f2-9a3c-1a2176bcb8b0",
      "name": "❓ 投稿済みチェック",
      "type": "n8n-nodes-base.if",
      "notes": "🚦 **SMART FILTER**\n\n**What it does:** Checks if this video was already posted\n\n**Logic:**\n• **If Posted = 'true'** → Skip this video, check next one\n• **If Posted is empty/false** → Continue to post this video\n\n**Why this matters:**\n• Prevents duplicate posts\n• Automatically tracks what's been shared\n• Saves you from manual tracking\n\n**No setup needed** - works automatically!",
      "position": [
        1568,
        448
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cond-posted",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.posted_story }}",
              "rightValue": "true"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "c446ed83-b373-4887-b639-f30bb4a50721",
      "name": "🎯 動画データを準備",
      "type": "n8n-nodes-base.set",
      "notes": "📋 **DATA PREPARATION**\n\n**What it does:** Organizes the video information for Instagram\n\n**Variables created:**\n• **instagram_business_id**: Your Instagram account ID\n• **video_url**: The video file location\n• **api_version**: Facebook API version to use\n\n**Why this step:** Makes the data clean and ready for Instagram's API\n\n**No configuration needed** - uses values from your Config node automatically!",
      "position": [
        1808,
        320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "instagram_business_id",
              "type": "string",
              "value": "={{ $json.IG_BUSINESS_ID || $('⚙️ Configuration Hub').item.json.IG_BUSINESS_ID }}"
            },
            {
              "id": "a2",
              "name": "video_url",
              "type": "string",
              "value": "={{ $json.source_url }}"
            },
            {
              "id": "a3",
              "name": "api_version",
              "type": "string",
              "value": "={{ $json.GRAPH_VERSION || $('⚙️ Configuration Hub').item.json.GRAPH_VERSION }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "7b86b176-296f-4e7b-8525-a0f42c53f8f8",
      "name": "📱 動画要件",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        -112
      ],
      "parameters": {
        "width": 400,
        "height": 376,
        "content": "📱 **Instagram Story Requirements**\n\n**Video Specs:**\n• Format: MP4, MOV\n• Duration: 1-60 seconds\n• Resolution: 1080x1920 (9:16 ratio)\n• Max file size: 4GB\n• Frame rate: 30 fps max\n\n**URL Requirements:**\n• Must be publicly accessible\n• No login/password required\n• HTTPS recommended\n• Direct link to video file\n\n**Common Issues:**\n• Google Drive/Dropbox share links won't work\n• Password-protected videos will fail\n• Very large files may timeout\n\n**Tip:** Test your URL in a browser first!"
      },
      "typeVersion": 1
    },
    {
      "id": "7182482a-dc7a-477f-ad28-8fbee137029c",
      "name": "📤 ストーリーコンテナを作成",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "🏗️ **CREDENTIAL SETUP REQUIRED**\n\n**What it does:** Creates an Instagram Story container (not published yet)\n\n**Setup Steps:**\n1. Click 'Credential for Facebook Graph API'\n2. Select 'Create New Credential'\n3. Enter your Facebook App credentials:\n   • App ID (from Facebook Developers)\n   • App Secret (from Facebook Developers)\n4. Grant Instagram permissions\n\n**What happens:** Instagram downloads and processes your video\n\n**Result:** Returns a container ID for the next step",
      "position": [
        2080,
        368
      ],
      "parameters": {
        "url": "={{ 'https://graph.facebook.com/' + $('⚙️ Configuration Hub').item.json.GRAPH_VERSION + '/' + $('🎯 Prepare Video Data').item.json['instagram_business_id'] + '/media' }}",
        "method": "POST",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "media_type",
              "value": "STORIES"
            },
            {
              "name": "video_url",
              "value": "={{ $json['video_url'] }}"
            }
          ]
        },
        "nodeCredentialType": "facebookGraphApi"
      },
      "credentials": {
        "facebookGraphApi": {
          "id": "UO25G0tgMnT1nQgI",
          "name": "Facebook Graph accounts"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "5063827b-044c-42c4-be40-81cb50f1b643",
      "name": "🔍 処理ステータスを確認",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "⏳ **STATUS MONITOR**\n\n**What it does:** Checks if Instagram finished processing your video\n\n**Possible statuses:**\n• **IN_PROGRESS**: Still processing (wait more)\n• **FINISHED**: Ready to publish ✅\n• **ERROR**: Something went wrong ❌\n\n**Why this step:** Instagram needs time to encode/validate your video\n\n**No configuration needed** - uses the same Facebook credentials as previous step",
      "position": [
        2368,
        368
      ],
      "parameters": {
        "url": "={{ 'https://graph.facebook.com/' + $('⚙️ Configuration Hub').item.json.GRAPH_VERSION + '/' + $('📤 Create Story Container').item.json.id }}",
        "options": {
          "response": {
            "response": {
              "fullResponse": true,
              "responseFormat": "json"
            }
          }
        },
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "fields",
              "value": "status_code,status"
            }
          ]
        },
        "nodeCredentialType": "facebookGraphApi"
      },
      "credentials": {
        "facebookGraphApi": {
          "id": "UO25G0tgMnT1nQgI",
          "name": "Facebook Graph accounts"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "3520c4de-e2dc-4739-8ed5-5c6f15e805cd",
      "name": "✅ 投稿準備完了?",
      "type": "n8n-nodes-base.if",
      "notes": "🚦 **PUBLISH GATE**\n\n**What it checks:** Is the video ready for publishing?\n\n**Two paths:**\n• **TRUE (status = FINISHED)** → Proceed to publish\n• **FALSE (still processing)** → Wait 30 seconds and check again\n\n**Why this matters:**\n• Publishing too early = failure\n• This ensures your video is properly processed\n\n**Automatic loop:** Will keep checking until ready or timeout",
      "position": [
        2640,
        368
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cond-finished",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.body.status_code }}",
              "rightValue": "FINISHED"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "5b05c0c2-34cf-413d-bad9-87a35bfd5935",
      "name": "⏰ 30秒待機",
      "type": "n8n-nodes-base.wait",
      "notes": "⏸️ **PATIENCE IS KEY**\n\n**What it does:** Waits 30 seconds before checking status again\n\n**Why 30 seconds:**\n• Gives Instagram time to process\n• Prevents overwhelming their servers\n• Most videos process within 1-3 minutes\n\n**Adjustable:** You can change the wait time if needed\n• Smaller videos: 15-20 seconds\n• Larger videos: 45-60 seconds\n\n**Note:** The workflow will loop until processing is complete",
      "position": [
        2688,
        896
      ],
      "webhookId": "8a695322-e5bf-4b2c-bfb9-892f2cb0d8e6",
      "parameters": {
        "amount": 30
      },
      "notesInFlow": true,
      "typeVersion": 1.1
    },
    {
      "id": "1dc888c6-26a9-48a2-b7d4-47a65a264ea2",
      "name": "🎉 Instagramに公開",
      "type": "n8n-nodes-base.facebookGraphApi",
      "notes": "🚀 **THE MOMENT OF TRUTH**\n\n**What it does:** Publishes your video as an Instagram Story\n\n**This step:**\n• Takes the processed video container\n• Makes it live on your Instagram account\n• Your followers can now see the story\n\n**Success indicators:**\n• Returns a media ID\n• No error messages\n• Story appears on your Instagram profile\n\n**Uses the same Facebook credentials** as previous steps",
      "position": [
        2928,
        368
      ],
      "parameters": {
        "edge": "media_publish",
        "node": "={{ $('🎯 Prepare Video Data').item.json['instagram_business_id'] }}",
        "options": {
          "queryParameters": {
            "parameter": [
              {
                "name": "creation_id",
                "value": "={{ $('📤 Create Story Container').item.json.id }}"
              }
            ]
          }
        },
        "graphApiVersion": "={{ $('⚙️ Configuration Hub').item.json.GRAPH_VERSION }}",
        "httpRequestMethod": "POST"
      },
      "credentials": {
        "facebookGraphApi": {
          "id": "UO25G0tgMnT1nQgI",
          "name": "Facebook Graph accounts"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "08e727a9-baa5-4028-8d5d-c1d62b7b0d40",
      "name": "✏️ 投稿済みとしてマーク",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "📝 **RECORD KEEPING**\n\n**What it does:** Updates your Google Sheet to mark this video as posted\n\n**How it works:**\n1. Finds the row with the matching video URL\n2. Sets the 'Posted' column to 'true'\n3. Prevents the same video from being posted again\n\n**Why this matters:**\n• Automatic tracking\n• No duplicate posts\n• Clear record of what's been shared\n\n**Uses the same Google Sheets credentials** as the fetch step",
      "position": [
        3200,
        368
      ],
      "parameters": {
        "columns": {
          "value": {
            "source_url": "={{ $('🎯 Prepare Video Data').item.json.video_url }}",
            "posted_story": "\"true\""
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "media_type",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "media_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mime_type",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "mime_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "source_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "posted_reels",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "posted_reels",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "posted_story",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "posted_story",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "source_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "mode": "name",
          "value": "={{ $('⚙️ Configuration Hub').item.json.SHEET_TAB_NAME }}"
        },
        "documentId": {
          "mode": "list",
          "value": "={{ $('⚙️ Configuration Hub').item.json.SHEET_DOC_ID }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "ZcotjdhaT5mLuV86",
          "name": "Google Sheets account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.5
    },
    {
      "id": "9b340387-74b9-4245-a20c-7a5f4074f4c2",
      "name": "🔧 トラブルシューティング",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2896,
        528
      ],
      "parameters": {
        "width": 500,
        "height": 560,
        "content": "🚨 **Troubleshooting Guide**\n\n**Common Issues:**\n\n**1. Workflow stops at processing:**\n• Video URL not accessible publicly\n• Video doesn't meet Instagram requirements\n• Check video format (MP4 recommended)\n\n**2. 'Sheet not found' error:**\n• Verify SHEET_DOC_ID in Config\n• Check SHEET_TAB_NAME spelling (case-sensitive)\n• Ensure sheet is accessible to your Google account\n\n**3. Facebook API errors:**\n• Verify Instagram Business Account connection\n• Check app permissions in Facebook Developers\n• Ensure account has Instagram Content Publishing permission\n\n**4. Posted column not updating:**\n• Confirm Path values are unique in sheet\n• Check Google Sheets permissions\n• Verify credential connections\n\n**Need more help?** Check n8n community forums or documentation."
      },
      "typeVersion": 1
    },
    {
      "id": "9dab79de-3039-4330-94fe-d7fc02bfb5a4",
      "name": "✅ セットアップチェックリスト",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        560
      ],
      "parameters": {
        "width": 440,
        "height": 536,
        "content": "🎓 **Setup Checklist for Non-Technical Users**\n\n**Before you start:**\n☐ Instagram Business Account (not personal)\n☐ Facebook Business Manager access\n☐ Google account with Sheets access\n☐ Videos in MP4 format, publicly hosted\n\n**Required Credentials:**\n☐ Facebook Developer App (free)\n☐ Google Sheets OAuth connection\n☐ Instagram Business Account linked to Facebook\n\n**One-time setup:**\n☐ Replace values in ⚙️ Configuration Hub\n☐ Connect Facebook Graph API credential\n☐ Connect Google Sheets credential\n☐ Test with Manual Trigger\n☐ Enable Schedule Trigger\n\n**Ongoing usage:**\n☐ Add video URLs to Google Sheet\n☐ Leave 'Posted' column empty for new videos\n☐ Check Instagram for posted stories\n\n**That's it! The workflow handles everything else automatically.**"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "5f866e09-81ce-474f-965d-905f0bf7aae5": {
      "main": [
        [
          {
            "node": "2bc10b0a-49c6-438b-be8d-39dcecc210bc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9df8e039-b164-45e7-9555-58d8435e6c55": {
      "main": [
        [
          {
            "node": "2bc10b0a-49c6-438b-be8d-39dcecc210bc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5b05c0c2-34cf-413d-bad9-87a35bfd5935": {
      "main": [
        [
          {
            "node": "5063827b-044c-42c4-be40-81cb50f1b643",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e98b5339-cd2a-454f-980d-6585c79a67af": {
      "main": [
        [
          {
            "node": "7f427af0-2f29-43c8-9fbf-59e8e0fe60fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3520c4de-e2dc-4739-8ed5-5c6f15e805cd": {
      "main": [
        [
          {
            "node": "1dc888c6-26a9-48a2-b7d4-47a65a264ea2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5b05c0c2-34cf-413d-bad9-87a35bfd5935",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c446ed83-b373-4887-b639-f30bb4a50721": {
      "main": [
        [
          {
            "node": "7182482a-dc7a-477f-ad28-8fbee137029c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7f427af0-2f29-43c8-9fbf-59e8e0fe60fc": {
      "main": [
        [],
        [
          {
            "node": "46174ca9-894c-47f2-9a3c-1a2176bcb8b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2bc10b0a-49c6-438b-be8d-39dcecc210bc": {
      "main": [
        [
          {
            "node": "fa49cbfe-4746-4bad-acb7-f3db282bf84b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "46174ca9-894c-47f2-9a3c-1a2176bcb8b0": {
      "main": [
        [
          {
            "node": "c446ed83-b373-4887-b639-f30bb4a50721",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "7f427af0-2f29-43c8-9fbf-59e8e0fe60fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1dc888c6-26a9-48a2-b7d4-47a65a264ea2": {
      "main": [
        [
          {
            "node": "08e727a9-baa5-4028-8d5d-c1d62b7b0d40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7182482a-dc7a-477f-ad28-8fbee137029c": {
      "main": [
        [
          {
            "node": "5063827b-044c-42c4-be40-81cb50f1b643",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fa49cbfe-4746-4bad-acb7-f3db282bf84b": {
      "main": [
        [
          {
            "node": "e98b5339-cd2a-454f-980d-6585c79a67af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5063827b-044c-42c4-be40-81cb50f1b643": {
      "main": [
        [
          {
            "node": "3520c4de-e2dc-4739-8ed5-5c6f15e805cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

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

有料ですか?

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

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

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

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34