Utiliser Dumpling AI pour générer automatiquement des publications spécifiques à la plateforme à partir de vidéos YouTube

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 20 nœuds.Utilise principalement des nœuds comme Set, Code, Merge, Aggregate, HttpRequest. Génération automatique de publications Instagram, Facebook et LinkedIn à partir de vidéos YouTube avec GPT-4o et Dumpling AI

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
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": "ddQrW7UAltdowiEB",
  "meta": {
    "instanceId": "a1ae5c8dc6c65e674f9c3947d083abcc749ef2546dff9f4ff01de4d6a36ebfe6",
    "templateCredsSetupCompleted": true
  },
  "name": "Auto-Generate Platform-Specific Posts from YouTube Videos with Dumpling AI",
  "tags": [],
  "nodes": [
    {
      "id": "42d0234f-be8d-4df3-9f02-ff5ee574bea3",
      "name": "Déclencheur de planification de recherche",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -784,
        32
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4e72498d-e44d-4611-904b-83538f2cb352",
      "name": "Obtenir un sujet non recherché depuis la feuille Google",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -560,
        32
      ],
      "parameters": {
        "options": {
          "returnFirstMatch": true
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Searched?"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit#gid=0",
          "cachedResultName": "YouTube Topics"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit?usp=drivesdk",
          "cachedResultName": "Youtube Video/Creators"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "447c249d-92f9-4b3f-90eb-122e0be919ad",
      "name": "Rechercher YouTube via Dumpling AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -336,
        32
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/youtube/search",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"query\": \"{{ $json['Youtube Topics'] }}\",\n  \"filter\": \"video\"\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3e16a160-5e3f-403d-acbb-40c1c698423b",
      "name": "Filtrer + trier les vidéos YouTube",
      "type": "n8n-nodes-base.code",
      "position": [
        -112,
        32
      ],
      "parameters": {
        "jsCode": "// n8n Code Node to get the 3 latest videos from YouTube data\n// This assumes the input is coming from a previous node with the JSON data\n\n// Get the input data from n8n\nconst items = $input.all();\n\n// Try different ways to access the data based on n8n's structure\nlet data;\nlet videos = [];\n\n// Check if the data is directly in the first item\nif (items && items.length > 0) {\n  const firstItem = items[0].json;\n  \n  // If the data is a string, parse it\n  if (typeof firstItem === 'string') {\n    data = JSON.parse(firstItem);\n  } \n  // If it's already an object\n  else if (typeof firstItem === 'object') {\n    data = firstItem;\n  }\n  \n  // Try to find videos in different possible locations\n  if (data) {\n    if (Array.isArray(data) && data[0] && data[0].videos) {\n      videos = data[0].videos;\n    } else if (data.videos) {\n      videos = data.videos;\n    } else if (data.data && Array.isArray(data.data) && data.data[0] && data.data[0].videos) {\n      videos = data.data[0].videos;\n    }\n  }\n}\n\n// Check if we found videos\nif (!videos || videos.length === 0) {\n  throw new Error('No videos found in input data. Please check the data structure.');\n}\n\n// Filter and sort videos by publishedTime (most recent first)\nconst sortedVideos = videos\n  .filter(video => video.type === 'video' && video.publishedTime)\n  .sort((a, b) => {\n    const dateA = new Date(a.publishedTime);\n    const dateB = new Date(b.publishedTime);\n    return dateB - dateA; // Sort in descending order (newest first)\n  });\n\n// Get the top 3 most recent videos\nconst latestThreeVideos = sortedVideos.slice(0, 3).map(video => ({\n  id: video.id,\n  url: video.url,\n  title: video.title,\n  publishedTime: video.publishedTime,\n  publishedTimeText: video.publishedTimeText\n}));\n\n// Return the result for n8n to process\nreturn latestThreeVideos;\n\n// Alternative: If you want to return each video as a separate item for n8n workflow\n// return latestThreeVideos.map(video => ({ json: video }));"
      },
      "typeVersion": 2
    },
    {
      "id": "dd78f640-822e-49ca-ba2d-8f3442bd7d70",
      "name": "Préparer la liste de vidéos pour l'IA",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        112,
        32
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "8896a2cd-2732-4e08-ae09-b44c074f0de2",
      "name": "Sélectionner la meilleure vidéo avec GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        336,
        32
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are given a search input, search output and a present date. Use the search input to find the most relevant YouTube videos from the search output . For each video, return the following in JSON format:\n\n[\n  {\n    \"data\": [\n      {\n        \"id\": \"<videoId>\",\n        \"url\": \"https://www.youtube.com/watch?v=<videoId>\",\n        \"title\": \"<videoTitle>\",\n        \"publishedTime\": \"<ISO timestamp>\",\n        \"publishedTimeText\": \"<human readable time ago>\"\n      }\n    ]\n  }\n]\n\nRules:\n1. Only include videos that best match the search input.\n2. From the results, pick the video whose publishedTime is closest to the present date provided.\n3. Always return the output strictly in the JSON structure shown above, no explanations.\n4. Ensure publishedTime is in ISO 8601 format.\n\n"
            },
            {
              "content": "=search input: {{ $('Get Unsearched Topic from Google Sheet').item.json['Youtube Topics'] }}\npresent date:{{ $now }}\nsearch output:{{ JSON.stringify($json.data) }}\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "dd8NvMC6rvx8RITo",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "a0b322e2-485b-4669-8603-e5988a6dcd6d",
      "name": "Obtenir la transcription (Dumpling AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        688,
        32
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/get-youtube-transcript",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"videoUrl\": \"{{ $json.message.content.data[0].url }}\"\n\n}\n   ",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "170d005a-c7e3-46e3-83da-9f607271b9e7",
      "name": "Générer des publications avec GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        912,
        32
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=You are a skilled social media content creator. Your task is to take the YouTube transcript provided and write three platform-specific posts: Instagram, Facebook, and LinkedIn.  \n\nRules for each:  \n- Instagram: Short, punchy, engaging, include at most 2 emojis, 3–5 relevant hashtags, under 200 words.  \n- Facebook: Conversational, warm, a bit longer, include one clear takeaway, encourage interaction with a question, under 250 words.  \n- LinkedIn: Professional but human, insightful, thought-provoking, with a call to action for comments, under 300 words.  \n\nGeneral:  \n- Do not copy the transcript word-for-word, rewrite into smooth audience-ready posts.  \n- Each platform’s post should feel unique and native to that platform.  \n- Alongside the post, generate a short **image prompt** describing a visual that matches the content of the post.  \n- Always return the output in strict JSON format with the array named `output`. No explanations or extra text.  \n\n\nReturn your response exactly in this format:\n{\n  \"output\": [\n    {\n      \"platform\": \"instagram\",\n      \"post\": \"Instagram post text here\",\n      \"image_prompt\": \"Image description that matches the Instagram post\"\n    },\n    {\n      \"platform\": \"facebook\",\n      \"post\": \"Facebook post text here\",\n      \"image_prompt\": \"Image description that matches the Facebook post\"\n    },\n    {\n      \"platform\": \"linkedin\",\n      \"post\": \"LinkedIn post text here\",\n      \"image_prompt\": \"Image description that matches the LinkedIn post\"\n    }\n  ]\n}\n"
            },
            {
              "content": "=Here is the transcript:  \n{{ $json.transcript }}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "dd8NvMC6rvx8RITo",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "ca110a4c-65fa-47f8-8fa3-6e63962d8554",
      "name": "Générer l'image Instagram (Dumpling AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1296,
        -224
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/generate-ai-image",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"FLUX.1-pro\",\n  \"input\": {\n    \"prompt\": \"{{ $json.message.content.output[0].image_prompt }}\",\n    \"output_format\": \"png\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e92dadcb-fb66-4315-b83e-8256e8b74cb1",
      "name": "Générer l'image Facebook (Dumpling AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1312,
        32
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/generate-ai-image",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"FLUX.1-pro\",\n  \"input\": {\n    \"prompt\": \"{{ $json.message.content.output[1].image_prompt }}\",\n    \"output_format\": \"png\"\n  }\n}\n\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "151f494f-1afe-4c4c-98a1-6fc1ea362599",
      "name": "Générer l'image LinkedIn (Dumpling AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        288
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/generate-ai-image",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"FLUX.1-pro\",\n  \"input\": {\n    \"prompt\": \"{{ $json.message.content.output[2].image_prompt }}\",\n    \"output_format\": \"png\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ffd66d63-4cb0-49e0-9e09-a7ad750d4add",
      "name": "Formater la publication Instagram",
      "type": "n8n-nodes-base.set",
      "position": [
        1504,
        -224
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b58d7016-b4e0-4887-8616-06f4780dc70b",
              "name": "platform",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[0].platform }}"
            },
            {
              "id": "3bcc242c-210f-4848-8a28-d01d9159dfe1",
              "name": "Content",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[0].post }}"
            },
            {
              "id": "58b4ef74-6a64-4273-84be-46b9d4e4daa2",
              "name": "Image",
              "type": "string",
              "value": "={{ $json.images[0].url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "839370cd-a1f0-4114-aeb3-c2f5abd51d0b",
      "name": "Formater la publication Facebook",
      "type": "n8n-nodes-base.set",
      "position": [
        1520,
        32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b58d7016-b4e0-4887-8616-06f4780dc70b",
              "name": "platform",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[1].platform }}"
            },
            {
              "id": "3bcc242c-210f-4848-8a28-d01d9159dfe1",
              "name": "Content",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[1].post }}"
            },
            {
              "id": "58b4ef74-6a64-4273-84be-46b9d4e4daa2",
              "name": "Image",
              "type": "string",
              "value": "={{ $json.images[0].url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "06411636-bbcb-4348-8ff4-e2e80ffe61bf",
      "name": "Formater la publication LinkedIn",
      "type": "n8n-nodes-base.set",
      "position": [
        1504,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b58d7016-b4e0-4887-8616-06f4780dc70b",
              "name": "platform",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[2].platform }}"
            },
            {
              "id": "3bcc242c-210f-4848-8a28-d01d9159dfe1",
              "name": "Content",
              "type": "string",
              "value": "={{ $('Generate Posts with GPT-4o').item.json.message.content.output[2].post }}"
            },
            {
              "id": "58b4ef74-6a64-4273-84be-46b9d4e4daa2",
              "name": "Image",
              "type": "string",
              "value": "={{ $json.images[0].url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9371626a-014d-435b-9fba-d6e70f649465",
      "name": "Enregistrer la publication Instagram dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1712,
        -224
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "platform",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "platform",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1459475959,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit#gid=1459475959",
          "cachedResultName": "Social media post"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit?usp=drivesdk",
          "cachedResultName": "Youtube Video/Creators"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "876f0644-4c8c-4f9e-a2c0-c90db4813ef5",
      "name": "Enregistrer la publication Facebook dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1728,
        32
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "platform",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "platform",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1459475959,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit#gid=1459475959",
          "cachedResultName": "Social media post"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit?usp=drivesdk",
          "cachedResultName": "Youtube Video/Creators"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "21220afc-832c-4020-a268-bef07161b2ff",
      "name": "Enregistrer la publication LinkedIn dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1744,
        288
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "platform",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "platform",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1459475959,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit#gid=1459475959",
          "cachedResultName": "Social media post"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit?usp=drivesdk",
          "cachedResultName": "Youtube Video/Creators"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "70bf8926-5b7c-4fd3-8cc6-50a18b424c9b",
      "name": "Fusionner les résultats des publications",
      "type": "n8n-nodes-base.merge",
      "position": [
        2000,
        16
      ],
      "parameters": {
        "numberInputs": 3
      },
      "executeOnce": true,
      "typeVersion": 3.2
    },
    {
      "id": "a632becc-7fd6-4305-b605-e3207b9c55f0",
      "name": "Mettre à jour le statut du sujet dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2240,
        32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Searched?": "Yes",
            "Youtube Topics": "={{ $('Get Unsearched Topic from Google Sheet').item.json['Youtube Topics'] }}"
          },
          "schema": [
            {
              "id": "Youtube Topics",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Youtube Topics",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Searched?",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Searched?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Youtube Topics"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit#gid=0",
          "cachedResultName": "YouTube Topics"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Jq2UpzUq8lBMNJxezZLErnlqH4z7tKI2h2jONNA3lEc/edit?usp=drivesdk",
          "cachedResultName": "Youtube Video/Creators"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.7
    },
    {
      "id": "bea5de1e-973b-4da3-97dd-12d79152d3a4",
      "name": "Note autocollante",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        -464
      ],
      "parameters": {
        "width": 1088,
        "height": 704,
        "content": "## 🧠 Auto-Generate Social Media Posts from YouTube Videos\n\nThis workflow takes a topic from Google Sheets, finds a matching YouTube video via Dumpling AI, and generates tailored posts for **Instagram**, **Facebook**, and **LinkedIn** using GPT-4o.\n\nEach post comes with a matching **AI-generated image**, and the results are saved to a “Social Media Post” sheet.\n\n### Flow:\n1. Trigger on schedule\n2. Fetch a topic from Google Sheets\n3. Search YouTube via Dumpling AI\n4. Pick the best match using GPT-4o\n5. Get transcript + generate platform-specific posts\n6. Generate images for each post\n7. Save results to Google Sheets\n8. Mark topic as processed\n\n✅ Use your Dumpling + OpenAI credentials (no hardcoded API keys)  \n✅ Required Sheets:\n- **YouTube Topics** (with `Youtube Topics`, `Searched?`)\n- **Social Media Post** (with `platform`, `Content`, `Image`)\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Format Facebook Post": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-b0399746-d5d0-4162-aa0f-47a145deef81.png",
          "Content": "Ever feel stuck sending generic emails and not getting the response you want? I hear you! I just tried out an easy shortcut that automates super-personalized emails using make.com and a mix of smart AI tools. Instead of spending hours researching contacts and crafting messages, I built a simple workflow: upload your contacts, pull in their backgrounds with Perplexity, then let GPT write custom emails tailored to each person. It’s quick and the results are way more personal!\n\nMy key takeaway? Combining the RIGHT tools (not just one) makes your outreach way more effective AND saves you a ton of time.\n\nCurious to try this approach for your own emails? Or have you already used AI for outreach? Let me know your experience in the comments!",
          "platform": "facebook"
        }
      }
    ],
    "Format LinkedIn Post": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-a4af866b-cbb0-43fa-b150-860afc8336ba.png",
          "Content": "Personalized outreach is still the gold standard, but it often comes at a high cost in time and effort. What if automation and AI could do the heavy lifting for you?\n\nBy integrating make.com with tools like Perplexity (for deep research) and GPT (for tailored email copy), I’ve developed a streamlined workflow that delivers genuinely personalized emails—on autopilot. Here’s the essence:\n- Feed your contact list into the workflow\n- Gather background insights automatically\n- Generate high-quality, context-rich messages at scale\n\nKey insight: Each tool has strengths—research with Perplexity, writing with GPT—and combining them maximizes both relevance and efficiency. The result? Faster, smarter outreach that doesn’t sacrifice the human touch.\n\nHow are you integrating automation or AI into your outreach? Which tools have made the biggest impact for you? Let’s share best practices and ideas in the comments below!",
          "platform": "linkedin"
        }
      }
    ],
    "Format Instagram Post": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-95b404b9-1e8d-49d8-ab27-63db4c9321c6.png",
          "Content": "Struggle with outreach? 🚀 Here's a game-changing hack: automate ultra-personalized emails in seconds! Using make.com and some smart AI modules, you can turn hours of research and writing into a streamlined, automatic process. Just plug in your contact spreadsheet, connect with Perplexity for background info, then let GPT craft that perfect message. Upgrade your outreach, boost engagement, and leave cookie-cutter emails in the dust. Ready to work smarter?\n\n#AIAutomation #EmailMarketing #ProductivityTips #PersonalizedOutreach",
          "platform": "instagram"
        }
      }
    ],
    "Save Facebook Post to Sheet": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-b0399746-d5d0-4162-aa0f-47a145deef81.png",
          "Content": "Ever feel stuck sending generic emails and not getting the response you want? I hear you! I just tried out an easy shortcut that automates super-personalized emails using make.com and a mix of smart AI tools. Instead of spending hours researching contacts and crafting messages, I built a simple workflow: upload your contacts, pull in their backgrounds with Perplexity, then let GPT write custom emails tailored to each person. It’s quick and the results are way more personal!\n\nMy key takeaway? Combining the RIGHT tools (not just one) makes your outreach way more effective AND saves you a ton of time.\n\nCurious to try this approach for your own emails? Or have you already used AI for outreach? Let me know your experience in the comments!",
          "platform": "facebook"
        }
      }
    ],
    "Save LinkedIn Post to Sheet": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-a4af866b-cbb0-43fa-b150-860afc8336ba.png",
          "Content": "Personalized outreach is still the gold standard, but it often comes at a high cost in time and effort. What if automation and AI could do the heavy lifting for you?\n\nBy integrating make.com with tools like Perplexity (for deep research) and GPT (for tailored email copy), I’ve developed a streamlined workflow that delivers genuinely personalized emails—on autopilot. Here’s the essence:\n- Feed your contact list into the workflow\n- Gather background insights automatically\n- Generate high-quality, context-rich messages at scale\n\nKey insight: Each tool has strengths—research with Perplexity, writing with GPT—and combining them maximizes both relevance and efficiency. The result? Faster, smarter outreach that doesn’t sacrifice the human touch.\n\nHow are you integrating automation or AI into your outreach? Which tools have made the biggest impact for you? Let’s share best practices and ideas in the comments below!",
          "platform": "linkedin"
        }
      }
    ],
    "Save Instagram Post to Sheet": [
      {
        "json": {
          "Image": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-95b404b9-1e8d-49d8-ab27-63db4c9321c6.png",
          "Content": "Struggle with outreach? 🚀 Here's a game-changing hack: automate ultra-personalized emails in seconds! Using make.com and some smart AI modules, you can turn hours of research and writing into a streamlined, automatic process. Just plug in your contact spreadsheet, connect with Perplexity for background info, then let GPT craft that perfect message. Upgrade your outreach, boost engagement, and leave cookie-cutter emails in the dust. Ready to work smarter?\n\n#AIAutomation #EmailMarketing #ProductivityTips #PersonalizedOutreach",
          "platform": "instagram"
        }
      }
    ],
    "Generate Facebook Image (Dumpling AI)": [
      {
        "json": {
          "model": "FLUX.1-pro",
          "images": [
            {
              "url": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-b0399746-d5d0-4162-aa0f-47a145deef81.png"
            }
          ],
          "prompt": "A friendly workspace with someone happily working at a computer, a visible flowchart connecting contact lists to AI modules, and email drafts popping up on the screen.",
          "creditUsage": 30
        }
      }
    ],
    "Generate LinkedIn Image (Dumpling AI)": [
      {
        "json": {
          "model": "FLUX.1-pro",
          "images": [
            {
              "url": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-a4af866b-cbb0-43fa-b150-860afc8336ba.png"
            }
          ],
          "prompt": "A professional desktop with a clear automation workflow diagram, referencing Google Sheets, Perplexity AI, and GPT, with sample personalized emails open on a sleek monitor.",
          "creditUsage": 30
        }
      }
    ],
    "Generate Instagram Image (Dumpling AI)": [
      {
        "json": {
          "model": "FLUX.1-pro",
          "images": [
            {
              "url": "https://pub-1ff5a17124b34b658b5b75065b3a03e8.r2.dev/temp-95b404b9-1e8d-49d8-ab27-63db4c9321c6.png"
            }
          ],
          "prompt": "A modern workspace with a laptop displaying an automation workflow, highlighted sections of a spreadsheet, and AI-generated email templates on screen.",
          "creditUsage": 30
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "fd3a39da-191a-4e81-9469-bc912ae68490",
  "connections": {
    "70bf8926-5b7c-4fd3-8cc6-50a18b424c9b": {
      "main": [
        [
          {
            "node": "a632becc-7fd6-4305-b605-e3207b9c55f0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "839370cd-a1f0-4114-aeb3-c2f5abd51d0b": {
      "main": [
        [
          {
            "node": "876f0644-4c8c-4f9e-a2c0-c90db4813ef5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "06411636-bbcb-4348-8ff4-e2e80ffe61bf": {
      "main": [
        [
          {
            "node": "21220afc-832c-4020-a268-bef07161b2ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ffd66d63-4cb0-49e0-9e09-a7ad750d4add": {
      "main": [
        [
          {
            "node": "9371626a-014d-435b-9fba-d6e70f649465",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "42d0234f-be8d-4df3-9f02-ff5ee574bea3": {
      "main": [
        [
          {
            "node": "4e72498d-e44d-4611-904b-83538f2cb352",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd78f640-822e-49ca-ba2d-8f3442bd7d70": {
      "main": [
        [
          {
            "node": "8896a2cd-2732-4e08-ae09-b44c074f0de2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "170d005a-c7e3-46e3-83da-9f607271b9e7": {
      "main": [
        [
          {
            "node": "ca110a4c-65fa-47f8-8fa3-6e63962d8554",
            "type": "main",
            "index": 0
          },
          {
            "node": "e92dadcb-fb66-4315-b83e-8256e8b74cb1",
            "type": "main",
            "index": 0
          },
          {
            "node": "151f494f-1afe-4c4c-98a1-6fc1ea362599",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "876f0644-4c8c-4f9e-a2c0-c90db4813ef5": {
      "main": [
        [
          {
            "node": "70bf8926-5b7c-4fd3-8cc6-50a18b424c9b",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "21220afc-832c-4020-a268-bef07161b2ff": {
      "main": [
        [
          {
            "node": "70bf8926-5b7c-4fd3-8cc6-50a18b424c9b",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "3e16a160-5e3f-403d-acbb-40c1c698423b": {
      "main": [
        [
          {
            "node": "dd78f640-822e-49ca-ba2d-8f3442bd7d70",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a0b322e2-485b-4669-8603-e5988a6dcd6d": {
      "main": [
        [
          {
            "node": "170d005a-c7e3-46e3-83da-9f607271b9e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9371626a-014d-435b-9fba-d6e70f649465": {
      "main": [
        [
          {
            "node": "70bf8926-5b7c-4fd3-8cc6-50a18b424c9b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8896a2cd-2732-4e08-ae09-b44c074f0de2": {
      "main": [
        [
          {
            "node": "a0b322e2-485b-4669-8603-e5988a6dcd6d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "447c249d-92f9-4b3f-90eb-122e0be919ad": {
      "main": [
        [
          {
            "node": "3e16a160-5e3f-403d-acbb-40c1c698423b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e92dadcb-fb66-4315-b83e-8256e8b74cb1": {
      "main": [
        [
          {
            "node": "839370cd-a1f0-4114-aeb3-c2f5abd51d0b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "151f494f-1afe-4c4c-98a1-6fc1ea362599": {
      "main": [
        [
          {
            "node": "06411636-bbcb-4348-8ff4-e2e80ffe61bf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca110a4c-65fa-47f8-8fa3-6e63962d8554": {
      "main": [
        [
          {
            "node": "ffd66d63-4cb0-49e0-9e09-a7ad750d4add",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4e72498d-e44d-4611-904b-83538f2cb352": {
      "main": [
        [
          {
            "node": "447c249d-92f9-4b3f-90eb-122e0be919ad",
            "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

Génération automatique de vidéos et de sons de niveau cinématographique pour animaux à partir de formuliers avec Dumpling AI
Convertir des saisies de formulaires en vidéo de qualité cinématographique avec GPT-4, Dumpling AI et audio ElevenLabs
Set
Code
Wait
+
Set
Code
Wait
23 NœudsYang
Création de contenu
Utiliser Dumpling AI et GPT-4o pour générer des idées de vidéos YouTube
Générer des idées de contenu YouTube avec Dumpling AI et GPT-4o par analyse vidéo
Code
Wait
Gmail
+
Code
Wait
Gmail
13 NœudsYang
Création de contenu
Création et téléchargement de vidéos AI vers Instagram, TikTok et YouTube
Création de vidéos pilotée par l'IA depuis Google Drive, téléchargement sur Instagram, TikTok et YouTube
If
Set
Code
+
If
Set
Code
53 NœudsDevCode Journey
Création de contenu
💥 Automatisation des publicités vidéo avec NanoBanana, Seedream 4, ChatGPT Image et Veo 3 - VIDE
Utiliser l'IA (NanoBanana, Seedream, GPT-4o, Veo 3) pour automatiser et publier des campagnes publicitaires vidéo
Set
Code
Wait
+
Set
Code
Wait
63 NœudsDr. Firas
Création de contenu
Flux de travail automatisé SEO pour blog de mots-clés à WordPress avec GPT-5 et images fal.ai
Automatisation du flux de blog SEO des mots-clés vers WordPress avec GPT-5 et les images fal.ai
Set
Code
Wait
+
Set
Code
Wait
96 NœudsPaul
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
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds20
Catégorie2
Types de nœuds9
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