{"workflow":{"id":13015,"name":"Create automated video ad clones with NanoBanana, Kling, Airtable and Blotato","views":1674,"recentViews":3,"totalViews":1674,"createdAt":"2026-01-26T15:27:45.586Z","description":"# 💥 Clone Video Ads Factory using NanoBanana, Kling and Publish with Blotato\n📄 **Documentation**: [Notion Guide](https://automatisation.notion.site/Clone-Video-Ads-Factory-using-NanoBanana-Kling-and-Publish-with-Blotato-2f03d6550fd980a78193e996cca37600?source=copy_link)\n\n![Workflow Overview](https://www.dr-firas.com/clone-ads-factory.png)\n\n## Who is this for?\nThis workflow is built for **marketers, growth hackers, agencies, content creators, and automation builders** who want to industrialize video ad production.  \nPerfect for anyone running **paid ads, social media campaigns, UGC-style content, dropshipping creatives, AI ad testing**, or scalable content factories.\n\n---\n\n## What problem is this workflow solving? / Use case\nCreating high-performing video ads is:\n- Slow\n- Manual\n- Expensive\n- Hard to scale\n- Hard to test in volume\n\nThis workflow solves:\n- ❌ Manual editing\n- ❌ Manual prompt writing\n- ❌ Manual scene creation\n- ❌ Manual video assembly\n- ❌ Manual audio integration\n- ❌ Manual publishing\n\nIt turns **one input video + prompt** into a **fully automated ad production pipeline**.\n\n---\n\n## What this workflow does\nThis automation system acts as a **full AI video ads factory**:\n\n### Step-by-step pipeline:\n1. **Video Analysis**\n   - Breaks down the source video into cinematic scenes\n   - Extracts structure, rhythm, composition, pacing, and visual logic\n\n2. **Prompt Engineering**\n   - Generates structured prompts for:\n     - Images\n     - Videos\n     - Music\n     - Captions\n     - Global script\n     - Scene structure\n\n3. **Image Generation**\n   - Uses **NanoBanana** to generate consistent AI images per scene\n   - Keeps visual identity across scenes\n\n4. **Video Generation**\n   - Uses **Kling** to generate cinematic video clips\n   - Scene-based video creation\n\n5. **Video Merging**\n   - Automatically merges all generated scenes into one final video\n\n6. **Music Generation**\n   - Generates a full song from prompt (AI music model)\n\n7. **Audio + Video Merge**\n   - Merges generated music with the final video\n\n8. **Publishing**\n   - Automatically publishes content using **Blotato**\n   - Creates posts and media assets\n\n➡️ Result: **Fully automated AI video ad production system**\n\n---\n\n## Setup\n\n### Required accounts:\n- Airtable\n- fal.ai\n- **[AtlasCloud](https://www.atlascloud.ai?ref=8QKPJE)** \n- **[Blotato](https://blotato.com/?ref=firas)**\n\n### Initial configuration:\n1. Create Airtable base\n2. Add required fields:\n   - Original Video\n   - Avatar Image\n   - Product Image\n   - Status\n   - Prompts\n   - Scenes\n   - Music File\n   - Final Video\n3. Add API keys in the Setup nodes:\n   - AtlasCloud\n   - fal.ai\n   - Airtable\n   - Blotato\n\n---\n\n## Expected outcome\n\nYou get a **fully automated AI content factory** that can:\n- Clone ad styles\n- Scale ad production\n- Test creatives at scale\n- Generate UGC-style ads\n- Build content farms\n- Automate marketing pipelines\n- Create AI ad studios\n- Run continuous ad experiments\n\n---\n\n## Typical use cases\n\n- AI UGC ad factories  \n- Dropshipping ad automation  \n- SaaS promo videos  \n- Influencer content cloning  \n- Brand video scaling  \n- Marketing automation  \n- Ad testing labs  \n- Growth hacking pipelines  \n- AI content studios  \n\n---\n### 👋 Need help or want to customize this?\n📩 Contact: [LinkedIn](https://www.linkedin.com/in/dr-firas/)  \n📺 YouTube: [@DRFIRASS](https://www.youtube.com/@DRFIRASS)  \n🚀 Workshops: [Mes Ateliers n8n](https://hotm.art/formation-n8n)\n\n\n### Need help customizing?\nContact me for consulting and support : [Linkedin](https://www.linkedin.com/in/dr-firas/) / [Youtube](https://www.youtube.com/channel/UCriIQI8uaoEro5FEnOpeidQ) / [🚀 Mes Ateliers n8n  ](https://hotm.art/formation-n8n)","workflow":{"id":"QcnXDa3aRYDdQxDN","meta":{"instanceId":"de822f81f3a2367cef7d9549771a77783236bc9596481be2ae65c05fbcc4b4fd","templateCredsSetupCompleted":true},"name":"💥 Clone Video Ads Factory using NanoBanana, Kling and Publish with Blotato","tags":[],"nodes":[{"id":"0f7bcb5d-3e15-47b6-a743-fc7c013a0bc7","name":"Manual Trigger","type":"n8n-nodes-base.manualTrigger","position":[-5648,560],"parameters":{},"typeVersion":1},{"id":"5e12b2a6-53e2-4ed3-b22c-855b8946480c","name":"Setup Workflow","type":"n8n-nodes-base.set","position":[-5424,560],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"maxScenes","type":"number","value":3},{"id":"id-2","name":"musicStyle","type":"string","value":""},{"id":"id-3","name":"language","type":"string","value":"en"},{"id":"id-4","name":"airtableBaseId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Base ID__>"},{"id":"b3d3b1e3-3456-4dd3-bfae-1c4583f08eba","name":"airtableTableId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table ID__>"},{"id":"id-5","name":"airtableTableName","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table Name__>"},{"id":"id-6","name":"statusField","type":"string","value":"status"},{"id":"id-7","name":"statusValue","type":"string","value":"Todo"},{"id":"id-8","name":"videoUrlField","type":"string","value":"video"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"cf791d65-aff9-4602-8062-e478a6f8f26a","name":"Search Airtable for Record","type":"n8n-nodes-base.airtable","position":[-5200,560],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').item.json.airtableBaseId }}"},"limit":1,"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').item.json.airtableTableName }}"},"options":{},"operation":"search","returnAll":false,"filterByFormula":"={{ '{' + $('Setup Workflow').item.json.statusField + '}=\"' + $('Setup Workflow').item.json.statusValue + '\"' }}"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"17573595-e1c8-43ea-a4ec-1e7d49e42f0c","name":"Check if Record Found","type":"n8n-nodes-base.if","position":[-4976,560],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"string","operation":"exists"},"leftValue":"={{ $json.id }}"}]}},"typeVersion":2.3},{"id":"b719ca52-e281-47cb-8bbb-ce1682076225","name":"Generate Creative Assets JSON","type":"@n8n/n8n-nodes-langchain.agent","position":[-4208,560],"parameters":{"text":"=Generate creative production prompts based on this video.\n\nThe full video analysis is:\n{{ $json.content.parts[0].text }}\n\n***\n\nThe user request for this project is:\n{{ $('Search Airtable for Record').item.json['My Description'] }}\n\n***\n\nThe reference images provided by the user are:\n\nAvatar image:\n{{ $('Search Airtable for Record').item.json['Avatar Image'][0].url }}\n\nProduct image:\n{{ $('Search Airtable for Record').item.json['Product Image'][0].url }}\n\n(Note: if a field is blank, it means no reference image was provided)\n\n***\n\nYour task is to generate **structured, high-quality AI prompts** for content creation, including:\n\n- One music generation prompt  \n- One global video title  \n- One global video caption  \n- Scene titles for each scene  \n- Image generation prompts for each scene  \n- Video generation prompts for each scene  \n\nAll outputs must be:\n- Cinematic  \n- Visually coherent  \n- Consistent with the video analysis  \n- Aligned with the user request  \n- Visually consistent with the avatar and product reference images  \n- High-quality  \n- Production-ready  \n- Optimized for AI generation systems (image, video, music models)\n\nUse the video analysis as the **structural base**.  \nUse the user request as the **creative direction**.  \nUse the reference images as **visual identity constraints**.\n\nGenerate prompts that are:\n- Precise  \n- Descriptive  \n- Cinematic  \n- Structured  \n- Non-generic  \n- Non-repetitive  \n- Non-abstract  \n- Non-vague  \n\nDo not explain your reasoning.  \nDo not add commentary.  \nDo not add extra text.  \nOnly generate the creative prompts.\n","options":{"systemMessage":"=### STRICT JSON OUTPUT CONSTRAINTS\n- Output **ONLY** a valid JSON object.\n- Do NOT wrap in markdown or code fences.\n- Do NOT add any extra keys beyond the schema.\n- Do NOT add any leading/trailing text.\n- All strings must use double quotes.\n- The value of `scenes` must be an array of objects with ONLY: `scene`, `start_image_prompt`, `video_prompt`.\n- If unsure about any value, use `\"unclear\"` (still as a string).\n\n\n# 🧠 SYSTEM PROMPT — SEALCam Ad Scene Generator Agent (JSON Schema Mode)\n\nYou are a **multimedia ad director and prompt engineering agent**.  \nYour role is to transform structured scene analysis into a **complete cinematic ad package** using the **SEALCam Framework**, with **strict JSON schema output** and **deterministic mapping** (no free-form generation).\n\nYou are operating in **schema-driven mode**:\n- No creative paraphrasing  \n- No stylistic rewriting  \n- No semantic variation  \n- No generative phrasing  \n- No synonyms  \n- No interpretation  \n- No expansion  \n- No abstraction  \n\nYou must **map data → structure**, not invent language.  \nThis is a **data-to-schema transformation agent**, not a creative agent.\n\n---\n\n## INPUTS YOU WILL RECEIVE\n\n- A YAML object named: `video_analysis`  \n  Structure:\n  - `music_analysis`\n  - `script_transcript`\n  - `scenes.Scene_1 ... Scene_N`\n  - Each scene contains:\n    - `description`\n    - `SEALCam`:\n      - `S`\n      - `E`\n      - `A`\n      - `L`\n      - `Ca`\n      - `M`\n\n- Optional:\n  - Reference image(s)\n  - Visual board\n\n---\n\n# 🎯 OBJECTIVE\n\nTransform `video_analysis` into **EXACTLY ONE JSON object** with:\n\n1. `script` → mapped voiceover  \n2. `music_prompt` → mapped music description  \n3. `scenes` → ordered list of scene objects derived from input scenes  \n\n⚠️ The number of output scenes **MUST EXACTLY MATCH** the number of input scenes.\n\nNo scene creation.  \nNo scene merging.  \nNo scene deletion.  \nNo re-ordering.\n\n---\n\n# 📦 OUTPUT FORMAT (STRICT JSON ONLY)\n\nOutput **ONLY valid JSON**.  \nNo markdown.  \nNo commentary.  \nNo explanations.  \nNo code blocks.  \nNo emojis.  \nNo natural language.  \nNo formatting outside JSON.\n\n---\n\n# 🧾 JSON SCHEMA (MANDATORY)\n\n{\n  \"script\": \"string\",\n  \"music_prompt\": \"string\",\n  \"scenes\": [\n    {\n      \"scene\": \"Scene X - Title\",\n      \"start_image_prompt\": \"string\",\n      \"video_prompt\": \"string\"\n    }\n  ]\n}\n\n---\n\n# 🧠 STRICT FIELD MAPPING RULES\n\n## 1) script\n\nSource:\n- `video_analysis.script_transcript`\n- `video_analysis.scenes[*].description`\n\nRules:\n- If `script_transcript` ≠ \"No script\" → copy **verbatim** into `script`\n- If `script_transcript` = \"No script\" → generate script by **concatenating scene descriptions** in order  \n- Output must be:\n  - ONE continuous block of text  \n  - No labels  \n  - No formatting  \n  - No bullet points  \n  - No line breaks  \n  - Use `...` for pauses  \n  - No quotation marks  \n\n---\n\n## 2) music_prompt\n\nSource:\n- `video_analysis.music_analysis`\n\nMapping rule:\nConcatenate fields in this exact order:\ngenre  \ntempo  \nrhythm  \ndynamics  \ninstrumentation  \nmix_density  \npacing  \n\nFormat:\nSingle string, comma-separated, no adjectives added, no creative text.\n\nExample:\n\"genre: X, tempo: X, rhythm: X, dynamics: X, instrumentation: X, mix_density: X, pacing: X\"\n\nRules:\n- No interpretation  \n- No expansion  \n- No rewriting  \n- No emotional inference  \n- No stylistic wording  \n\n---\n\n# 🎬 SCENE OBJECT MAPPING (STRICT)\n\nEach input scene → ONE output scene object\n\nRules:\n- No scene creation  \n- No merging  \n- No deletion  \n- No reordering  \n- No abstraction  \n- No reinterpretation  \n\n---\n\n## scene field\n\nFormat **EXACTLY**:\n\"Scene X - Title\"\n\nRules:\n- X = scene number  \n- Title generated ONLY from scene description keywords  \n- 2–4 words  \n- Visual  \n- Descriptive  \n- No punctuation  \n- No abstraction  \n- No metaphor  \n- No invented language  \n- No stylistic adjectives  \n\n---\n\n# 🖼️ start_image_prompt (STRICT STRING TEMPLATE)\n\nThis is a **TEMPLATE RENDER**, not generation.\n\nIf reference images exist, FIRST LINE MUST BE:\nIf relevant for the prompt below, use the reference images provided for the character and/or product and Create ONE single image only. No collage, no grid, no multi-panel, no storyboard, no split-screen, no contact sheet.\n\nIf relevant for the prompt below, use the reference images provided for the character and/or product\nSubject: Man with Avatar face wearing third outfit from product image, BMX bike\nEnvironment: Rooftop helipad, Los Angeles cityscape background\nAction: Walking beside the BMX bike, confident pose\nLighting: Natural daylight, soft shadows, late afternoon\nCamera: Medium wide shot, low angle, static, 24mm wide lens\nMetatokens: cinematic, photorealistic, commercial, desaturated grade, high detail, 9:16 vertical, single frame\n\n\nThen EXACT structure:\nSubject: {map from SEALCam.S}  \nEnvironment: {map from SEALCam.E}  \nAction: {map from SEALCam.A}  \nLighting: {map from SEALCam.L}  \nCamera: {map from SEALCam.Ca}  \nMetatokens: {map from SEALCam.M}\n\nRules:\n- SINGLE string  \n- Use `\\n` for line breaks  \n- No extra text  \n- No rephrasing  \n- No synonyms  \n- No rewriting  \n- No creative language  \n- Direct value mapping only  \n- Join arrays with `, `  \n- Preserve wording  \n- Preserve order  \n- Preserve technical phrasing  \n- No enrichment  \n- No abstraction  \n\n---\n\n# 🎥 video_prompt (STRICT STRING TEMPLATE)\n\nSame mapping as `start_image_prompt`.\n\nEXACT structure:\nSubject: {map from SEALCam.S}  \nEnvironment: {map from SEALCam.E}  \nAction: {map from SEALCam.A}  \nLighting: {map from SEALCam.L}  \nCamera: {map from SEALCam.Ca}  \nMetatokens: {map from SEALCam.M}\n\nRules:\n- SINGLE string  \n- Use `\\n` for line breaks  \n- No extra text  \n- No generation  \n- No creative additions  \n- No semantic variation  \n- No interpretation  \n- No expansion  \n- No rewriting  \n- No enrichment  \n- No abstraction  \n\n---\n\n# 🔒 CORE CONSTRAINTS\n\n- Scene data is the **ONLY source of truth**\n- Do NOT invent:\n  - subjects\n  - props\n  - brands\n  - environments\n  - objects\n  - text\n  - actions\n- Do NOT paraphrase  \n- Do NOT summarize  \n- Do NOT stylize  \n- Do NOT beautify  \n- Do NOT interpret  \n- Do NOT generalize  \n- Do NOT enrich  \n- Do NOT abstract  \n- Do NOT infer  \n\nThis is **schema mapping**, not creative writing.\n\n---\n\n# 🧬 SEALCam FRAMEWORK (SOURCE OF TRUTH)\n\nMapping source fields:\n- `S` → Subject  \n- `E` → Environment  \n- `A` → Action  \n- `L` → Lighting  \n- `Ca` → Camera  \n- `M` → Metatokens  \n\n---\n\n# 🧠 INTERNAL MODE (INVISIBLE)\n\nMode: `deterministic_mapper`\n\nPurpose:\n- schema mapping  \n- data transformation  \n- structured rendering  \n- format stability  \n- pipeline safety  \n- reproducibility  \n\nDo NOT expose reasoning.  \nDo NOT expose logic.  \nOutput **ONLY final JSON**.\n\n---\n\n# ✅ FINAL OBJECTIVE\n\nProduce a **deterministic, schema-driven, machine-stable JSON object** usable directly for:\n\n- image generation engines  \n- video generation engines  \n- music generation engines  \n- n8n pipelines  \n- automation workflows  \n- database storage  \n- content orchestration  \n- prompt factories  \n- AI pipelines  \n- multi-agent systems  \n- cinematic automation  \n\nThis is a **production pipeline prompt**, not a creative prompt.\n"},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"c53be15d-68a8-4171-a20e-3a3f8969e7b3","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-4224,784],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"HUbsD20wv3CFr7gN","name":"OpenAi account"}},"typeVersion":1.3},{"id":"89637888-2747-4bc7-bfba-baccca4c43af","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-4064,784],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"script\", \"music_prompt\", \"scenes\"],\n  \"properties\": {\n    \"script\": {\n      \"type\": \"string\",\n      \"description\": \"One continuous voiceover script (no labels, no bullets).\"\n    },\n    \"music_prompt\": {\n      \"type\": \"string\",\n      \"description\": \"Deterministic music prompt string built from music_analysis fields.\"\n    },\n    \"scenes\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"description\": \"One output scene per input scene, in the same order.\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"scene\", \"start_image_prompt\", \"video_prompt\"],\n        \"properties\": {\n          \"scene\": {\n            \"type\": \"string\",\n            \"description\": \"Format: 'Scene X - Title' (Title is 2–4 words).\"\n          },\n          \"start_image_prompt\": {\n            \"type\": \"string\",\n            \"description\": \"Single string. If reference images exist, first line must be the required sentence. Then 6 lines with keys Subject/Environment/Action/Lighting/Camera/Metatokens separated by \\\\n.\"\n          },\n          \"video_prompt\": {\n            \"type\": \"string\",\n            \"description\": \"Single string with 6 lines: Subject/Environment/Action/Lighting/Camera/Metatokens separated by \\\\n.\"\n          }\n        }\n      }\n    }\n  }\n}\n"},"typeVersion":1.3},{"id":"38c61a5e-10a3-4ddb-98d2-52de8877a6ee","name":"Split Out Scenes","type":"n8n-nodes-base.splitOut","position":[-3856,576],"parameters":{"options":{},"fieldToSplitOut":"scenes, output.scenes"},"typeVersion":1},{"id":"f3bea733-5765-4fd7-95c0-8af4a6eb6087","name":"Update Main Record","type":"n8n-nodes-base.airtable","position":[-3856,768],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Search Airtable for Record').item.json.id }}","Script":"={{ $json.output.script }}","Status":"In progress","Music Prompt":"={{ $json.output.music_prompt }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"af0c097c-24ab-43d1-8a80-1bdec0f8d492","name":"Write Scene Data","type":"n8n-nodes-base.airtable","position":[-3632,576],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow').first().json.airtableTableId }}"},"columns":{"value":{"Status":"Prompt ready","Project":"={{ $('Search Airtable for Record').item.json.Project }}","scene_Title":"={{ $json['output.scenes'].scene }}","video_prompt":"={{ $json['output.scenes'].video_prompt }}","start_image_prompt":"={{ $json['output.scenes'].start_image_prompt }}"},"schema":[{"id":"Project","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"151819ee-b031-4b4a-b630-8b84ff9e8a4b","name":"Analyze video","type":"@n8n/n8n-nodes-langchain.googleGemini","position":[-4752,560],"parameters":{"text":"=# SYSTEM PROMPT — SEALCam Video Scene Analyzer (v2.3 FINAL)\n\nYou are a professional **video analysis agent** specializing in **cinematic, commercial, and digital media breakdowns**.\n\nYour task is to analyze the provided **video input** and deconstruct it into **structured, sequential scenes** using the **SEALCam Framework**, expressed strictly in **cinema, cinematography, and photography terminology**.\n\nYou are an **analytical system**, not a storyteller.  \nNo interpretation, no symbolism, no narrative tone, no emotional language unless **directly implied by audiovisual structure** (tempo, rhythm, lighting, pacing, composition).\n\n---\n\n## SCENE LIMIT RULE (MANDATORY)\n\nYou must generate **a maximum of**:\n{{ $('Setup Workflow').item.json.maxScenes }}\n\nscenes.\n\nIf the video contains more logical segments, you must **cluster similar shots into unified scenes** (montage grouping) instead of creating new scenes.\n\n---\n\n## OUTPUT FORMAT (STRICT YAML ONLY)\n\nOutput **ONLY valid YAML**.  \nNo introduction text.  \nNo explanations.  \nNo commentary.  \nNo code fences.  \nNo ```yaml.  \nNo extra characters.\n\nvideo_analysis:\n\nmusic_analysis:\n  genre:\n  tempo:\n  rhythm:\n  dynamics:\n  instrumentation:\n  mix_density:\n  pacing:\n\nscript_transcript:\n  \"<exact transcription OR No script>\"\n\nscenes:\n  Scene_1:\n    description: |\n      <technical cinematic description paragraph>\n\n    SEALCam:\n      S:\n        -\n      E:\n        -\n      A:\n        -\n      L:\n        -\n      Ca:\n        -\n      M:\n        -\n\n  Scene_2:\n    ...\n\n---\n\n## MUSIC ANALYSIS RULES\n\nDescribe the music **only using technical audio + film scoring terminology**.\n\nAllowed domains:\n- genre\n- tempo\n- rhythm\n- dynamics\n- instrumentation\n- mix density\n- pacing\n\nRules:\n- No emotional language\n- No subjective interpretation\n- No narrative description\n\nIf no music is present:\nmusic_analysis: No music\n\n---\n\n## SCRIPT TRANSCRIPT RULES\n\n- Transcribe **all spoken words exactly**\n- Preserve pauses using `...`\n- No paraphrasing\n- No summarization\n- Always quoted\n\nIf no spoken audio:\n\"No script\"\n\n---\n\n## SCENE SEGMENTATION RULES (CRITICAL)\n\nCreate a **new scene only if at least ONE changes significantly**:\n- Location\n- Time of day\n- Primary subject\n- Action objective\n- Lighting setup\n- Camera grammar (angle, lens logic, movement strategy, perspective)\n\nDo NOT create new scenes for:\n- minor framing changes\n- rhythmic edits\n- repeated angles\n- repeated actions\n- micro shot variations\n- stylistic cuts\n\nGroup them into **one structured scene (montage logic)**.\n\n---\n\n## UNCERTAINTY RULE (ANTI-HALLUCINATION)\n\nIf a detail is **not clearly observable**, write:\nunclear\n\nNever guess:\n- locations\n- cities\n- brands\n- devices\n- lenses\n- weather\n- time of day\n- production intent\n- lighting sources\n- environment type\n\nNo assumptions.\n\n---\n\n## SCENE DESCRIPTION RULES\n\nEach `description` must be:\n- Technical\n- Cinematic\n- Spatial\n- Optical\n- Objective\n- Non-narrative\n- Non-emotional\n- Non-symbolic\n- Non-marketing\n\nDescribe only:\ncomposition, framing, layout, depth, motion, transitions, continuity, perspective, visual structure.\n\n---\n\n## SEALCam FRAMEWORK (MANDATORY)\n\nS — Subject  \nWhat the camera is optically prioritizing.\n\nE — Environment  \nThe physical or constructed space.\n\nA — Action  \nObservable motion (subject + camera).\n\nL — Lighting  \nLighting setup, exposure, diffusion, contrast, directionality, color temperature.\n\nCa — Camera (MINIMUM REQUIRED DETAIL)\nMust include:\n- framing size\n- angle\n- movement\n- stabilization (static / handheld / gimbal / drone / unclear)\n- lens logic (wide / normal / tele / unclear)\n- perspective\n\nM — Metatokens (MINIMUM REQUIRED DETAIL)\nMust include:\n- grading/look\n- compression/clarity\n- aspect ratio\n- production style (commercial / documentary / BTS / cinematic / unclear)\n- rendering quality\n- presentation logic\n\n---\n\n## GLOBAL CONSTRAINTS\n\n- Fully sequential scenes\n- No skipped scenes\n- No unrelated merges\n- No storytelling\n- No symbolism\n- No emotion projection\n- No marketing language\n- No audience language\n- No metaphors\n- No interpretation\n- No hallucination\n- No guessing\n- No preamble text\n- No formatting outside YAML\n\nOnly:\noptical, spatial, acoustic, cinematic, and technical analysis\n\n---\n\n## ROLE CONFIGURATION\n\nRole:\nExpert cinematographer  \nFilm editor  \nVisual analyst  \nVisual prompt engineer  \n\nOutput style:\n- High-detail\n- Technical\n- Structured\n- Deterministic\n- Production-grade\n- Machine-parsable\n- Automation-safe\n\n---\n\n## INTERNAL TOOLING (INVISIBLE)\n\nThink Tool:\nUse internal reasoning for:\n- scene boundary detection\n- montage grouping\n- shot clustering\n- camera grammar\n- lens logic\n- visual continuity\n- motion analysis\n\nDo not expose reasoning.  \nOnly output final YAML.\n\n---\n\n## INPUT\n\nThe input is a **video**.  \nAnalyze the full video and output **all scenes sequentially**, respecting the **max scene limit** and structure above.\n","modelId":{"__rl":true,"mode":"list","value":"models/gemini-2.0-flash","cachedResultName":"models/gemini-2.0-flash"},"options":{},"resource":"video","operation":"analyze","videoUrls":"={{ $json['Original Video'][0].url }}"},"credentials":{"googlePalmApi":{"id":"HyrjYqmj8emXby8X","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1.1},{"id":"02c6d2d3-1b6e-42e7-af49-4ab93a801970","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-5744,480],"parameters":{"color":7,"width":2560,"height":480,"content":"## STEP 1 - Create Prompt"},"typeVersion":1},{"id":"85145424-4d96-4804-a666-7922211740f4","name":"Setup Workflow 2","type":"n8n-nodes-base.set","position":[-5440,1120],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"airtableBaseId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Base ID__>"},{"id":"id-2","name":"airtableTableId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table ID__>"},{"id":"id-3","name":"airtableTableName","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table Name__>"},{"id":"id-4","name":"kpi_atlascloud","type":"string","value":"<__PLACEHOLDER_VALUE__API__>"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"9fe7b4a0-f6da-4eab-9623-dc921d6ad857","name":"Find In Progress Record","type":"n8n-nodes-base.airtable","position":[-5216,1120],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').item.json.airtableBaseId }}"},"limit":1,"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').item.json.airtableTableId }}"},"options":{},"operation":"search","returnAll":false,"filterByFormula":"{Status}=\"In progress\""},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"f03bb06f-a3d5-46c4-9f55-633c3b90ff52","name":"Check In Progress Found","type":"n8n-nodes-base.if","position":[-4992,1120],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"string","operation":"exists"},"leftValue":"={{ $json.id }}"}]}},"typeVersion":2.3},{"id":"0aada17b-c693-428f-9157-2087b113f513","name":"Find Prompt Ready Records","type":"n8n-nodes-base.airtable","position":[-4768,1120],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').first().json.airtableTableId }}"},"options":{},"operation":"search","filterByFormula":"={{ `AND({Project}=\"${$('Find In Progress Record').item.json.Project}\",{Status}=\"Prompt ready\")` }}"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"2cf0434e-044c-426b-b414-3d028fb14182","name":"Loop Over Records","type":"n8n-nodes-base.splitInBatches","position":[-4544,1120],"parameters":{"options":{}},"typeVersion":3},{"id":"e30a7398-c94b-4559-a93e-d0cd0d42390b","name":"Generate Image POST","type":"n8n-nodes-base.httpRequest","position":[-4320,1056],"parameters":{"url":"https://api.atlascloud.ai/api/v1/model/generateImage","method":"POST","options":{},"jsonBody":"={{\n  {\n    model: \"google/nano-banana-pro/edit\",\n    aspect_ratio: \"9:16\",\n    enable_base64_output: false,\n    enable_sync_mode: false,\n    images: [\n      $('Find In Progress Record').item.json['Avatar Image'][0].url,\n      $('Find In Progress Record').item.json['Product Image'][0].url\n    ],\n    output_format: \"png\",\n    prompt: $('Loop Over Records').item.json.start_image_prompt,\n    resolution: \"1k\"\n  }\n}}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'Bearer ' + $('Setup Workflow 2').first().json.kpi_atlascloud }}"}]}},"typeVersion":4.3},{"id":"9de8d9ca-093c-4fb0-a077-a3423b85d059","name":"Wait 3 Minutes","type":"n8n-nodes-base.wait","position":[-4096,1056],"webhookId":"63013158-b329-4cd3-9615-67c5b66fe486","parameters":{"unit":"minutes"},"typeVersion":1.1},{"id":"402f4d3d-9a6e-4bd9-95b3-12336c05af23","name":"Check Prediction Status GET","type":"n8n-nodes-base.httpRequest","position":[-3872,1056],"parameters":{"url":"={{ 'https://api.atlascloud.ai/api/v1/model/prediction/' + $('Generate Image POST').item.json.data.id }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'Bearer ' + $('Setup Workflow 2').first().json.kpi_atlascloud }}"}]}},"typeVersion":4.3},{"id":"f98879d2-c796-4bb7-8648-75fd1d8f2cbe","name":"Update Record with Image","type":"n8n-nodes-base.airtable","position":[-3648,1120],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 2').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Loop Over Records').item.json.id }}","Status":"Image ready","start_image":"={{ $json.data.outputs[0] }}"},"schema":[{"id":"id","type":"string","display":true,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"89b05cc7-c0b0-4292-8d4f-a53717b01fb8","name":"Sticky Note 2","type":"n8n-nodes-base.stickyNote","position":[-5744,1008],"parameters":{"color":7,"width":2560,"height":344,"content":"## STEP 2 - Generate Images"},"typeVersion":1},{"id":"04efe877-cf2f-4482-86a7-b6df2f9fb9f5","name":"Schedule","type":"n8n-nodes-base.scheduleTrigger","position":[-5664,1120],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.3},{"id":"04cabe80-5ecf-4a4f-b4b5-23f30314138d","name":"Schedule Video Generation","type":"n8n-nodes-base.scheduleTrigger","position":[-5664,1504],"parameters":{"rule":{"interval":[{"field":"minutes"}]}},"typeVersion":1.3},{"id":"c0826af1-4c60-43fb-8e80-7973d22ddee7","name":"Setup Workflow 3","type":"n8n-nodes-base.set","position":[-5440,1504],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"airtableBaseId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Base ID__>"},{"id":"id-2","name":"airtableTableId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table ID__>"},{"id":"id-3","name":"airtableTableName","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table Name__>"},{"id":"id-4","name":"atlascloudApiKey","type":"string","value":"<__PLACEHOLDER_VALUE__API__>"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"fb75a047-e87b-4e8e-a2b7-226bcff3733d","name":"Find In Progress Project","type":"n8n-nodes-base.airtable","position":[-5216,1504],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableBaseId }}"},"limit":1,"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableTableId }}"},"options":{},"operation":"search","returnAll":false,"filterByFormula":"{Status}=\"In progress\""},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"9b3a0e1a-3c26-4a21-8d83-1e342b25a4d0","name":"Check Project Found","type":"n8n-nodes-base.if","position":[-4992,1504],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"string","operation":"exists"},"leftValue":"={{ $json.id }}"}]}},"typeVersion":2.3},{"id":"9a429654-8099-41ff-bdb7-1278c9314ed7","name":"Find Image Ready Records","type":"n8n-nodes-base.airtable","position":[-4768,1504],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableBaseId }}"},"sort":{"property":[{"field":"scene_Title"}]},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableTableId }}"},"options":{},"operation":"search","filterByFormula":"={{ `AND({Project}=\"${$('Find In Progress Project').item.json.Project}\",{Status}=\"Image ready\")` }}"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"2ad178c5-1811-40ff-bc83-6e90da1ff8a6","name":"Create Image Pairs","type":"n8n-nodes-base.code","position":[-4544,1504],"parameters":{"jsCode":"// Sort records by scene title to ensure correct order\nconst records = $input.all();\n\n// Create consecutive image pairs\nconst pairs = [];\n\nfor (let i = 0; i < records.length; i++) {\n  const currentRecord = records[i].json;\n  const nextRecord = i < records.length - 1 ? records[i + 1].json : null;\n  \n  pairs.push({\n    json: {\n      recordId: currentRecord.id,\n      currentImage: currentRecord.start_image && currentRecord.start_image[0] ? currentRecord.start_image[0].url : null,\n      nextImage: nextRecord && nextRecord.start_image && nextRecord.start_image[0] ? nextRecord.start_image[0].url : null,\n      video_prompt: currentRecord.video_prompt\n    }\n  });\n}\n\nreturn pairs;"},"typeVersion":2},{"id":"621da354-b77c-4018-99de-7a02bf8712a6","name":"Loop Over Pairs","type":"n8n-nodes-base.splitInBatches","position":[-4320,1504],"parameters":{"options":{}},"typeVersion":3},{"id":"4adbc057-587e-45ee-9cce-76eb85b26659","name":"Generate Video POST","type":"n8n-nodes-base.httpRequest","position":[-4096,1440],"parameters":{"url":"https://api.atlascloud.ai/api/v1/model/generateVideo","method":"POST","options":{},"sendBody":true,"sendHeaders":true,"bodyParameters":{"parameters":[{"name":"model","value":"kwaivgi/kling-v2.1-i2v-pro/start-end-frame"},{"name":"duration","value":"5"},{"name":"image","value":"={{ $json.currentImage }}"},{"name":"end_image","value":"={{ $json.nextImage }}"},{"name":"guidance_scale","value":"0.5"},{"name":"negative_prompt","value":"example_value"},{"name":"prompt","value":"={{ $json.video_prompt }}"}]},"headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'Bearer ' + $('Setup Workflow 3').first().json.atlascloudApiKey }}"}]}},"typeVersion":4.3},{"id":"0396ba5e-cf4b-47ff-9eec-77fd5e0648ed","name":"Wait 5 Minutes","type":"n8n-nodes-base.wait","position":[-3872,1440],"webhookId":"f4b6473a-b388-483b-90c4-a26b77a7cde7","parameters":{"unit":"minutes","amount":6},"typeVersion":1.1},{"id":"eae2940d-8c47-4eee-9070-168c0a41c6f2","name":"Check Video Status GET","type":"n8n-nodes-base.httpRequest","position":[-3648,1440],"parameters":{"url":"={{ 'https://api.atlascloud.ai/api/v1/model/prediction/' + $('Generate Video POST').item.json.data.id }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'Bearer ' + $('Setup Workflow 3').first().json.atlascloudApiKey }}"}]}},"typeVersion":4.3},{"id":"0efe1428-8876-43b2-8a80-f1df939b1a5e","name":"Update Record with Video","type":"n8n-nodes-base.airtable","position":[-3424,1504],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 3').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Loop Over Pairs').item.json.recordId }}","Status":"Video ready","video_scene":"={{ [ { url: $json.data.outputs[0] } ] }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"e51c60bd-651a-48c5-9bb9-e2ec2b67be9c","name":"Sticky Note 3","type":"n8n-nodes-base.stickyNote","position":[-5744,1392],"parameters":{"color":7,"width":2560,"height":360,"content":"## STEP 3 - Generate Videos"},"typeVersion":1},{"id":"ce33d71d-a619-4448-aafb-bc9ebcfff3ab","name":"Sticky Note ","type":"n8n-nodes-base.stickyNote","position":[-5744,1792],"parameters":{"color":7,"width":2560,"height":280,"content":"## STEP 4 - Merge Videos"},"typeVersion":1},{"id":"ea0e4a11-1f76-4588-b249-e89bcb4626f3","name":"Schedule Video Generation1","type":"n8n-nodes-base.scheduleTrigger","position":[-5664,1872],"parameters":{"rule":{"interval":[{"field":"minutes"}]}},"typeVersion":1.3},{"id":"245bff72-3c28-4da1-8d88-1ce0f788068e","name":"Find In Progress Project1","type":"n8n-nodes-base.airtable","position":[-5216,1872],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableBaseId }}"},"limit":1,"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableTableId }}"},"options":{},"operation":"search","returnAll":false,"filterByFormula":"{Status}=\"In progress\""},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"c5219de4-c5cc-46e5-a27a-860fa7db823a","name":"Check Project Found1","type":"n8n-nodes-base.if","position":[-4992,1872],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"string","operation":"exists"},"leftValue":"={{ $json.id }}"}]}},"typeVersion":2.3},{"id":"206266e1-affb-4fd6-935d-34661c77cf4e","name":"Find Image Ready Records1","type":"n8n-nodes-base.airtable","position":[-4768,1872],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableBaseId }}"},"sort":{"property":[{"field":"scene_Title"}]},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableTableId }}"},"options":{},"operation":"search","filterByFormula":"={{ `AND({Project}=\"${$('Find In Progress Project1').item.json.Project}\",{Status}=\"Video ready\")` }}"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"f110f30b-9bac-411a-874f-49f089531200","name":"Collect all videos","type":"n8n-nodes-base.code","position":[-4560,1872],"parameters":{"jsCode":"// Collect all Airtable attachment URLs from the field \"video_scene\"\nconst urls = [];\n\nfor (const item of $input.all()) {\n  const att = item.json.video_scene; // Airtable attachment field\n  if (Array.isArray(att) && att[0]?.url) {\n    urls.push(att[0].url);\n  }\n}\n\n// Output as a single item with video_urls array\nreturn [\n  {\n    json: {\n      video_urls: urls\n    }\n  }\n];\n"},"typeVersion":2},{"id":"37841c32-edc1-4b85-9bc3-cf48a2be05fe","name":"Wait","type":"n8n-nodes-base.wait","position":[-4032,1872],"webhookId":"7f14b7e0-9b88-4462-be1d-b894e5a10667","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"2e3bc92e-5ca1-4052-a587-b22adc02d048","name":"Merge All Videos","type":"n8n-nodes-base.httpRequest","position":[-4320,1872],"parameters":{"url":"https://fal.run/fal-ai/ffmpeg-api/merge-videos","method":"POST","options":{},"jsonBody":"={\n  \"video_urls\": {{ JSON.stringify($json.video_urls) }},\n  \"output\": {\n    \"format\": \"mp4\"\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'key ' + $('Setup Workflow 4').first().json.falApiKey }}"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"432ba71e-3658-4d32-8d10-6918eeb66289","name":"Setup Workflow 4","type":"n8n-nodes-base.set","position":[-5440,1872],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"airtableBaseId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Base ID__>"},{"id":"id-2","name":"airtableTableId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table ID__>"},{"id":"id-3","name":"airtableTableName","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table Name__>"},{"id":"id-4","name":"falApiKey","type":"string","value":"<__PLACEHOLDER_VALUE__API__>"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"98856f4f-506b-4c49-af80-9b9d4a039c86","name":"Update Record with Video Clone","type":"n8n-nodes-base.airtable","position":[-3744,1872],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 4').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Find In Progress Project1').first().json.id }}","Status":"Done","Video clone":"={{ [ { url: $json.video.url, filename: $json.video.file_name || 'merged_video.mp4' } ] }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Video clone","type":"array","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Video clone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"8cc13e12-b2fe-405b-b60c-7a0bd84381cb","name":"Sticky Note 1","type":"n8n-nodes-base.stickyNote","position":[-5744,2112],"parameters":{"color":7,"width":2560,"height":296,"content":"## STEP 5 - Create audio and Publish"},"typeVersion":1},{"id":"498b3708-acaf-48b7-960c-99f067b2d90c","name":"Schedule Audio Generation","type":"n8n-nodes-base.scheduleTrigger","position":[-5680,2208],"parameters":{"rule":{"interval":[{"field":"minutes"}]}},"typeVersion":1.3},{"id":"70f2f847-8db9-459b-9923-2b3a787031a0","name":"Setup Workflow 5","type":"n8n-nodes-base.set","position":[-5456,2208],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"airtableBaseId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Base ID__>"},{"id":"id-2","name":"airtableTableId","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table ID__>"},{"id":"id-3","name":"airtableTableName","type":"string","value":"<__PLACEHOLDER_VALUE__Airtable Table Name__>"},{"id":"id-4","name":"falApiKey","type":"string","value":"<__PLACEHOLDER_VALUE__API__>"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"7f6675c1-a52a-4a97-b03d-fd7822b9e72c","name":"Find In audio Project","type":"n8n-nodes-base.airtable","position":[-5232,2208],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableBaseId }}"},"limit":1,"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableTableId }}"},"options":{},"operation":"search","returnAll":false,"filterByFormula":"{Status}=\"Done\""},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"2db822f2-50ac-48c2-bd40-b40c28a385d5","name":"Create audio","type":"n8n-nodes-base.httpRequest","position":[-5040,2208],"parameters":{"url":"https://fal.run/fal-ai/ace-step/prompt-to-audio","method":"POST","options":{},"jsonBody":"={\n  \"prompt\": \"{{ $json['Music Prompt'] }}\",\n  \"instrumental\": true,\n  \"duration\": 30\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'key ' + $('Setup Workflow 5').first().json.falApiKey }}"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"40d31e9d-3629-4ac4-bf54-ba6fb7232c05","name":"Wait to audio","type":"n8n-nodes-base.wait","position":[-4848,2208],"webhookId":"bb4184bd-52ea-47a4-a983-648a82c28978","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"75288786-f227-480e-998f-845f3a381a67","name":"Merge audio and video","type":"n8n-nodes-base.httpRequest","position":[-4432,2208],"parameters":{"url":"https://fal.run/fal-ai/ffmpeg-api/merge-audio-video","method":"POST","options":{},"jsonBody":"={\n  \"audio_url\": \"{{ $json.fields['Music File'][0].url }}\",\n  \"video_url\": \"{{ $json.fields['Video clone'][0].url }}\",\n  \"output\": {\n    \"format\": \"mp4\"\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"Authorization","value":"={{ 'key ' + $('Setup Workflow 5').first().json.falApiKey }}"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.3},{"id":"05fbb849-858a-42bf-975b-2d4cdb3fafbc","name":"Wait final video","type":"n8n-nodes-base.wait","position":[-4208,2208],"webhookId":"34e6351b-f85f-40a0-bb4a-f8d17100aa72","parameters":{"unit":"minutes","amount":2},"typeVersion":1.1},{"id":"5fe098fd-0ab2-4dcf-9824-a3df993fb6db","name":"Update Record with Final Video","type":"n8n-nodes-base.airtable","position":[-4016,2208],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Find In Progress Project1').first().json.id }}","Status":"Ready to publish","Final Video":"={{ [ { url: $json.video.url, filename: $json.video.file_name || 'combined_output.mp4' } ] }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"},{"name":"Ready to publish","value":"Ready to publish"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Video clone","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Video clone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video","type":"array","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Final Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"79978c09-43d3-4a2c-acd3-ea1875339864","name":"Update Record with audio","type":"n8n-nodes-base.airtable","position":[-4640,2208],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Find In Progress Project1').first().json.id }}","Music File":"={{ [ { url: $json.audio.url, filename: 'music.wav' } ] }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"}],"removed":true,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Video clone","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Video clone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"fb343a6d-b02f-4a2a-ae19-2f353318f3e7","name":"Upload media","type":"@blotato/n8n-nodes-blotato.blotato","position":[-3824,2208],"parameters":{"mediaUrl":"={{ $('Wait final video').first().json.video.url }}","resource":"media"},"credentials":{"blotatoApi":{"id":"wozsYJYLfCZO37j8","name":"Blotato account"}},"typeVersion":2},{"id":"292994e9-96a3-4b32-b1ed-20ba4551e479","name":"Create post","type":"@blotato/n8n-nodes-blotato.blotato","position":[-3632,2208],"parameters":{"options":{},"platform":"youtube","accountId":{"__rl":true,"mode":"list","value":"8047","cachedResultUrl":"https://backend.blotato.com/v2/accounts/8047","cachedResultName":"DR FIRASS (Dr. Firas)"},"postContentText":"={{ $('Update Record with Final Video').first().json.fields.Caption }}","postContentMediaUrls":"={{ $json.url }}","postCreateYoutubeOptionTitle":"={{ $('Update Record with Final Video').first().json.fields['Title Video'] }}","postCreateYoutubeOptionPrivacyStatus":"private","postCreateYoutubeOptionShouldNotifySubscribers":false},"credentials":{"blotatoApi":{"id":"wozsYJYLfCZO37j8","name":"Blotato account"}},"typeVersion":2},{"id":"b3e43c75-c9bb-41da-9282-cd3f4684d775","name":"Update Status","type":"n8n-nodes-base.airtable","position":[-3440,2208],"parameters":{"base":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableBaseId }}"},"table":{"__rl":true,"mode":"id","value":"={{ $('Setup Workflow 5').first().json.airtableTableId }}"},"columns":{"value":{"id":"={{ $('Find In Progress Project1').first().json.id }}","Status":"Published"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Project","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Project","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Todo","value":"Todo"},{"name":"In progress","value":"In progress"},{"name":"Done","value":"Done"},{"name":"Prompt ready","value":"Prompt ready"},{"name":"Image ready","value":"Image ready"},{"name":"Video ready","value":"Video ready"},{"name":"Ready to publish","value":"Ready to publish"},{"name":"Published","value":"Published"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Original Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Original Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Avatar Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Avatar Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Product Image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Product Image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"My Description","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"My Description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Format","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Format","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Title Video","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Title Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Caption","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music Prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Music File","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Music File","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Video clone","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Video clone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Final Video","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Final Video","defaultMatch":false,"canBeUsedToMatch":true},{"id":"scene_Title","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"scene_Title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"start_image","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"start_image","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_prompt","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"video_scene","type":"array","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"video_scene","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"PBD29lRxT3k8jXEV","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"10dbb3b0-c942-4968-9386-8d52751a2027","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-6496,480],"parameters":{"width":688,"height":1936,"content":"# 🚀 Automated Clone Video Ads Factory\n\n\n## What this workflow does\nThis automation system acts as a **full AI video ads factory**:\n\n### Step-by-step pipeline:\n1. **Video Analysis**\n   - Breaks down the source video into cinematic scenes\n   - Extracts structure, rhythm, composition, pacing, and visual logic\n\n2. **Prompt Engineering**\n   - Generates structured prompts for:\n     - Images\n     - Videos\n     - Music\n     - Captions\n     - Global script\n     - Scene structure\n\n3. **Image Generation**\n   - Uses **NanoBanana** to generate consistent AI images per scene\n   - Keeps visual identity across scenes\n\n4. **Video Generation**\n   - Uses **Kling** to generate cinematic video clips\n   - Scene-based video creation\n\n5. **Video Merging**\n   - Automatically merges all generated scenes into one final video\n\n6. **Music Generation**\n   - Generates a full song from prompt (AI music model)\n\n7. **Audio + Video Merge**\n   - Merges generated music with the final video\n\n8. **Publishing**\n   - Automatically publishes content using **Blotato**\n   - Creates posts and media assets\n\n➡️ Result: **Fully automated AI video ad production system**\n\n---\n\n## Setup\n\n### Required accounts:\n- Airtable\n- fal.ai\n- **[AtlasCloud](https://www.atlascloud.ai?ref=8QKPJE)** \n- Publish (**[Blotato](https://blotato.com/?ref=firas)**)\n\n### Initial configuration:\n1. Create Airtable base\n2. Add required fields:\n   - Original Video\n   - Avatar Image\n   - Product Image\n   - Status\n   - Prompts\n   - Scenes\n   - Music File\n   - Final Video\n3. Add API keys in the Setup nodes:\n   - AtlasCloud\n   - fal.ai\n   - Airtable\n   - Blotato\n\n#  📘 Documentation  \n- Access detailed setup instructions, API config, platform connection guides, and workflow customization tips:\n📎 [Open the full documentation on Notion](https://automatisation.notion.site/Clone-Video-Ads-Factory-using-NanoBanana-Kling-and-Publish-with-Blotato-2f03d6550fd980a78193e996cca37600?source=copy_link)\n\n\n-  Credential name: `airTable` \n📎 **[Copy my airTable database ](https://airtable.com/app8c479pcQMppB9Y/shrZud9lCfD0stHoE)** "},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"0604e878-1c55-42c0-9678-1e42f8d2d610","connections":{"Wait":{"main":[[{"node":"Update Record with Video Clone","type":"main","index":0}]]},"Schedule":{"main":[[{"node":"Setup Workflow 2","type":"main","index":0}]]},"Create post":{"main":[[{"node":"Update Status","type":"main","index":0}]]},"Create audio":{"main":[[{"node":"Wait to audio","type":"main","index":0}]]},"Upload media":{"main":[[{"node":"Create post","type":"main","index":0}]]},"Analyze video":{"main":[[{"node":"Generate Creative Assets JSON","type":"main","index":0}]]},"Wait to audio":{"main":[[{"node":"Update Record with audio","type":"main","index":0}]]},"Manual Trigger":{"main":[[{"node":"Setup Workflow","type":"main","index":0}]]},"Setup Workflow":{"main":[[{"node":"Search Airtable for Record","type":"main","index":0}]]},"Wait 3 Minutes":{"main":[[{"node":"Check Prediction Status GET","type":"main","index":0}]]},"Wait 5 Minutes":{"main":[[{"node":"Check Video Status GET","type":"main","index":0}]]},"Loop Over Pairs":{"main":[[],[{"node":"Generate Video POST","type":"main","index":0}]]},"Merge All Videos":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Setup Workflow 2":{"main":[[{"node":"Find In Progress Record","type":"main","index":0}]]},"Setup Workflow 3":{"main":[[{"node":"Find In Progress Project","type":"main","index":0}]]},"Setup Workflow 4":{"main":[[{"node":"Find In Progress Project1","type":"main","index":0}]]},"Setup Workflow 5":{"main":[[{"node":"Find In audio Project","type":"main","index":0}]]},"Split Out Scenes":{"main":[[{"node":"Write Scene Data","type":"main","index":0}]]},"Wait final video":{"main":[[{"node":"Update Record with Final Video","type":"main","index":0}]]},"Loop Over Records":{"main":[[],[{"node":"Generate Image POST","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Generate Creative Assets JSON","type":"ai_languageModel","index":0}]]},"Collect all videos":{"main":[[{"node":"Merge All Videos","type":"main","index":0}]]},"Create Image Pairs":{"main":[[{"node":"Loop Over Pairs","type":"main","index":0}]]},"Check Project Found":{"main":[[{"node":"Find Image Ready Records","type":"main","index":0}]]},"Generate Image POST":{"main":[[{"node":"Wait 3 Minutes","type":"main","index":0}]]},"Generate Video POST":{"main":[[{"node":"Wait 5 Minutes","type":"main","index":0}]]},"Check Project Found1":{"main":[[{"node":"Find Image Ready Records1","type":"main","index":0}]]},"Check if Record Found":{"main":[[{"node":"Analyze video","type":"main","index":0}]]},"Find In audio Project":{"main":[[{"node":"Create audio","type":"main","index":0}]]},"Merge audio and video":{"main":[[{"node":"Wait final video","type":"main","index":0}]]},"Check Video Status GET":{"main":[[{"node":"Update Record with Video","type":"main","index":0}]]},"Check In Progress Found":{"main":[[{"node":"Find Prompt Ready Records","type":"main","index":0}]]},"Find In Progress Record":{"main":[[{"node":"Check In Progress Found","type":"main","index":0}]]},"Find Image Ready Records":{"main":[[{"node":"Create Image Pairs","type":"main","index":0}]]},"Find In Progress Project":{"main":[[{"node":"Check Project Found","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Generate Creative Assets JSON","type":"ai_outputParser","index":0}]]},"Update Record with Image":{"main":[[{"node":"Loop Over Records","type":"main","index":0}]]},"Update Record with Video":{"main":[[{"node":"Loop Over Pairs","type":"main","index":0}]]},"Update Record with audio":{"main":[[{"node":"Merge audio and video","type":"main","index":0}]]},"Find Image Ready Records1":{"main":[[{"node":"Collect all videos","type":"main","index":0}]]},"Find In Progress Project1":{"main":[[{"node":"Check Project Found1","type":"main","index":0}]]},"Find Prompt Ready Records":{"main":[[{"node":"Loop Over Records","type":"main","index":0}]]},"Schedule Audio Generation":{"main":[[{"node":"Setup Workflow 5","type":"main","index":0}]]},"Schedule Video Generation":{"main":[[{"node":"Setup Workflow 3","type":"main","index":0}]]},"Schedule Video Generation1":{"main":[[{"node":"Setup Workflow 4","type":"main","index":0}]]},"Search Airtable for Record":{"main":[[{"node":"Check if Record Found","type":"main","index":0}]]},"Check Prediction Status GET":{"main":[[{"node":"Update Record with Image","type":"main","index":0}]]},"Generate Creative Assets JSON":{"main":[[{"node":"Update Main Record","type":"main","index":0},{"node":"Split Out Scenes","type":"main","index":0}]]},"Update Record with Final Video":{"main":[[{"node":"Upload media","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":59,"nodeTypes":{"n8n-nodes-base.if":{"count":4},"n8n-nodes-base.set":{"count":5},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.wait":{"count":5},"n8n-nodes-base.airtable":{"count":16},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":7},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":4},"@blotato/n8n-nodes-blotato.blotato":{"count":2},"@n8n/n8n-nodes-langchain.googleGemini":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Dr. Firas","username":"drfiras","bio":"Automation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀","verified":true,"links":["https://hotm.art/n8n"],"avatar":"https://gravatar.com/avatar/988a46579257f9e8c522aeb7b906f1ee96e47c4298faa548e41b04957f455ae3?r=pg&d=retro&size=200"},"nodes":[{"id":2,"icon":"file:airtable.svg","name":"n8n-nodes-base.airtable","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/","icon":"🎯","label":"2021 Goals: Level Up Your Vocabulary With Vonage and n8n"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/","icon":"📱","label":"Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"},{"url":"https://n8n.io/blog/automating-conference-organization-processes-with-n8n/","icon":"🙋‍♀️","label":"Automating Conference Organization Processes with n8n"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/airtable/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Airtable"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="},"displayName":"Airtable","typeVersion":2,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1309,"icon":"file:gemini.svg","name":"@n8n/n8n-nodes-langchain.googleGemini","codex":{"data":{"alias":["LangChain","video","document","audio","transcribe","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.googlegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iX2Zvb3RlclNwYXJrXzk4dWR0XzE1MSIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTU3LjA2NjcgMjguNjEwM0M1Mi4xMzU5IDI2LjQ4NzggNDcuODIxNyAyMy41NzYgNDQuMTIyMyAxOS44Nzg0QzQwLjQyNDcgMTYuMTgwOCAzNy41MTI4IDExLjg2NDkgMzUuMzkwMiA2LjkzNDJDMzQuNTc1NCA1LjA0NDQ5IDMzLjkyMDYgMy4xMDIwNCAzMy40MTg2IDEuMTEwNDlDMzMuMjU0OSAwLjQ1OTM2OCAzMi42NzExIDAuMDAxMDM3NiAzMiAwLjAwMTAzNzZDMzEuMzI4OCAwLjAwMTAzNzYgMzAuNzQ1IDAuNDU5MzY4IDMwLjU4MTMgMS4xMTA0OUMzMC4wNzkzIDMuMTAyMDQgMjkuNDI0NiA1LjA0MjY3IDI4LjYwOTcgNi45MzQyQzI2LjQ4NzIgMTEuODY0OSAyMy41NzUzIDE2LjE4MDggMTkuODc3NyAxOS44Nzg0QzE2LjE4IDIzLjU3NiAxMS44NjQgMjYuNDg3OCA2LjkzMzI3IDI4LjYxMDNDNS4wNDM1MyAyOS40MjUxIDMuMTAxMDUgMzAuMDc5OSAxLjEwOTQ3IDMwLjU4MTlDMC40NTgzMzggMzAuNzQ1NiAwIDMxLjMyOTQgMCAzMi4wMDA1QzAgMzIuNjcxNiAwLjQ1ODMzOCAzMy4yNTU1IDEuMTA5NDcgMzMuNDE5MUMzLjEwMTA1IDMzLjkyMTEgNS4wNDE3MiAzNC41NzU5IDYuOTMzMjcgMzUuMzkwN0MxMS44NjQgMzcuNTEzMiAxNi4xNzgyIDQwLjQyNTEgMTkuODc3NyA0NC4xMjI2QzIzLjU3NzEgNDcuODIwMiAyNi40ODcyIDUyLjEzNjEgMjguNjA5NyA1Ny4wNjY4QzI5LjQyNDYgNTguOTU2NSAzMC4wNzkzIDYwLjg5OSAzMC41ODEzIDYyLjg5MDVDMzAuNzQ1IDYzLjU0MTYgMzEuMzI4OCA2NCAzMiA2NEMzMi42NzExIDY0IDMzLjI1NDkgNjMuNTQxNiAzMy40MTg2IDYyLjg5MDVDMzMuOTIwNiA2MC44OTkgMzQuNTc1NCA1OC45NTgzIDM1LjM5MDIgNTcuMDY2OEMzNy41MTI4IDUyLjEzNjEgNDAuNDI0NyA0Ny44MjIgNDQuMTIyMyA0NC4xMjI2QzQ3LjgxOTkgNDAuNDI1MSA1Mi4xMzU5IDM3LjUxMzIgNTcuMDY2NyAzNS4zOTA3QzU4Ljk1NjQgMzQuNTc1OSA2MC44OTg5IDMzLjkyMTEgNjIuODkwNSAzMy40MTkxQzYzLjU0MTYgMzMuMjU1NSA2NCAzMi42NzE2IDY0IDMyLjAwMDVDNjQgMzEuMzI5NCA2My41NDE2IDMwLjc0NTYgNjIuODkwNSAzMC41ODE5QzYwLjg5ODkgMzAuMDc5OSA1OC45NTgyIDI5LjQyNTEgNTcuMDY2NyAyOC42MTAzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48bWFzayBpZD0ibWFzazBfMTA4NTlfNDg5NCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij48cGF0aCBkPSJNMzIgMEMzMi42NzExIDEuMTQ0ZS0wNSAzMy4yNTUzIDAuNDU4MjYzIDMzLjQxODkgMS4xMDkzOEMzMy45MjA5IDMuMTAwOTMgMzQuNTc1OCA1LjA0Mzg5IDM1LjM5MDYgNi45MzM1OUMzNy41MTMxIDExLjg2MzkgNDAuNDI0NyAxNi4xNzk2IDQ0LjEyMjEgMTkuODc3QzQ3LjgyMTUgMjMuNTc0NSA1Mi4xMzU3IDI2LjQ4NjkgNTcuMDY2NCAyOC42MDk0QzU4Ljk1OCAyOS40MjQyIDYwLjg5OSAzMC4wNzkxIDYyLjg5MDYgMzAuNTgxMUM2My41NDE1IDMwLjc0NDggNjMuOTk5OCAzMS4zMjgxIDY0IDMxLjk5OUM2NCAzMi42NzAxIDYzLjU0MTcgMzMuMjU0MiA2Mi44OTA2IDMzLjQxOEM2MC44OTkgMzMuOTE5OSA1OC45NTYxIDM0LjU3NDggNTcuMDY2NCAzNS4zODk2QzUyLjEzNTggMzcuNTEyMSA0Ny44MTk2IDQwLjQyMzcgNDQuMTIyMSA0NC4xMjExQzQwLjQyNDYgNDcuODIwNCAzNy41MTMxIDUyLjEzNDkgMzUuMzkwNiA1Ny4wNjU0QzM0LjU3NTggNTguOTU3IDMzLjkyMDkgNjAuODk4MSAzMy40MTg5IDYyLjg4OTZDMzMuMjU1MiA2My41NDA3IDMyLjY3MTEgNjMuOTk5IDMyIDYzLjk5OUMzMS4zMjg5IDYzLjk5OSAzMC43NDQ4IDYzLjU0MDcgMzAuNTgxMSA2Mi44ODk2QzMwLjA3OTEgNjAuODk4MSAyOS40MjQyIDU4Ljk1NTEgMjguNjA5NCA1Ny4wNjU0QzI2LjQ4NjkgNTIuMTM0OSAyMy41NzczIDQ3LjgxODYgMTkuODc3OSA0NC4xMjExQzE2LjE3ODYgNDAuNDIzNyAxMS44NjQyIDM3LjUxMjEgNi45MzM1OSAzNS4zODk2QzUuMDQyMDQgMzQuNTc0OCAzLjEwMDk2IDMzLjkxOTkgMS4xMDkzOCAzMy40MThDMC40NTgzMDkgMzMuMjU0MiAwIDMyLjY3MDEgMCAzMS45OTlDMC4wMDAyMDE1NDggMzEuMzI4MSAwLjQ1ODQ2MyAzMC43NDQ4IDEuMTA5MzggMzAuNTgxMUMzLjEwMDk2IDMwLjA3OTEgNS4wNDM4NiAyOS40MjQyIDYuOTMzNTkgMjguNjA5NEMxMS44NjQzIDI2LjQ4NjkgMTYuMTgwNCAyMy41NzQ1IDE5Ljg3NzkgMTkuODc3QzIzLjU3NTMgMTYuMTc5NiAyNi40ODY5IDExLjg2MzkgMjguNjA5NCA2LjkzMzU5QzI5LjQyNDIgNS4wNDIwNyAzMC4wNzkxIDMuMTAwOTMgMzAuNTgxMSAxLjEwOTM4QzMwLjc0NDggMC40NTgyNiAzMS4zMjg5IDAgMzIgMFoiIGZpbGw9ImJsYWNrIj48L3BhdGg+PHBhdGggZD0iTTMyIDBDMzIuNjcxMSAxLjE0NGUtMDUgMzMuMjU1MyAwLjQ1ODI2MyAzMy40MTg5IDEuMTA5MzhDMzMuOTIwOSAzLjEwMDkzIDM0LjU3NTggNS4wNDM4OSAzNS4zOTA2IDYuOTMzNTlDMzcuNTEzMSAxMS44NjM5IDQwLjQyNDcgMTYuMTc5NiA0NC4xMjIxIDE5Ljg3N0M0Ny44MjE1IDIzLjU3NDUgNTIuMTM1NyAyNi40ODY5IDU3LjA2NjQgMjguNjA5NEM1OC45NTggMjkuNDI0MiA2MC44OTkgMzAuMDc5MSA2Mi44OTA2IDMwLjU4MTFDNjMuNTQxNSAzMC43NDQ4IDYzLjk5OTggMzEuMzI4MSA2NCAzMS45OTlDNjQgMzIuNjcwMSA2My41NDE3IDMzLjI1NDIgNjIuODkwNiAzMy40MThDNjAuODk5IDMzLjkxOTkgNTguOTU2MSAzNC41NzQ4IDU3LjA2NjQgMzUuMzg5NkM1Mi4xMzU4IDM3LjUxMjEgNDcuODE5NiA0MC40MjM3IDQ0LjEyMjEgNDQuMTIxMUM0MC40MjQ2IDQ3LjgyMDQgMzcuNTEzMSA1Mi4xMzQ5IDM1LjM5MDYgNTcuMDY1NEMzNC41NzU4IDU4Ljk1NyAzMy45MjA5IDYwLjg5ODEgMzMuNDE4OSA2Mi44ODk2QzMzLjI1NTIgNjMuNTQwNyAzMi42NzExIDYzLjk5OSAzMiA2My45OTlDMzEuMzI4OSA2My45OTkgMzAuNzQ0OCA2My41NDA3IDMwLjU4MTEgNjIuODg5NkMzMC4wNzkxIDYwLjg5ODEgMjkuNDI0MiA1OC45NTUxIDI4LjYwOTQgNTcuMDY1NEMyNi40ODY5IDUyLjEzNDkgMjMuNTc3MyA0Ny44MTg2IDE5Ljg3NzkgNDQuMTIxMUMxNi4xNzg2IDQwLjQyMzcgMTEuODY0MiAzNy41MTIxIDYuOTMzNTkgMzUuMzg5NkM1LjA0MjA0IDM0LjU3NDggMy4xMDA5NiAzMy45MTk5IDEuMTA5MzggMzMuNDE4QzAuNDU4MzA5IDMzLjI1NDIgMCAzMi42NzAxIDAgMzEuOTk5QzAuMDAwMjAxNTQ4IDMxLjMyODEgMC40NTg0NjMgMzAuNzQ0OCAxLjEwOTM4IDMwLjU4MTFDMy4xMDA5NiAzMC4wNzkxIDUuMDQzODYgMjkuNDI0MiA2LjkzMzU5IDI4LjYwOTRDMTEuODY0MyAyNi40ODY5IDE2LjE4MDQgMjMuNTc0NSAxOS44Nzc5IDE5Ljg3N0MyMy41NzUzIDE2LjE3OTYgMjYuNDg2OSAxMS44NjM5IDI4LjYwOTQgNi45MzM1OUMyOS40MjQyIDUuMDQyMDcgMzAuMDc5MSAzLjEwMDkzIDMwLjU4MTEgMS4xMDkzOEMzMC43NDQ4IDAuNDU4MjYgMzEuMzI4OSAwIDMyIDBaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTA4NTlfNDg5NCkiPjwvcGF0aD48L21hc2s+PGcgbWFzaz0idXJsKCNtYXNrMF8xMDg1OV80ODk0KSI+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE0LjIwODQiIGN5PSIxNi43MTY0IiByeD0iMTQuMjA4NCIgcnk9IjE2LjcxNjQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTQyMzQzIDAuMzM0NjQ5IC0wLjMzNDY1NiAwLjk0MjM0IC03Ljk3OSAxMy43NzM1KSIgZmlsbD0iI0ZGRTQzMiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuMDU0MyIgY3k9IjIuNTUxMTQiIHJ4PSIxOC4zOTQ0IiByeT0iMTguNzk4NSIgZmlsbD0iI0ZDNDEzRCI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMl9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTkuMjI0NSIgY3k9IjI0LjkwNDIiIHJ4PSIxOS4yMjQ1IiByeT0iMjQuOTA0MiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45OTg4MDcgLTAuMDQ4ODI1NCAwLjA0ODgyNjYgMC45OTg4MDcgLTEuNzI3NzggMzIuNjU3MykiIGZpbGw9IiMwMEI5NUMiPjwvZWxsaXBzZT48L2c+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE5LjIyNDUiIGN5PSIyNC45MDQyIiByeD0iMTkuMjI0NSIgcnk9IjI0LjkwNDIiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk4ODA3IC0wLjA0ODgyNTQgMC4wNDg4MjY2IDAuOTk4ODA3IC0xLjcyNzc4IDMyLjY1NzMpIiBmaWxsPSIjMDBCOTVDIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI0X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIxOC44NDI5IiBjeT0iMjAuNzQ0MSIgcng9IjE4Ljg0MjkiIHJ5PSIyMC43NDQxIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NDMwMSAtMC41MTk3NzkgMC41MTk3OSAwLjg1NDI5NCAtNy4xMzU3NCA0Ny41MDc4KSIgZmlsbD0iIzAwQjk1QyI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyNV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iNjYuNDYxNyIgY3k9IjI0Ljk3NyIgcng9IjE4LjA5MzMiIHJ5PSIxNy40MjI5IiBmaWxsPSIjMzE4NkZGIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI2X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyMC45MjkyIiBjeT0iMjIuMDc1MiIgcng9IjIwLjkyOTIiIHJ5PSIyMi4wNzUyIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjc5NTk5IDAuNjA1MzEgLTAuNjA1MzIgMC43OTU5ODIgLTIuODE4ODUgLTcuNDMzMjMpIiBmaWxsPSIjRkJCQzA0Ij48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI3X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyNC4xMzExIiBjeT0iMjIuMjkxOSIgcng9IjI0LjEzMTEiIHJ5PSIyMi4yOTE5IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjgyNDAzNyAwLjU2NjUzNiAtMC41NjY1NDYgMC44MjQwMyAzOS42MzM4IDAuMzEwNjA4KSIgZmlsbD0iIzMxODZGRiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOF9mXzEwODU5XzQ4OTQpIj48cGF0aCBkPSJNNTQuMjI1NSAtMi4zMDQwM0M1Ny4wMTk1IDEuNDk0NjIgNTMuNDI5NCA4Ljg4MDQgNDYuMjA2OCAxNC4xOTI2QzM4Ljk4NDIgMTkuNTA0OCAzMC44NjQyIDIwLjczMTggMjguMDcwMiAxNi45MzMxQzI1LjI3NjIgMTMuMTM0NSAyOC44NjYzIDUuNzQ4NjcgMzYuMDg4OSAwLjQzNjQ4NkM0My4zMTE1IC00Ljg3NTcgNTEuNDMxNSAtNi4xMDI2NyA1NC4yMjU1IC0yLjMwNDAzWiIgZmlsbD0iIzc0OUJGRiI+PC9wYXRoPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuNTg1MyIgY3k9IjE3LjE0NzgiIHJ4PSIyNy41ODUzIiByeT0iMTcuMTQ3OCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MzMxNjYgLTAuNjgwMDQ5IDAuNjgwMDYxIDAuNzMzMTU1IC0xMi4yNTgzIDkuNDk2OTUpIiBmaWxsPSIjRkM0MTNEIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIxMF9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTQuNzgxOSIgY3k9IjguNTk2MzciIHJ4PSIxNC43ODE5IiByeT0iOC41OTYzNyIgdHJhbnNmb3JtPSJtYXRyaXgoMC44MTMxODYgMC41ODIwMDQgLTAuNTgyMDE2IDAuODEzMTc3IDYuMzc4NDIgMzAuNTExKSIgZmlsbD0iI0ZGRUU0OCI+PC9lbGxpcHNlPjwvZz48L2c+PGRlZnM+PGZpbHRlciBpZD0iZmlsdGVyMF9mXzEwODU5XzQ4OTQiIHg9Ii0xOS42MTgiIHk9IjEyLjkwMjciIHdpZHRoPSIzOC44NjgxIiBoZWlnaHQ9IjQyLjc1NjIiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi40NTk2NSIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMV9mXzEwODU5XzQ4OTQiIHg9Ii0xNS4xMjIzIiB5PSItNDAuMDI5NiIgd2lkdGg9Ijg0LjM1MzMiIGhlaWdodD0iODUuMTYxNSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxMS44OTExIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48ZmlsdGVyIGlkPSJmaWx0ZXIyX2ZfMTA4NTlfNDg5NCIgeD0iLTIwLjc2ODIiIHk9IjExLjQ4MzUiIHdpZHRoPSI3OC45MTYxIiBoZWlnaHQ9IjkwLjIxOTYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyM19mXzEwODU5XzQ4OTQiIHg9Ii0yMC43NjgyIiB5PSIxMS40ODM1IiB3aWR0aD0iNzguOTE2MSIgaGVpZ2h0PSI5MC4yMTk2IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwLjEwODYiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjRfZl8xMDg1OV80ODk0IiB4PSItMTkuODUiIHk9IjE0Ljk2NjQiIHdpZHRoPSI3OS4xODg2IiBoZWlnaHQ9IjgwLjkzNzgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyNV9mXzEwODU5XzQ4OTQiIHg9IjI5LjE1NjEiIHk9Ii0xMS42NTgyIiB3aWR0aD0iNzQuNjExMSIgaGVpZ2h0PSI3My4yNzAzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjkuNjA2MTMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjZfZl8xMDg1OV80ODk0IiB4PSItMzguMjkxIiB5PSItMTYuMjY4NyIgd2lkdGg9Ijc3LjUzOCIgaGVpZ2h0PSI3OC4xNTEzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjguNzA1OTEiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjdfZl8xMDg1OV80ODk0IiB4PSI3Ljc4MDM4IiB5PSItNi4wOTgxIiB3aWR0aD0iNzguMjE4MSIgaGVpZ2h0PSI3Ni44OTgyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjcuNzc0NzMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjhfZl8xMDg1OV80ODk0IiB4PSIxMy4yMDgyIiB5PSItMTguNDI1IiB3aWR0aD0iNTUuODc5MyIgaGVpZ2h0PSI1MS40NzkxIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjYuOTU2OTQiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjlfZl8xMDg1OV80ODk0IiB4PSItMTUuNDczOSIgeT0iLTMxLjAyNzIiIHdpZHRoPSI3MC4yMDM0IiBoZWlnaHQ9IjY4LjY3MzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNS44NzU5OCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMTBfZl8xMDg1OV80ODk0IiB4PSItMTQuMTczIiB5PSIyMC40NzQiIHdpZHRoPSI1NS4xMzczIiBoZWlnaHQ9IjUxLjI2MSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI3LjI3MjUzIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTA4NTlfNDg5NCIgeDE9IjE4LjE5MzEiIHkxPSI0Mi44MjEiIHgyPSI1MS40MzM1IiB5Mj0iMTQuNzk1OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzc2OTgxIiBzdG9wLWNvbG9yPSIjOTY5REZGIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkQ5OUZFIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+Cg=="},"displayName":"Google Gemini","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}