This workflow follows the Agent → Airtable 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": "Liminal Archives - Horror Ambience",
"nodes": [
{
"parameters": {
"fieldToSplitOut": "Scenes",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1408,
0
],
"id": "76844f51-fb29-4fd0-b1a5-7c4795857496",
"name": "Split Out"
},
{
"parameters": {
"amount": 15
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
992,
832
],
"id": "77b112e8-cf03-4d42-9971-fbf409e244be",
"name": "Wait"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.data.successFlag }}",
"rightValue": 1,
"operator": {
"type": "number",
"operation": "equals"
},
"id": "957f40c4-00b8-4caa-9bd7-065dcaf2cb49"
}
],
"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.successFlag }}",
"rightValue": 0,
"operator": {
"type": "number",
"operation": "equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "in progress"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
1440,
832
],
"id": "b4f46857-475d-4fc7-a286-f08add21f5a7",
"name": "Switch"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
320,
832
],
"id": "c28d3967-8967-4669-8f60-c9a22dab1a96",
"name": "VIDEOS"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
320,
208
],
"id": "bc46e5e7-5b95-4b56-b461-a2e94c865a65",
"name": "PROMPTS"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"filterByFormula": "{Status} = \"Create\"",
"returnAll": false,
"limit": 1,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
544,
208
],
"id": "d7a12ba6-8263-44fe-bcee-0b5ee225d7e5",
"name": "Get Project",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"filterByFormula": "{Status} = \"Create\"",
"returnAll": false,
"limit": 1,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
464,
528
],
"id": "d2a91198-0cde-4843-bb97-8ea31e9d9935",
"name": "Get Project1",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "tblipThhapetdSJdm",
"mode": "list",
"cachedResultName": "Scenes",
"cachedResultUrl": "https://airtable.com/appa4RuITklGSXcuC/tblipThhapetdSJdm"
},
"filterByFormula": "=({project name} = \"{{ $json['Project Name'] }}\")\n",
"options": {},
"sort": {
"property": [
{
"field": "scene"
}
]
}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
608,
528
],
"id": "df64575a-28de-4912-9817-eb9941cac825",
"name": "Get Scenes",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Scenes",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"start_image": "= [ { \"url\": \"{{ $('Start frame \ud83c\udf4c').item.json.data.outputs[0] }}\" } ]",
"end_image": "= [ { \"url\": \"{{ $('End frame \ud83c\udf4c').item.json.data.outputs[0] }}\" } ]",
"id": "={{ $('Get Scenes').item.json.id }}",
"image done": true
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "execution_id",
"displayName": "execution_id",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "number",
"readOnly": false,
"removed": true
},
{
"id": "Project Name",
"displayName": "Project Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "scene",
"displayName": "scene",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "start_image_prompt",
"displayName": "start_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "end_image_prompt",
"displayName": "end_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "prompt done",
"displayName": "prompt done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
},
{
"id": "start_image",
"displayName": "start_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "end_image",
"displayName": "end_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "image done",
"displayName": "image done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": false
},
{
"id": "transition_prompt",
"displayName": "transition_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "scene_video",
"displayName": "scene_video",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "video done",
"displayName": "video done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1744,
528
],
"id": "cd905cf8-8d74-4106-b6bc-a9ba97c09d4c",
"name": "Log Images",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.kie.ai/api/v1/veo/generate",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpBearerAuth",
"sendBody": true,
"contentType": "raw",
"rawContentType": "application/json",
"body": "= {\n \"prompt\": {{ JSON.stringify($json.transition_prompt) }}\n\n,\n\n \"model\": \"veo3_fast\",\n \"aspectRatio\": \"16:9\",\n \"enableTranslation\": false,\n\n \"generationType\": \"FIRST_AND_LAST_FRAMES_2_VIDEO\",\n \"imageUrls\": [\"{{ $json.start_image[0].url }}\",\"{{ $json.end_image[0].url }}\"]\n\n}",
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 3000
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
768,
832
],
"id": "ccc4006f-ad6a-4ac7-b4f2-27497c1053c9",
"name": "Create Video \ud83d\udd3b",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "https://api.kie.ai/api/v1/veo/record-info",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpBearerAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "taskId",
"value": "={{ $('Create Video \ud83d\udd3b').item.json.data.taskId }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1216,
832
],
"id": "4250e8ee-bff7-45c3-a538-dc20cdcb434c",
"name": "Get Video \ud83d\udd3b",
"alwaysOutputData": false,
"retryOnFail": false,
"waitBetweenTries": 5000,
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"onError": "continueRegularOutput"
},
{
"parameters": {
"method": "POST",
"url": "https://api.wavespeed.ai/api/v3/google/nano-banana-pro/edit",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"aspect_ratio\": \"16:9\",\n \"enable_base64_output\": false,\n \"enable_sync_mode\": true,\n \n \"output_format\": \"png\",\n \"prompt\": {{ JSON.stringify($json.start_image_prompt) }},\n \"resolution\": \"1k\",\n \"images\": [\"{{ $('Get Project1').item.json['Core Image'][0].url }}\", \"{{ $('Get Project1').item.json['Core Elements'][0].url }}\"]\n\n}",
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 2000
}
},
"timeout": 180000
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
992,
528
],
"id": "0dafb6fc-28bc-4bf7-b7c2-56d02e8c73cd",
"name": "Start frame \ud83c\udf4c",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.wavespeed.ai/api/v3/google/nano-banana-pro/edit",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "=\n\n{\n \"aspect_ratio\": \"16:9\",\n \"enable_base64_output\": false,\n \"enable_sync_mode\": true,\n \n \"output_format\": \"png\",\n \"prompt\": {{ JSON.stringify($('Get Scenes').item.json.end_image_prompt) }},\n \"resolution\": \"1k\",\n \"images\": [\"{{ $json.data.outputs[0] }}\"]\n\n\n}",
"options": {
"batching": {
"batch": {
"batchSize": 1
}
},
"timeout": 180000
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1152,
528
],
"id": "1a2349a2-4039-48d5-9566-6a34b0c1d641",
"name": "End frame \ud83c\udf4c",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# PROMPTS",
"width": 2096,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
192
],
"id": "2d7e4418-69c6-4545-90bd-cd1ebec1f97b",
"name": "Sticky Note"
},
{
"parameters": {
"content": "# IMAGENES",
"width": 2576,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
512
],
"id": "2dabeb2e-cbbd-45cb-bad1-bc8c24f70c56",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "# VIDEOS\n",
"width": 2112,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
816
],
"id": "fc2cf489-b5a9-41f4-9d75-d46a08d5f553",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "# MUSICA",
"width": 2128,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-16,
1120
],
"id": "2ca2b7ca-f380-457f-b643-524c9651313d",
"name": "Sticky Note3"
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Project Name": "={{ $('Get Project').item.json['Project Name'] }}",
"music prompt": "={{ $('AI Agent').item.json.output.music_style_prompt }}",
"music letra": "={{ $('AI Agent').item.json.output.lyrics }}",
"titulo_youtube": "={{ $('AI Agent').item.json.output.titulo_youtube_a }}",
"descripcion_youtube": "={{ $('AI Agent').item.json.output.descripcion_youtube }}",
"prompt_thumbnail": "={{ $('AI Agent').item.json.output.prompt_thumbnail }}"
},
"matchingColumns": [
"Project Name"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": true
},
{
"id": "Project Name",
"displayName": "Project Name",
"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": "Create",
"value": "Create"
},
{
"name": "Done",
"value": "Done"
},
{
"name": "Skip",
"value": "Skip"
}
],
"readOnly": false,
"removed": true
},
{
"id": "Core Image",
"displayName": "Core Image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Core Elements",
"displayName": "Core Elements",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Creative Direction",
"displayName": "Creative Direction",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "music prompt",
"displayName": "music prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "music letra",
"displayName": "music letra",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "music file 1",
"displayName": "music file 1",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "music file 2",
"displayName": "music file 2",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "thumbnail",
"displayName": "thumbnail",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "titulo_youtube",
"displayName": "titulo_youtube",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "prompt_thumbnail",
"displayName": "prompt_thumbnail",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "descripcion_youtube",
"displayName": "descripcion_youtube",
"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": [
1792,
208
],
"id": "5126fabb-504b-44b1-bbb4-ce45b377b800",
"name": "Log Audio Prompts",
"executeOnce": true,
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "create",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Scenes",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"execution_id": "={{ $execution.id }}",
"scene": "={{ \"Scene \" + $json.scene + \" - \" + $json.scene_title }}",
"start_image_prompt": "={{ $json.starting_image_prompt }}",
"end_image_prompt": "={{ $json.ending_image_prompt }}",
"Project Name": "={{ $json.project_title }}",
"transition_prompt": "={{ $json.transition_prompt }}"
},
"matchingColumns": [
"scene"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": true
},
{
"id": "execution_id",
"displayName": "execution_id",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "number",
"readOnly": false,
"removed": false
},
{
"id": "Project Name",
"displayName": "Project Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "scene",
"displayName": "scene",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "scene_number",
"displayName": "scene_number",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "number",
"readOnly": false,
"removed": true
},
{
"id": "start_image_prompt",
"displayName": "start_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "end_image_prompt",
"displayName": "end_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "transition_prompt",
"displayName": "transition_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "prompt done",
"displayName": "prompt done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
},
{
"id": "start_image",
"displayName": "start_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "end_image",
"displayName": "end_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "image done",
"displayName": "image done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
},
{
"id": "scene_video",
"displayName": "scene_video",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "video done",
"displayName": "video done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"typecast": true
}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1600,
208
],
"id": "5e291a03-e031-41d7-b154-eb85f14c8948",
"name": "Log Visual Prompts",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"filterByFormula": "{Status} = \"Create\"",
"returnAll": false,
"limit": 1,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
544,
1120
],
"id": "36244490-3159-4c71-896c-3c439fdea47a",
"name": "Get Project2",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Scenes",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"scene_video": "= [ { \"url\": \"{{ $json.data.response.resultUrls[0] }}\" } ]",
"video done": true,
"id": "={{ $('Get Scenes1').item.json.id }}"
},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "execution_id",
"displayName": "execution_id",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "number",
"readOnly": false,
"removed": true
},
{
"id": "Project Name",
"displayName": "Project Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "scene",
"displayName": "scene",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "start_image_prompt",
"displayName": "start_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "end_image_prompt",
"displayName": "end_image_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "transition_prompt",
"displayName": "transition_prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "prompt done",
"displayName": "prompt done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
},
{
"id": "start_image",
"displayName": "start_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "end_image",
"displayName": "end_image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "image done",
"displayName": "image done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": true
},
{
"id": "scene_video",
"displayName": "scene_video",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "video done",
"displayName": "video done",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "boolean",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1728,
816
],
"id": "9bf8b56a-2abe-4ef4-81f4-78ffb978ffd4",
"name": "Log Videos",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Scenes",
"mode": "id"
},
"filterByFormula": "=AND({image done} = 1, {video done} = 0)",
"options": {},
"sort": {
"property": [
{
"field": "scene"
}
]
}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
544,
832
],
"id": "d11114cb-99f8-4850-8c4d-1090cdf025fa",
"name": "Get Scenes1",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.kie.ai/api/v1/generate",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"model\": \"V5\",\n \"customMode\": true,\n \"instrumental\": false,\n \"callBackUrl\": \"https://api.example.com/callback\",\n \"title\": \"Cancion Frutas\",\n \"style\": {{ JSON.stringify($json['music prompt']) }},\n \"prompt\": {{ JSON.stringify($json['music letra']) }}\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
768,
1120
],
"id": "0b9cd99b-7ac2-4435-983c-cdf4f4784f3c",
"name": "Create Songs",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "https://api.kie.ai/api/v1/generate/record-info",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "taskId",
"value": "={{ $('Create Songs').item.json.data.taskId }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1216,
1120
],
"id": "9a1f5c24-64d4-4981-9fb7-07becb4c4625",
"name": "Get Songs",
"alwaysOutputData": false,
"retryOnFail": false,
"waitBetweenTries": 5000,
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"amount": 10
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
992,
1120
],
"id": "b9cf7ab0-8362-40e4-93dc-285eebac5c87",
"name": "Wait1"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.data.status }}",
"rightValue": "SUCCESS",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "bf05a398-eb00-4e25-8de6-3ae7d10e69dd"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "success"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "4686d0f8-4428-4d81-9c40-c9d56b69ab02",
"leftValue": "={{ $json.data.status }}",
"rightValue": "=(ING|_SUCCESS)",
"operator": {
"type": "string",
"operation": "regex"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "in progress"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
1440,
1120
],
"id": "807752d3-0bb5-4e61-b7ef-8e85df219887",
"name": "Switch1"
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Project Name": "={{ $('Get Project2').item.json['Project Name'] }}",
"music file 1": "=[\n {\n \"url\": \"{{ $('Get Songs').item.json.data.response.sunoData[0].audioUrl }}\"\n }\n]\n",
"music file 2": "=[\n {\n \"url\": \"{{ $('Get Songs').item.json.data.response.sunoData[1].audioUrl }}\"\n }\n]\n"
},
"matchingColumns": [
"Project Name"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": true
},
{
"id": "Project Name",
"displayName": "Project Name",
"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": "Create",
"value": "Create"
},
{
"name": "Done",
"value": "Done"
}
],
"readOnly": false,
"removed": true
},
{
"id": "Core Image",
"displayName": "Core Image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Core Elements",
"displayName": "Core Elements",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
},
{
"id": "Creative Direction",
"displayName": "Creative Direction",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "music prompt",
"displayName": "music prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "script",
"displayName": "script",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
},
{
"id": "music file 1",
"displayName": "music file 1",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "music file 2",
"displayName": "music file 2",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "voiceover file",
"displayName": "voiceover file",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1712,
1104
],
"id": "27422c25-7d5c-4598-a2f6-51efc8882c8e",
"name": "Log Audio",
"executeOnce": true,
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.toolThink",
"typeVersion": 1.1,
"position": [
1120,
96
],
"id": "7fb8d19b-df8e-4d9b-9d60-eecce115e0d0",
"name": "Think"
},
{
"parameters": {
"content": "# Liminal Archives - Horror Ambience\n",
"height": 176,
"width": 448,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
0
],
"id": "38563c41-8c71-4d69-b105-a7a5d2e355cf",
"name": "Sticky Note8"
},
{
"parameters": {
"promptType": "define",
"text": "=\nThe user's creative direction:\n{{ $('Get Project').item.json['Creative Direction'] }}\n\n\n***\n\n\nThe user's elements board:\n{{ $json.output[0].content[0].text }}",
"options": {
"systemMessage": "=IMPORTANT: Output ONLY raw JSON. Do not use markdown code blocks, no ```json, no ```. Just the pure JSON object starting with { and ending with }.\n \nYou are a creative director for a horror/liminal space ambient YouTube channel called \"Liminal Archives\". \n\nGenerate a complete horror ambient video concept in JSON format with EXACTLY these fields:\n\n{\n \"title\": \"YouTube title with SEO keywords (include duration like '3 Hours', 'Dark Ambient', etc.)\",\n \"lyrics\": \"Describe the ambient soundscape in detail - what sounds are heard throughout the video, the atmosphere, the feeling. Write it as a narrative description.\",\n \"music_style_prompt\": \"English prompt for music generation. Dark ambient, drone, atmospheric. Include BPM, Hz frequencies, instruments, mood.\",\n \"scenes\": [\n {\n \"scene\": 1,\n \"scene_title\": \"Scene title\",\n \"starting_image_prompt\": \"Detailed image generation prompt in English for the opening frame\",\n \"ending_image_prompt\": \"Detailed image generation prompt in English for the closing frame\",\n \"transition_prompt\": \"How the camera moves between start and end frame\"\n }\n ]\n}\n\nGenerate exactly 8 scenes. All image prompts must be in English. Style: liminal space, photorealistic, eerie, 1990s aesthetic."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
1056,
208
],
"id": "728f8011-9bcd-4c7e-ae7d-b3844e874471",
"name": "AI Agent"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
320,
528
],
"id": "ac4e5ae1-4fa8-4ce1-9127-9742e892117c",
"name": "IMAGENES"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
320,
1120
],
"id": "17a4711f-775c-439e-adac-04caf3c1f02f",
"name": "MUSICA"
},
{
"parameters": {
"content": "## OUTPUT",
"height": 1360,
"width": 246,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1664,
16
],
"id": "fef275d1-a8e2-4836-8030-04616824b614",
"name": "Sticky Note5"
},
{
"parameters": {
"content": "## INPUT",
"height": 1392,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
480,
0
],
"id": "bf210c9f-c901-43d5-af57-dee9eb7d38aa",
"name": "Sticky Note4"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 3
},
"conditions": [
{
"id": "e14f10cf-5e64-48ee-9d51-05382ed115d8",
"leftValue": "={{ $json['image done'] }}",
"rightValue": true,
"operator": {
"type": "boolean",
"operation": "notEquals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.3,
"position": [
800,
528
],
"id": "14263b96-5257-49d2-9c7e-6207d6a6fd71",
"name": "Filter"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "Project",
"mode": "id"
},
"filterByFormula": "{Status} = \"Create\"",
"returnAll": false,
"limit": 1,
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
1968,
528
],
"id": "1916acb7-48a2-4f00-a791-287208f793cb",
"name": "Get Project4",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "upsert",
"base": {
"__rl": true,
"value": "app7WZvGP1pqriF4f",
"mode": "id"
},
"table": {
"__rl": true,
"value": "tblYiND5DkrZhIlLq",
"mode": "list",
"cachedResultName": "Project",
"cachedResultUrl": "https://airtable.com/app7WZvGP1pqriF4f/tblYiND5DkrZhIlLq"
},
"columns": {
"mappingMode": "defineBelow",
"value": {},
"matchingColumns": [
"id"
],
"schema": [
{
"id": "id",
"displayName": "id",
"required": false,
"defaultMatch": true,
"display": true,
"type": "string",
"readOnly": true,
"removed": false
},
{
"id": "Project Name",
"displayName": "Project Name",
"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": "Create",
"value": "Create"
},
{
"name": "Done",
"value": "Done"
},
{
"name": "Skip",
"value": "Skip"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Core Image",
"displayName": "Core Image",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "Core Elements",
"displayName": "Core Elements",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "Creative Direction",
"displayName": "Creative Direction",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "music prompt",
"displayName": "music prompt",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "music letra",
"displayName": "music letra",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "titulo_youtube",
"displayName": "titulo_youtube",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "prompt_thumbnail",
"displayName": "prompt_thumbnail",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "descripcion_youtube",
"displayName": "descripcion_youtube",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "music file 1",
"displayName": "music file 1",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "music file 2",
"displayName": "music file 2",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "thumbnail",
"displayName": "thumbnail",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
2416,
528
],
"id": "0d8e6264-ccd1-490f-b9e5-e261ebd35f67",
"name": "Log Images1",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": " ## YOUTUBE\n",
"height": 304,
"width": 656,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1920,
432
],
"id": "c85cece5-fc0d-4c97-b3cf-d18a5153e15f",
"name": "Sticky Note9"
},
{
"parameters": {
"method": "POST",
"url": "https://api.wavespeed.ai/api/v3/google/nano-banana-pro/edit",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"aspect_ratio\": \"16:9\",\n \"enable_base64_output\": false,\n \"enable_sync_mode\": true,\n \"output_format\": \"png\",\n \"prompt\": \"{{$json.prompt_thumbnail.replace(/\\\"/g, '\\\\\\\"')}}\",\n \"resolution\": \"2k\",\n \"images\": [\n \"{{$json['Core Elements'][0].url}}\",\n \"{{$json['Core Image'][0].url}}\"\n ]\n}\n",
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 2000
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
2192,
528
],
"id": "986d2f43-270b-4b7f-91af-c5674aed0d96",
"name": "Generador Thumbnail",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "image",
"operation": "analyze",
"modelId": {
"__rl": true,
"value": "models/gemini-3-pro-preview",
"mode": "list",
"cachedResultName": "models/gemini-3-pro-preview"
},
"text": "Please look at this image and describe it in detail. What is shown in the character section, the setting section? Explain what you see in each part detailed so the image can be fully translated into text.",
"imageUrls": "={{ $json['Core Image'][0].url }}",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"typeVersion": 1.1,
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.
airtableTokenApigooglePalmApihttpBearerAuthhttpHeaderAuthopenRouterApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Liminal Archives - Horror Ambience. Uses airtable, httpRequest, toolThink, agent. Scheduled trigger; 42 nodes.
Source: https://gist.github.com/carismaxinfo-oss/ea8d1519c6539a067d5685f2b3798e7b — 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.
kisisel asistan. Uses toolWorkflow, toolHttpRequest, toolCalculator, toolThink. Scheduled trigger; 43 nodes.
Ghost-Automated-Blog-System. Uses scheduleTrigger, rssFeedRead, httpRequest, airtable. Scheduled trigger; 38 nodes.
ASMR. Uses googleSheets, outputParserStructured, httpRequest, lmChatOpenAi. Scheduled trigger; 35 nodes.
This workflow automatically creates short-form AI videos using Sora 2 Cameos, powered by n8n and AI agents.
Stop writing blog posts manually. This workflow monitors Google News every 12 hours on any topic you choose, automatically selects the most relevant article, scrapes the source content, generates a 10