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 가상 피팅
Fal.ai Nano Banana를 사용하여 WooCommerce용 가상 AI 피팅 이미지 자동 생성
If
Set
Wait
+
If
Set
Wait
20 노드Davide
콘텐츠 제작
Apollo 데이터 스크래핑 및 리치 프로세스 1 ✅
Apollo, AI 파싱 및 예정 이메일 후속 조치를 사용한 잠재 고객 자동 생성
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 비디오 기반 자율 블로그 게시
ChatGPT, Sheets, Apify, Pexels, WordPress를 사용하여 YouTube 비디오를 자동으로 블로그에 게시합니다.
If
Set
Code
+
If
Set
Code
80 노드Oriol Seguí
콘텐츠 제작
批量 SEO 콘텐츠 생성 및 AI 이미지 포함 Webflow 드래그 앤 드롭 생성 (템플릿)
GPT, Gemini 이미지, Webflow 드라フト를 사용하여 대량 SEO 콘텐츠 생성
If
Set
Code
+
If
Set
Code
54 노드Dahiana
콘텐츠 제작