This workflow corresponds to n8n.io template #10954 β we link there as the canonical source.
This workflow follows the Chainllm β Google Sheets 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": "KyBwyFM0ZDSueF7K",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "ZERO API COST AUTOMATION",
"tags": [],
"nodes": [
{
"id": "5ebad3ba-44ee-4791-984b-7af93a9b09f7",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1584,
208
],
"parameters": {},
"typeVersion": 1
},
{
"id": "baf2c086-47d4-4d4e-8dc7-fa54273dfb82",
"name": "Set Variables",
"type": "n8n-nodes-base.set",
"position": [
-880,
848
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "05191ece-0f26-4411-96b6-f775f64b45af",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-928,
1168
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f761d84b-31b1-4b8c-a8be-4c955e51b856",
"name": "Create Array with Videos",
"type": "n8n-nodes-base.code",
"position": [
-608,
1168
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ce49c343-1b85-495a-b807-a046c6210780",
"name": "Split Items",
"type": "n8n-nodes-base.splitOut",
"position": [
-288,
848
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6590a6c6-ce82-46a7-9fff-62ac771b1d44",
"name": "Build Video Array",
"type": "n8n-nodes-base.code",
"position": [
304,
848
],
"parameters": {},
"typeVersion": 2
},
{
"id": "58324b97-77c2-450b-92af-d21b3a72ffec",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
752
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "dad84470-8d98-49b2-a9c7-dd952a9d93ef",
"name": "Generate Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-768,
1168
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "55abd921-9fcd-4a52-b249-7a82b03b3b00",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
1072
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "921b2014-7cb4-4ffe-9b35-6d137b10fed4",
"name": "Build Faceless Array",
"type": "n8n-nodes-base.code",
"position": [
-656,
848
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3d9a101e-49e3-4165-b7e2-b5bb0508d6bd",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
752
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f92dcddc-b364-48fb-9020-0d8cea18f7a2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
1072
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a7407ef3-4018-4dcd-8762-27f924aa5d7e",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
752
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "0f65fa1a-f598-461f-8f06-3817ce50d632",
"name": "Concatenate Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
528,
848
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "0d207f67-14e9-4bee-954c-94e408a852d7",
"name": "Trim Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-288,
1168
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "fe0bfb0c-c3ed-4787-abb8-22a739ebd635",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
1072
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "61f1e496-bf42-4522-8b27-c5b5be860654",
"name": "Get Audio Metadata",
"type": "n8n-nodes-base.httpRequest",
"position": [
-64,
848
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "1ad7c64c-ee07-4dad-8804-0dc0a5213617",
"name": "Caption Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
400,
1168
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "5ddda113-e5a9-4ce9-b211-fe399792c8a6",
"name": "Combine Audio + Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-64,
1168
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "8a69b941-550b-4ef3-8ed7-ad1aa8d4126e",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-1088,
144
],
"parameters": {},
"typeVersion": 1.7
},
{
"id": "34c918de-8a2a-4fcd-82c5-6f6f008d7570",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-816,
320
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "f0232b38-d18a-4580-94fa-4362fca7f134",
"name": "Image Gen",
"type": "n8n-nodes-base.httpRequest",
"position": [
112,
64
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "56b206cc-d0ae-4c96-9f2a-328fdad0e88f",
"name": "Voice Gen1",
"type": "n8n-nodes-base.httpRequest",
"position": [
112,
368
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "e1b87806-087d-4d39-b214-a3de22ad991b",
"name": "Get Voice",
"type": "n8n-nodes-base.httpRequest",
"position": [
352,
368
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "9e1b84fc-f3a6-4169-af78-9ade39df7d3e",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1376,
208
],
"parameters": {},
"executeOnce": false,
"typeVersion": 4.6
},
{
"id": "18431507-735b-4a89-8a3b-511236781b08",
"name": "Image Scripts",
"type": "n8n-nodes-base.set",
"position": [
-480,
128
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "dcb1f4c4-81d9-4a83-91b4-b8f709dc6b6f",
"name": "Audio Scripts",
"type": "n8n-nodes-base.set",
"position": [
-480,
304
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "ee7499f5-0d14-40a4-9fe5-7dad9ea6b91b",
"name": "Code2",
"type": "n8n-nodes-base.code",
"position": [
-256,
304
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c45b0a83-7847-4a27-a27a-cb780526c9fe",
"name": "Code3",
"type": "n8n-nodes-base.code",
"position": [
-256,
128
],
"parameters": {},
"typeVersion": 2
},
{
"id": "9d995e1b-42bd-43f6-96e4-ef45f6f082ec",
"name": "Image Get",
"type": "n8n-nodes-base.httpRequest",
"position": [
352,
64
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "ed791563-6c8d-46ed-8eff-9cf0da465afe",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
592,
64
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c9c05c46-994b-48ef-bfae-49f4f1730118",
"name": "Code1",
"type": "n8n-nodes-base.code",
"position": [
592,
368
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ad3d5ac7-f8c3-4c20-8cae-fa8ab45ec565",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
960,
384
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "930a5c11-8d63-4f62-989c-97e751e6d453",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1088,
624
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e3d0b060-d3b4-46b1-b755-d9d63d11d47c",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "98aa4979-8d6d-4f1b-b7e6-591546a3ae30",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
304
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "3c680526-090f-447e-9d73-3c6fbc84a1dc",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
32
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "d29a8ac8-605d-4ff4-825e-fa5b556ef200",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
64
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a87e941c-43fb-4118-8261-c7cc2832d6f7",
"name": "Ollama Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"position": [
-1040,
352
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5a43a3e5-2daf-4ec7-b320-3f085a13a14a",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2112,
-528
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "eda6a46b-b932-4b65-8417-873c081f7c52",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5a3f2a54-76eb-4af0-a12e-6cc7ef3db267",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "fd44bb83-8ae8-4ca7-85e2-136ad56c4fad",
"name": "Sticky Note14",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e9ab918a-1e58-4546-9596-4128e1648dc1",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-240
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "33a132bd-fe94-4b20-8b76-d559984dcdd4",
"connections": {
"Code": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Code2": {
"main": [
[
{
"node": "Voice Gen1",
"type": "main",
"index": 0
}
]
]
},
"Code3": {
"main": [
[
{
"node": "Image Gen",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Set Variables",
"type": "main",
"index": 0
}
]
]
},
"Get Voice": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"Image Gen": {
"main": [
[
{
"node": "Image Get",
"type": "main",
"index": 0
}
]
]
},
"Image Get": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Generate Video",
"type": "main",
"index": 0
}
]
]
},
"Trim Video": {
"main": [
[
{
"node": "Combine Audio + Video",
"type": "main",
"index": 0
}
]
]
},
"Voice Gen1": {
"main": [
[
{
"node": "Get Voice",
"type": "main",
"index": 0
}
]
]
},
"Split Items": {
"main": [
[
{
"node": "Get Audio Metadata",
"type": "main",
"index": 0
}
]
]
},
"Audio Scripts": {
"main": [
[
{
"node": "Code2",
"type": "main",
"index": 0
}
]
]
},
"Image Scripts": {
"main": [
[
{
"node": "Code3",
"type": "main",
"index": 0
}
]
]
},
"Set Variables": {
"main": [
[
{
"node": "Build Faceless Array",
"type": "main",
"index": 0
}
]
]
},
"Generate Video": {
"main": [
[
{
"node": "Create Array with Videos",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Image Scripts",
"type": "main",
"index": 0
},
{
"node": "Audio Scripts",
"type": "main",
"index": 0
}
]
]
},
"Build Video Array": {
"main": [
[
{
"node": "Concatenate Video",
"type": "main",
"index": 0
}
]
]
},
"Concatenate Video": {
"main": [
[
{
"node": "Caption Video",
"type": "main",
"index": 0
}
]
]
},
"Ollama Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get Audio Metadata": {
"main": [
[
{
"node": "Trim Video",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Build Faceless Array": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Combine Audio + Video": {
"main": [
[
{
"node": "Build Video Array",
"type": "main",
"index": 0
}
]
]
},
"Create Array with Videos": {
"main": [
[
{
"node": "Split Items",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
π Create professional motivational videos automatically with zero API costs!
Source: https://n8n.io/workflows/10954/ β 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.
Episode 11: AI shorts factory app. Uses httpRequest, googleSheets, lmChatOpenAi, lmChatOllama. Event-driven trigger; 96 nodes.
My workflow 53. Uses formTrigger, httpRequest, lmChatOpenAi, form. Event-driven trigger; 74 nodes.
Episode 23: UGC with nanobanana. Uses lmChatOpenAi, lmChatOllama, lmChatDeepSeek, lmChatOpenRouter. Event-driven trigger; 74 nodes.
Description
Automatically capture, categorize, and log expenses from receipts, PDFs, voice notes, or text β powered by AI and integrated with Telegram and Google Sheets.