{"workflow":{"id":13088,"name":"Create hours-long wave music videos with Suno, ffmpeg-api and YouTube","views":1624,"recentViews":3,"totalViews":1624,"createdAt":"2026-01-29T06:17:30.046Z","description":"# Overview\n\nThis workflow automatically creates **hours-long wave music videos** by combining AI-generated music from **Suno** with a background video, fully automated using **n8n** and **ffmpeg-api**.\n\nIt connects music prompt generation, AI song creation, audio aggregation, video merging, and YouTube publishing into a single end-to-end automation. Once configured, the workflow runs continuously with no manual editing required.\n\nThis workflow is built for creators producing lo-fi, wave, ambient, or long-play music content who want a reliable and scalable way to generate long-form videos automatically.\n\n---\n\n# What can this workflow do?\n\n- Collect music themes, background video URLs, and track counts via an input form  \n- Generate multiple AI music tracks using Suno  \n- Automatically check rendering status and retrieve completed songs  \n- Concatenate multiple tracks into a single long-form audio file  \n- Merge the final audio with a background video using ffmpeg-api  \n- Upload the completed video to YouTube automatically  \n- Generate SEO-optimized titles and descriptions using an AI model  \n\nThis workflow reduces manual work while keeping the entire music video production process structured and repeatable.\n\n---\n\n# How it works\n\nYou start by submitting a **music theme**, a **background video URL**, and the **number of music tracks** through an n8n form. The workflow initializes a working directory using ffmpeg-api to manage all audio and video assets.\n\nAn AI agent converts the music theme into structured Suno prompts. Suno then generates multiple music tracks, and the workflow continuously checks their rendering status until all songs are ready.\n\nOnce completed, the songs are downloaded, uploaded to ffmpeg-api storage, and concatenated into a single long-form audio track. This audio is merged with the background video to create the final hours-long wave music video.\n\nFinally, the completed video is uploaded to YouTube. An AI model generates SEO-friendly metadata, and the video is published automatically without manual intervention.\n\n---\n\n# Setup steps\n\n1. Connect an AI model (Gemini) for music prompt generation and YouTube metadata creation  \n2. Configure Suno API access for AI music generation  \n3. Set up ffmpeg-api for directory creation, file uploads, audio concatenation, and video merging  \n4. Connect your YouTube account for automated uploads  \n5. Review and customize the input form fields if needed  \n\nAfter setup, the workflow runs end to end automatically.\n\n---\n\n# Documentation\n\nFor a full walkthrough and advanced customization ideas, watch the detailed tutorial on [YouTube](https://youtu.be/RBoLAgaWzFo?si=MqFcTTRWSb5AEOjr).\n","workflow":{"id":"99MN7VP3D8TqxHIL","meta":{"instanceId":"558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a"},"name":"Wave Music Video Generation","tags":[],"nodes":[{"id":"33d618d5-4a8a-4755-85e5-7c62001ace19","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[0,0],"parameters":{"color":7,"width":832,"height":256,"content":"## Input Data & Directory Initialization\nCollect user input from the form and initialize a working directory using ffmpeg-api. This directory will be used to store videos, audio files, and intermediate assets throughout the workflow"},"typeVersion":1},{"id":"65f3273d-849d-4159-9747-c9d8c63eb174","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[0,256],"parameters":{"color":6,"width":1184,"height":320,"content":"## Download Background Video\nGenerate a storage path, download the background video from the provided URL, upload it to ffmpeg-api storage, and retrieve the processed video reference for later merging."},"typeVersion":1},{"id":"e159a727-f664-4d03-90ab-c8c78e820d9f","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[0,576],"parameters":{"color":7,"width":1968,"height":368,"content":"## AI Music Generation (Suno)\nUse an AI agent to convert the user’s music theme into structured Suno prompts, generate multiple songs, poll for completion, and log song metadata for downstream processing."},"typeVersion":1},{"id":"0cac5fe9-94ad-4455-90ff-eb9054867131","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[0,944],"parameters":{"color":6,"width":1968,"height":272,"content":"## Download Songs & Merge Audio + Video\nDownload generated songs, upload them to ffmpeg-api storage, concatenate multiple tracks into a long-form audio file, and merge the final audio with the background video"},"typeVersion":1},{"id":"ac2af494-38c3-442e-ba2a-2f21e97e9b2c","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[0,1216],"parameters":{"color":7,"width":1968,"height":448,"content":"## Auto Upload to YouTube"},"typeVersion":1},{"id":"35dbd224-ad12-4f0e-9d53-a8c60b5978f8","name":"Suno Wave Music Input Form","type":"n8n-nodes-base.formTrigger","position":[416,80],"webhookId":"f5830536-5910-40fe-99ef-e3828859d1c3","parameters":{"options":{},"formTitle":"Song Input","formFields":{"values":[{"fieldLabel":"Music theme","requiredField":true},{"fieldType":"file","fieldLabel":"Video URL"},{"fieldLabel":"Number of tracks","requiredField":true}]},"formDescription":"Provide music details for the background video"},"typeVersion":2.3},{"id":"31d465a6-ea5e-4764-97d1-79f3d0dc4087","name":"Create Working Directory (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[608,80],"parameters":{"url":"https://api.ffmpeg-api.com/directory","method":"POST","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"651arvuDVfrjzgOX","name":"Vbee API"}},"typeVersion":4.3},{"id":"2563f1c6-8e41-444b-9019-d58caf54a581","name":"Prepare Video Path (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[432,368],"parameters":{"url":"https://api.ffmpeg-api.com/file","method":"POST","options":{},"sendBody":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"file_name","value":"Video_Youtube"},{"name":"dir_id","value":"={{ $json.directory.id }}"}]},"genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"e0996abe-671f-4df9-86bf-dbf2cd709138","name":"Download Background Video","type":"n8n-nodes-base.httpRequest","position":[624,368],"parameters":{"url":"={{ $('Suno Wave Music Input Form').item.json['Video URL'] }}","options":{"response":{"response":{"responseFormat":"file","outputPropertyName":"Video"}}}},"typeVersion":4.3},{"id":"34f89d6f-af12-406d-a867-eda612cbe80d","name":"Upload Video to Workspace (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[800,368],"parameters":{"url":"={{ $('Prepare Video Path (ffmpeg-api)').item.json.upload.url }}","method":"PUT","options":{},"sendBody":true,"contentType":"binaryData","inputDataFieldName":"Video"},"typeVersion":4.3},{"id":"a2c526ad-f434-4f66-b525-b6b001f0cf30","name":"Retrieve Uploaded Video","type":"n8n-nodes-base.httpRequest","position":[992,368],"parameters":{"url":"=https://api.ffmpeg-api.com/file/{{ $('Prepare Video Path (ffmpeg-api)').item.json.file.file_path }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"497703e7-8b5d-4f40-b71a-d1d4135425a3","name":"Generate Music Prompts (AI Agent)","type":"@n8n/n8n-nodes-langchain.agent","position":[384,688],"parameters":{"text":"=make a song with {{ $('Suno Wave Music Input Form').item.json['Number of tracks'] }} songs\n\nReference Music Prompt:\n{{ $('Suno Wave Music Input Form').item.json['Music theme'] }}","options":{"systemMessage":"=ROLE:\nYou are an expert music prompt engineer.\n\nYour task is to carefully read the reference music prompt provided by the user and use it as the core inspiration to generate multiple song prompts.\nDo NOT change, reinterpret, or override the user’s instructions.\nAlways honor User Instructions as the highest priority.\n\n---\n\nTASK:\nGenerate a JSON array containing exactly 5 song prompt objects.\n\nEach object represents ONE unique song prompt inspired by the reference music prompt.\n\n---\n\nRULES:\n- Always generate EXACTLY 5 songs.\n- Number the songs sequentially from 1 to 5.\n- Each song prompt must be unique while staying consistent with the reference music style, mood, and genre.\n- Do NOT include explanations, markdown, comments, or any text outside the JSON array.\n\n---\n\nOUTPUT FORMAT:\nReturn ONLY valid JSON in the following structure:\n\n[\n  {\n    \"song\": 1,\n    \"song_prompt\": \"detailed music prompt here\"\n  },\n  {\n    \"song\": 2,\n    \"song_prompt\": \"detailed music prompt here\"\n  },\n  {\n    \"song\": 3,\n    \"song_prompt\": \"detailed music prompt here\"\n  },\n  {\n    \"song\": 4,\n    \"song_prompt\": \"detailed music prompt here\"\n  },\n  {\n    \"song\": 5,\n    \"song_prompt\": \"detailed music prompt here\"\n  }\n]\n"},"promptType":"define","hasOutputParser":true},"typeVersion":3},{"id":"9304490a-eafb-417f-b9c8-76858901f232","name":"Gemini LLM","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[288,784],"parameters":{"options":{},"modelName":"models/gemini-3-flash-preview"},"typeVersion":1},{"id":"525a92b0-8fae-45cf-8c06-487a93b546a4","name":"Music Prompt Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[560,816],"parameters":{"jsonSchemaExample":"{\n  \"songs\": [\n    {\n      \"song\": 1,\n      \"song_prompt\": \"string\"\n    }\n  ]\n}\n"},"typeVersion":1.3},{"id":"ec9cd4fd-54fd-4303-89bd-ab799732b0a1","name":"Split Music Requests","type":"n8n-nodes-base.splitOut","position":[704,688],"parameters":{"options":{},"fieldToSplitOut":"output.songs"},"typeVersion":1},{"id":"f7cf0234-12bb-4f22-9cde-b58594a6cafb","name":"Create Song (Suno API)","type":"n8n-nodes-base.httpRequest","position":[880,688],"parameters":{"url":"https://api.kie.ai/api/v1/generate","method":"POST","options":{},"sendBody":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"prompt","value":"={{ $json.song_prompt }}"},{"name":"customMode","value":"false"},{"name":"instrumental","value":"true"},{"name":"model","value":"V5"},{"name":"callBackUrl","value":"https://api.example.com/callback"}]},"genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"96b93ccc-2d63-443c-8640-9fa95102dea0","name":"Wait for Song Rendering","type":"n8n-nodes-base.wait","position":[1120,688],"webhookId":"47b6b21f-7d2c-42fd-aa19-c20ad7dc1765","parameters":{},"typeVersion":1.1},{"id":"a5506c2c-f559-40f5-a20f-b7efa0df227e","name":"Get Generated Song","type":"n8n-nodes-base.httpRequest","position":[1312,688],"parameters":{"url":"https://api.kie.ai/api/v1/generate/record-info ","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","queryParameters":{"parameters":[{"name":"taskId","value":"={{ $json.data.taskId }}"}]}},"typeVersion":4.2},{"id":"3e511dad-cd05-4dec-ab95-e4d22b6701c6","name":"Check Song Status","type":"n8n-nodes-base.if","position":[1488,688],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"b4ea379e-3541-4d2b-9421-f0c962c8d5e8","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.data.status }}","rightValue":"SUCCESS"}]}},"typeVersion":2.2},{"id":"d2ed0a72-11e7-44f8-896a-9eaf4f837ee9","name":"Log Song Metadata","type":"n8n-nodes-base.googleSheets","position":[1696,688],"parameters":{"columns":{"value":{"Duration":"={{ $json.data.response.sunoData[0].duration }}","Song_URL":"={{ $json.data.response.sunoData[0].audioUrl }}","Tilte_Song":"={{ $json.data.response.sunoData[0].title }}{{ $json.data.response.sunoData[0].title }}"},"schema":[{"id":"Theme","type":"string","display":true,"removed":false,"required":false,"displayName":"Theme","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Tilte_Song","type":"string","display":true,"removed":false,"required":false,"displayName":"Tilte_Song","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Duration","type":"string","display":true,"removed":false,"required":false,"displayName":"Duration","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Song_URL","type":"string","display":true,"removed":false,"required":false,"displayName":"Song_URL","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TAcHusIWoBOurWslWE1jTCwsncAmBRFkeD87FVefIZQ/edit#gid=0","cachedResultName":"Trang tính1"},"documentId":{"__rl":true,"mode":"list","value":"1TAcHusIWoBOurWslWE1jTCwsncAmBRFkeD87FVefIZQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1TAcHusIWoBOurWslWE1jTCwsncAmBRFkeD87FVefIZQ/edit?usp=drivesdk","cachedResultName":"Suno Log"}},"typeVersion":4.7},{"id":"a4eaeee0-ac3a-4e8b-8af2-e6705f279772","name":"Prepare Audio Path (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[560,1040],"parameters":{"url":"https://api.ffmpeg-api.com/file","method":"POST","options":{},"sendBody":true,"authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"file_name","value":"={{ $json.Tilte_Song }}_{{ $execution.id }}"},{"name":"dir_id","value":"={{ $('Create Working Directory (ffmpeg-api)').item.json.directory.id }}"}]},"genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"2d9a9cf9-a8e2-46b1-8ab1-99c21eb7dac1","name":"Download Song Audio","type":"n8n-nodes-base.httpRequest","position":[752,1040],"parameters":{"url":"={{ $('Log Song Metadata').item.json.Song_URL }}","options":{"response":{"response":{"responseFormat":"file","outputPropertyName":"={{ $json.file.file_name }}"}}}},"typeVersion":4.3},{"id":"9cffa6cc-0626-457a-b538-fc531bd33399","name":"Upload Song to Workspace (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[928,1040],"parameters":{"url":"={{ $('Prepare Audio Path (ffmpeg-api)').item.json.upload.url }}","method":"PUT","options":{},"sendBody":true,"contentType":"binaryData","inputDataFieldName":"=Cellular DawnCellular Dawn_727"},"typeVersion":4.3},{"id":"f499745e-345a-446f-bb3e-62136db269af","name":"Retrieve Uploaded Song","type":"n8n-nodes-base.httpRequest","position":[1088,1040],"parameters":{"url":"=https://api.ffmpeg-api.com/file/{{ $('Prepare Audio Path (ffmpeg-api)').item.json.file.file_path }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"899ccfb9-757a-4823-9a67-af37b2baccf4","name":"Aggregate Audio Tracks","type":"n8n-nodes-base.aggregate","position":[1312,1040],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"file_info.file_path"}]}},"typeVersion":1},{"id":"3b36abd8-ad09-4561-aa2a-d47afb8ecae5","name":"Concatenate Audio Tracks","type":"n8n-nodes-base.code","position":[1504,1040],"parameters":{"jsCode":"// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n// 1. Lấy đường dẫn Video đã upload (giả sử lấy từ node Upload Video)\nconst videoPath =$('Retrieve Uploaded Video').first().json.file_info.file_path ; \n\n// 2. Lấy danh sách nhạc từ node Aggregate\nconst songs = $input.first().json.file_path; \n\n// 3. Tạo inputs: Video đứng đầu (index 0), sau đó là các bài nhạc\nconst apiInputs = [\n  {\n    file_path: videoPath,\n    options: [\"-stream_loop\", \"-1\"] // Lặp lại video vô hạn cho đến khi hết nhạc\n  },\n  ...songs.map(path => ({ file_path: path }))\n];\n\n// 4. Tạo chuỗi filter concat audio (bắt đầu từ index 1 vì index 0 là video)\nlet audioNodes = \"\";\nfor (let i = 1; i <= songs.length; i++) {\n  audioNodes += `[${i}:a]`;\n}\nconst filterComplex = `${audioNodes}concat=n=${songs.length}:v=0:a=1[aout]`;\n\nreturn {\n  ffmpeg_job: {\n    task: {\n      inputs: apiInputs,\n      filter_complex: filterComplex,\n      outputs: [\n        {\n          file: \"final_sleep_music_video.mp4\",\n          options: [\n            \"-map\", \"0:v:0\",  // Lấy hình ảnh từ video nền\n            \"-map\", \"[aout]\", // Lấy âm thanh đã nối\n            \"-c:v\", \"libx264\",\n            \"-preset\", \"veryfast\",\n            \"-shortest\"       // Tự động dừng khi nhạc kết thúc (~22 phút)\n          ]\n        }\n      ]\n    }\n  }\n};"},"typeVersion":2},{"id":"19aeff49-8eb7-4735-bd8d-788a84f2aaee","name":"Merge Audio with Video (ffmpeg-api)","type":"n8n-nodes-base.httpRequest","position":[1696,1040],"parameters":{"url":"https://api.ffmpeg-api.com/ffmpeg/process","method":"POST","options":{},"jsonBody":"={{ JSON.stringify($json.ffmpeg_job, null, 2) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.3},{"id":"ef34a12b-91db-4361-a854-8ffd0df86492","name":"Generate SEO Title & Description","type":"@n8n/n8n-nodes-langchain.agent","position":[784,1296],"parameters":{"text":"=\n\nREFERENCE TITLE:\n\n{{ $('Suno Wave Music Input Form').item.json['Music Theme'] }}","options":{"systemMessage":"=You are a YouTube Content Optimization Agent.\n\nYour task is to transform ONE winning video title into a complete content package.\n\nINPUT:\n- One “winning title” provided by the user.\n\nOUTPUT:\nGenerate EXACTLY 3 sections in the following order:\n\n––––––––––––––\n1. OPTIMIZED TITLE\n––––––––––––––\n- Rewrite the input title to be clearer, stronger, and more clickable\n- Under 70 characters\n- Focus on ONE main benefit or outcome\n- Simple, natural\n- Optimized for YouTube SEO\n\n––––––––––––––\n2. VIDEO DESCRIPTION\n––––––––––––––\n- 3–5 short paragraphs\n- First 2 lines must strongly hook the viewer\n- Clearly explain:\n  • The problem being solved\n  • Who the video is for\n  • What result the viewer will get\n- Natural keyword usage\n- No emojis\n- Do NOT include hashtags inside the description\n\n––––––––––––––\n3. HASHTAGS\n––––––––––––––\n- 10–15 hashtags\n- Each hashtag MUST start with #\n- All lowercase\n- Separated ONLY by semicolons (;)\n- Optimized for YouTube search and Shorts discovery\n\nIMPORTANT RULES:\n- Do NOT add explanations or notes\n- Do NOT repeat sentences across sections\n- Output ONLY the 3 sections\n- Write in Vietnamese\n"},"promptType":"define","hasOutputParser":true},"typeVersion":3},{"id":"0f9fbac0-2f0c-4ba7-85d4-3bc96fa4f2cc","name":"Gemini LLM1","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[704,1456],"parameters":{"options":{},"modelName":"models/gemini-3-flash-preview"},"typeVersion":1},{"id":"139d3a66-81e9-4ab4-96f0-323c6c293195","name":"YouTube Metadata Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[960,1472],"parameters":{"jsonSchemaExample":"{\n \n  \"title\": \"string\",\n  \"description\": \"string\",\n  \"hashtags\": \"string\"\n  \n}"},"typeVersion":1.3},{"id":"6b6c6c16-d6d7-432c-848d-fba7467a8796","name":"Publish YouTube Video","type":"@blotato/n8n-nodes-blotato.blotato","position":[1120,1296],"parameters":{"options":{},"platform":"youtube","accountId":{"__rl":true,"mode":"list","value":"22282","cachedResultUrl":"https://backend.blotato.com/v2/accounts/22282","cachedResultName":"xAI Giang ( GiangVT)"},"postContentText":"={{ $json.output.description }}\n{{ $json.output.hashtags }}","postContentMediaUrls":"={{ $('Upload Media On Blotato').item.json.url }}","postCreateYoutubeOptionTitle":"={{ $json.output.title }}","postCreateYoutubeOptionContainsSyntheticMedia":true},"typeVersion":2},{"id":"e4270d03-5681-4c9c-ace6-272b6f439ff4","name":"Upload Media On Blotato","type":"@blotato/n8n-nodes-blotato.blotato","position":[544,1296],"parameters":{"mediaUrl":"={{ $json.result[0].download_url }}","resource":"media"},"typeVersion":2},{"id":"2f5591c0-9b4c-45c1-8fea-e5dea8c9cdaf","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-608,0],"parameters":{"width":576,"height":1152,"content":"# 🛠️ Workflow Setup Guide\n\nAuthor: [GiangxAI](https://www.youtube.com/@giangxai.official)\n\n## How it works \n- Music themes, background video URLs, and track counts are submitted via an input form  \n- A working directory is created using ffmpeg-api to manage all assets  \n- An AI agent generates structured Suno music prompts from the theme  \n- Suno creates multiple music tracks and the workflow waits for completion  \n- All tracks are concatenated into a long-form audio file  \n- The final audio is merged with the background video using ffmpeg-api  \n- The completed video is uploaded and published to YouTube automatically  \n\nThe entire workflow runs end to end without manual editing or intervention once configured.\n\n---\n\n## Setup guide [n8n](https://n8n.partnerlinks.io/giangxai)\n- Connect an AI model (Gemini) for music prompt generation and SEO metadata  \n- Add Suno API credentials for AI music generation by  [Kie ai](https://kie.ai?ref=f8cec88ea15f9ecbff52ccbafa41dd6e).\n- Configure ffmpeg-api for path creation, file uploads, audio concatenation, and video merging  [FFmpeg-API](https://ffmpeg-api.com)\n- Connect your YouTube account for automated uploads  by [Blotato](https://blotato.com/?ref=giang9s)\n- Review and customize the input form fields if needed  \n\nSetup is straightforward and does not require video editing or coding experience.\n\n\n"},"typeVersion":1}],"active":false,"pinData":{"Log Song Metadata":[{"json":{"Duration":309.96,"Song_URL":"https://musicfile.kie.ai/YTEwNDk3ZTAtZmQ0NS00ZGQ0LTk4MzItMWU0OTQ5ZWRhNDg1.mp3","Tilte_Song":"Cellular DawnCellular Dawn"},"pairedItem":{"item":0}},{"json":{"Duration":319.96,"Song_URL":"https://musicfile.kie.ai/ZTFmMzVhNTUtZDdiOS00ZDZiLWFmNWMtM2VkYTMxYzQ0N2Zm.mp3","Tilte_Song":"Air Between HeartbeatsAir Between Heartbeats"},"pairedItem":{"item":1}},{"json":{"Duration":194.96,"Song_URL":"https://musicfile.kie.ai/NTllNTk5NjgtM2I2MS00YzcxLThhNGYtNzRmZTg3NDA0Yjlm.mp3","Tilte_Song":"Mountain Stillness at 432Mountain Stillness at 432"},"pairedItem":{"item":2}},{"json":{"Duration":183.04,"Song_URL":"https://musicfile.kie.ai/NzFlYjNmOWYtN2U0NS00MTU0LTk1ZWQtM2EzNDk5ZjMxOTFh.mp3","Tilte_Song":"Warm Heart at 432Warm Heart at 432"},"pairedItem":{"item":3}},{"json":{"Duration":317.64,"Song_URL":"https://musicfile.kie.ai/NTg5ZDlhNTAtOTdmYi00NjQwLTg5OGMtNTNmNzY0YTdjNTY0.mp3","Tilte_Song":"Celestial AlignmentCelestial Alignment"},"pairedItem":{"item":4}}],"Publish YouTube Video":[{"json":{"postSubmissionId":"fa23acab-dc8c-48e8-9c36-6dbcb69000b8"},"pairedItem":{"item":0}}],"Create Song (Suno API)":[{"json":{"msg":"success","code":200,"data":{"taskId":"324defd425f78fede8045d140edf32f1"}}},{"json":{"msg":"success","code":200,"data":{"taskId":"1c161a4229819fff188efd4da4371cb9"}}},{"json":{"msg":"success","code":200,"data":{"taskId":"e3cffa943fa16e052541cea1f39fd63e"}}},{"json":{"msg":"success","code":200,"data":{"taskId":"766b6cfdb755b846feb7ae8ed7c1a80b"}}},{"json":{"msg":"success","code":200,"data":{"taskId":"56062f92ec0816854e618ab8aa12856f"}}}],"Retrieve Uploaded Song":[{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Cellular DawnCellular Dawn_727","file_size":7105869,"file_type":"audio/mp3"}},"pairedItem":{"item":0}},{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Air Between HeartbeatsAir Between Heartbeats_727","file_size":6917229,"file_type":"audio/mp3"}},"pairedItem":{"item":1}},{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Mountain Stillness at 432Mountain Stillness at 432_727","file_size":4393149,"file_type":"audio/mp3"}},"pairedItem":{"item":2}},{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Warm Heart at 432Warm Heart at 432_727","file_size":4222749,"file_type":"audio/mp3"}},"pairedItem":{"item":3}},{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Celestial AlignmentCelestial Alignment_727","file_size":7777437,"file_type":"audio/mp3"}},"pairedItem":{"item":4}}],"Retrieve Uploaded Video":[{"json":{"ok":true,"file_info":{"file_path":"f2ynbujc/Video_Youtube","file_size":2463304,"file_type":"video/mp4"}},"pairedItem":{"item":0}}],"Upload Media On Blotato":[{"json":{"id":"b36908d4-abc2-4ebb-bc5e-a63efc61a7fc","url":"https://database.blotato.io/storage/v1/object/public/public_media/e45f0ba4-d4b4-4129-a1d5-ce130acc2e67/0635368c-1dc2-46d5-985f-4667aa69e26c.mp4"},"pairedItem":{"item":0}}],"Prepare Video Path (ffmpeg-api)":[{"json":{"ok":true,"file":{"dir_id":"f2ynbujc","added_on":"2025-12-26T13:53:23.001Z","file_name":"Video_Youtube","file_path":"f2ynbujc/Video_Youtube","file_size":null,"file_type":null},"upload":{"url":"https://2ddc5aaa1823bf9ff8935d0a8615af53.eu.r2.cloudflarestorage.com/ffmpeg/n6o3iJ2aT6Il2xpVTvci/f2ynbujc/Video_Youtube?X-Amz-Date=20251226T135323Z&X-Amz-Expires=86400&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=03be11ef9b68bdc0d000255ff4393e10%2F20251226%2Fauto%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=15eb1432849c0db77127a9264b84f7e96ec77ea7c534f2be1a4c5f2294d7321f","method":"PUT","headers":{},"expiresInSeconds":300}},"pairedItem":{"item":0}}],"Merge Audio with Video (ffmpeg-api)":[{"json":{"ok":true,"usage":{"gb_sec":26.9,"time_sec":94.47,"input_size_gb":0.03288,"output_size_gb":0.2519},"result":[{"file_name":"final_sleep_music_video.mp4","size_bytes":251868197,"download_url":"https://ffmpeg.2ddc5aaa1823bf9ff8935d0a8615af53.eu.r2.cloudflarestorage.com/n6o3iJ2aT6Il2xpVTvci/f2ynbujc/final_sleep_music_video.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=d8f14d32f887c77e7567317efb8e25b6%2F20251226%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20251226T144517Z&X-Amz-Expires=3600&X-Amz-Signature=60c147c8d5d623c98660192a90e77d4cea3d9e8b2a6f4595f8d801eeb3fb6073&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject"}]},"pairedItem":{"item":0}}]},"settings":{"executionOrder":"v1"},"versionId":"74a36699-f375-43f3-9e03-b08b82303967","connections":{"Gemini LLM":{"ai_languageModel":[[{"node":"Generate Music Prompts (AI Agent)","type":"ai_languageModel","index":0}]]},"Gemini LLM1":{"ai_languageModel":[[{"node":"Generate SEO Title & Description","type":"ai_languageModel","index":0}]]},"Check Song Status":{"main":[[{"node":"Log Song Metadata","type":"main","index":0}],[{"node":"Wait for Song Rendering","type":"main","index":0}]]},"Log Song Metadata":{"main":[[{"node":"Prepare Audio Path (ffmpeg-api)","type":"main","index":0}]]},"Get Generated Song":{"main":[[{"node":"Check Song Status","type":"main","index":0}]]},"Download Song Audio":{"main":[[{"node":"Upload Song to Workspace (ffmpeg-api)","type":"main","index":0}]]},"Split Music Requests":{"main":[[{"node":"Create Song (Suno API)","type":"main","index":0}]]},"Aggregate Audio Tracks":{"main":[[{"node":"Concatenate Audio Tracks","type":"main","index":0}]]},"Create Song (Suno API)":{"main":[[{"node":"Wait for Song Rendering","type":"main","index":0}]]},"Retrieve Uploaded Song":{"main":[[{"node":"Aggregate Audio Tracks","type":"main","index":0}]]},"Retrieve Uploaded Video":{"main":[[{"node":"Generate Music Prompts (AI Agent)","type":"main","index":0}]]},"Upload Media On Blotato":{"main":[[{"node":"Generate SEO Title & Description","type":"main","index":0}]]},"Wait for Song Rendering":{"main":[[{"node":"Get Generated Song","type":"main","index":0}]]},"YouTube Metadata Parser":{"ai_outputParser":[[{"node":"Generate SEO Title & Description","type":"ai_outputParser","index":0}]]},"Concatenate Audio Tracks":{"main":[[{"node":"Merge Audio with Video (ffmpeg-api)","type":"main","index":0}]]},"Download Background Video":{"main":[[{"node":"Upload Video to Workspace (ffmpeg-api)","type":"main","index":0}]]},"Music Prompt Output Parser":{"ai_outputParser":[[{"node":"Generate Music Prompts (AI Agent)","type":"ai_outputParser","index":0}]]},"Suno Wave Music Input Form":{"main":[[{"node":"Create Working Directory (ffmpeg-api)","type":"main","index":0}]]},"Prepare Audio Path (ffmpeg-api)":{"main":[[{"node":"Download Song Audio","type":"main","index":0}]]},"Prepare Video Path (ffmpeg-api)":{"main":[[{"node":"Download Background Video","type":"main","index":0}]]},"Generate SEO Title & Description":{"main":[[{"node":"Publish YouTube Video","type":"main","index":0}]]},"Generate Music Prompts (AI Agent)":{"main":[[{"node":"Split Music Requests","type":"main","index":0}]]},"Merge Audio with Video (ffmpeg-api)":{"main":[[{"node":"Upload Media On Blotato","type":"main","index":0}]]},"Create Working Directory (ffmpeg-api)":{"main":[[{"node":"Prepare Video Path (ffmpeg-api)","type":"main","index":0}]]},"Upload Song to Workspace (ffmpeg-api)":{"main":[[{"node":"Retrieve Uploaded Song","type":"main","index":0}]]},"Upload Video to Workspace (ffmpeg-api)":{"main":[[{"node":"Retrieve Uploaded Video","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":33,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":12},"n8n-nodes-base.googleSheets":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"@blotato/n8n-nodes-blotato.blotato":{"count":2},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":2},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"giangxai","username":"giangxai","bio":"I create automated workflows that help people work smarter, move faster, and scale with ease.","verified":true,"links":["https://www.youtube.com/@giangxai.official"],"avatar":"https://gravatar.com/avatar/c17711468d4ab03c5c5dbf6481e7ad80cebcf414bce5b0cabc51b1e9122aac33?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"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-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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"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-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/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.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"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":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":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":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":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}