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認証情報
使用ノード (19)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下の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など)は別途料金が発生する場合があります。
関連ワークフロー
LinkedInおよびXウイルスのなコンテンツ自動エンジン
AIを使ってLinkedInとXにウイルスのなコンテンツを自動生成して公開する
If
Set
Wait
+
If
Set
Wait
156 ノードDiptamoy Barman
コンテンツ作成
WooCommerce Nano BananaのAIによるバーチャル試着
WooCommerce向けにFal.ai Nano Bananaを使用して、ビジual AIフィッティング画像を自動生成
If
Set
Wait
+
If
Set
Wait
20 ノードDavide
コンテンツ作成
Apollo データスクレイピングとタッチアウトフロー 1 ✅
Apollo、AI による解析と計画されたメール.follow-up によるリード生成の自動化
If
Code
Wait
+
If
Code
Wait
39 ノードDeniz
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
YouTube 動画に基づく自律ブログ公開
YouTube 動画から ChatGPT、Sheets、Apify、Pexels、WordPress を使用してブログの自主公開
If
Set
Code
+
If
Set
Code
80 ノードOriol Seguí
コンテンツ作成
バッチSEOコンテンツ生成とAI画像付きWebflowドラフト作成(テンプレート)
GPT、Gemini画像、Webflowデラフトで行う大量SEOコンテンツ生成
If
Set
Code
+
If
Set
Code
54 ノードDahiana
コンテンツ作成