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 →
{
"name": "Episode 11: AI shorts factory app",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
2440,
-600
],
"id": "c8bcb106-e8e7-4b0b-a056-c18027d0f89a",
"name": "Limit"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
2060,
-220
],
"id": "78c54309-ffb1-4b8a-81c9-38708cef35e2",
"name": "Loop Over Items"
},
{
"parameters": {
"method": "POST",
"url": "https://api.together.xyz/v1/images/generations",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "black-forest-labs/FLUX.1-schnell-Free"
},
{
"name": "prompt",
"value": "={{ $json.image_prompt }}"
},
{
"name": "width",
"value": "={{ 720 }}"
},
{
"name": "height",
"value": "={{ 1280 }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2380,
-220
],
"id": "2cb31f5c-2bd2-4e6e-9f2f-5db2ecc8ea95",
"name": "Generate AI image",
"alwaysOutputData": false,
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.data[0].url }}"
},
{
"name": "media_type",
"value": "image"
}
]
},
"options": {
"timeout": 10000
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2620,
-280
],
"id": "6067fa48-0fa0-421e-8956-c016520b6163",
"name": "Upload image to server",
"retryOnFail": true
},
{
"parameters": {
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage/{{ $('Start generating TTS (chatterbox)').item.json.file_id }}/status",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3520,
-100
],
"id": "f4a27732-2672-449b-922d-add8306c31aa",
"name": "Get status of TTS generation",
"retryOnFail": true
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.status }}",
"rightValue": "ready",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "91402596-3978-4dfc-91b7-9ffe3521b862"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "ready"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "0c29765e-4213-434c-9bf3-c5e854dd6ee8",
"leftValue": "={{ $json.status }}",
"rightValue": "processing",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "processing"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "4a6cfd86-e690-417e-aa6d-ae497e1177ae",
"leftValue": "={{ $json.status }}",
"rightValue": "not_found",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "failed"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
3680,
-100
],
"id": "152d7c6d-a3cf-49bb-bdf5-17dd888ffc4e",
"name": "TTS status switch"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/video-tools/generate/tts-captioned-video",
"sendBody": true,
"contentType": "form-urlencoded",
"specifyBody": "string",
"body": "={{ \n\n[\n `background_id=${$('Upload image to server').item.json.file_id}`,\n $json.tts_audio_id ? `audio_id=${$json.tts_audio_id}` : false,\n $json.tts_audio_id ? '' : `text=${encodeURIComponent($('Loop Over Items').item.json.text)}`,\n $json.tts_audio_id ? '' : `kokoro_voice=${$('Configure TTS').item.json.kokoro_voice}`,\n $json.tts_audio_id ? '' : `kokoro_speed=${$('Configure TTS').item.json.kokoro_speed}`\n].filter(Boolean).join('&') \n\n}}",
"options": {
"redirect": {
"redirect": {}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
4380,
-300
],
"id": "2cae7eed-1f1c-41f4-b628-e55d6dbab50b",
"name": "Start generating captioned TTS video"
},
{
"parameters": {
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage/{{ $('Start generating captioned TTS video').item.json.file_id }}/status",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
4780,
-300
],
"id": "590d2efa-563e-425e-963c-8f9d8722334e",
"name": "Get video generation status",
"retryOnFail": true
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.status }}",
"rightValue": "ready",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "91402596-3978-4dfc-91b7-9ffe3521b862"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "ready"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "0c29765e-4213-434c-9bf3-c5e854dd6ee8",
"leftValue": "={{ $json.status }}",
"rightValue": "processing",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "processing"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "4a6cfd86-e690-417e-aa6d-ae497e1177ae",
"leftValue": "={{ $json.status }}",
"rightValue": "not_found",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "failed"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
4960,
-300
],
"id": "69617e40-7b27-4d51-9618-f46517572a44",
"name": "Video generation switch"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a7fdacca-749e-4f69-84fd-50075e0e3409",
"name": "video_id",
"value": "={{ $('Start generating captioned TTS video').item.json.file_id }}",
"type": "string"
},
{
"id": "6c99c267-5c41-4697-ba19-b51d9e8c9a4e",
"name": "tts_id",
"value": "={{ $('Global TTS audio id').item.json.tts_audio_id }}",
"type": "string"
},
{
"id": "21dd08a7-f785-4829-8609-a99950f21572",
"name": "image_id",
"value": "={{ $('Upload image to server').item.json.file_id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
5220,
-40
],
"id": "ffa78367-acfb-4825-b0cf-c748ac1f7aeb",
"name": "Setup media fields"
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
2380,
300
],
"id": "08dc73cd-fcce-49e8-b876-874335730b21",
"name": "Combine loop items"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/video-tools/merge",
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "video_ids",
"value": "={{ $json.data.map(item => item.video_id).join(',') }}"
},
{
"name": "background_music_id",
"value": "={{ $('Background music results').item.json.background_music_id }}"
},
{
"name": "background_music_volume",
"value": "={{ $('Background music results').item.json.background_music_volume }}"
}
]
},
"options": {
"redirect": {
"redirect": {}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2580,
300
],
"id": "3fde82bc-b92c-4628-bf7e-171fd97ef7ba",
"name": "Start merging the videos"
},
{
"parameters": {
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage/{{ $('Start merging the videos').item.json.file_id }}/status",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3000,
300
],
"id": "61d7ca62-a873-4a62-bd1a-c097fec8597f",
"name": "Get status of the video merge"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.status }}",
"rightValue": "ready",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "91402596-3978-4dfc-91b7-9ffe3521b862"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "ready"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "0c29765e-4213-434c-9bf3-c5e854dd6ee8",
"leftValue": "={{ $json.status }}",
"rightValue": "processing",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "processing"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "4a6cfd86-e690-417e-aa6d-ae497e1177ae",
"leftValue": "={{ $json.status }}",
"rightValue": "not_found",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "failed"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
3180,
300
],
"id": "eba2ed7e-e1a2-42e5-b274-926edb995f80",
"name": "Video merge status switch"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "13b0dde8-b067-41d2-b7c2-fa5addf56a25",
"name": "download_url",
"value": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage/{{ $('Start merging the videos').item.json.file_id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3980,
300
],
"id": "6ee81c36-e169-4884-b2b0-082927c1a25c",
"name": "Setup final video download URL"
},
{
"parameters": {
"amount": 10
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
2620,
-120
],
"id": "11fc118f-7551-4a0c-bca3-7a60de327b39",
"name": "Wait for the error / rate limit to go away"
},
{
"parameters": {
"amount": 1
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
3340,
-100
],
"id": "2179d4c3-97f8-4048-810f-3cefb8676f02",
"name": "Wait until the TTS gets generated"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/audio-tools/tts/chatterbox",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $('Loop Over Items').item.json.text }}"
},
{
"name": "sample_audio_id",
"value": "={{ $('Configure TTS').item.json.chatterbox_clone_voice_id ?? '' }}"
},
{
"name": "exaggeration",
"value": "={{ $('Configure TTS').item.json.chatterbox_exaggeration }}"
},
{
"name": "cfg_weight",
"value": "={{ $('Configure TTS').item.json.chatterbox_cfg_weight }}"
},
{
"name": "temperature",
"value": "={{ $('Configure TTS').item.json.chatterbox_temperature }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3160,
-100
],
"id": "8875949b-8c20-4341-96c8-c43419adebb1",
"name": "Start generating TTS (chatterbox)"
},
{
"parameters": {
"amount": 1
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
4580,
-300
],
"id": "3a64a8cf-1711-43ab-80a9-73e7b559e162",
"name": "Wait until the video gets generated"
},
{
"parameters": {
"amount": 1
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
2800,
300
],
"id": "0a61605b-2271-4e0f-99d6-9f822538dc59",
"name": "Wait until the videos gets merged together"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI",
"mode": "list",
"cachedResultName": "reddit stories",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit#gid=0"
},
"filtersUI": {
"values": [
{
"lookupColumn": "video_id"
}
]
},
"options": {
"returnFirstMatch": true
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
2320,
-600
],
"id": "fc6e9bfa-28b8-4d5f-b7e6-b56d38b00dcd",
"name": "Get story",
"alwaysOutputData": true,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $('Configure TTS').item.json.tts_engine }}",
"rightValue": "kokoro",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "5ae108d7-13b2-41aa-ab18-45a80515ad51"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "kokoro"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "a3dbceb9-96f7-4f78-b5e4-81bd6cb9a422",
"leftValue": "={{ $('Configure TTS').item.json.tts_engine }}",
"rightValue": "chatterbox",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "chatterbox"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
2940,
-280
],
"id": "35342540-eb5e-4ced-83c0-a53413abbad4",
"name": "TTS switch"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d41f1ef6-7591-41b7-805d-94b58caba5c4",
"name": "tts_audio_id",
"value": "={{ $('Start generating TTS (chatterbox)').item.json.file_id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3940,
-120
],
"id": "53ac3c61-abb9-4548-bfb8-2b9318b7fbf8",
"name": "Setup TTS file_id"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "87d65a77-d25e-42b2-86ac-7b1c4efb2990",
"name": "text",
"value": "={{ $json.text.includes(\"<think>\") ? $json.text.split(\"</think>\")[1].trim() : $json.text.trim() }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3240,
-600
],
"id": "30b3f8f2-619e-4748-8150-aeea60caa87f",
"name": "Cleanup text"
},
{
"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": [
2080,
-1080
],
"id": "50100cb0-cee8-4a23-8e28-fd7c237b53ef",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "68de9e0e-e234-4509-a57a-4c4c42590620",
"name": "tts_audio_id",
"value": "={{ $json.tts_audio_id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
4200,
-300
],
"id": "79af5a2e-20f3-4558-a10f-77f5e21eaf32",
"name": "Global TTS audio id"
},
{
"parameters": {
"content": "# Pick your choice of LLM \u26a0\ufe0f",
"height": 700,
"width": 700,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1540,
-1560
],
"id": "10fff934-e552-4074-b0bf-a28a8c4013a2",
"name": "Sticky Note2"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"typeVersion": 1,
"position": [
1620,
-1420
],
"id": "24a5a896-47fd-4b2b-94f2-9146cb9f2a87",
"name": "Ollama Chat Model",
"credentials": {
"ollamaApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"typeVersion": 1,
"position": [
1940,
-1420
],
"id": "1edc786e-6c30-4130-b3fb-19eb240afedc",
"name": "DeepSeek Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
2080,
-1420
],
"id": "bb61849d-53ee-4b44-a4a6-7969360df560",
"name": "OpenRouter Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
1620,
-1080
],
"id": "3ae2da78-5dc7-4253-8c56-175aa031b2d2",
"name": "Google Gemini Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"typeVersion": 1,
"position": [
1620,
-1260
],
"id": "c75bcf77-c21f-4653-926e-37fdcec0f09f",
"name": "Azure OpenAI Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatXAiGrok",
"typeVersion": 1,
"position": [
1780,
-1260
],
"id": "e2725813-5a43-436c-af34-2fe52c9524e0",
"name": "xAI Grok Chat Model"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-20250514",
"cachedResultName": "Claude 4 Sonnet"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
1940,
-1260
],
"id": "ec015205-4e8a-4342-8817-53a0d33f9fc9",
"name": "Anthropic Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatXAiGrok",
"typeVersion": 1,
"position": [
2080,
-1260
],
"id": "627f0061-1395-471e-b3bb-e347028c6ed9",
"name": "xAI Grok Chat Model1"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
1940,
-1080
],
"id": "51bf836a-eb46-44fa-a089-9629906a41a5",
"name": "Groq Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock",
"typeVersion": 1,
"position": [
1780,
-1420
],
"id": "7e9c7d7a-3545-4ea3-a5d6-6ddc4d03f5eb",
"name": "AWS Bedrock Chat Model"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"typeVersion": 1,
"position": [
1780,
-1080
],
"id": "187ad812-734c-4aca-b3e8-f2bb4f91fdec",
"name": "Mistral Cloud Chat Model"
},
{
"parameters": {
"content": "# 4. Pick a story \u26a0\ufe0f\nmake sure to add the `video_id` filter with an empty value",
"height": 400,
"width": 600
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2280,
-820
],
"id": "1ff4a376-73b7-4c88-9b3e-acb1aeeaa47a",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "# 5. Create script from the story",
"height": 400,
"width": 880
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2920,
-820
],
"id": "28de4a46-e4e8-442c-b437-c85ad2657c67",
"name": "Sticky Note5"
},
{
"parameters": {
"content": "# 9. Merge the videos",
"height": 360,
"width": 1180
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2280,
180
],
"id": "9e4fa47a-f004-4955-b89e-cf4b44085dc3",
"name": "Sticky Note6"
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI",
"mode": "list",
"cachedResultName": "reddit stories",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id": "={{ $('Get story').item.json.id }}",
"video_id": "={{ $('Start merging the videos').item.json.file_id }}"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "title",
"displayName": "title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "content",
"displayName": "content",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": true
},
{
"id": "video_id",
"displayName": "video_id",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
3620,
300
],
"id": "725188a0-37ba-4cfd-9526-4cd560e17154",
"name": "Save the video id",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# 6. Generate an image with Flux \u26a0\ufe0f",
"height": 520,
"width": 580
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2280,
-380
],
"id": "00dfbbe2-8567-466e-9156-7990a290cef1",
"name": "Sticky Note7"
},
{
"parameters": {
"content": "# 7. Create speech from text",
"height": 520,
"width": 1200
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2900,
-380
],
"id": "38a1b40a-2c5c-4fa8-a222-9348a72fb595",
"name": "Sticky Note8"
},
{
"parameters": {
"content": "# 8. Generate captioned video",
"height": 520,
"width": 1240
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
4140,
-380
],
"id": "982b4ed9-6efa-4d00-bad4-a337c08037c8",
"name": "Sticky Note9"
},
{
"parameters": {
"content": "# 10. Save to Sheets \u26a0\ufe0f",
"height": 360,
"width": 380
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
3500,
180
],
"id": "da1993b8-0193-414c-8fc3-34732fb3c5e6",
"name": "Sticky Note11"
},
{
"parameters": {
"url": "={{ $('Setup final video download URL').item.json.download_url }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
4380,
300
],
"id": "1a3500c4-094a-4e29-8108-76037ca6ee0f",
"name": "Download the video"
},
{
"parameters": {
"text": "=<Instructions>\nBreak up the text to multiple chunks that I can use for generating a youtube video, and for each chunk add an image generation prompt.\n\nAlso create a title and a description for the video.\n\nUse the following art style for the image prompts:\n\nArt style:\n{{ $('Configure me').item.json.art_style }}\n\n</Instructions>\n\n<Text>\n{{ $json.text }}\n</Text>\n\n/nothink",
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"scenes\": {\n \"type\": \"array\",\n \"description\": \"user name\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\",\n \"description\": \"the text of the scene, it will be used for TTS\"\n },\n \"image_prompt\": {\n \"type\": \"string\",\n \"description\": \"prompt for image generation\"\n }\n },\n \"required\": [\n \"text\",\n \"image_prompt\"\n ]\n }\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"the title of the youtube video\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"the description of the youtube video\"\n }\n },\n \"required\": [\n \"scenes\",\n \"title\",\n \"description\"\n ]\n}",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"typeVersion": 1.1,
"position": [
3360,
-600
],
"id": "ca6d8393-efd4-402a-af0d-aca78d92594a",
"name": "Create the script"
},
{
"parameters": {
"promptType": "define",
"text": "=<Instructions>\nUsing the below content, create 10s-60s long {{ $('Configure me').item.json.content_type }}.\nThe generated script will be used in a YouTube video.\nReturn clear text, no markdowns or any other styling is needed.\n</Instructions>\n\n<Post>\n{{ $('Limit').item.json.title }}\n\n{{ $('Limit').item.json.content }}\n</Post>\n\n/nothink",
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.7,
"position": [
2960,
-600
],
"id": "db837a21-6232-4827-bd63-ddc005ba0099",
"name": "Create the motivational speech"
},
{
"parameters": {
"fieldToSplitOut": "output.scenes",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
3640,
-600
],
"id": "cf072a94-0c12-4eb0-a3e4-89b26bb863d3",
"name": "Split Out"
},
{
"parameters": {
"content": "# 11. Upload to YouTube \u26a0\ufe0f",
"height": 360,
"width": 900,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
3920,
180
],
"id": "c3c9866d-7717-4ea3-9685-b3d68bed8907",
"name": "Sticky Note13"
},
{
"parameters": {
"method": "POST",
"url": "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status&uploadType=resumable",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "youTubeOAuth2Api",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "X-Upload-Content-Type",
"value": "video/mp4"
}
]
},
"sendBody": true,
"contentType": "raw",
"rawContentType": "RAW/JSON",
"body": "={\n \"snippet\": {\n \"title\": \"{{ $('Create the script').item.json.output.title }}\",\n \"description\": \"{{ $('Create the script').item.json.output.description }}\",\n \"tags\": \"\",\n \"categoryId\": \"24\",\n \"defaultLanguage\": \"en\",\n \"defaultAudioLanguage\": \"en\"\n },\n \"status\": {\n \"privacyStatus\": \"public\",\n \"license\": \"youtube\",\n \"embeddable\": true,\n \"publicStatsViewable\": true,\n \"madeForKids\": false\n }\n}\n",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
}
},
"id": "503f1fc6-3ee8-4793-a4fb-f468e5ba58ae",
"name": "Start Youtube upload",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
4180,
300
],
"credentials": {
"youTubeOAuth2Api": {
"name": "<your credential>"
}
},
"disabled": true
},
{
"parameters": {
"method": "PUT",
"url": "={{ $('Download the video').item.json.headers.location }}",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "youTubeOAuth2Api",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "video/mp4"
}
]
},
"sendBody": true,
"contentType": "binaryData",
"inputDataFieldName": "data",
"options": {}
},
"id": "200ceb8b-ab0c-431f-9d5f-6ad9138723c4",
"name": "Upload video to YouTube",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
4580,
300
],
"credentials": {
"youTubeOAuth2Api": {
"name": "<your credential>"
}
},
"disabled": true
},
{
"parameters": {
"content": "# How to set up this automation?\n\n## 1. Make a copy of the [Reddit Google Spreadsheet template](https://docs.google.com/spreadsheets/d/1W3BP1fxhmWqJGmhaYTflLnd7l0N1RaQUzXeI3Y5b7Fo/edit?usp=sharing) to your Google Drive\n## 2. Modify the Google Sheets nodes, select the one you just created\n## 3. Start the `AI Agents No-Code Tools` server\n## 4. Open the `Configure me` node, and setup the server url. You can also edit the subreddit, content type and art style if you want\n## 5. Create a free account on [Together AI](http://together.ai/), [create and API key](https://api.together.ai/settings/api-keys) and copy it\n## 6. Set up the `Generate AI Image` Node - create a new Bearer Auth credential and paste the API key from Together AI\n## 7. Set up the `Start YouTube upload` and `Upload video to YouTube` nodes - select/setup your YouTube credentials\n",
"height": 400,
"width": 1640,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2280,
-2560
],
"id": "382b4677-edf5-4991-a988-462dc90e0ede",
"name": "Sticky Note14"
},
{
"parameters": {
"url": "=https://www.reddit.com/r/{{ $('Configure me').item.json.subreddit }}/top.json?t=month&limit=100",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2740,
-1200
],
"id": "ab96a05d-5595-4861-ae8b-bab0ab84a627",
"name": "Get stories from reddit"
},
{
"parameters": {
"fieldToSplitOut": "data.children",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
2900,
-1200
],
"id": "01527db1-5efc-4e02-8b64-5f40e5aefa1d",
"name": "For Each story"
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI",
"mode": "list",
"cachedResultName": "reddit stories",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12roXp7Ds8S0nA_Us2MjdKkAldJYUdTV80A7vcjwR6yI/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"title": "={{ $json.data.title }}",
"content": "={{ $json.data.selftext }}",
"id": "={{ $json.data.id }}"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "title",
"displayName": "title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "content",
"displayName": "content",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "video_id",
"displayName": "video_id",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
3060,
-1200
],
"id": "035dde32-1ece-4119-bcc5-dadeba1b81af",
"name": "Save it to Google Sheets",
"retryOnFail": true,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# 2. Update reddit stories \u26a0\ufe0f",
"height": 460,
"width": 1080
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2280,
-1320
],
"id": "e705aaca-eeae-4664-86cb-7ac23130a593",
"name": "Sticky Note17"
},
{
"parameters": {
"formTitle": "AI Agents A-Z Shorts Factory",
"formFields": {
"values": [
{
"fieldLabel": "Would you like to update the sheet by downloading the stories from reddit?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "no"
},
{
"option": "yes"
}
]
},
"requiredField": true
},
{
"fieldLabel": "Would you like to use background music in the final video?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "no"
},
{
"option": "yes"
}
]
},
"requiredField": true
},
{
"fieldType": "html",
"elementName": "warning",
"html": "<h2>Make sure the server has enough resources!</h1>\n<h3>Minimum 4vCPUs are recommended (more is better)</h3>\n<h3>Chatterbox requires at least 8gb free ram</h2>\n<h3>Kokoro requires at least 5gb free ram</h2>"
},
{
"fieldLabel": "Which TTS engine would you like to use?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "kokoro"
},
{
"option": "chatterbox"
}
]
},
"requiredField": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.2,
"position": [
1300,
-1900
],
"id": "33977dfb-72bc-4461-9b9e-ec1ad4dd0008",
"name": "On form submission1"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "673ecb92-5253-45ae-ab8b-17d673845442",
"leftValue": "={{ $('On form submission1').item.json['Would you like to update the sheet by downloading the stories from reddit?'] }}",
"rightValue": "yes",
"operator": {
"type": "string",
"operation": "equals"
}
},
{
"id": "9a8bc757-1144-451d-b36a-18e74140a30e",
"leftValue": "={{ !$('Aggregate').item.json.data?.[0] }}",
"rightValue": 1,
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "or"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2600,
-1060
],
"id": "ba4da449-454e-47b9-b9ec-ff6cde85df85",
"name": "Update reddit stories?"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "0cde6e03-a8da-4f1a-91c7-4adee90614c9",
"leftValue": "={{ $('On form submission1').item.json['Would you like to use background music in the final video?'] }}",
"rightValue": "yes",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
3500,
-1040
],
"id": "d3bd8b4b-88a9-40c7-a6ef-0c9e333e7ec9",
"name": "Background music?"
},
{
"parameters": {
"formFields": {
"values": [
{
"fieldLabel": "Voice sample",
"fieldType": "file",
"multipleFiles": false,
"acceptFileTypes": ".mp3, .wav",
"requiredField": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.form",
"typeVersion": 1,
"position": [
3520,
-2060
],
"id": "49ba6c34-841d-44d3-be57-847861c304e2",
"name": "Upload voice sample"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"parameterType": "formBinaryData",
"name": "file",
"inputDataFieldName": "=Voice_sample"
},
{
"name": "media_type",
"value": "audio"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3540,
-1840
],
"id": "f0b67be6-be95-4009-93f0-4338b64d60a9",
"name": "Upload voice sample to the server"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/storage",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"parameterType": "formBinaryData",
"name": "file",
"inputDataFieldName": "=Background_music"
},
{
"name": "media_type",
"value": "audio"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3900,
-1200
],
"id": "2b82bf2e-9a8e-41c4-917c-70f137be38a6",
"name": "Upload background music to the server"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "7bbb518a-c4f1-49a5-9e72-3e9d939b131b",
"name": "ai_agents_no_code_tools_url",
"value": "http://192.168.68.60:8000",
"type": "string"
},
{
"id": "485a5788-cda6-4015-aa8d-d7b7ff012266",
"name": "subreddit",
"value": "selfimprovement",
"type": "string"
},
{
"id": "afa3df27-f529-452f-8976-63a0af466584",
"name": "content_type",
"value": "motivational speech",
"type": "string"
},
{
"id": "ddd725fb-b9f6-45d6-90df-88c50ba53a20",
"name": "art_style",
"value": "=Use the following prompt as a template for the image generation prompt, use the content to create a unique image for the scene.\n\nCreate a cinematic image in a dramatic, high-contrast photographic style, with a cool blue color grading. The subject is a figure [doing something, like walking under a waterfall, sitting under a tree, watching the sunset, whatever makes sense from the content's perspective], captured from a distance. The foreground should be softly blurred to focus attention on the landscape details. The mood should convey strength, wisdom, and a sense of calm determination. The overall visual should feel inspirational and dignified, resembling a powerful nature documentary scene.",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1640,
-1900
],
"id": "1317b2ea-97b2-450b-a209-8b23b5a30e90",
"name": "Configure me"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b538c801-3185-4763-b9d5-5a38088325fa",
"leftValue": "={{ $('On form submission1').item.json['Which TTS engine would you like to use?'] }}",
"rightValue": "chatterbox",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "chatterbox"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $('On form submission1').item.json['Which TTS engine would you like to use?'] }}",
"rightValue": "kokoro",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "9643d386-ce0c-4543-99d6-2eaebe2f0c2e"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "kokoro"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
2340,
-1820
],
"id": "12cb8201-eddd-4229-97f6-45aac39f8d65",
"name": "Switch"
},
{
"parameters": {
"url": "={{ $('Configure me').item.json.ai_agents_no_code_tools_url }}/api/v1/media/audio-tools/tts/kokoro/voices",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2560,
-1540
],
"id": "fe182de1-b1fc-41a7-8382-1f1ad43f0bf1",
"name": "Get supported kokoro voices"
},
{
"parameters": {
"defineForm": "json",
"jsonOutput": "=[\n {\n \"fieldLabel\": \"Voice\",\n \"requiredField\": true,\n \"fieldType\": \"dropdown\",\n \"fieldOptions\": {\n \"values\": {{ $json.voices.map(item => { return {option: `${item}`} }) }}\n }\n },\n {\n \"fieldLabel\": \"Speed\",\n \"fieldType\": \"number\",\n \"placeholder\": \"The default is 1\",\n \"requiredField\": true\n }\n]",
"options": {}
},
"type": "n8n-nodes-base.form",
"typeVersion": 1,
"position": [
2720,
-1540
],
"id": "63a21795-78d8-44c6-8cca-2f3d490d57d8",
"name": "Setup kokoro"
},
{
"parameters": {
"formFields": {
"values": [
{
"fieldLabel": "Clone voice?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "no"
},
{
"option": "yes"
}
]
},
"requiredField": true
},
{
"fieldLabel": "Setup advanced options?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "no"
},
{
"option": "yes"
}
]
},
"requiredField": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.form",
"typeVersion": 1,
"position": [
2560,
-1840
],
"id": "abe6e69b-caac-4798-b412-a5e860d4af36",
"name": "Setup chatterbox"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "7f58fc2c-48a2-4bed-b21a-84a080c84daf",
"name": "tts_engine",
"value": "={{ $('On form submission1').item.json['Which TTS engine would you like to use?'] }}",
"type": "string"
},
{
"id": "351324cf-a658-48f5-9150-0c8a9304fb41",
"name": "kokoro_voice",
"value": "={{ $json.Voice }}",
"type": "string"
},
{
"id": "f094be8b-c33a-44ba-8fc9-cb08d9cce918",
"name": "kokoro_speed",
"value": "={{ $json.Speed }}",
"type": "number"
},
{
"id": "4b98a5f0-83c9-46c9-b7dd-10a4e7633577",
"name": "chatterbox_exaggeration",
"value": "={{ $json.chatterbox_exaggeration }}",
"type": "number"
},
{
"id": "95751284-1328-4522-b4b2-cb00002db8e2",
"name": "chatterbox_cfg_weight",
"value": "={{ $json.chatterbox_cfg_weight }}",
"type": "string"
},
{
"id": "099815a4-0abb-4368-83ac-53f2213d88d5",
"name": "chatterbox_temperature",
"value": "={{ $json.chatterbox_temperature }}",
"type": "string"
},
{
"id": "637133d4-83eb-4535-b7c3-233009ab5208",
"name": "chatterbox_clone_voice_id",
"value": "={{ $json.chatterbox_voice_sample_id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3760,
-1540
],
"id": "d7eeded4-9399-4a0f-96dd-180be6bc2582",
"name": "Configure TTS"
},
{
"parameters": {
"formFi
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.
googleSheetsOAuth2ApihttpBearerAuthollamaApiopenAiApiyouTubeOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Episode 11: AI shorts factory app. Uses httpRequest, googleSheets, lmChatOpenAi, lmChatOllama. Event-driven trigger; 96 nodes.
Source: https://github.com/gyoridavid/ai_agents_az/blob/main/episode_11/workflow_motivational_shorts.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.
Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 91 nodes.
A Telegram bot that converts natural-language work descriptions into detailed cost estimates using AI parsing, vector search, and the open-source DDC CWICR database with 55,000+ construction work item
Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 87 nodes.
Bitlab-Chatbot. Uses telegramTrigger, telegram, snowflake, httpRequest. Event-driven trigger; 87 nodes.
This template attempts to replicate OpenAI's DeepResearch feature which, at time of writing, is only available to their pro subscribers.