Extraction d'insights marketing à partir des vidéos TikTok avec Dumpling AI et GPT-4

Intermédiaire

Ceci est unMarket Research, Multimodal AIworkflow d'automatisation du domainecontenant 12 nœuds.Utilise principalement des nœuds comme Code, AiTransform, FormTrigger, HttpRequest, GoogleSheets. Extraire des insights marketing à partir de vidéos TikTok avec Dumpling AI et GPT-4 et générer du contenu

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": "vKjQAPaaL1cUVXtj",
  "meta": {
    "instanceId": "a1ae5c8dc6c65e674f9c3947d083abcc749ef2546dff9f4ff01de4d6a36ebfe6",
    "templateCredsSetupCompleted": true
  },
  "name": "Extract Marketing Insights from TikTok Videos Using Dumpling AI and GPT-4",
  "tags": [],
  "nodes": [
    {
      "id": "2f93eea5-5e9b-4f5e-88db-bbfc689fad92",
      "name": "Formulaire : Soumettre l'URL TikTok + Infos Produit",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -760,
        150
      ],
      "webhookId": "8f2a292d-01ab-45ec-9197-9f053276c70c",
      "parameters": {
        "options": {},
        "formTitle": "TikTok Scraper ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Tiktok Video URL"
            },
            {
              "fieldLabel": "Keyword "
            },
            {
              "fieldLabel": "Product "
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3fed2762-757b-4b3b-8fe1-19b04eb6d447",
      "name": "Dumpling AI : Obtenir la transcription TikTok",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -540,
        150
      ],
      "parameters": {
        "url": "=https://app.dumplingai.com/api/v1/get-tiktok-transcript",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "text",
              "outputPropertyName": "body"
            }
          }
        },
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "videoUrl",
              "value": "={{ $json['Tiktok Video URL'] }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "RLFzAcGRepr5eXZB",
          "name": "Dumpling AI-n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c713b45f-f4af-40cd-a67d-640a96903a85",
      "name": "Formatage : Nettoyer les sous-titres VTT",
      "type": "n8n-nodes-base.code",
      "position": [
        -320,
        150
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const vtt = $json.body;                // text we just downloaded\n\nif (!vtt) {\n  return { transcript: null, note: \"no TikTok captions\" };\n}\n\nconst lines = vtt\n  .split(/\\r?\\n/)\n  .filter(l => l && !l.match(/^(\\d+|WEBVTT|X-TIMESTAMP|[:\\d+.\\-> ]+$)/));\n\nreturn { transcript: lines.join(\" \") };\n"
      },
      "typeVersion": 2
    },
    {
      "id": "5f405063-4e4c-42d3-9f0a-98c0fda55bb3",
      "name": "GPT-4 : Extraire points de douleur & insights",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -20,
        -80
      ],
      "parameters": {
        "text": "=Here is a TikTok transcript. Analyze it for the following:\n\n1. Determine whether the speaker is describing a **problem**, a **solution**, or **both** regarding the keyword: \"{{ $('Form: Submit TikTok URL + Product Info').item.json['Keyword '] }}\".\n2. Extract:\n   - Pain points\n   - Desired outcomes\n   - Triggers or motivating events\n   - Interesting direct quotes or phrases\n\nTranscript: {{ $json.transcript }}\n",
        "options": {
          "systemMessage": "=You are a customer research analyst. Your job is to extract actionable marketing insights from user-generated content like TikTok transcripts.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "6d7d57a8-b44e-4b25-8af2-1b86b72c534b",
      "name": "Analyse : Séparer les insights (points de douleur, résultats, etc.)",
      "type": "n8n-nodes-base.aiTransform",
      "position": [
        400,
        -20
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst outputItems = items.map((item) => {\n  const output = item?.json?.output;\n\n  const painPointsIndex = output.indexOf(\"Pain Points\") + \"Pain Points\".length;\n  const desiredOutcomesIndex = output.indexOf(\"Desired Outcomes\");\n  const triggersIndex = output.indexOf(\"Triggers or Motivating Events\");\n  const quotesIndex = output.indexOf(\"Interesting Direct Quotes or Phrases\");\n\n  const painPoints = output.slice(painPointsIndex, desiredOutcomesIndex).trim();\n  const desiredOutcomes = output\n    .slice(desiredOutcomesIndex, triggersIndex)\n    .trim();\n  const triggers = output.slice(triggersIndex, quotesIndex).trim();\n  const quotes = output.slice(quotesIndex).trim();\n\n  return {\n    painPoints,\n    desiredOutcomes,\n    triggers,\n    quotes,\n  };\n});\n\nreturn outputItems;\n",
        "instructions": "I want to extract the output from the AI agent into own separate outputs. So extract the pain points, desired outcomes, triggers or motivating events, interesting direct quotes or phrases",
        "codeGeneratedForPrompt": "I want to extract the output from the AI agent into own separate outputs. So extract the pain points, desired outcomes, triggers or motivating events, interesting direct quotes or phrases"
      },
      "typeVersion": 1
    },
    {
      "id": "6baf0404-4ea2-42ce-927f-7a0207d04f41",
      "name": "Google Sheets : Enregistrer insights + copie de publication",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        652,
        150
      ],
      "parameters": {
        "columns": {
          "value": {
            "Video URL": "={{ $('Form: Submit TikTok URL + Product Info').item.json['Tiktok Video URL'] }}",
            "New Script": "={{ $json.output }}",
            "Pain points": "={{ $('Parse: Separate Insights (pain points, outcomes, etc)').first().json.painPoints}}",
            "Desired outcomes": "={{ $('Parse: Separate Insights (pain points, outcomes, etc)').first().json.desiredOutcomes }}",
            "Original Transcription": "={{ $('Format: Clean VTT Captions').item.json.transcript }}",
            "Interesting direct quotes": "={{$('Parse: Separate Insights (pain points, outcomes, etc)').first().json.quotes}}",
            "Triggers or motivating events": "={{ $('Parse: Separate Insights (pain points, outcomes, etc)').first().json.triggers }}"
          },
          "schema": [
            {
              "id": "Video URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Video URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Original Transcription",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Original Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Pain points",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Pain points",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Desired outcomes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Desired outcomes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Triggers or motivating events",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Triggers or motivating events",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Interesting direct quotes",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Interesting direct quotes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "New Script",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "New Script",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Video URL"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aXRi2vdugC2YJ4Up8vSkeDEpbTem9-t8x5m5H7Or9w8/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/17HGdr1TvWdv6aLVlElGqqz8Q6aS90IXIlJBYsW5rPtk/edit?usp=drivesdk",
          "cachedResultName": "TikTok URL"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "37d135b2-9861-4829-906f-13a0d781012f",
      "name": "GPT-4 : Réécrire la transcription en publication marketing",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        40,
        360
      ],
      "parameters": {
        "text": "=Analyze the following TikTok transcript and determine whether the speaker is primarily describing:\n\n- a **problem** related to the keyword \"{{ $('Form: Submit TikTok URL + Product Info').item.json['Keyword '] }}\".\n- a **solution** they've found, or\n- **both** a problem and a solution.\n\nThen, rewrite the transcript with the following goals:\n\n1. Frame our product or service \"{{ $('Form: Submit TikTok URL + Product Info').item.json['Product '] }}\" as the ideal solution to the problem, or a key part of the solution being described.\n2. Preserve the speaker’s tone, voice, and informal/social style.\n3. Make it sound like a natural social media post or spoken monologue.\n4. Ensure it's conversational and authentic.\n\n\nTranscript: {{ $json.transcript }}\n\n\n\n\n\n\n\n",
        "options": {
          "systemMessage": "=You are a persuasive copywriter skilled at rewriting user-generated content to position a product or service as the solution to customer problems or goals, while preserving the original voice and tone.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "13fb5224-ab7e-4202-804d-0c5f186b742a",
      "name": "GPT-4 : Utilisé dans l'agent de recherche",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -72,
        220
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "dd8NvMC6rvx8RITo",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b6f39362-75bf-48c9-b4be-2f2250fd01b5",
      "name": "GPT-4 : Utilisé dans l'agent de réécriture",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -140,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "dd8NvMC6rvx8RITo",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dba84dc4-769f-45a6-bff9-bd11f7fb0c1b",
      "name": "🧠 Outils LangChain (pour agents)",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        48,
        220
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "39c7099f-c491-44d3-99bc-1fb716227b79",
      "name": "🧠 Outils LangChain (pour agents)1",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        280,
        600
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b1505793-aefe-421d-bb59-7a5e579cfee6",
      "name": "Note autocollante",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -900,
        -220
      ],
      "parameters": {
        "width": 740,
        "height": 460,
        "content": "### 🎯 Workflow Summary\n\nThis workflow takes a TikTok link and product keyword,  \nextracts the transcript, and uses GPT-4 to generate:\n\n- Key pain points  \n- Desired outcomes  \n- Motivating events  \n- Direct quotes  \n- A rewritten post for marketing\n\nAll results are saved to Google Sheets.\n\nTools: Dumpling AI, GPT-4, LangChain, Google Sheets\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Dumpling AI: Get TikTok Transcript": [
      {
        "json": {
          "body": "{\"transcript\":\"WEBVTT\\n\\n\\n00:00:04.720 --> 00:00:07.920\\nbookmark it later because you're gonna wanna check out each of these platforms\\n\\n00:00:07.921 --> 00:00:09.600\\nif you don't know what AI agents are\\n\\n00:00:09.601 --> 00:00:11.800\\nthey're probably the hottest thing in AI right now\\n\\n00:00:11.801 --> 00:00:13.680\\nfirst one is relevance AI\\n\\n00:00:13.681 --> 00:00:16.520\\nand I love this platform for use cases like sales\\n\\n00:00:16.521 --> 00:00:18.140\\nmarketing and research\\n\\n00:00:18.200 --> 00:00:21.480\\nmakes it super easy to build agents that have access to tools\\n\\n00:00:21.481 --> 00:00:22.880\\nnumber two is Stack AI\\n\\n00:00:22.881 --> 00:00:26.080\\nit's one of the best agent builder platforms for Enterprise\\n\\n00:00:26.081 --> 00:00:29.900\\nLock 2 certified easy to plug in to your internal data sources\\n\\n00:00:30.080 --> 00:00:32.000\\nNo.3 is n8n.io\\n\\n00:00:32.001 --> 00:00:35.160\\nwhich has been around for a long time as a workflow automation tool\\n\\n00:00:35.161 --> 00:00:36.640\\nbut they have some neat features\\n\\n00:00:36.641 --> 00:00:38.960\\nmakes it easy to build AI agents\\n\\n00:00:38.961 --> 00:00:43.440\\nNo.4 is taskade this is a very opinionated project management tool\\n\\n00:00:43.441 --> 00:00:46.960\\nwhere you can assign tasks to different agents on your team\\n\\n00:00:46.961 --> 00:00:48.640\\nlike before market research\\n\\n00:00:48.641 --> 00:00:51.440\\nfollow up on this lead write a report etcetera\\n\\n00:00:51.441 --> 00:00:53.320\\nNo. 5 is Flowise AI\\n\\n00:00:53.321 --> 00:00:58.100\\nI love it because it's open source and you can build chat bots and AI agents\\n\\n00:00:58.160 --> 00:01:00.160\\nNo.6 is mindStudio dot AI\\n\\n00:01:00.161 --> 00:01:04.280\\nit integrates with over 50 LLMs and you can plug in your data sources\\n\\n00:01:04.281 --> 00:01:06.160\\nNo. 7 is Vectorshift dot AI\\n\\n00:01:06.161 --> 00:01:07.840\\nI personally haven't tried this one yet\\n\\n00:01:07.841 --> 00:01:09.760\\nbut I like that they have a starter plan\\n\\n00:01:09.761 --> 00:01:11.080\\nand just like the other platforms\\n\\n00:01:11.081 --> 00:01:12.680\\nyou can build AI search engines\\n\\n00:01:12.681 --> 00:01:14.440\\nAI assistance chat bots\\n\\n00:01:14.441 --> 00:01:15.640\\nautomations etcetera\\n\\n00:01:15.641 --> 00:01:18.080\\nnow if you do have a little bit of Python coding experience\\n\\n00:01:18.081 --> 00:01:21.920\\nthen the two frameworks you're gonna Wanna check out are Microsoft's Autogen\\n\\n00:01:21.921 --> 00:01:25.920\\nand Crew AI which just announced a huge partnership with Nvidia\\n\\n00:01:25.921 --> 00:01:29.440\\nboth platforms make it super easy to create multi agent teams\\n\\n00:01:29.441 --> 00:01:31.518\\nwith complex hierarchy structures\\n\",\"language\":\"en\",\"id\":\"7457297253338828075\",\"originalUrl\":\"https://www.tiktok.com/@sabrina_ramonov/video/7457297253338828075?is_from_webapp=1&sender_device=pc&web_id=7436093910231483960\"}"
        }
      }
    ],
    "Form: Submit TikTok URL + Product Info": [
      {
        "json": {
          "Keyword ": "AI agent",
          "Product ": "Dumpling AI",
          "formMode": "test",
          "submittedAt": "2025-07-18T07:01:35.899+10:00",
          "Tiktok Video URL": "https://www.tiktok.com/@sabrina_ramonov/video/7457297253338828075?is_from_webapp=1&sender_device=pc&web_id=7436093910231483960"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8b9e4413-072a-40a1-9ec3-f079f3a38b80",
  "connections": {
    "c713b45f-f4af-40cd-a67d-640a96903a85": {
      "main": [
        [
          {
            "node": "5f405063-4e4c-42d3-9f0a-98c0fda55bb3",
            "type": "main",
            "index": 0
          },
          {
            "node": "37d135b2-9861-4829-906f-13a0d781012f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b6f39362-75bf-48c9-b4be-2f2250fd01b5": {
      "ai_languageModel": [
        [
          {
            "node": "37d135b2-9861-4829-906f-13a0d781012f",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "13fb5224-ab7e-4202-804d-0c5f186b742a": {
      "ai_languageModel": [
        [
          {
            "node": "5f405063-4e4c-42d3-9f0a-98c0fda55bb3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "dba84dc4-769f-45a6-bff9-bd11f7fb0c1b": {
      "ai_tool": [
        [
          {
            "node": "5f405063-4e4c-42d3-9f0a-98c0fda55bb3",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "3fed2762-757b-4b3b-8fe1-19b04eb6d447": {
      "main": [
        [
          {
            "node": "c713b45f-f4af-40cd-a67d-640a96903a85",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "39c7099f-c491-44d3-99bc-1fb716227b79": {
      "ai_tool": [
        [
          {
            "node": "37d135b2-9861-4829-906f-13a0d781012f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5f405063-4e4c-42d3-9f0a-98c0fda55bb3": {
      "main": [
        [
          {
            "node": "6d7d57a8-b44e-4b25-8af2-1b86b72c534b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f93eea5-5e9b-4f5e-88db-bbfc689fad92": {
      "main": [
        [
          {
            "node": "3fed2762-757b-4b3b-8fe1-19b04eb6d447",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37d135b2-9861-4829-906f-13a0d781012f": {
      "main": [
        [
          {
            "node": "6baf0404-4ea2-42ce-927f-7a0207d04f41",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6d7d57a8-b44e-4b25-8af2-1b86b72c534b": {
      "main": [
        [
          {
            "node": "6baf0404-4ea2-42ce-927f-7a0207d04f41",
            "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é ?

Intermédiaire - Étude de marché, 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

Extraction d'insights marketing à partir des avis Google avec Dumpling AI + GPT-4
Extraire des insights marketing à partir d'avis Google avec Dumpling AI + GPT-4
Split Out
Aggregate
Form Trigger
+
Split Out
Aggregate
Form Trigger
10 NœudsYang
Étude de marché
Utiliser Dumpling AI pour scraper le contenu des blogs de sites web et l'enregistrer dans Google Sheets
Gratter le contenu des blogs de sites web et le sauvegarder dans Google Sheets avec Dumpling AI
Set
Code
Form Trigger
+
Set
Code
Form Trigger
11 NœudsYang
Étude de marché
Extraction de sélections de produits à partir de n'importe quel site Web avec Dumpling AI et GPT-4o
Extraire des produits populaires de n'importe quel site web avec Dumpling AI et GPT-4o
Code
Gmail
Split Out
+
Code
Gmail
Split Out
9 NœudsYang
Étude de marché
Génération de variantes d'images publicitaires avec GPT-4, Dumpling AI et Google Drive
Utiliser GPT-4, Dumpling AI et Google Drive pour générer des variantes d'images publicitaires
Split Out
Form Trigger
Google Drive
+
Split Out
Form Trigger
Google Drive
14 NœudsYang
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
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
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds12
Catégorie2
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34