This workflow corresponds to n8n.io template #6449 — we link there as the canonical source.
This workflow follows the Chainllm → 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 →
{
"id": "HJf3UBUUKBCZQbXw",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "VEO3 VSL Generator: Automated Video Workflow for Meta Publishing",
"tags": [],
"nodes": [
{
"id": "fff09fbf-66a2-4faf-a2e0-17a0a06f2f07",
"name": "Convert to File",
"type": "n8n-nodes-base.convertToFile",
"notes": "At this step, the video should be generated and ready to convert to 9:16 aspect ratio",
"position": [
3952,
-80
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 1.1
},
{
"id": "d10bd8d3-177b-4fd8-8ad8-c7b0503729df",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
3024,
112
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "a032fa9c-e8b2-4a8a-adde-affb3cd1e27f",
"name": "Fetch Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
2816,
128
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "7d8ca72f-f590-4173-b9ff-6e9f3787521f",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
3008,
-64
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "e4c5da50-2c11-4f9c-8308-ac24d7995ef1",
"name": "Generate Video1",
"type": "n8n-nodes-base.httpRequest",
"position": [
2816,
-64
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "10e1bcfc-7462-4d32-b271-7bb87be00fbf",
"name": "JWT",
"type": "n8n-nodes-base.jwt",
"position": [
2016,
-80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "fa31df06-7741-4d52-8a87-aa46040ee1b6",
"name": "GET TOKEN",
"type": "n8n-nodes-base.httpRequest",
"position": [
1776,
112
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "7ffd733e-d9af-47db-8481-5d291d978b74",
"name": "Product Image Describing",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
752,
-80
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "9402f9c2-5632-406d-ab77-a37edbdc660c",
"name": "VeoPrompt",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
288,
112
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "f33476cf-da46-4d18-8995-7456e8cf8803",
"name": "Upload to GCS (To be accessible via URL)",
"type": "n8n-nodes-base.googleCloudStorage",
"position": [
4160,
-80
],
"parameters": {},
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 2000
},
{
"id": "3642116e-4ee6-4279-8acf-9c9c8d718b5f",
"name": "Add Captions",
"type": "n8n-nodes-base.httpRequest",
"position": [
4928,
-80
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "00a4f275-62b5-473a-854e-95f7ecfe0039",
"name": "Rendering....",
"type": "n8n-nodes-base.wait",
"position": [
5136,
-80
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "277726fa-533f-491d-aee2-7d78c7aba66b",
"name": "Captions added?",
"type": "n8n-nodes-base.httpRequest",
"position": [
5296,
-80
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "882dccc4-7c53-4ded-94f8-6f6e77f6a18f",
"name": "Switch1",
"type": "n8n-nodes-base.switch",
"position": [
5488,
-128
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "7236a786-68b4-42ea-8f51-305d79988028",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-48,
-80
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "7a212587-8fb8-4db0-981b-72f1bdb15379",
"name": "Form Input",
"type": "n8n-nodes-base.set",
"position": [
128,
-80
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "e23306fe-9cab-4e14-9f18-a0b2882a5c83",
"name": "SET Credentials",
"type": "n8n-nodes-base.set",
"position": [
1792,
-80
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "deb23466-53a9-4064-b180-6e1ab8552c3b",
"name": "Upload Post",
"type": "n8n-nodes-upload-post.uploadPost",
"position": [
6272,
-48
],
"parameters": {},
"typeVersion": 1
},
{
"id": "fd0c9450-945d-4e0e-89f9-945781f1f053",
"name": "Content writer",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
640,
112
],
"parameters": {},
"typeVersion": 1.7
},
{
"id": "60f4d6a8-b9d5-46ce-a21c-3518ac28eb83",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
576,
320
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "f93b646c-e857-4c24-801f-30ad2ba3f37b",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
784,
320
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "f3f6c9ed-405d-461a-b7ee-73eb28afa490",
"name": "UGC.Formulator",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
352,
-80
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "899f9144-2b14-4bcf-9b3e-b22b4ab988c6",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e5aa5a36-1e8a-49d2-960b-04a91cd24e24",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "c10da8c0-01ff-462b-ace1-d37e36aa0111",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "15dd557a-35d3-4244-8de9-9aa24b05cc97",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3392,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "1a7c0ac0-f4da-48a6-900d-42a5ad1b2b58",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
4416,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "cc5739c1-4bb0-4a5c-b8c4-7f60dbc10626",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
5824,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "049acf37-7284-4a3f-9829-48e84d3a535f",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-896,
624
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "256d2de2-7795-4e23-808a-0361d722c91e",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
5616,
608
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "77ce5d0a-b064-4c16-8aff-0d0050a34d8d",
"connections": {
"JWT": {
"main": [
[
{
"node": "GET TOKEN",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Fetch Status",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
],
[
{
"node": "VeoPrompt",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Switch1": {
"main": [
[
{
"node": "Upload Post",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Captions",
"type": "main",
"index": 0
}
],
[
{
"node": "Rendering....",
"type": "main",
"index": 0
}
],
[
{
"node": "Rendering....",
"type": "main",
"index": 0
}
],
[
{
"node": "Rendering....",
"type": "main",
"index": 0
}
]
]
},
"GET TOKEN": {
"main": [
[
{
"node": "Generate Video1",
"type": "main",
"index": 0
}
]
]
},
"VeoPrompt": {
"main": [
[
{
"node": "Content writer",
"type": "main",
"index": 0
}
]
]
},
"Form Input": {
"main": [
[
{
"node": "UGC.Formulator",
"type": "main",
"index": 0
}
]
]
},
"Add Captions": {
"main": [
[
{
"node": "Rendering....",
"type": "main",
"index": 0
}
]
]
},
"Fetch Status": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Rendering....": {
"main": [
[
{
"node": "Captions added?",
"type": "main",
"index": 0
}
]
]
},
"Content writer": {
"main": [
[
{
"node": "SET Credentials",
"type": "main",
"index": 0
}
]
]
},
"UGC.Formulator": {
"main": [
[
{
"node": "Product Image Describing",
"type": "main",
"index": 0
}
]
]
},
"Captions added?": {
"main": [
[
{
"node": "Switch1",
"type": "main",
"index": 0
}
]
]
},
"Convert to File": {
"main": [
[
{
"node": "Upload to GCS (To be accessible via URL)",
"type": "main",
"index": 0
}
]
]
},
"Generate Video1": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"SET Credentials": {
"main": [
[
{
"node": "JWT",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Content writer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Form Input",
"type": "main",
"index": 0
}
]
]
},
"Product Image Describing": {
"main": [
[
{
"node": "VeoPrompt",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Content writer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Upload to GCS (To be accessible via URL)": {
"main": [
[
{
"node": "Add Captions",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Source: https://n8n.io/workflows/6449/ — 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.
Transform a single quote into a fully-rendered cinematic short video — with voice-over, visuals, and music — then publish it directly to TikTok, Instagram Reels, and YouTube Shorts. This isn’t just au
Recruiting agencies, executive search firms, and in-house talent teams that want to automate candidate sourcing and prequalification. Instead of spending hours searching, scoring, and writing outreach
Turn any product page into ready-to-run Meta ads—fast, consistent, and client-friendly.
This n8n template automates targeted lead discovery, AI-driven data structuring, and personalized cold-email sending at controlled intervals. It’s ideal for sales teams, founders, and agencies that wa
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.