This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "R38 Improved",
"nodes": [
{
"parameters": {
"resource": "image",
"operation": "analyze",
"modelId": {
"__rl": true,
"value": "chatgpt-4o-latest",
"mode": "list",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"text": "Return the analysis in YAML format with the following fields:\n\nbrand_name: (Name of the brand shown in the image, if visible or inferable)\ncolor_scheme:\n - hex: (Hex code of each prominent color used)\n name: (Descriptive name of the color)\nfont_style: (Describe the font family or style used: serif/sans-serif, bold/thin, etc.)\nvisual_description: (A full sentence or two summarizing what is seen in the image, ignoring the background)\n\nOnly return the YAML. Do not explain or add any other comments.\n",
"imageUrls": "={{ $json.data.downloadUrl }}",
"simplify": false,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
-656,
272
],
"id": "5b0db44e-64be-41a0-b799-88b640583136",
"name": "Analyze Image",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## INPUT: Any Product",
"height": 272,
"width": 720,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1216,
192
],
"id": "8b186a50-0414-4d59-b279-7674405ae234",
"name": "Sticky Note2"
},
{
"parameters": {
"formTitle": "Create Ads",
"formFields": {
"values": [
{
"fieldLabel": "Character",
"fieldType": "textarea",
"placeholder": "Describe your character..."
},
{
"fieldLabel": "How many clips",
"fieldType": "number",
"placeholder": "1",
"requiredField": true
},
{
"fieldLabel": "Describe the scenes you want",
"fieldType": "textarea",
"placeholder": "I want the dialogue to be...",
"requiredField": true
},
{
"fieldLabel": "Product image",
"fieldType": "file",
"multipleFiles": false
}
]
},
"options": {
"appendAttribution": false
}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.3,
"position": [
-1168,
272
],
"id": "0327658c-0fbf-47e9-9c34-ace726075e06",
"name": "Form"
},
{
"parameters": {
"method": "POST",
"url": "https://kieai.redpandaai.co/api/file-base64-upload",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "base64Data",
"value": "={{ $json.data }}"
},
{
"name": "uploadPath",
"value": "documents/uploads"
},
{
"name": "fileName",
"value": "={{ $now }}.jpg"
}
]
},
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 2000
}
}
}
},
"id": "3e316a19-7ddd-4473-bf2c-2d63c4dca659",
"name": "Image URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
-832,
272
],
"typeVersion": 4,
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"onError": "continueRegularOutput"
},
{
"parameters": {
"operation": "binaryToPropery",
"binaryPropertyName": "Product_image",
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
-1008,
272
],
"id": "8bb52680-ccf5-417d-994d-855045d00b49",
"name": "Load Image",
"alwaysOutputData": true,
"onError": "continueRegularOutput"
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
-240,
544
],
"id": "fa732a5a-22b5-4cf1-87bf-28ffa20ee631",
"name": "Aggregate"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "15886c9d-073b-4983-97d8-061a38fd7f60",
"name": "Scene",
"value": "={{ $json.prompt }}",
"type": "string"
},
{
"id": "7793db14-777e-4bc9-bb4d-434026d45f27",
"name": "duration",
"value": "={{ $json.duration }}",
"type": "number"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
240,
112
],
"id": "3f35edcf-95d9-4615-a29a-1391bd9a6764",
"name": "Edit Fields2"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "9cadb48a-82bd-4b0b-9eec-2b805024ca59",
"name": "data",
"value": "={{ $json.data }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-64,
544
],
"id": "e2895240-fd47-41cf-8a62-a7547c8ec2fa",
"name": "Edit Fields3"
},
{
"parameters": {
"fieldsToSummarize": {
"values": [
{
"aggregation": "sum",
"field": "duration"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.summarize",
"typeVersion": 1.1,
"position": [
448,
112
],
"id": "90900cbb-9ed8-46e0-8e8c-e19c6f938431",
"name": "Summarize"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "1349cb6a-6e77-400b-9936-9ede41274345",
"leftValue": "={{ $json.sum_duration }}",
"rightValue": 25,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
672,
112
],
"id": "679203cf-9844-4040-af16-3de688fa23bd",
"name": "If"
},
{
"parameters": {
"errorMessage": "total duration must be one of 10, 15, 25"
},
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
864,
-80
],
"id": "29cef3ba-57b8-4605-9566-c0d9b707a71b",
"name": "Stop and Error2"
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
"typeVersion": 1,
"position": [
-432,
-80
],
"id": "83194ab0-f9b3-4c38-92e7-2019335fac44",
"name": "Calculator"
},
{
"parameters": {
"jsCode": "const editFields2Data = $(\"Edit Fields2\")\n .all()\n .map((item) => item.json);\nreturn editFields2Data;\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-400,
544
],
"id": "d75f3492-2e4d-4c2a-919c-70c241b03319",
"name": "Code in JavaScript"
},
{
"parameters": {
"unit": "minutes"
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
320,
544
],
"id": "d6e8def5-3cbf-4a0e-bdf6-78e373be4121",
"name": "Wait1"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "a96f17f2-5967-4b13-acc9-4d41f226453b",
"leftValue": "={{ $json.data.state }}",
"rightValue": "=success",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "success"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "52ad92ea-901f-4af8-a462-84b045dd2803",
"leftValue": "={{ $json.data.state }}",
"rightValue": "ing",
"operator": {
"type": "string",
"operation": "contains"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "in progress"
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
720,
528
],
"id": "c0084aba-84a2-4ae7-bc94-a3828cdf1f82",
"name": "Switch1"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4.1-mini",
"mode": "list",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
-320,
-80
],
"id": "c54699a9-a935-42b8-ac16-2fafcb87a90d",
"name": "GPT1",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.toolThink",
"typeVersion": 1,
"position": [
-96,
-80
],
"id": "69457c19-7345-41e8-97f1-a3341280ffc2",
"name": "Think1"
},
{
"parameters": {
"jsonSchemaExample": "{\n \"scenes\": [\n {\n \"shot\": 1,\n \"duration\": 7,\n \"prompt\": \"@debtfree_journey. Handheld medium shot of a man in his mid-30s with short dark hair and a navy t-shirt, sitting at a kitchen table scattered with bills, holding a pen over a credit card statement, natural window light from the left creating soft shadows. Character says: 'I used to lose sleep every night worrying about my debt.'\"\n },\n {\n \"shot\": 2,\n \"duration\": 4,\n \"prompt\": \"Slow pan across a stack of credit card bills with 'PAST DUE' stamps visible, no visible personal data, blurred account numbers, resting on a dark wood surface with dramatic side lighting. Character is not visible. Voiceover says: 'The interest charges kept piling up.'\"\n },\n {\n \"shot\": 3,\n \"duration\": 6,\n \"prompt\": \"Static close-up of the same character looking directly at camera with a relieved expression, holding the Americor welcome packet, bright even lighting, clean background. Character says: 'Americor helped me consolidate everything into one manageable payment.'\"\n },\n {\n \"shot\": 4,\n \"duration\": 8,\n \"prompt\": \"Slow push-in on the Americor mobile app dashboard showing decreasing debt graph and payment timeline, displayed on smartphone screen, soft desk lamp lighting, modern minimalist background. Character is not visible. Voiceover says: 'Now I'm finally on track to becoming debt-free within three years.'\"\n }\n ]\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
-208,
-80
],
"id": "3c052a8f-37ba-4fe9-b9ed-c5e404a78872",
"name": "Structure1"
},
{
"parameters": {
"promptType": "define",
"text": "=Number of clips: {{ $('Form').item.json['How many clips'] }}\n\nCharacter: {{ $('Form').item.json.Character }}\n\nDescription of scenes: {{ $('Form').item.json['Describe the scenes you want'] }}\n\nProduct description: {{ $json.choices[0].message.content }}\n\nAlways use the Think tool.\n",
"hasOutputParser": true,
"options": {
"systemMessage": "=## ROLE & PURPOSE\nYou are a Sora2 video prompt writer for n8n automation. Convert shot lists into natural-language narrative prompts for UGC-style video generation. Generate complete video sequences with multiple shots that total approximately 25 seconds.\n\n## CORE RULES\n\n### Processing Logic\n- Generate one scene object for each shot in the input\n- Maintain character consistency across all UGC shots\n- Calculate individual durations so total \u2248 25 seconds\n\n### DURATION REQUIREMENT:\n- The total sum of all scene durations MUST equal exactly 25 seconds\n- Distribute the 25 seconds appropriately across all scenes\n- USE A CALCULATOR to verify the total duration adds up to exactly 25 before finalizing output\n- Example: 4 scenes could be 7+5+6+7=25 or 6+6+6+7=25\n\nThe agent must intelligently assign duration to each shot based on:\n- Shot type (UGC vs B-roll)\n- Line length and complexity\n- Shot position in sequence\n\n**Duration guidelines**:\n- **UGC shots** (character speaking on camera):\n - Short line (5-10 words): 3-5 seconds\n - Medium line (11-20 words): 6-8 seconds\n - Long line (21+ words): 9-12 seconds\n \n- **B-roll shots** (voiceover + product/environment):\n - Quick cutaway: 2-4 seconds\n - Standard B-roll: 5-7 seconds\n - Extended product showcase: 8-10 seconds\n\n- **First shot** (shot_number: 1): Typically 6-8 seconds (establishes character)\n- **Final shot**: Typically 5-7 seconds (concluding statement)\n\n**Important**: Calculate duration that makes sense for the line length and shot type. The duration must be an integer (whole number of seconds).\n\n### UGC vs B-Roll Logic\n- **UGC shots**: Character is on camera speaking the line directly\n - Use: `Character says: \"<line>\".`\n - Character must be visible and looking at camera\n \n- **B-roll shots**: Product or environment shown, line is voiceover\n - Use: `Voiceover says: \"<line>\".`\n - Character is NOT visible\n\n### Character Consistency\n- **Shot 1**: Must be UGC. Agent must generate a full character description:\n - Gender presentation (man, woman, person)\n - Approximate age range (e.g., \"early 20s\", \"mid-30s\", \"late 40s\")\n - Body type (if relevant: \"athletic build\", \"medium build\")\n - Hairstyle and hair color (e.g., \"shoulder-length brown hair\", \"short gray hair\")\n - Clothing style (e.g., \"casual gray sweater\", \"professional blazer\")\n - Product interaction (held, worn, pointed at)\n - Indoor environment (kitchen table, living room sofa, home office desk)\n - Lighting palette (soft window light, warm lamp, bright even lighting)\n\n- **All subsequent shots**: Refer to character only as `\"the same character\"`\n - Do NOT re-describe appearance\n - Maintain consistency with shot 1\n - Example: `\"Medium shot of the same character...\"`\n\n### Prompt Requirements\nEach prompt must include **exactly one** of each:\n1. **Camera framing** (close-up, medium, wide, over-shoulder, etc.)\n2. **Camera motion** (handheld sway, slow push-in, static, pan, tilt, etc.)\n3. **Visible action** (holding product, gesturing, placing item, pointing, etc.)\n\n### Natural Language Format\n- Write as one continuous narrative description\n- No structured blocks or metadata tags\n- Natural, production-ready language\n- Include lighting, environment, and character/product positioning\n\n## OUTPUT SCHEMA\n\n**Output only a JSON object with a scenes array:**\n\n```json\n{\n \"scenes\": [\n {\n \"shot\": 1,\n \"duration\": 7,\n \"prompt\": \"Natural language narrative prompt goes here...\"\n },\n {\n \"shot\": 2,\n \"duration\": 4,\n \"prompt\": \"Another natural language narrative prompt...\"\n }\n ]\n}\n```\n\n**Field descriptions**:\n- `scenes`: Array of shot objects (length determined by input)\n- `shot`: Integer sequence number (1, 2, 3...)\n- `duration`: Integer (seconds) - calculated by agent based on shot type and line length\n- `prompt`: Natural language narrative description\n\n## PROMPT CONSTRUCTION FORMULA\n\n### For UGC Shots (shot_type: \"ugc\")\n```\n[Character] [Camera motion] [camera framing] of [character reference] [action with product], [environment details], [lighting description]. Character says: \"[line]\".\n```\n\n**Example**:\n```\nHandheld close-up of a woman in her late 20s with shoulder-length brown hair wearing a casual gray sweater, holding the Americor debt relief brochure at chest height, seated at a kitchen table with soft morning window light. Character says: \"I was drowning in credit card bills and didn't know where to turn.\"\n```\n\n### For B-Roll Shots (shot_type: \"broll\")\n```\n[Camera motion] [camera framing] of [product/environment], [setting details], [lighting description]. Character is not visible. Voiceover says: \"[line]\".\n```\n\n**Example**:\n```\nSlow push-in toward the Americor mobile app interface displayed on a smartphone resting on a wooden desk, warm afternoon sunlight, shallow depth of field. Character is not visible. Voiceover says: \"That's when I discovered Americor's debt consolidation program.\"\n```\n\n## CHARACTER REFERENCE LOGIC\n\n**If shot_number == 1:**\n- Agent must generate a realistic, detailed character description\n- This establishes the character for the entire video\n- Include all elements: age, gender, hair, clothing, environment, lighting\n\n**If shot_number > 1 AND shot_type == \"ugc\":**\n- Use only: `\"the same character\"`\n- Example: `\"Medium shot of the same character seated comfortably, holding the product...\"`\n\n**If shot_type == \"broll\":**\n- Character reference: `\"Character is not visible\"`\n\n\n## TOOLS\n- **Think Tool**: Use before generating to plan the narrative structure\n\nABSOLUTELY CRITICAL - DOUBLE QUOTE PROHIBITION:\n- NEVER use the \" character (double quote) anywhere in your response\n- ALWAYS use ' (single quote) for all quotations, dialogue, and emphasis\n- Example: Character says: 'I am speaking' NOT \"I am speaking\"\n\n## FINAL INSTRUCTIONS\n- Output ONLY the JSON object with a `scenes` array\n- Number of scenes in array must equal the `shots` input parameter\n- No additional commentary, explanations, or prose\n- **Calculate appropriate duration** for each shot based on line length and shot type\n- Ensure each prompt reads as one natural sentence or short paragraph\n- Validate required fields for each shot: `shot`, `duration`, `prompt`\n- `duration` must be an integer (whole number of seconds)"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
-352,
112
],
"id": "1c5e6e31-0b9f-474f-9bb8-006ed99a6d78",
"name": "promptRobo AIAgent1"
},
{
"parameters": {
"method": "POST",
"url": "https://api.kie.ai/api/v1/jobs/createTask",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"contentType": "raw",
"rawContentType": "application/json",
"body": "={\n \"model\": \"sora-2-pro-storyboard\",\n \"input\": {\n \"n_frames\": \"25\",\n \"aspect_ratio\": \"portrait\",\n \"shots\": {{ $json.data }}\n }\n}",
"options": {
"batching": {
"batch": {
"batchSize": 1
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
128,
544
],
"id": "8cfa2f5a-beda-40b7-b863-5ab9bb759e98",
"name": "Create Sora",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "=https://api.kie.ai/api/v1/jobs/recordInfo?taskId={{ $('Create Sora').item.json.data.taskId }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
512,
544
],
"id": "225a71b3-77c5-4ce2-a0b5-e7194436472b",
"name": "Get Sora",
"alwaysOutputData": false,
"retryOnFail": false,
"waitBetweenTries": 5000,
"executeOnce": false,
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"onError": "continueRegularOutput"
},
{
"parameters": {
"url": "={{ JSON.parse($json.data.resultJson).resultUrls[0] }}\n",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
944,
384
],
"id": "a7bce756-1a64-4486-b777-d7c927534444",
"name": "Load Video1"
},
{
"parameters": {
"errorMessage": "={{ $('Get Sora').item.json.data.failMsg }}"
},
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
960,
672
],
"id": "a193a16a-a2dd-46f2-9e4d-56165b2a43ca",
"name": "Stop and Error1"
},
{
"parameters": {
"fieldToSplitOut": "output.scenes",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
32,
112
],
"id": "8e689a39-f36f-4912-97b8-be8e6a78dd7e",
"name": "Split Out1"
},
{
"parameters": {
"content": "## Scene Generation\n",
"height": 512,
"width": 1552,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
-208
],
"typeVersion": 1,
"id": "a56bdea9-e3f4-47f0-9899-84480d62ec61",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Video Generation",
"height": 512,
"width": 1568
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
336
],
"typeVersion": 1,
"id": "35a2e5c3-f1e6-463f-acf3-dcb1086b4e9b",
"name": "Sticky Note1"
}
],
"connections": {
"Analyze Image": {
"main": [
[
{
"node": "promptRobo AIAgent1",
"type": "main",
"index": 0
}
]
]
},
"Form": {
"main": [
[
{
"node": "Load Image",
"type": "main",
"index": 0
}
]
]
},
"Load Image": {
"main": [
[
{
"node": "Image URL",
"type": "main",
"index": 0
}
]
]
},
"Image URL": {
"main": [
[
{
"node": "Analyze Image",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Edit Fields3",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "Summarize",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields3": {
"main": [
[
{
"node": "Create Sora",
"type": "main",
"index": 0
}
]
]
},
"Summarize": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Stop and Error2",
"type": "main",
"index": 0
}
],
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Calculator": {
"ai_tool": [
[
{
"node": "promptRobo AIAgent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "Get Sora",
"type": "main",
"index": 0
}
]
]
},
"Switch1": {
"main": [
[
{
"node": "Load Video1",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop and Error1",
"type": "main",
"index": 0
}
]
]
},
"GPT1": {
"ai_languageModel": [
[
{
"node": "promptRobo AIAgent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Think1": {
"ai_tool": [
[
{
"node": "promptRobo AIAgent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Structure1": {
"ai_outputParser": [
[
{
"node": "promptRobo AIAgent1",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"promptRobo AIAgent1": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Create Sora": {
"main": [
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Get Sora": {
"main": [
[
{
"node": "Switch1",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Edit Fields2",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "bd041e17-2a35-4a0e-8d6c-c5315919d204",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "JijAejqFUje7rHma",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuthopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
R38 Improved. Uses openAi, formTrigger, httpRequest, stopAndError. Event-driven trigger; 26 nodes.
Source: https://github.com/Entmarketingteam/n8n-synta-mcp-creations/blob/90a555d15a266a25d62472f1e6f71b63735e8d16/workflows/robonuggets/R38-improved.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.
How it Works
Digital marketers, content creators, social media managers, and businesses who want to use AI marketing automation for YouTube Shorts without spending hours on production. This AI workflow helps anyon
This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste