Publication automatique d'histoires Instagram à partir de Google Sheets avec l'API Meta Graph

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Set, Sort, Wait, HttpRequest. Automatiser la publication d'histoires Instagram à partir de Google Sheets avec l'API Graph Meta

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Informations d'identification Facebook Graph API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "c86cef8a4808edf0fbf0288e26f131ef9d9ffb9633fdc6fda13cbd82ffdc8203",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ca8d9fd3-1e78-4e59-8038-c3e240e1a933",
      "name": "📖 GUIDE DE CONFIGURATION",
      "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": "⚙️ Centre de Configuration",
      "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": "🚀 Démarrage Manuel",
      "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": "⏰ Planification Automatique",
      "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": "📊 Exigences de la Feuille",
      "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": "📊 Récupérer les Vidéos depuis la Feuille",
      "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": "🎲 Ordonner Aléatoirement",
      "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": "🔄 Traiter Chaque Vidéo",
      "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": "❓ Vérifier si Déjà Publiée",
      "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": "🎯 Préparer les Données Vidéo",
      "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": "📱 Exigences des Vidéos",
      "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": "📤 Créer un Conteneur de Story",
      "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": "🔍 Vérifier l'État du Traitement",
      "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": "✅ Prêt à Publier ?",
      "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": "⏰ Attendre 30 Secondes",
      "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": "🎉 Publier sur 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": "✏️ Marquer comme Publiée",
      "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": "🔧 Dépannage",
      "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": "✅ Liste de Vérification de Configuration",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Création de contenu, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds19
Catégorie2
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34