Générer une voix IA à partir d'un script et la télécharger sur Google Drive

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 20 nœuds.Utilise principalement des nœuds comme Set, Code, Filter, GoogleDrive, HttpRequest. Générez des voix IA à partir d'un script avec Gemini TTS et téléchargez-les sur Google Drive

Prérequis
  • Informations d'identification Google Drive API
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets 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
{
  "id": "sJP7yYyMUuFkBxhP",
  "meta": {
    "instanceId": "8506a10572bce7322328454a2dc9c1df792a29ed1e0b40db7be90cf055b03a5a",
    "templateCredsSetupCompleted": true
  },
  "name": "Generate AI Voiceovers from Scripts and Upload to Google Drive",
  "tags": [],
  "nodes": [
    {
      "id": "b77d0479-251b-4dde-a8db-70dd5c1dcde9",
      "name": "Lors du clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -656,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "420b8504-2cc1-4947-b53d-29fd0ae53d4b",
      "name": "Convertir en fichier",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        592,
        32
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $('Code1').item.json.safeFilename }}.pcm",
          "mimeType": "={{ $json.candidates[0].content.parts[0].inlineData.mimeType }}"
        },
        "operation": "toBinary",
        "sourceProperty": "candidates[0].content.parts[0].inlineData.data"
      },
      "typeVersion": 1.1
    },
    {
      "id": "3905f225-4b9d-4e47-bda4-b08002ed635b",
      "name": "Lire/Écrire des fichiers depuis le disque",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        784,
        32
      ],
      "parameters": {
        "options": {},
        "fileName": "=/Users/INSERT_YOUR_LOCAL_STORAGE_HERE/{{ $('Code1').item.json.safeFilename }}.pcm",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "88b59cbf-7949-4fb4-84cb-d36a866bbf43",
      "name": "Code1",
      "type": "n8n-nodes-base.code",
      "position": [
        176,
        32
      ],
      "parameters": {
        "jsCode": "// Get all the items coming into this node\nconst items = $items();\n\n// Loop through each item (this code works even if there's only one)\nfor (const item of items) {\n  \n  // 1. Get the original script text from the 'full_script_text' field.\n  const originalScript = item.json.full_script_text;\n  \n  // Get the row number to make the filename unique\n  const rowNumber = item.json.row_number;\n\n  // 2. Create the clean filename\n  //    - Convert to lowercase for consistency\n  //    - Replace any character that is NOT a letter or number with an underscore\n  //    - Shorten it to the first 60 characters to prevent it from being too long\n  const sanitizedScriptPart = originalScript\n    .toLowerCase()\n    .replace(/[^a-z0-9]/g, '_') \n    .substring(0, 60);\n\n  // 3. Combine the row number and the sanitized text to create a final, unique filename\n  const safeFilename = `${rowNumber}_${sanitizedScriptPart}`;\n\n  // 4. Add the new, safe filename back to the data\n  item.json.safeFilename = safeFilename;\n}\n\n// Return the modified data to the next node\nreturn items;"
      },
      "typeVersion": 2
    },
    {
      "id": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
      "name": "Boucler sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -64,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8f194775-656e-4687-afbb-507226a8fdb3",
      "name": "Filtrer",
      "type": "n8n-nodes-base.filter",
      "position": [
        -272,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "51e34efc-ba22-404f-835a-4324f403bcbe",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json['Voice Generated?'] }}",
              "rightValue": "Yes"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "be5453fc-c5e8-4591-b7d9-cd5a35b9582a",
      "name": "Obtenir les scripts vidéo",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -464,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 539540410,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit#gid=539540410",
          "cachedResultName": "Text Overlays"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit?gid=539540410#gid=539540410"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "0XPHdQQ1kHd7hjJ5",
          "name": "thamjiangjun@gmail.com google sheet"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1decede0-d000-4a68-838c-ce708fc49b55",
      "name": "HTTP Requête pour générer la voix",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        384,
        32
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent\n",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"contents\": [\n    {\n      \"parts\": [\n        {\n          \"text\": \"Say this script in a neutral <INSERT YOUR DESIRED ACCENT HERE> professional accent at a face pace enthusiastically: {{ $json.full_script_text }}\"\n        }\n      ]\n    }\n  ],\n  \"generationConfig\": {\n    \"responseModalities\": [\n      \"AUDIO\"\n    ],\n    \"speechConfig\": {\n      \"voiceConfig\": {\n        \"prebuiltVoiceConfig\": {\n          \"voiceName\": \"Kore\"\n        }\n      }\n    }\n  },\n  \"model\": \"gemini-2.5-flash-preview-tts\"\n}",
        "sendBody": true,
        "sendQuery": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "INSERT YOUR API KEY HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3323cc73-9026-48bd-b951-763101a44280",
      "name": "Extraire le nom de fichier",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fe124702-e115-4be8-b5da-df6d01e1ddbe",
              "name": "fileName",
              "type": "string",
              "value": "={{ $json.fileName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "648b7a61-af32-43d9-97f1-2189560cc47e",
      "name": "Exécuter FFMPEG Code local pour changer le format du fichier",
      "type": "n8n-nodes-base.code",
      "position": [
        1152,
        32
      ],
      "parameters": {
        "jsCode": "// Get the input data from the previous node\nconst inputData = $input.all()[0].json;\n\n// Use the EXISTING PCM file path from the input\nconst pcmFilePath = inputData.fileName; // \"/Users/jjtham/3_dream_of_a_marriage_free_from_painful_surprises__imagine_a_f.pcm\"\n\n// Generate the WAV output path by replacing .pcm with .wav\nconst wavFilePath = pcmFilePath.replace('.pcm', '.wav');\n\n// Build the ffmpeg command (quotes handle spaces in paths)\nconst ffmpegCommand = `ffmpeg -y -f s16le -ar 24000 -ac 1 -i \"${pcmFilePath}\" \"${wavFilePath}\"`;\n\nreturn {\n  json: {\n    pcmPath: pcmFilePath,\n    wavPath: wavFilePath,\n    command: ffmpegCommand\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "da306259-3612-41bd-99b0-91408c63e400",
      "name": "Exécuter FFMPEG Code",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        1328,
        32
      ],
      "parameters": {
        "command": "={{ $json.command }}"
      },
      "typeVersion": 1
    },
    {
      "id": "2fabed55-983e-4420-b16c-f822697cadfa",
      "name": "Écrire la sortie du fichier sur le disque",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1520,
        32
      ],
      "parameters": {
        "options": {},
        "fileSelector": "={{ $('Running FFMPEG Local Code To Change Format Of File').item.json.wavPath }}"
      },
      "typeVersion": 1
    },
    {
      "id": "bbc88d97-1edb-4430-8749-2df5594c9dcd",
      "name": "Téléverser le fichier Wav",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1712,
        32
      ],
      "parameters": {
        "name": "={{ $('Code1').item.json.safeFilename }}.wav",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "0cagYS3ULKYU3G1N",
          "name": "Quiverx Google Drive Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d38711cb-420b-4a70-8ec5-b6df27207caf",
      "name": "Téléverser Google Lien Drive du fichier vers Google Feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1920,
        32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Voice Link": "={{ $json.webViewLink }}",
            "Google Drive ID": "={{ $json.id }}",
            "Voice Generated?": "Yes",
            "full_script_text": "={{ $('Loop Over Items').item.json.full_script_text }}",
            "Computer File Name": "={{ $('Writing File Output Onto Disk').item.json.fileName }}",
            "Google Drive Download Link": "={{ $json.webContentLink }}"
          },
          "schema": [
            {
              "id": "script_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "script_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "psychological_angle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "psychological_angle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "full_script_text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "full_script_text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "script_breakdown",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "script_breakdown",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Bucket",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Bucket",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "strategyPillar",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "strategyPillar",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "psychologicalAngle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "psychologicalAngle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Generated?",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Voice Generated?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Voice Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Google Drive ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Google Drive ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Google Drive Download Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Google Drive Download Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "File Location",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "File Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Computer File Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Computer File Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Editing Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Editing Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "full_script_text"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 539540410,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit#gid=539540410",
          "cachedResultName": "Text Overlays"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit?gid=539540410#gid=539540410"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "0XPHdQQ1kHd7hjJ5",
          "name": "thamjiangjun@gmail.com google sheet"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "39ec1f9e-a5be-4e9c-b1cf-aa2f958694d7",
      "name": "Note autocollante",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -224
      ],
      "parameters": {
        "width": 704,
        "height": 1120,
        "content": "## Generate AI Voiceovers from Scripts and Upload to Google Drive\n\nThis is the final piece of the AI content factory. This workflow takes your text-based video scripts and automatically generates high-quality audio voiceovers for each one, turning your text into ready-to-use audio assets for your video ads.\n\nGo from a spreadsheet of text to a folder of audio files, completely on autopilot.\n\n## ⚠️ CRITICAL REQUIREMENTS (Read First!)\nThis is an advanced, self-hosted workflow that requires specific local setup:\n\n*   **Self-Hosted n8n Only:** This workflow uses the `Execute Command` and `Read/Write Files` nodes, which requires you to run your own instance of n8n. It will not work on n8n Cloud.\n*   **FFmpeg Installation:** You must have [FFmpeg](https://ffmpeg.org/download.html) installed on the same machine where your n8n instance is running. This is used to convert the audio files to a standard format.\n\n## What it does\nThis is Part 3 of the AI marketing series. It connects to the Google Sheet where you generated your video scripts (in Part 2). For each script that hasn't been processed, it:\n\n1.  Uses the Google Gemini Text-to-Speech (TTS) API to generate a voiceover.\n2.  Saves the audio file to your local computer.\n3.  Uses FFmpeg to convert the raw audio into a standard `.wav` file.\n4.  Uploads the final `.wav` file to your Google Drive.\n5.  Updates the original Google Sheet with a link to the audio file in Drive and marks the script as complete.\n\n## How to set up\n**IMPORTANT:** This workflow is Part 3 of a series and requires the output from Part 2 (\"Generate AI Video Ad Scripts\").\n\n**If you need Part 1 or Part 2 of this workflow series, you can find them for free on [my n8n Creator Profile](https://n8n.io/creators/jj-tham/).**\n\n1.  **Connect to Your Scripts Sheet:** In the \"Getting Video Scripts\" node, connect your Google Sheets account and provide the URL to the sheet containing your generated video scripts from Part 2.\n2.  **Configure AI Voice Generation (HTTP Request):**\n    *   In the \"HTTP Request To Generate Voice\" node, go to the **Query Parameters** and replace `INSERT YOUR API KEY HERE` with your Google Gemini API key.\n    *   In the **JSON Body**, you can customize the voice prompt (e.g., change `<INSERT YOUR DESIRED ACCENT HERE>`).\n3.  **Set Your Local File Path:** In the first \"Read/Write Files from Disk\" node, update the **File Name** field to a valid directory on your local machine where n8n has permission to write files. Replace `/Users/INSERT_YOUR_LOCAL_STORAGE_HERE/`.\n4.  **Connect Google Drive:** In the \"Uploading Wav File\" node, connect your Google Drive account and choose the folder where your audio files will be saved.\n5.  **Update Your Tracking Sheet:** In the final \"Uploading Google Drive Link...\" node, ensure it's connected to the same Google Sheet from Step 1. This node will update your sheet with the results."
      },
      "typeVersion": 1
    },
    {
      "id": "1cc5dc7d-55c4-4d0a-b356-a8458169dd96",
      "name": "Note autocollante1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        -256
      ],
      "parameters": {
        "color": 2,
        "width": 432,
        "height": 240,
        "content": "**👇 STEP 1: CONNECT TO YOUR SCRIPTS**\n\nThis workflow reads the scripts you generated in Part 2.\n\n**Action Required:**\n1. Connect your Google Sheets account.\n2. Paste the URL of the Google Sheet that was the **output** of the \"Generate AI Video Ad Scripts\" workflow.\n\nThe **Filter** node ensures we only process scripts that don't have a voiceover yet."
      },
      "typeVersion": 1
    },
    {
      "id": "a7250930-1359-44ad-865f-48c21f641cf9",
      "name": "Note autocollante2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -192
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 176,
        "content": "**🧠 STEP 2: CONFIGURE AI VOICE**\n\nThis node generates the audio using Google Gemini's TTS API.\n\n**Action Required:**\n1.  Go to **Query Parameters** and insert your Gemini API Key.\n2.  (Optional) In the **JSON Body**, edit the prompt to change the accent or delivery style."
      },
      "typeVersion": 1
    },
    {
      "id": "c53a760c-aaaf-4c39-a564-6b30b8bf52d3",
      "name": "Note autocollante3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        272
      ],
      "parameters": {
        "color": 5,
        "width": 432,
        "height": 224,
        "content": "**⚠️ STEP 3: CONFIGURE LOCAL FILE PROCESSING**\n\n**This section is for SELF-HOSTED n8n ONLY and requires FFmpeg to be installed on your machine.**\n\n**Action Required:**\n1.  Click the first **Read/Write Files from Disk** node.\n2.  Update the **File Name** with a real folder path on your computer (e.g., `/home/n8n/audio/` or `C:\\n8n\\audio\\`)."
      },
      "typeVersion": 1
    },
    {
      "id": "7b792b51-908d-485e-8b9b-7066bf344898",
      "name": "Note autocollante4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -192
      ],
      "parameters": {
        "color": 6,
        "width": 576,
        "height": 192,
        "content": "**✅ STEP 4: SET UPLOAD DESTINATION**\n\nThis node uploads your final `.wav` audio files.\n\n**Action Required:**\n1.  Connect your Google Drive account.\n2.  (Optional) Choose a specific folder to keep your voiceovers organized."
      },
      "typeVersion": 1
    },
    {
      "id": "6ccd0f26-1155-420b-9cad-f140b2d82e13",
      "name": "Note autocollante5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        240
      ],
      "parameters": {
        "width": 432,
        "height": 128,
        "content": "**🚀 STEP 5: UPDATE TRACKING SHEET**\n\nThis final step updates your script sheet with links to the new audio files in Google Drive and marks them as \"Yes\" so they don't get processed again."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8d66a2a2-0e5f-47ba-883d-1a4c6da2d14d",
  "connections": {
    "88b59cbf-7949-4fb4-84cb-d36a866bbf43": {
      "main": [
        [
          {
            "node": "1decede0-d000-4a68-838c-ce708fc49b55",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8f194775-656e-4687-afbb-507226a8fdb3": {
      "main": [
        [
          {
            "node": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "420b8504-2cc1-4947-b53d-29fd0ae53d4b": {
      "main": [
        [
          {
            "node": "3905f225-4b9d-4e47-bda4-b08002ed635b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "383050a4-5d1a-4f80-9ac3-8ab99dd6c121": {
      "main": [
        [],
        [
          {
            "node": "88b59cbf-7949-4fb4-84cb-d36a866bbf43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbc88d97-1edb-4430-8749-2df5594c9dcd": {
      "main": [
        [
          {
            "node": "d38711cb-420b-4a70-8ec5-b6df27207caf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3323cc73-9026-48bd-b951-763101a44280": {
      "main": [
        [
          {
            "node": "648b7a61-af32-43d9-97f1-2189560cc47e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da306259-3612-41bd-99b0-91408c63e400": {
      "main": [
        [
          {
            "node": "2fabed55-983e-4420-b16c-f822697cadfa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be5453fc-c5e8-4591-b7d9-cd5a35b9582a": {
      "main": [
        [
          {
            "node": "8f194775-656e-4687-afbb-507226a8fdb3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3905f225-4b9d-4e47-bda4-b08002ed635b": {
      "main": [
        [
          {
            "node": "3323cc73-9026-48bd-b951-763101a44280",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fabed55-983e-4420-b16c-f822697cadfa": {
      "main": [
        [
          {
            "node": "bbc88d97-1edb-4430-8749-2df5594c9dcd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1decede0-d000-4a68-838c-ce708fc49b55": {
      "main": [
        [
          {
            "node": "420b8504-2cc1-4947-b53d-29fd0ae53d4b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b77d0479-251b-4dde-a8db-70dd5c1dcde9": {
      "main": [
        [
          {
            "node": "be5453fc-c5e8-4591-b7d9-cd5a35b9582a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "648b7a61-af32-43d9-97f1-2189560cc47e": {
      "main": [
        [
          {
            "node": "da306259-3612-41bd-99b0-91408c63e400",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d38711cb-420b-4a70-8ec5-b6df27207caf": {
      "main": [
        [
          {
            "node": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
            "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.

Workflows recommandés

Automatisation de courts métrages sans visage avec OpenAI, RunwayML et ElevenLabs
Automatisation de courts métrages sans visage : du script aux réseaux sociaux avec OpenAI, RunwayML et ElevenLabs
Set
Code
Wait
+
Set
Code
Wait
56 NœudsLeeWei
Création de contenu
Version professionnelle de l'automatisation de blog WordPress (recherche approfondie) v2.1 sur le marché
Automatisation de la création de blog optimisé pour le SEO avec GPT-4o, Perplexity AI et support multilingue
If
Set
Xml
+
If
Set
Xml
125 NœudsDaniel Ng
Création de contenu
Automatisation de la création de contenu viral avec OpenAI, ElevenLabs et Fal.ai pour les vidéos, les podcasts et l'ASMR
Automatiser la création de contenu viral pour la vidéo, les podcasts et l'ASMR avec OpenAI, ElevenLabs et Fal.ai
Set
Code
Wait
+
Set
Code
Wait
97 NœudsAdam Crafts
Création de contenu
Moteur automatisé de contenu viral pour LinkedIn et X
Création et publication automatique de contenu viral pour LinkedIn et X avec l'IA
If
Set
Wait
+
If
Set
Wait
156 NœudsDiptamoy Barman
Création de contenu
Mes workflows
Utiliser Apify, GPT-4o et la bibliothèque d'annonces Facebook pour la recherche concurrentielle publicitaire et la génération d'images
Set
Wait
Limit
+
Set
Wait
Limit
32 NœudsNick Saraev
Création de contenu
Générer des variantes IA de publicités Facebook pour la concurrence avec Apify, GPT-4 et Google Drive
Générer des variantes IA d'annonces Facebook pour la concurrence avec Apify, GPT-4 et Google Drive
Set
Wait
Limit
+
Set
Wait
Limit
29 NœudsElectrabot
Création de contenu
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds20
Catégorie2
Types de nœuds12
Description de la difficulté

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

Auteur
JJ Tham

JJ Tham

@jj-tham

Founder of Osinity. I build AI-powered n8n automations that save businesses 10+ hours a week and grow their revenue. We guarantee results with a 30-day risk-free trial—you only pay when we hit your targets.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34