This workflow follows the Airtable → HTTP Request 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": "Motivational Video Generator",
"nodes": [
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-4.1-mini",
"mode": "list",
"cachedResultName": "GPT-4.1-MINI"
},
"messages": {
"values": [
{
"content": "=You are an expert motivational copy-writer and visual-storyboard artist.\n\n**Goal** \nProduce a ~2-minute motivational speech (\u2248 220\u2013260 words) divided into coherent \u201cscenes\u201d. \n\n**Scene Structure** \n- **Scene 1 \u2014 Hook:** Immediately engage the viewer with the central <TOPIC>. \n- **Scenes 2 \u2013 8/9 \u2014 Development (4\u20135 scenes):** Deeply explore the theme, evoke emotion, and build momentum. \n- **Final Scene \u2014 Uplift:** Leave the viewer with a clear, energizing call to improve their life. \n(=> total 9-10 scenes.)\n\n\nEach scene must contain: \n1. **voiceover_text** \u2013 the narration for that scene, written in <LANGUAGE>. \n2. **image_prompt** \u2013 a richly detailed, *photorealistic* English prompt that visually captures the scene\u2019s message. \n \u2022 Maintain a consistent color palette, lighting style and overall aesthetic across every image to ensure harmony. \n \u2022 Avoid any mention or depiction of violence, gore, nudity, or other potentially NSFW elements.\n \u2022 Avoid generating images that include the appearance of human hands.\n \n\n**Input placeholders** \n- `<TOPIC>` \u2013 central theme of the speech (e.g., \u201covercoming self-doubt\u201d). \n- `<LANGUAGE>` \u2013 language for the narration (e.g., \u201cSpanish\u201d). \n\n**Output format** \u2013 return pure JSON, no explanatory text: \n```json\n{\n \"title\": \"<Concise inspiring title>\",\n \"scenes\": [\n {\n \"voiceover_text\": \"<Scene 1 narration in <LANGUAGE>>\",\n \"image_prompt\": \"<Scene 1 photorealistic prompt in English>\"\n },\n ...\n ]\n}\n",
"role": "system"
},
{
"content": "=Topic: \"{{ $json.Topic }}\".\nTarget language: \"{{ $json.Language }}\"."
}
]
},
"jsonOutput": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
256,
208
],
"id": "b488031f-162c-4d17-883e-7c2e734101d3",
"name": "OpenAI",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.movie.status }}",
"rightValue": "done",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "c4cdadec-3a6a-4542-92f6-ebe0bee73f3c"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Done"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "17c132d0-6142-4a07-b132-f28027949bec",
"leftValue": "={{ $json.movie.status }}",
"rightValue": "error",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Error"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b6381708-9a0d-4b23-9efc-fdfaccb2cbac",
"leftValue": "={{ $json.movie.status }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Still running"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
1504,
208
],
"id": "54b20f76-2b6e-466d-a56e-2eca29f167fd",
"name": "Switch"
},
{
"parameters": {
"errorMessage": "={{ $json.movie.message }}"
},
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
1824,
432
],
"id": "1a73015b-865d-467c-b02d-3353e597497e",
"name": "Stop and Error"
},
{
"parameters": {
"content": "## Wait for the video to be rendered\n\nYou can expect about 3 - 4 minutes per video",
"height": 600,
"width": 700
},
"type": "n8n-nodes-base.stickyNote",
"position": [
992,
0
],
"typeVersion": 1,
"id": "caaa14f5-be2d-4f85-b59a-ab1690f1e1fe",
"name": "Sticky Note"
},
{
"parameters": {
"url": "https://api.json2video.com/v2/movies",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "project",
"value": "={{ $('Submit a new job').item.json.project }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "s1gBmLtGLDn9UFiD0Wm9Ux5aewao7P20ecwcTc7I"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1296,
208
],
"id": "f30760b6-a649-4967-be6f-88374b1478ac",
"name": "Check status"
},
{
"parameters": {
"method": "POST",
"url": "https://api.json2video.com/v2/movies",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "s1gBmLtGLDn9UFiD0Wm9Ux5aewao7P20ecwcTc7I"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"template\": \"fOnm0pvJFwKBtwgcCDTk\",\n \"variables\": {\n \"voice_name\": \"{{ $('Airtable - Read').item.json['Voice Name'] }}\",\n \"voice_model\": \"{{ $('Airtable - Read').item.json['Voice Model'] }}\",\n \"image_model\": \"{{ $('Airtable - Read').item.json['Image Model'] }}\",\n \"subtitles_model\": \"{{ $('Airtable - Read').item.json['Subtitles Model'] }}\",\n \"subtitles_font\": \"{{ $('Airtable - Read').item.json['Subtitles Font'] }}\",\n \"scene_list\": {{ JSON.stringify($json.message.content.scenes) }},\n \"title_font\": \"{{ $('Airtable - Read').item.json['Title Font'] }}\",\n \"title\": \"{{ $json.message.content.title }}\"\n }\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
736,
208
],
"id": "57f41d0b-f584-4213-91fa-3fab7cb33d77",
"name": "Submit a new job",
"notes": "From \n\nhttps://json2video.com/dashboard/apikeys"
},
{
"parameters": {
"amount": 15
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1072,
208
],
"id": "aa3504ff-46c3-4ba2-a79a-df30dea27d90",
"name": "Wait for 15 seconds"
},
{
"parameters": {
"content": "## Ask ChatGPT to generate the script and image prompts",
"height": 600,
"width": 380
},
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
0
],
"typeVersion": 1,
"id": "13f6f75b-564c-4578-adcd-e07b2e2ec926",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## Get the topic of the video to be created",
"height": 600,
"width": 480
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
0
],
"typeVersion": 1,
"id": "b6e656c0-6faa-417c-82c3-174ba4e58df6",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## Start the rendering job in JSON2Video\n\nCall the template passing the information from ChatGPT",
"height": 600,
"width": 384
},
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
0
],
"typeVersion": 1,
"id": "8edadc41-5b74-4b61-a249-9f864f5c4c18",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## Update the Airtable row",
"height": 280,
"width": 304
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1712,
0
],
"typeVersion": 1,
"id": "c7e74291-e894-4262-a2c6-2c6e414ba4b5",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "## An error happened",
"height": 300,
"width": 304
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1712,
304
],
"typeVersion": 1,
"id": "5370df1a-4fdb-4910-8f41-045d69249156",
"name": "Sticky Note5"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "appLfxnRXaufzvtW3",
"mode": "list",
"cachedResultName": "Entertainment",
"cachedResultUrl": "https://airtable.com/appLfxnRXaufzvtW3"
},
"table": {
"__rl": true,
"value": "tblMhHNPUAkXfVq5b",
"mode": "list",
"cachedResultName": "Inspirational videos",
"cachedResultUrl": "https://airtable.com/appLfxnRXaufzvtW3/tblMhHNPUAkXfVq5b"
},
"filterByFormula": "AND( {Status} = \"Todo\", {Topic} != \"\" )",
"returnAll": false,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
-112,
208
],
"id": "4aa33cb1-8e0c-4c25-9d72-374b549bce2c",
"name": "Airtable - Read",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"base": {
"__rl": true,
"value": "appLfxnRXaufzvtW3",
"mode": "list",
"cachedResultName": "Entertainment",
"cachedResultUrl": "https://airtable.com/appLfxnRXaufzvtW3"
},
"table": {
"__rl": true,
"value": "tblMhHNPUAkXfVq5b",
"mode": "list",
"cachedResultName": "Inspirational videos",
"cachedResultUrl": "https://airtable.com/appLfxnRXaufzvtW3/tblMhHNPUAkXfVq5b"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Result": "={{ $json.movie.url }}",
"id": "={{ $('Airtable - Read').item.json.id }}",
"Status": "Done"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "ID",
"displayName": "ID",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": true
},
{
"id": "Topic",
"displayName": "Topic",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Language",
"displayName": "Language",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Voice Name",
"displayName": "Voice Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Voice Model",
"displayName": "Voice Model",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Title Font",
"displayName": "Title Font",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Image Model",
"displayName": "Image Model",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Subtitles Model",
"displayName": "Subtitles Model",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Subtitles Font",
"displayName": "Subtitles Font",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Music URL",
"displayName": "Music URL",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Result",
"displayName": "Result",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1824,
96
],
"id": "3a64f1f6-00f6-4e94-8c35-223ce28e8966",
"name": "Airtable - Update",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"authentication": "airtableTokenApi",
"baseId": {
"__rl": true,
"value": "appLfxnRXaufzvtW3",
"mode": "id"
},
"tableId": {
"__rl": true,
"value": "https://airtable.com/appLfxnRXaufzvtW3/tblMhHNPUAkXfVq5b/viwKS3iniqu0PSNca?blocks=show",
"mode": "url"
},
"triggerField": "=Last Modified",
"additionalFields": {}
},
"type": "n8n-nodes-base.airtableTrigger",
"typeVersion": 1,
"position": [
-512,
208
],
"id": "8e667b8b-8f74-4503-9960-ccb073356a6b",
"name": "Airtable Trigger",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"OpenAI": {
"main": [
[
{
"node": "Submit a new job",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Airtable - Update",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop and Error",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for 15 seconds",
"type": "main",
"index": 0
}
]
]
},
"Check status": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Submit a new job": {
"main": [
[
{
"node": "Wait for 15 seconds",
"type": "main",
"index": 0
}
]
]
},
"Wait for 15 seconds": {
"main": [
[
{
"node": "Check status",
"type": "main",
"index": 0
}
]
]
},
"Airtable - Read": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
},
"Airtable Trigger": {
"main": [
[
{
"node": "Airtable - Read",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "580b5f0b-8b98-4847-945b-cb3a4ed226b1",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "aWqxKN9SGXs2Jb1G",
"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.
airtableTokenApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Motivational Video Generator. Uses openAi, stopAndError, httpRequest, airtable. Event-driven trigger; 15 nodes.
Source: https://gist.github.com/sfkaos/3d7eb2a6e53a3d653bd79bb0180ee807 — 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.
The AI-Powered Cold Call Machine is a fully automated workflow designed to generate qualified leads from LinkedIn, evaluate them using AI-based scoring, identify key decision-makers, and generate pers
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Voice Note -> Veo 3 AD. Uses telegramTrigger, telegram, openAi, httpRequest. Event-driven trigger; 49 nodes.
This n8n workflow automates the creation of 9:16 aspect ratio images optimized for short-form video content and thumbnails. It integrates multiple tools to retrieve content, generate scripts, and crea
This workflow is designed for SEO professionals, digital agencies, content creators, and WordPress site owners who want to improve their search engine rankings automatically. It’s also perfect for cur