Extraer perspicacias de marketing de videos de TikTok con Dumpling AI y GPT-4
Este es unMarket Research, Multimodal AIflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como Code, AiTransform, FormTrigger, HttpRequest, GoogleSheets. Extraer insights de marketing de videos de TikTok usando Dumpling AI y GPT-4 y generar contenido
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (12)
{
"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": "Formulario: Enviar URL de TikTok + Información del producto",
"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: Obtener transcripción de 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": "Formato: Limpiar subtítulos 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: Extraer puntos de dolor e 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": "Analizar: Separar insights (puntos de dolor, resultados, 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: Registrar insights + copia para publicaciones",
"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: Reescribir transcripción como publicación de 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: Usado en Research Agent",
"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: Usado en Rewrite Agent",
"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": "🧠 Herramientas LangChain (para Agents)",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
48,
220
],
"parameters": {},
"typeVersion": 1
},
{
"id": "39c7099f-c491-44d3-99bc-1fb716227b79",
"name": "🧠 Herramientas LangChain (para Agents)1",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
280,
600
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b1505793-aefe-421d-bb59-7a5e579cfee6",
"name": "Nota adhesiva",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Investigación de mercado, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Yang
@yangCompartir este flujo de trabajo