# template_node_configs

node_type: @n8n/n8n-nodes-langchain.outputParserStructured
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Parse AI Output (Idea, Environment, Sound)
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsonSchemaExample":"[\n  {\n    \"Caption\": \"Diver Removes Nets Off Whale 🐋 #whalerescue #marinelife #oceanrescue #seahelpers #love #nature #instagood #explore #viral #savenature #oceanguardians #cleanoceans\",\n    \"Idea\": \"Diver carefully cuts tangled net from distressed whale in open sea\",\n    \"Environment\": \"Open ocean, sunlight beams through water, diver and whale, cinematic realism\",\n    \"Sound\": \"Primary sound description under 15 words\",\n    \"Status\": \"for production\"\n  }\n]\n"}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Save Idea & Metadata to Google Sheets
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"id":"==ROW()-1","idea":"={{ $json.output[0].Idea }}","caption":"={{ $json.output[0].Caption }}","production":"={{ $json.output[0].Status }}","sound_prompt":"={{ $json.output[0].Sound }}","environment_prompt":"={{ $json.output[0].Environment }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"idea","type":"string","display":true,"required":false,"displayName":"idea","defaultMatch":false,"canBeUsedToMatch":true},{"id":"caption","type":"string","display":true,"required":false,"displayName":"caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"production","type":"string","display":true,"required":false,"displayName":"production","defaultMatch":false,"canBeUsedToMatch":true},{"id":"environment_prompt","type":"string","display":true,"required":false,"displayName":"environment_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sound_prompt","type":"string","display":true,"required":false,"displayName":"sound_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"final_output","type":"string","display":true,"removed":true,"required":false,"displayName":"final_output","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @n8n/n8n-nodes-langchain.outputParserStructured
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Parse Structured Video Prompt Output
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsonSchemaExample":"{\n  \"Idea\": \"An obsidian rock being sliced with a shimmering knife\",\n  \"Environment\": \"Clean studio table, subtle light reflections\",\n  \"Sound\": \"Crisp slicing, deep grinding, and delicate crumbling\",\n  \"Scene 1\": \"Extreme macro shot: a razor-sharp, polished knife blade presses into the dark, granular surface of an obsidian rock, just beginning to indent.\",\n  \"Scene 2\": \"Close-up: fine, iridescent dust particles erupt from the point of contact as the blade cuts deeper into the obsidian, catching the studio light.\",\n  \"Scene 3\": \"Mid-shot: the knife, held perfectly steady, has formed a shallow, clean groove across the obsidian's shimmering surface, revealing a new, smooth texture.\"\n}"}


node_type: n8n-nodes-base.code
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Extract Individual Scene Descriptions
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsCode":"function findSceneEntries(obj) {\n  const scenes = [];\n\n  for (const [key, value] of Object.entries(obj)) {\n    if (key.toLowerCase().startsWith(\"scene\") && typeof value === \"string\") {\n      scenes.push(value);\n    } else if (typeof value === \"object\" && value !== null) {\n      scenes.push(...findSceneEntries(value));\n    }\n  }\n\n  return scenes;\n}\n\nlet output = [];\n\ntry {\n  const inputData = items[0].json;\n  const scenes = findSceneEntries(inputData);\n\n  if (scenes.length === 0) {\n    throw new Error(\"No scene keys found at any level.\");\n  }\n\n  output = scenes.map(scene => ({ description: scene }));\n} catch (e) {\n  throw new Error(\"Could not extract scenes properly. Details: \" + e.message);\n}\n\nreturn output;\n"}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Retrieve Video Clips
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"=https://api.wavespeed.ai/api/v3/predictions/{{ $json.data.id }}/result","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Generate ASMR Sound (Fal AI)
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://queue.fal.run/fal-ai/mmaudio-v2 ","method":"POST","options":{"batching":{"batch":{"batchSize":1,"batchInterval":2000}}},"jsonBody":"={\n  \"prompt\": \"ASMR Soothing sound effects. {{$('Generate Detailed Video Prompts').item.json.output.Sound}}\",\n  \"duration\": 10,\n  \"video_url\": \"{{$json.data.outputs[0]}}\"\n}\n","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Retrieve Final Sound Output
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"=https://queue.fal.run/fal-ai/mmaudio-v2/requests/{{ $json.request_id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Merge Clips into Final Video (Fal AI)
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://queue.fal.run/fal-ai/ffmpeg-api/compose","body":"={\n  \"tracks\": [\n    {\n      \"id\": \"1\",\n      \"type\": \"video\",\n      \"keyframes\": [\n        { \"url\": \"{{ $json.video_urls[0] }}\", \"timestamp\": 0, \"duration\": 10 },\n        { \"url\": \"{{ $json.video_urls[1] }}\", \"timestamp\": 10, \"duration\": 10 },\n        { \"url\": \"{{ $json.video_urls[2] }}\", \"timestamp\": 20, \"duration\": 10 }\n      ]\n    }\n  ]\n}","method":"POST","options":{"batching":{"batch":{"batchSize":1,"batchInterval":2000}}},"sendBody":true,"contentType":"raw","authentication":"genericCredentialType","rawContentType":"application/json","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Retrieve Final Merged Video
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: URL Final Video
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"idea":"={{ $('Save Idea & Metadata to Google Sheets').first().json.idea }}","production":"done","final_output":"={{ $json.video_url }}"},"schema":[{"id":"id","type":"string","display":true,"removed":true,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"idea","type":"string","display":true,"removed":false,"required":false,"displayName":"idea","defaultMatch":false,"canBeUsedToMatch":true},{"id":"caption","type":"string","display":true,"removed":true,"required":false,"displayName":"caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"production","type":"string","display":true,"required":false,"displayName":"production","defaultMatch":false,"canBeUsedToMatch":true},{"id":"environment_prompt","type":"string","display":true,"removed":true,"required":false,"displayName":"environment_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sound_prompt","type":"string","display":true,"removed":true,"required":false,"displayName":"sound_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"final_output","type":"string","display":true,"required":false,"displayName":"final_output","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["idea"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Generate Creative Video Idea
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"Generate a creative concept involving:\n\n[[\nA solid, hard material or element being sliced cleanly with a sharp blade. Your response must follow this structure:\n\n\"(Color) (Material) shaped like a (random everyday object)\"\n\nFor inspiration, imagine examples like: obsidian shaped like a chess piece, quartz shaped like a coffee mug, sapphire shaped like a seashell, or titanium shaped like a leaf.\n\n]]\n\nReflect carefully before answering to ensure originality and visual appeal.\n\nUse the Think tool to review your output","options":{"systemMessage":"=**Role:**  \nYou are an AI designed to generate **one immersive, realistic idea** based on a user-provided topic. Your output must be formatted as a **single-line JSON array** and follow the rules below exactly.\n\n---\n\n### RULES\n\n1. **Number of ideas**  \n   - Return **only one idea**.\n\n2. **Topic**  \n   - The user will provide a keyword (e.g., “glass cutting ASMR,” “wood carving sounds,” “satisfying rock splits”).\n\n3. **Idea**  \n   - Maximum 13 words.  \n   - Describe a viral-worthy, original, or surreal moment related to the topic.\n\n4. **Caption**  \n   - Short, punchy, viral-friendly.  \n   - Include **one emoji**.  \n   - Exactly **12 hashtags** in this order:  \n     1. 4 topic-relevant hashtags  \n     2. 4 all-time most popular hashtags  \n     3. 4 currently trending hashtags (based on live research)  \n   - All in lowercase.\n\n5. **Environment**  \n   - Maximum 20 words.  \n   - Must match the action in the Idea exactly.  \n   - Specify location (studio table, natural terrain, lab bench…), visual details (dust particles, polished surface, subtle reflections…), and style (macro close-up, cinematic slow-motion, minimalist…).\n\n6. **Sound**  \n   - Maximum 15 words.  \n   - Describe the primary sound for the scene (to feed into an audio model).\n\n7. **Status**  \n   - Always set to `\"for production\"`.\n\n---\n\n### OUTPUT FORMAT (single-line JSON array)\n\n```json\n[\n  {\n    \"Caption\": \"Your short viral title with emoji #4_topic_hashtags #4_all_time_popular_hashtags #4_trending_hashtags\",\n    \"Idea\": \"Your idea under 13 words\",\n    \"Environment\": \"Your vivid setting under 20 words matching the action\",\n    \"Sound\": \"Your primary sound description under 15 words\",\n    \"Status\": \"for production\"\n  }\n]\n"},"promptType":"define","hasOutputParser":true}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Generate Detailed Video Prompts
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"=Give me 3 video prompts based on the previous idea\n\nUse the Think tool to review your output","options":{"systemMessage":"=Role: You are a prompt-generation AI specializing in cinematic, ASMR-style video prompts. Your task is to generate a multi-scene video sequence that vividly shows a sharp knife actively cutting through a specific object in a clean, high-detail setting.\n\nYour writing must follow this style:\n\nSharp, precise cinematic realism.\n\nMacro-level detail with tight focus on the blade interacting with the object.\n\nThe knife must always be in motion — slicing, splitting, or gliding through the material. Never idle or static.\n\nCamera terms are allowed (e.g. macro view, tight angle, over-the-blade shot).\n\nEach scene must contain all of the following, expressed through detailed visual language:\n\n✅ The main object or subject (from the Idea)\n\n✅ The cutting environment or surface (from the Environment)\n\n✅ The texture, structure, and behavior of the material as it’s being cut\n\n✅ A visible, sharp blade actively cutting\n\nDescriptions should show:\n\nThe physical makeup of the material — is it translucent, brittle, dense, reflective, granular, fibrous, layered, or fluid-filled?\n\nHow the material responds to the blade — resistance, cracking, tearing, smooth separation, tension, vibration.\n\nThe interaction between the blade and the surface — light reflection, buildup of particles, contact points, residue or dust.\n\nAny ASMR-relevant sensory cues like particle release, shimmer, or subtle movement, but always shown visually — not narrated.\n\nTone:\n\nClean, clinical, visual.\n\nNo poetic metaphors, emotion, or storytelling.\n\nAvoid fantasy or surreal imagery.\n\nAll description must feel physically grounded and logically accurate.\n\nLength:\n\nEach scene must be between 1,000 and 2,000 characters.\n\nNo shallow or repetitive scenes — each must be immersive, descriptive, and specific.\n\nEach scene should explore a distinct phase of the cutting process, a different camera perspective, or a new behavior of the material under the blade.\n\nInputs:\n\nIdea: \"{{ $json.idea }}\"\nEnvironment: \"{{ $json.environment_prompt }}\"\nSound: \"{{ $json.sound_prompt }}\"\n\nFormat:\n\nIdea: \"...\"\nEnvironment: \"...\"\nSound: \"...\"\n\nScene 1: \"...\"\nScene 2: \"...\"\nScene 3: \"...\"\nScene 4: \"...\"\nScene 5: \"...\"\nScene 6: \"...\"\nScene 7: \"...\"\nScene 8: \"...\"\nScene 9: \"...\"\nScene 10: \"...\"\nScene 11: \"...\"\nScene 12: \"...\"\nScene 13: \"...\"\n\n"},"promptType":"define","hasOutputParser":true}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Generate Video Clips (seedance)
credentials_json: {"httpHeaderAuth":{"id":"credential-id","name":"httpHeaderAuth Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://api.wavespeed.ai/api/v3/bytedance/seedance-v1-pro-t2v-480p","method":"POST","options":{"batching":{"batch":{"batchSize":1,"batchInterval":3000}}},"jsonBody":"={\n  \"aspect_ratio\": \"9:16\",\n  \"duration\": 10,\n  \"prompt\": \"VIDEO THEME: {{$('Generate Detailed Video Prompts').item.json.output.Idea}} | WHAT HAPPENS IN THE VIDEO: {{$json.description}} | WHERE THE VIDEO IS SHOT: {{$('Generate Detailed Video Prompts').item.json.output.Environment}}\"\n}\n","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Youtube
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"youtube","accountId":{"__rl":true,"mode":"list","value":"8047","cachedResultUrl":"https://backend.blotato.com/v2/accounts/8047","cachedResultName":"DR FIRASS (Dr. Firas)"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}","postCreateYoutubeOptionTitle":"={{ $('Save Idea & Metadata to Google Sheets').first().json.idea }}","postCreateYoutubeOptionPrivacyStatus":"private","postCreateYoutubeOptionShouldNotifySubscribers":false}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Tiktok
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"tiktok","accountId":{"__rl":true,"mode":"list","value":"2079","cachedResultUrl":"https://backend.blotato.com/v2/accounts/2079","cachedResultName":"elitecybzcs"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Update Status to "DONE"
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"idea":"={{ $('Save Idea & Metadata to Google Sheets').first().json.idea }}","production":"Publish"},"schema":[{"id":"id","type":"string","display":true,"removed":true,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"idea","type":"string","display":true,"removed":false,"required":false,"displayName":"idea","defaultMatch":false,"canBeUsedToMatch":true},{"id":"caption","type":"string","display":true,"removed":true,"required":false,"displayName":"caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"production","type":"string","display":true,"removed":false,"required":false,"displayName":"production","defaultMatch":false,"canBeUsedToMatch":true},{"id":"environment_prompt","type":"string","display":true,"removed":true,"required":false,"displayName":"environment_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sound_prompt","type":"string","display":true,"removed":true,"required":false,"displayName":"sound_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"final_output","type":"string","display":true,"removed":true,"required":false,"displayName":"final_output","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["idea"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Linkedin
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"linkedin","accountId":{"__rl":true,"mode":"list","value":"1446","cachedResultUrl":"https://backend.blotato.com/v2/accounts/1446","cachedResultName":"Samuel Amalric"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Facebook
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"facebook","accountId":{"__rl":true,"mode":"list","value":"1759","cachedResultUrl":"https://backend.blotato.com/v2/accounts/1759","cachedResultName":"Firass Ben"},"facebookPageId":{"__rl":true,"mode":"list","value":"101603614680195","cachedResultUrl":"https://backend.blotato.com/v2/accounts/1759/subaccounts/101603614680195","cachedResultName":"Dr. Firas"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Instagram
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"accountId":{"__rl":true,"mode":"list","value":"11892","cachedResultUrl":"https://backend.blotato.com/v2/accounts/11892","cachedResultName":"doc.firass"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Threads
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"threads","accountId":{"__rl":true,"mode":"list","value":"2280","cachedResultUrl":"https://backend.blotato.com/v2/accounts/2280","cachedResultName":"doc.firass"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Bluesky
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"bluesky","accountId":{"__rl":true,"mode":"list","value":"6012","cachedResultUrl":"https://backend.blotato.com/v2/accounts/6012","cachedResultName":"formationinternet.bsky.social"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Pinterest
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"pinterest","accountId":{"__rl":true,"mode":"list","value":"363","cachedResultUrl":"https://backend.blotato.com/v2/accounts/363","cachedResultName":"formationinternet2022"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","pinterestBoardId":{"__rl":true,"mode":"id","value":"1146658823815436667"},"postContentMediaUrls":"={{ $json.url }}"}


node_type: @blotato/n8n-nodes-blotato.blotato
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: Twitter (X)
credentials_json: {"blotatoApi":{"id":"credential-id","name":"blotatoApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"platform":"twitter","accountId":{"__rl":true,"mode":"list","value":"1289","cachedResultUrl":"https://backend.blotato.com/v2/accounts/1289","cachedResultName":"Docteur_Firas"},"postContentText":"={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}","postContentMediaUrls":"={{ $json.url }}"}


node_type: @n8n/n8n-nodes-langchain.lmChatOpenAi
template_name: Generate AI Viral Videos with Seedance and Upload to TikTok, YouTube & Instagram
node_name: LLM: Generate Raw Idea (GPT-5)
credentials_json: {"openAiApi":{"id":"credential-id","name":"openAiApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"model":{"__rl":true,"mode":"list","value":"gpt-5-mini","cachedResultName":"gpt-5-mini"},"options":{}}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Get status
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"=https://queue.fal.run/fal-ai/veo3/requests/{{ $('Create Video').item.json.request_id }}/status ","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.if
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Completed?
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"383d112e-2cc6-4dd4-8985-f09ce0bd1781","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"COMPLETED"}]}}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Update result
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"VIDEO":"={{ $('Get Url Video').item.json.video.url }}","row_number":"={{ $('Get new video').item.json.row_number }}"},"schema":[{"id":"PROMPT","type":"string","display":true,"removed":false,"required":false,"displayName":"PROMPT","defaultMatch":false,"canBeUsedToMatch":true},{"id":"DURATION","type":"string","display":true,"removed":false,"required":false,"displayName":"DURATION","defaultMatch":false,"canBeUsedToMatch":true},{"id":"VIDEO","type":"string","display":true,"removed":false,"required":false,"displayName":"VIDEO","defaultMatch":false,"canBeUsedToMatch":true},{"id":"YOUTUBE_URL","type":"string","display":true,"removed":false,"required":false,"displayName":"YOUTUBE_URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit#gid=0","cachedResultName":"Foglio1"},"documentId":{"__rl":true,"mode":"list","value":"1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ/edit?usp=drivesdk","cachedResultName":"Video Google Veo3"}}


node_type: n8n-nodes-base.set
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Set data
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"c713d31f-9abd-496a-ac79-e8e2efe60aa0","name":"prompt","type":"string","value":"={{ $json.PROMPT }}\n\nDuration of the video: {{ $json.DURATION }}"}]}}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Get new video
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"filtersUI":{"values":[{"lookupColumn":"VIDEO"}]},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ/edit#gid=0","cachedResultName":"Foglio1"},"documentId":{"__rl":true,"mode":"list","value":"1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ/edit?usp=drivesdk","cachedResultName":"Video Google Veo3"}}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Create Video
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://queue.fal.run/fal-ai/veo3","method":"POST","options":{},"jsonBody":"={\n     \"prompt\": \"{{$json.prompt}}\"\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Get Url Video
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"=https://queue.fal.run/fal-ai/veo3/requests/{{ $json.request_id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"}


node_type: n8n-nodes-base.googleDrive
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Upload Video
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"name":"={{ $now.format('yyyyLLddHHmmss') }}-{{ $('Get Url Video').item.json.video.file_name }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ","cachedResultUrl":"https://drive.google.com/drive/folders/1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ","cachedResultName":"Fal.run"}}


node_type: n8n-nodes-base.httpRequest
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: HTTP Request
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://api.upload-post.com/api/upload","method":"POST","options":{},"sendBody":true,"contentType":"multipart-form-data","authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"title","value":"={{ $('Generate title').item.json.message.content }}"},{"name":"user","value":"YOUR_USERNAME"},{"name":"platform[]","value":"youtube"},{"name":"video","parameterType":"formBinaryData","inputDataFieldName":"data"}]},"genericAuthType":"httpHeaderAuth"}


node_type: @n8n/n8n-nodes-langchain.openAi
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Generate title
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"modelId":{"__rl":true,"mode":"list","value":"gpt-4o-mini","cachedResultName":"GPT-4O-MINI"},"options":{},"messages":{"values":[{"content":"=Input: {{ $('Get new video').item.json.PROMPT }}"},{"role":"system","content":"You are a YouTube SEO expert specialized in creating engaging and optimized titles.\n\nYour task is to generate an effective title for a YouTube video based on the user's video description.\n\nGUIDELINES:\n- Maximum 60 characters to avoid truncation\n- Use relevant keywords for SEO\n- Make the title catchy and clickable\n- Avoid excessive or misleading clickbait\n- Consider the target audience of the content\n- Use numbers, questions, or power words when appropriate\n- IMPORTANT: Generate the title in the same language as the input description\n\nOUTPUT FORMAT:\nProvide only the title, without additional explanations.\n\nEXAMPLE:\nInput: \"Tutorial video on how to cook perfect pasta carbonara\"\nOutput: \"PERFECT Carbonara in 10 Minutes - Chef's Secrets\""}]}}


node_type: n8n-nodes-base.googleSheets
template_name: Generate AI Videos with Google Veo3, Save to Google Drive and Upload to YouTube
node_name: Update Youtube URL
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"VIDEO":"=","row_number":"={{ $('Get new video').item.json.row_number }}","YOUTUBE_URL":"https://youtu.be/{{ $json.results.youtube.video_id }}"},"schema":[{"id":"PROMPT","type":"string","display":true,"removed":false,"required":false,"displayName":"PROMPT","defaultMatch":false,"canBeUsedToMatch":true},{"id":"DURATION","type":"string","display":true,"removed":false,"required":false,"displayName":"DURATION","defaultMatch":false,"canBeUsedToMatch":true},{"id":"VIDEO","type":"string","display":true,"removed":false,"required":false,"displayName":"VIDEO","defaultMatch":false,"canBeUsedToMatch":true},{"id":"YOUTUBE_URL","type":"string","display":true,"removed":false,"required":false,"displayName":"YOUTUBE_URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit#gid=0","cachedResultName":"Foglio1"},"documentId":{"__rl":true,"mode":"list","value":"1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1pcoY9N_vQp44NtSRR5eskkL5Qd0N0BGq7Jh_4m-7VEQ/edit?usp=drivesdk","cachedResultName":"Video Google Veo3"}}


node_type: n8n-nodes-base.rssFeedReadTool
template_name: Build Your First AI Agent
node_name: Get News
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', `Use one of:\n- https://feeds.bbci.co.uk/news/world/rss.xml (BBC World – global headlines)\n- https://www.aljazeera.com/xml/rss/all.xml (Al Jazeera English – in‑depth global coverage)\n- http://rss.cnn.com/rss/edition_world.rss (CNN World – breaking news worldwide)\n- https://techcrunch.com/feed/ (TechCrunch – global tech & startup news)\n- http://news.ycombinator.com/rss (Hacker News – tech community headlines)\n- https://n8n.io/blog/rss (n8n Blog – updates & tutorials)\n- https://www.bonappetit.com/feed/recipes-rss-feed/rss (Bon Appétit – recent recipes list)\n- https://www.endsreport.com/rss/news-and-analysis (ENDS Report – environmental law & policy news)\n- https://medlineplus.gov/groupfeeds/new.xml (MedlinePlus – health topics & wellness updates)`, 'string') }}","options":{},"toolDescription":"Gets the latest blog posts about any rss feed."}


node_type: n8n-nodes-base.httpRequestTool
template_name: Build Your First AI Agent
node_name: Get Weather
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"url":"https://api.open-meteo.com/v1/forecast","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"latitude","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', `Latitude of the location, e.g. 45.75 for Lyon. Do not ask the user just infer it automatically.`, 'string') }}"},{"name":"longitude","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters1_Value', `Longitude of the location, e.g. 4.85 for Lyon. Do not ask the user just infer it automatically.`, 'string') }}"},{"name":"current","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters2_Value', `Comma-separated list of current weather variables (no whitespace).\n\nExample: temperature_2m,windspeed_10m,rain.\n\nOptions: temperature_2m,relative_humidity_2m,apparent_temperature,is_day,precipitation,rain,showers,snowfall,weathercode,cloudcover_total,pressure_msl,surface_pressure,windspeed_10m,winddirection_10m,windgusts_10m.`, 'string') }}"},{"name":"hourly","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters3_Value', `Comma-separated list of hourly weather variables (no whitespace). Hourly is only useful to get one day's information. For weakly overview please use daily.\n\nExample: temperature_2m,precipitation.\n\nOptions: temperature_2m,relative_humidity_2m,dewpoint_2m,apparent_temperature,precipitation,rain,showers,snowfall,snow_depth,pressure_msl,surface_pressure,cloudcover_total,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,winddirection_10m,windgusts_10m,visibility,is_day,sunshine_duration,soil_temperature,soil_moisture,PM10,PM2_5,carbon_monoxide,ozone,us_aqi,UV_index.`, 'string') }}"},{"name":"daily","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters4_Value', `Comma-separated list of daily weather variables (no whitespace).\n\nExample: temperature_2m_max,precipitation_sum.\n\nOptions: weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,precipitation_sum,rain_sum,showers_sum,snowfall_sum,precipitation_hours,sunrise,sunset,daylight_duration,sunshine_duration,pressure_msl_max,pressure_msl_min,surface_pressure_max,surface_pressure_min,windgusts_10m_max,windspeed_10m_max,winddirection_10m_dominant,shortwave_radiation_sum.`, 'string') }}"},{"name":"start_date","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters5_Value', `Start date in YYYY-MM-DD format. Example: 2025-07-15`, 'string') }}"},{"name":"end_date","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters6_Value', `End date in YYYY-MM-DD format. Must be after start_date. Example: 2025-07-18`, 'string') }}"},{"name":"temperature_unit","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters7_Value', `Unit for temperature. Options: celsius (default), fahrenheit.`, 'string') }}"}]},"toolDescription":"Get weather forecast anywhere, anytime. You can make requests by assuming most information, the only thing you need is the location (use the city name to infer lat and long automatically) and time period (assume today if not specified)"}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Build Your First AI Agent
node_name: Your First AI Agent
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{"systemMessage":"=<role>\nYou are the n8n Demo AI Agent, a friendly and helpful assistant designed to showcase the power of AI agents within the n8n automation platform. Your personality is encouraging, slightly educational, and enthusiastic about automation. Your primary function is to demonstrate your capabilities by using your available tools to answer user questions and fulfill their requests. You are conversational.\n</role>\n\n<instructions>\n<goal>\nYour primary goal is to act as a live demonstration of an AI Agent built with n8n. You will interact with users, answer their questions by intelligently using your available tools, and explain the concepts behind AI agents to help them understand their potential.\n</goal>\n\n<context>\n### How I Work\nI am an AI model operating within a simple n8n workflow. This workflow gives me two key things:\n1.  **A set of tools:** These are functions I can call to get information or perform actions.\n2.  **Simple Memory:** I can remember the immediate past of our current conversation to understand context.\n\n### My Purpose\nMy main purpose is to be a showcase. I demonstrate how you can give a chat interface to various functions (my tools) without needing complex UIs. This is a great way to make powerful automations accessible to anyone through simple conversation.\n\n### My Tools Instructions\nYou must choose one of your available tools if the user's request matches its capability. You cannot perform these actions yourself; you must call the tool.\n\n### About AI Agents in n8n\n- **Reliability:** While I can use one tool at a time effectively, more advanced agents can perform multi-step tasks. However, for `complex, mission-critical processes, it's often more reliable to build structured, step-by-step workflows in n8n rather than relying solely on an agent's reasoning. Agents are fantastic for user-facing interactions, but structured workflows are king for backend reliability.\n- **Best Practices:** A good practice is to keep an agent's toolset focused, typically under 10-15 tools, to ensure reliability and prevent confusion.\n\n### Current Date & Time\n{{ $now }}\n</context>\n\n<output_format>\n- Respond in a friendly, conversational, and helpful tone.\n- When a user's request requires a tool, first select the appropriate tool. Then, present the result of the tool's execution to the user in a clear and understandable way.\n- Be proactive. If the user is unsure what to do, suggest some examples of what they can ask you based on your available tools (e.g., Talk about your tools and what you know about yourself).\n</output_format>\n</instructions>"}}


node_type: @n8n/n8n-nodes-langchain.chatTrigger
template_name: Build Your First AI Agent
node_name: Example Chat
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"public":true,"options":{"title":"Your first AI Agent 🚀","subtitle":"This is for demo purposes. Try me out !","responseMode":"lastNode","inputPlaceholder":"Type your message here...","showWelcomeScreen":false},"initialMessages":"Hi there! 👋"}


node_type: n8n-nodes-base.set
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Assign Social Media IDs
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"mode":"raw","options":{},"jsonOutput":"{\n  \"instagram_id\": \"0000\",\n  \"youtube_id\": \"0000\",\n  \"threads_id\": \"0000\",\n  \"tiktok_id\": \"0000\",\n  \"facebook_id\": \"0000\",\n  \"facebook_page_id\": \"+1234567890\",\n  \"twitter_id\": \"0000\",\n  \"linkedin_id\": \"0000\",\n  \"pinterest_id\": \"0000\",\n  \"pinterest_board_id\": \"+1234567890000\",\n  \"bluesky_id\": \"0000\"\n}\n"}


node_type: @n8n/n8n-nodes-langchain.openAi
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Analyze Thumbnail (GPT-4o Vision)
credentials_json: {"openAiApi":{"id":"credential-id","name":"openAiApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"modelId":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"GPT-4O"},"options":{},"resource":"image","imageUrls":"={{ $json.url }}","operation":"analyze"}


node_type: @n8n/n8n-nodes-langchain.openAi
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Extract Overlay Text (GPT-4o)
credentials_json: {"openAiApi":{"id":"credential-id","name":"openAiApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"modelId":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"GPT-4O"},"options":{},"messages":{"values":[{"content":"=Identify the primary text located at the top of the image described above:\n{{ $json.content }}\n\nReturn only that specific top text as the output.\n\nDo not include any quotation marks.\n\nFocus only on the top section's text in the image and disregard any other content."}]}}


node_type: n8n-nodes-base.code
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Generate Unique Template ID
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsCode":"// Utility to create a random alphanumeric ID\nfunction createUniqueId(length = 12) {\n  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n  let id = '';\n  for (let i = 0; i < length; i++) {\n    const randomIndex = Math.floor(Math.random() * characters.length);\n    id += characters[randomIndex];\n  }\n  return id;\n}\n\n// Return the ID in the expected output structure\nreturn [\n  {\n    json: {\n      code: createUniqueId()\n    }\n  }\n];"}


node_type: n8n-nodes-base.googleSheets
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Save Original Video to Google Sheets
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"Caption":"={{ $('Download TikTok Video (RapidAPI)').item.json.data.title }}","ID du modèle":"={{ $json.code }}","Lien de la vidéo":"={{ $('Trigger: Get TikTok URL via Telegram').item.json.message.text }}","Modèle de script vidéo":"={{ $('Transcribe Audio to Script (GPT)').item.json.text }}","Modèle de texte superposé":"={{ $('Download TikTok Audio').item.json.message.content }}"},"schema":[{"id":"ID du modèle","type":"string","display":true,"required":false,"displayName":"ID du modèle","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Lien de la vidéo","type":"string","display":true,"required":false,"displayName":"Lien de la vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Modèle de texte superposé","type":"string","display":true,"required":false,"displayName":"Modèle de texte superposé","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Modèle de script vidéo","type":"string","display":true,"required":false,"displayName":"Modèle de script vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Caption","type":"string","display":true,"required":false,"displayName":"Caption","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/1SoYJvZbVNn4L1FNfk9eFqx_vGlCsMxgw8bx0DVFgBLY/edit#gid=0","cachedResultName":"Template"},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: n8n-nodes-base.code
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Clean Perplexity Response
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsCode":"// Step 1: Pull raw input\nlet raw = $input.first().json.choices[0].message.content;\n// Step 2: Forcefully remove anything between <think> and </think>\nlet cleaned = raw.replace(/<think>(.|\\n)*?<\\/think>/gi,\n'').trim();\n// Optional cleanup: remove leading/trailing blank lines\ncleaned = cleaned.replace(/^\\s+|\\s+$/g, '');\n// Done\nreturn [\n{\njson: {\ncleanedResponse: cleaned\n}\n}\n];\n"}


node_type: @n8n/n8n-nodes-langchain.openAi
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Rewrite Script, Caption, Overlay (GPT-4o)
credentials_json: {"openAiApi":{"id":"credential-id","name":"openAiApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"modelId":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"GPT-4O"},"options":{},"messages":{"values":[{"content":"=You are rewriting a TikTok video script, caption, and overlay —\nnot inventing a new one. You must follow this format and obey\nthese rules strictly.\n---\n### CONTEXT:\nHere is the content idea to use:\n{{ $json.cleanedResponse }}\n\n---\n### STEP 1: Rewrite the original video script BELOW using the new\ntopic/context above but maintaiin as stubbornly as possible the\noriginal script structure and style:\nOriginal script: {{ $('Save Original Video to Google Sheets').item.json['Modèle de script vidéo'] }}\n\n\n🛑 DO NOT CHANGE the original structure or style but\nThis includes:\n- Numbered list\n- Sentence breaks\n- \"I\" or first-person narration\n- Colloquial/informal tone (like “you're gonna wanna...”)\n✂️ You MUST keep:\n- first person narration of the orignal script at all costs\n- MUST be under 700 characters (yes \"Characters\" not wordcount)\nthis is an absolute MUST, no more than 700 characters!!! But never\nchange the structure or narration style of the original script. It\nmust be an exact imitation.\n✏️ You MAY change:\n- Tool names\n- Use cases\n- Descriptions\n- Niche-specific keywords\n\n#Rule: never use any characers like \"\" in your generated video\nscript as this will yeild syntax errors.\n---\n### STEP 2: Rewrite the caption text using the new topic.\nKeep:\n- Same structure and tone\n- Same use of #hashtags but space between each hashtag\n- Similar sentence count and layout\nCaption:\n{{ $('Save Original Video to Google Sheets').item.json.Caption }}\n\n---\n### STEP 3: Rewrite the text overlay (short version for the\nthumbnail or first screen)\nKeep:\n- EXACT Same length format, case, structure\n- Do NOT invent new words unless absolutely necessary\nOverlay:\n{{ $('Save Original Video to Google Sheets').item.json['Modèle de texte superposé'] }}\n---\n### FINAL OUTPUT FORMAT (no markdown formatting):\nText Overlay: [REWRITTEN TEXT OVERLAY]\nVideo Script: [REWRITTEN SCRIPT]\nCaption Text: [REWRITTEN CAPTION TEXT]\nDO NOT return any explanations. Only return the rewritten\nsections."}]}}


node_type: n8n-nodes-base.code
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Split Rewritten Content into Sections
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsCode":"// Récupère le contenu du premier item\nconst input = $input.first().json.message.content;\n\n// On tolère les retours à la ligne réels (\\n) ou échappés (\\\\n)\n\n// Text Overlay\nconst textOverlayMatch = input.match(\n  /Text\\s*Overlay:\\s*(.+?)(?:\\r?\\n|\\\\n)/s\n);\n\n// Video Script\nconst videoScriptMatch = input.match(\n  /Video\\s*Script:\\s*(.+?)(?:\\r?\\n|\\\\n)Caption\\s*Text:/s\n);\n\n// Caption Text (jusqu'à la fin)\nconst captionTextMatch = input.match(\n  /Caption\\s*Text:\\s*(.+)/s\n);\n\nreturn [\n  {\n    json: {\n      textOverlay:   textOverlayMatch   ? textOverlayMatch[1].trim()   : null,\n      videoScript:   videoScriptMatch   ? videoScriptMatch[1].trim()   : null,\n      captionText:   captionTextMatch   ? captionTextMatch[1].trim()   : null,\n    }\n  }\n];\n"}


node_type: n8n-nodes-base.googleSheets
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Save Rewritten Video to Google Sheets
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"Sujet":"={{ $('Clean Perplexity Response').first().json.cleanedResponse }}","Script":"={{ $('Split Rewritten Content into Sections').item.json.videoScript }}","Caption":"={{ $('Split Rewritten Content into Sections').item.json.captionText }}","ID du modèle":"={{ $('Generate Unique Template ID').first().json.code }}","ID de la vidéo":"={{ $json.code }}","Texte superposé":"={{ $('Split Rewritten Content into Sections').item.json.textOverlay }}"},"schema":[{"id":"ID du modèle","type":"string","display":true,"required":false,"displayName":"ID du modèle","defaultMatch":false,"canBeUsedToMatch":true},{"id":"ID de la vidéo","type":"string","display":true,"removed":false,"required":false,"displayName":"ID de la vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Sujet","type":"string","display":true,"removed":false,"required":false,"displayName":"Sujet","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Texte superposé","type":"string","display":true,"removed":false,"required":false,"displayName":"Texte superposé","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":false,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Caption","type":"string","display":true,"required":false,"displayName":"Caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"URL de la vidéo","type":"string","display":true,"removed":true,"required":false,"displayName":"URL de la vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date de publication","type":"string","display":true,"removed":true,"required":false,"displayName":"Date de publication","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Statut","type":"string","display":true,"removed":true,"required":false,"displayName":"Statut","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"=52679157"},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: n8n-nodes-base.googleSheets
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Update Final Video URL in Sheet
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"ID de la vidéo":"={{ $('Save Rewritten Video to Google Sheets').item.json['ID de la vidéo'] }}","URL de la vidéo":"={{ $json.movie.url }}"},"schema":[{"id":"ID du modèle","type":"string","display":true,"removed":true,"required":false,"displayName":"ID du modèle","defaultMatch":false,"canBeUsedToMatch":true},{"id":"ID de la vidéo","type":"string","display":true,"removed":false,"required":false,"displayName":"ID de la vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Sujet","type":"string","display":true,"removed":true,"required":false,"displayName":"Sujet","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Texte superposé","type":"string","display":true,"removed":true,"required":false,"displayName":"Texte superposé","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Script","type":"string","display":true,"removed":true,"required":false,"displayName":"Script","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Caption","type":"string","display":true,"removed":true,"required":false,"displayName":"Caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"URL de la vidéo","type":"string","display":true,"removed":false,"required":false,"displayName":"URL de la vidéo","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date de publication","type":"string","display":true,"removed":true,"required":false,"displayName":"Date de publication","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Statut","type":"string","display":true,"removed":true,"required":false,"displayName":"Statut","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["ID de la vidéo"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":52679157,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1SoYJvZbVNn4L1FNfk9eFqx_vGlCsMxgw8bx0DVFgBLY/edit#gid=52679157","cachedResultName":"MA VIDEO"},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: n8n-nodes-base.telegram
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Send Video URL via Telegram
credentials_json: {"telegramApi":{"id":"credential-id","name":"telegramApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"=Url VIDEO : {{ $json['URL de la vidéo'] }}","chatId":"={{ $('Trigger: Get TikTok URL via Telegram').item.json.message.chat.id }}","additionalFields":{}}


node_type: n8n-nodes-base.telegram
template_name: Clone Viral TikToks with AI Avatars & Auto-Post to 9 Platforms using Perplexity & Blotato
node_name: Send Final Video Preview
credentials_json: {"telegramApi":{"id":"credential-id","name":"telegramApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"file":"={{ $('Update Final Video URL in Sheet').item.json['URL de la vidéo'] }}","chatId":"={{ $json.result.chat.id }}","operation":"sendVideo","additionalFields":{}}


node_type: n8n-nodes-base.switch
template_name: Conversational Telegram Bot with GPT-5/GPT-4o for Text and Voice Messages
node_name: Text Or Voice
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"rules":{"values":[{"outputKey":"Text","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0a236099-525e-4748-a57d-8b8e2c63c48b","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.message.text }}","rightValue":""}]},"renameOutput":true},{"outputKey":"Voice","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"24b7e8b8-6fce-4ddc-94b6-30b852891995","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{  $json.message.voice.file_id }}","rightValue":""}]},"renameOutput":true}]},"options":{}}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Conversational Telegram Bot with GPT-5/GPT-4o for Text and Voice Messages
node_name: AI Agent
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"={{ $json.message.text }}","options":{"systemMessage":"=# Overview\nYou are a personal assistant that helps user to fulfill their request.\n\nWhen you are asked to perform a task on the current date, please use the current time and date: {{$now}}\n\n## Output\nYou should output the result and don't include any link. Just mentioned where you added it to."},"promptType":"define"}


node_type: n8n-nodes-base.telegram
template_name: Conversational Telegram Bot with GPT-5/GPT-4o for Text and Voice Messages
node_name: Send Response To Telegram
credentials_json: {"telegramApi":{"id":"credential-id","name":"telegramApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"={{ $json.output }}","chatId":"={{$('Telegram Trigger').first().json.message.chat.id}}","additionalFields":{"appendAttribution":false}}


node_type: n8n-nodes-base.set
template_name: Conversational Telegram Bot with GPT-5/GPT-4o for Text and Voice Messages
node_name: Send Context To AI Agent
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"590b803f-833c-4854-bde7-5241d25b2b32","name":"message.text","type":"string","value":"={{ $json.message.text }}"},{"id":"303e0b5d-3d37-48fc-bbd3-ce62dbe7ef78","name":"sessionId","type":"string","value":"={{ $json.message.chat.id }}"}]}}


node_type: n8n-nodes-base.set
template_name: Conversational Telegram Bot with GPT-5/GPT-4o for Text and Voice Messages
node_name: Send Transcribe Context To AI Agent
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"2bb71aef-0ca1-4c26-95e1-c0c83bc82068","name":"message.text","type":"string","value":"={{ $json.text }}"},{"id":"692a2bae-35da-41d3-be8d-32c0f5dfbbef","name":"sessionId","type":"string","value":"={{ $('Telegram Trigger').item.json.message.chat.id }}"}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: String
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_string","type":"string","value":"This is a simple string. In JSON, it's always enclosed in double quotes."}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Key & Value
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"key","type":"string","value":"value"},{"id":"b5f030f4-6650-4181-881f-de44790bb24b","name":"another_key","type":"string","value":"another_value"}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Number
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_integer","type":"number","value":10},{"id":"12345","name":"json_example_float","type":"number","value":12.5}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Boolean
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_boolean","type":"boolean","value":false}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Array
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_array","type":"array","value":"[\"first element\", 2, false, null]"}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Object
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_object","type":"object","value":"{\"key\":\"value\",\"array\":[1,2,3],\"boolean\":false,\"integer\":123,\"sub_object\":{\"sub_key\":\"Find me!\"}}"}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Null
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"json_example_null","type":"null","value":{}}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Using JSON (Expressions)
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"message","type":"string","value":"=Hello, the number from the tutorial is: {{ $('Number').item.json.json_example_integer }}"},{"id":"61f385f4-b8e2-4c69-b873-9ffc3ab3fe94","name":"sub_key","type":"string","value":"={{ $json.json_example_object.sub_object.sub_key }}"},{"id":"bd752a0f-64bf-44b1-b39b-fca28e86aa5b","name":"array_second_item","type":"string","value":"={{ $json.json_example_object.array[1] }}"}]}}


node_type: n8n-nodes-base.set
template_name: 🎓 Learn JSON Basics with an Interactive Step-by-Step Tutorial for Beginners
node_name: Final Exam
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"assignments":{"assignments":[{"id":"e87952cb-878e-4feb-8261-342eaf887838","name":"summary_string","type":"string","value":"={{ $('String').item.json.json_example_string }}"},{"id":"12345","name":"summary_number","type":"number","value":"={{ $('Number').item.json.json_example_integer }}"},{"id":"67890","name":"summary_boolean","type":"boolean","value":"={{ $('Boolean').item.json.json_example_boolean }}"},{"id":"abcde","name":"summary_null","type":"null","value":"={{ $('Null').item.json.json_example_null }}"},{"id":"fghij","name":"summary_array","type":"array","value":"={{ $('Array').item.json.json_example_array }}"},{"id":"klmno","name":"summary_object","type":"object","value":"={{ $('Object').item.json.json_example_object }}"}]}}


node_type: n8n-nodes-base.googleSheets
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: Get my video
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: n8n-nodes-base.googleSheets
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: Google Sheets
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"STATUS":"Publish","row_number":"={{ $('Get my video').item.json.row_number }}"},"schema":[{"id":"PROMPT","type":"string","display":true,"required":false,"displayName":"PROMPT","defaultMatch":false,"canBeUsedToMatch":true},{"id":"DESCRIPTION","type":"string","display":true,"required":false,"displayName":"DESCRIPTION","defaultMatch":false,"canBeUsedToMatch":true},{"id":"URL VIDEO","type":"string","display":true,"required":false,"displayName":"URL VIDEO","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Titre","type":"string","display":true,"required":false,"displayName":"Titre","defaultMatch":false,"canBeUsedToMatch":true},{"id":"STATUS","type":"string","display":true,"required":false,"displayName":"STATUS","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: AI Agent: Generate Video Concept
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"Give me an idea about [a Yeti speaking to a camera and doing a Vlog through his selfie stick]. ","options":{"systemMessage":"=You are an AI designed to generate 1 immersive, realistic idea based on a user-provided topic. Your output must be formatted as a JSON array (single line) and follow all the rules below exactly.\n\nRULES:\n\nOnly return 1 idea at a time.\n\nThe user will provide a key topic (e.g. “urban farming,” “arctic survival,” “street food in Vietnam”).\n\nThe Idea must:\n\nBe under 13 words.\n\nDescribe an interesting and viral-worthy moment, action, or event related to the provided topic.\n\nCan be as surreal as you can get, doesn't have to be real-world!\n\nInvolves a character.\n\nThe Caption must be:\n\nShort, punchy, and viral-friendly.\n\nInclude one relevant emoji.\n\nInclude exactly 12 hashtags in this order:\n** 4 topic-relevant hashtags\n** 4 all-time most popular hashtags\n** 4 currently trending hashtags (based on live research)\n\nAll hashtags must be lowercase.\n\nSet Status to \"for production\" (always).\n\nThe Environment must:\n\nBe under 20 words.\n\nMatch the action in the Idea exactly.\n\nClearly describe:\n\nWhere the event is happening (e.g. rooftop, jungle trail, city alley, frozen lake)\n\nKey visuals or background details (e.g. smoke rising, neon lights, fog, birds overhead)\n\nMain participants (e.g. farmer, cook, mechanic, rescue team, animal)\n\nStyle of scene (e.g. cinematic realism, handheld docu-style, aerial tracking shot, macro close-up)\n\nOk with fictional settings\n\nOUTPUT FORMAT (single-line JSON array):\n\n\n[\n  {\n    \"Caption\": \"Short viral title with emoji #4_topic_hashtags #4_all_time_popular_hashtags #4_trending_hashtags\",\n    \"Idea\": \"Short idea under 13 words\",\n    \"Environment\": \"Brief vivid setting under 20 words matching the action\",\n    \"Status\": \"for production\"\n  }\n]\n"},"promptType":"define","hasOutputParser":true}


node_type: @n8n/n8n-nodes-langchain.outputParserStructured
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: Parser: Extract JSON from Idea
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsonSchemaExample":"[\n  {\n    \"Caption\": \"Diver Removes Nets Off Whale 🐋 #whalerescue #marinelife #oceanrescue #seahelpers #love #nature #instagood #explore #viral #savenature #oceanguardians #cleanoceans\",\n    \"Idea\": \"Diver carefully cuts tangled net from distressed whale in open sea\",\n    \"Environment\": \"Open ocean, sunlight beams through water, diver and whale, cinematic realism\",\n    \"Status\": \"for production\"\n  }\n]\n"}


node_type: n8n-nodes-base.googleSheets
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: Google Sheets: Save Script Idea
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"id":"==ROW()-1","idea":"={{ $json.output[0].Idea }}","caption":"={{ $json.output[0].Caption }}","production":"={{ $json.output[0].Status }}","environment_prompt":"={{ $json.output[0].Environment }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"idea","type":"string","display":true,"required":false,"displayName":"idea","defaultMatch":false,"canBeUsedToMatch":true},{"id":"caption","type":"string","display":true,"required":false,"displayName":"caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"production","type":"string","display":true,"required":false,"displayName":"production","defaultMatch":false,"canBeUsedToMatch":true},{"id":"environment_prompt","type":"string","display":true,"required":false,"displayName":"environment_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"final_output","type":"string","display":true,"required":false,"displayName":"final_output","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: AI Agent: Create Veo3-Compatible Prompt
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"=Give me a Veo3 prompt for this idea:\n{{ $json.idea }}\n\nThis is the environment:\n{{ $json.environment_prompt }}\n\n","options":{"systemMessage":"=SYSTEM PROMPT FOR GOOGLE VEO3 PROMPT AGENT\n\nYou are an AI agent that writes hyper-realistic, cinematic video prompts for Google VEO3. Each prompt should describe a short, vivid selfie-style video clip featuring one unnamed character speaking or acting in a specific moment. The final video should look like found footage or documentary-style film — grounded, realistic, and immersive.\n\nREQUIRED STRUCTURE (FILL IN THE BRACKETS BELOW):\n\n[Scene paragraph prompt here]\n\nMain character: [description of character]\nThey say: [insert one line of dialogue, fits the scene and mood].\nThey [describe a physical action or subtle camera movement, e.g. pans the camera, shifts position, glances around].\nTime of Day: [day / night / dusk / etc.]\nLens: [describe lens]\nAudio: (implied) [ambient sounds, e.g. lion growls, wind, distant traffic, birdsong]\nBackground: [brief restatement of what is visible behind them]\n\nRULES FOR PROMPT GENERATION\n\nSingle paragraph only, 750–1500 characters. No line breaks or headings.\n\nOnly one human character. Never give them a name.\n\nInclude one spoken line of dialogue and describe how it’s delivered.\n\nCharacter must do something physical, even if subtle (e.g. glance, smirk, pan camera).\n\nUse selfie-style framing. Always describe the lens, stock, and camera behavior.\n\nScene must feel real and cinematic — like a short clip someone might record on a stylized camera.\n\nAlways include the five key technical elements: Time of Day, Lens, Film Stock, Audio, and Background.\n\nDO NOT DO THIS:\n\nDon’t name the character.\n\nDon’t include more than one character.\n\nDon’t describe subtitles or on-screen text.\n\nDon’t break the paragraph or use formatting.\n\nDon’t write vague or abstract scenes — always keep them grounded in physical detail."},"promptType":"define","hasOutputParser":true}


node_type: n8n-nodes-base.googleSheets
template_name: Generate & Auto-post AI Videos to Social Media with Veo3 and Blotato
node_name: Google Sheets: Log Final Video Output
credentials_json: {"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"columns":{"value":{"idea":"={{ $('Google Sheets: Save Script Idea').first().json.idea }}","production":"done","final_output":"={{ $json.video.url }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"idea","type":"string","display":true,"removed":false,"required":false,"displayName":"idea","defaultMatch":false,"canBeUsedToMatch":true},{"id":"caption","type":"string","display":true,"required":false,"displayName":"caption","defaultMatch":false,"canBeUsedToMatch":true},{"id":"production","type":"string","display":true,"required":false,"displayName":"production","defaultMatch":false,"canBeUsedToMatch":true},{"id":"environment_prompt","type":"string","display":true,"required":false,"displayName":"environment_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"final_output","type":"string","display":true,"required":false,"displayName":"final_output","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["idea"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"id","value":"="},"documentId":{"__rl":true,"mode":"id","value":"="}}


node_type: @n8n/n8n-nodes-langchain.documentDefaultDataLoader
template_name: Personalized AI Tech Newsletter Using RSS, OpenAI and Gmail
node_name: Default Data Loader
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{"metadata":{"metadataValues":[{"name":"title","value":"={{ $json.title }}"},{"name":"createDate","value":"={{ $now.toISO() }}"},{"name":"publishDate","value":"={{ $json.date }}"},{"name":"link","value":"={{ $json.link }}"}]}},"jsonData":"=# {{ $json.title }}\n{{ $json.content }}","jsonMode":"expressionData"}


node_type: @n8n/n8n-nodes-langchain.agent
template_name: Personalized AI Tech Newsletter Using RSS, OpenAI and Gmail
node_name: News reader AI
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"text":"=Summarize the most relevant tech news published in the past 7 days. Today is {{ $now }}","options":{"systemMessage":"=Write in clear, concise, and easy-to-understand English, as if curating a weekly tech newsletter.\n\nPrioritize stories related to the following topics: {{ $json.Interests }}.\nIf those topics aren't present, choose the most impactful, widely reported, and noteworthy tech events from the week.\n\nFor each news item:\n\nProvide a short, informative summary (1–3 sentences max)\n\nInclude the article title and a direct link to the original source\n\nAvoid duplicate stories.\n\nInclude exactly {{ $json['Number of news items to include'] }} distinct news items.\nMaintain a tone that's friendly yet professional, suitable for a broad audience of tech enthusiasts."},"promptType":"define"}


node_type: n8n-nodes-base.gmail
template_name: Personalized AI Tech Newsletter Using RSS, OpenAI and Gmail
node_name: Send Newsletter
credentials_json: {"gmailOAuth2":{"id":"VVLm2UzmGbMNTTNO","name":"Gmail account 2"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"sendTo":"your@email.com","message":"={{ $json.data }}","options":{},"subject":"Weekly tech newsletter"}


node_type: @n8n/n8n-nodes-langchain.vectorStoreInMemory
template_name: Personalized AI Tech Newsletter Using RSS, OpenAI and Gmail
node_name: Get News Articles
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"mode":"retrieve-as-tool","topK":20,"toolName":"get_news","memoryKey":"news_store_key","toolDescription":"Call this tool to get the latest news articles."}


node_type: @n8n/n8n-nodes-langchain.memoryBufferWindow
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Simple Memory
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"sessionKey":"=memory_{{ $('WhatsApp Trigger').item.json.contacts[0].wa_id }}","sessionIdType":"customKey"}


node_type: @n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: MongoDB Vector Search
credentials_json: {"mongoDb":{"id":"credential-id","name":"mongoDb Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"mode":"retrieve-as-tool","options":{},"toolName":"productDocs","mongoCollection":{"__rl":true,"mode":"list","value":"n8n-template","cachedResultName":"n8n-template"},"toolDescription":"retreive documentation","vectorIndexName":"data_index"}


node_type: @n8n/n8n-nodes-langchain.documentDefaultDataLoader
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Document Section Loader
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{"metadata":{"metadataValues":[{"name":"doc_id","value":"={{ $json.documentId }}"}]}},"jsonData":"={{ $json.content }}","jsonMode":"expressionData"}


node_type: @n8n/n8n-nodes-langchain.vectorStoreMongoDBAtlas
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: MongoDB Vector Store Inserter
credentials_json: {"mongoDb":{"id":"credential-id","name":"mongoDb Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"mode":"insert","options":{},"mongoCollection":{"__rl":true,"mode":"list","value":"n8n-template","cachedResultName":"n8n-template"},"vectorIndexName":"data_index"}


node_type: n8n-nodes-base.googleDocs
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Google Docs Importer
credentials_json: {"googleDocsOAuth2Api":{"id":"credential-id","name":"googleDocsOAuth2Api Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"operation":"get","documentURL":"https://docs.google.com/document/d/1gvgp71e9edob8WLqFIYCdzC7kUq3pLO37VKb-a-vVW4/edit?tab=t.0"}


node_type: @n8n/n8n-nodes-langchain.openAi
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: OpenAI1
credentials_json: {"openAiApi":{"id":"credential-id","name":"openAiApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"modelId":{"__rl":true,"mode":"list","value":"gpt-4o-mini","cachedResultName":"GPT-4O-MINI"},"options":{"detail":"auto"},"resource":"image","inputType":"base64","operation":"analyze"}


node_type: n8n-nodes-base.code
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Map file extensions
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"jsCode":"let requests = $(\"Download Document\").all()\n\nrequests.forEach((request) => {\n  let mime_type = request.json.mime_type\n\n  if (\n    mime_type === \"text/calendar\" || \n    mime_type === \"application/ics\" || \n    mime_type === \"text/x-calendar\"\n  ) {\n    request.json.mime_type = \"mapped/calendar\"\n  }\n\n  if (\n    mime_type === \"application/xml\" || \n    mime_type === \"text/xml\") {\n    request.json.mime_type = \"mapped/xml\"\n  }\n\n  if (!mime_type) {\n    request.json.mime_type = $('Gets WhatsApp Document Source URL').first().json.mime_type\n  }\n})\n\nreturn requests;"}


node_type: n8n-nodes-base.switch
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Route Types
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"rules":{"values":[{"outputKey":"Text","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2fc5c912-629b-4cbe-b5e3-7e3f0651c628","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.messages[0].type }}","rightValue":"text"}]},"renameOutput":true},{"outputKey":"Audio","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"26a3d85c-0815-48ff-85ce-713129a1107c","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.messages[0].type }}","rightValue":"audio"}]},"renameOutput":true},{"outputKey":"Image","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"840b95b8-6559-4fb7-b32c-651451d6d0d2","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.messages[0].type }}","rightValue":"image"}]},"renameOutput":true},{"outputKey":"Document","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"3e7a07f9-b785-450c-8c68-f6b276838503","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.messages[0].type }}","rightValue":"document"}]},"renameOutput":true}]},"options":{}}


node_type: n8n-nodes-base.switch
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Route Document Types
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"rules":{"values":[{"outputKey":"CSV","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"14e23243-cd44-4cb1-99bd-9e6905d511ad","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"text/csv"}]},"renameOutput":true},{"outputKey":"HTML","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6d7616c5-6bdd-47b7-923e-639491d15a4e","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"text/html"}]},"renameOutput":true},{"outputKey":"Calendar","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a2174e02-378a-41ff-b269-61f4fc3f1de9","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"=mapped/calendar"}]},"renameOutput":true},{"outputKey":"RTF","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"f3b406d7-362d-473e-8edd-c3e5f2d9c44c","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"text/rtf"}]},"renameOutput":true},{"outputKey":"TXT","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"64dd4658-54e7-4453-adbc-7067dffcd555","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"text/plain"}]},"renameOutput":true},{"outputKey":"XML","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7540a3ab-b48e-4bec-94e9-a5dfc3d65a4c","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"mapped/xml"}]},"renameOutput":true},{"outputKey":"PDF","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"88b618fd-9a88-491e-91dd-c5fc9efa36e3","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"application/pdf"}]},"renameOutput":true},{"outputKey":"JSON","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9c4d90aa-b4ea-4a63-b15e-666899c8360e","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"application/json"}]},"renameOutput":true},{"outputKey":"XLS","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9baa7c88-3950-4099-8498-99a4640b95e7","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"application/vnd.ms-excel"}]},"renameOutput":true},{"outputKey":"XLSX","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"b83e540c-ba1e-42d0-ac83-f675e25e6aea","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.mime_type }}","rightValue":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}]},"renameOutput":true},{"outputKey":"ELSE","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ea3be820-2ead-4ec2-b292-42d3c7804b55","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.mime_type }}","rightValue":""}]},"renameOutput":true}]},"options":{}}


node_type: n8n-nodes-base.whatsApp
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Send Unsupported Response
credentials_json: {"whatsAppApi":{"id":"credential-id","name":"whatsAppApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"textBody":"=The File type you provided is unsupported.","operation":"send","phoneNumberId":"677680658761861","additionalFields":{},"recipientPhoneNumber":"={{ $('WhatsApp Trigger').item.json.messages[0].from }}"}


node_type: n8n-nodes-base.whatsApp
template_name: AI-Powered WhatsApp Chatbot for Text, Voice, Images, and PDF with RAG
node_name: Send Response
credentials_json: {"whatsAppApi":{"id":"credential-id","name":"whatsAppApi Credential"}}
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"textBody":"={{ $json.output }}","operation":"send","phoneNumberId":"677680658761861","additionalFields":{},"recipientPhoneNumber":"={{ $('WhatsApp Trigger').item.json.messages[0].from }}"}


node_type: n8n-nodes-base.if
template_name: 🎓 Learn API Fundamentals with an Interactive Hands-On Tutorial Workflow
node_name: IF Authorized
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ca861c2d-78d9-403b-8bab-28d8e7dcf39c","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.headers['x-api-key'] }}","rightValue":"super-secret-key"}]}}


node_type: n8n-nodes-base.if
template_name: 🎓 Learn API Fundamentals with an Interactive Hands-On Tutorial Workflow
node_name: IF extra cheese
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"ca861c2d-78d9-403b-8bab-28d8e7dcf39c","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.query.extra_cheese }}","rightValue":"your-api-key-for-example"}]},"looseTypeValidation":true}


node_type: n8n-nodes-base.respondToWebhook
template_name: 🎓 Learn API Fundamentals with an Interactive Hands-On Tutorial Workflow
node_name: Respond with Secret
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{},"respondWith":"json","responseBody":"{\n  \"dish\": \"The Chef's Special Truffle Pasta\"\n}"}


node_type: n8n-nodes-base.respondToWebhook
template_name: 🎓 Learn API Fundamentals with an Interactive Hands-On Tutorial Workflow
node_name: Respond: Unauthorized (401)
complexity: medium
use_cases: []
created_at: 2026-05-02 08:04:52
parameters_json:
  {"options":{"responseCode":401},"respondWith":"text","responseBody":"You are not authorized to see the secret dish."}


# templates

name: Discover & Enrich Decision-Makers with Apollo and Human Verification
author_name: Uche Madu
author_username: uchemadu
categories: []
created_at: 2025-05-02T10:16:09.559Z
updated_at: 2025-05-02T10:16:09.559Z
url: https://n8n.io/workflows/3830
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  🧩 What This Workflow Does
  This workflow automates the process of identifying and enriching decision-maker contacts from a list of companies. By integrating with Apollo's APIs and Google Sheets, it streamlines lead generation, ensures data accuracy through human verification, and maintains an organized leads database.

  📚 Use Case
  Ideal for sales and marketing teams aiming to:
  Automate the discovery of key decision-makers (e.g., CEOs, CTOs).
  Enrich contact information with LinkedIn profiles, emails, and phone numbers.
  Maintain an up-to-date leads database with minimal manual intervention.
  Receive weekly summaries of newly verified leads.

  🧪 Setup
  1. Google Sheets Preparation:

  Use the following pre-configured Google Sheet: Company Decision Maker Discovery Sheet.
  This spreadsheet includes the necessary tabs and columns: Companies, Contacts, and Contacts (Verified).
  It also contains a custom onEdit Apps Script function that automatically updates the Status column to Pending whenever the Domain field is modified.
  To review or modify the script, navigate to Extensions &gt; Apps Script within the Google Sheet.

  2. Credentials Setup:

  Configure the following credentials in your n8n instance:
  	Google Sheets: To read from and write to the spreadsheet.
  	Slack: To send verification prompts and weekly reports.
  	Apollo: To access the Organization Search, Organization Enrichment, People Search, and Bulk People Enrichment APIs.
  	LLM Service (e.g., OpenAI): To generate company summaries and determine departments based on job titles.

  3. Workflow Configuration:

  Import the workflow into your n8n instance.
  Update the nodes to reference the correct Google Sheet and Slack channel.
  Ensure that the Apollo and LLM nodes have the appropriate API keys and configurations.

  4. Testing the Workflow:

  Add a new company entry in the Companies tab of the Google Sheet.
  Verify that the workflow triggers automatically, processes the data, and updates the Contacts and Contacts (Verified) tabs accordingly.
  Check Slack for any verification prompts and confirm that weekly reports are sent as scheduled.

nodes_used:
  ["n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.slack","n8n-nodes-base.googleSheets","n8n-nodes-base.filter","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge"]

workflow_json_compressed:
  [encoded data, 9932 characters]

metadata_json:
  {"categories":["Data Processing","Marketing"],"complexity":"medium","use_cases":["automate lead discovery","enrich decision maker data","verify contact information","identify key stakeholders","manage prospect database"],"estimated_setup_minutes":35,"required_services":["Apollo","Google Sheets"],"key_features":["automated lead generation","data enrichment","human verification integration","batch processing","filtering decision makers"],"target_audience":["sales teams","marketing teams","business development professionals"]}


name: Message Buffer System with Redis for Efficient Processing
author_name: Edisson Garcia
author_username: eagarciah707
categories: []
created_at: 2025-05-02T13:42:05.798Z
updated_at: 2025-05-02T13:42:05.798Z
url: https://n8n.io/workflows/3832
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  🚀 Message-Batching Buffer Workflow (n8n)

  This workflow implements a lightweight message-batching buffer using Redis for temporary storage and a JavaScript consolidation function to merge messages. It collects incoming user messages per session, waits for a configurable inactivity window or batch size threshold, consolidates buffered messages via custom code, then clears the buffer and returns the combined response—all without external LLM calls.

  🔑 Key Features

  Redis-backed buffer** queues incoming messages per context_id.
  Centralized Config Parameters** node to adjust thresholds and timeouts in one place.
  Dynamic wait time** based on message length (configurable minWords, waitLong, waitShort).
  Batch trigger** fires on inactivity timeout or when buffer_count ≥ batchThreshold.
  Zero-cost consolidation** via built-in JavaScript Function (consolidate buffer)—no GPT-4 or external API required.

  ⚙️ Setup Instructions

  Extract Session & Message

     Trigger: When chat message received (webhook) or When clicking ‘Test workflow’ (manual).
     Map inputs: set variables context_id and message into a Set node named Mock input data (for testing) or a proper mapping node in production.

  Config Parameters

     Add a Set node Config Parameters with:

            minWords: 3         # Word threshold
       waitLong: 10        # Timeout (s) for long messages
       waitShort: 20       # Timeout (s) for short messages
       batchThreshold: 3   # Messages to trigger batch early
          All downstream nodes reference these JSON values dynamically.

  Determine Wait Time

     Node: get wait seconds (Code)
     JS code:

            const msg = $json.message || '';
       const wordCount = msg.split(/\s+/).filter(w =&gt; w).length;
       const { minWords, waitLong, waitShort } = items[0].json;
       const waitSeconds = wordCount &lt; minWords ? waitShort : waitLong;
       return [{ json: { context_id: $json.context_id, message: msg, waitSeconds } }];
       
  Buffer Message in Redis

     Buffer messages: LPUSH buffer_in:{{$json.context_id}} with payload {text, timestamp}.
     Set buffer\_count increment: INCR buffer_count:{{$json.context_id}} with TTL {{$json.waitSeconds + 60}}.
     Set last\_seen: record last_seen:{{$json.context_id}} timestamp with same TTL.

  Check & Set Waiting Flag

     Get waiting\_reply: if null, Set waiting\_reply to true with TTL {{$json.waitSeconds}}; else exit.

  Wait for Inactivity

     WaitSeconds (webhook): pauses for {{$json.waitSeconds}} seconds before batch evaluation.

  Check Batch Trigger

     Get last\_seen and Get buffer\_count.
     IF (now - last_seen) ≥ waitSeconds * 1000 OR buffer_count ≥ batchThreshold, proceed; else use Wait node to retry.

  Consolidate Buffer

     consolidate buffer (Code):

            const j = items[0].json;
       const raw = Array.isArray(j.buffer) ? j.buffer : [];
       const buffer = raw.map(x =&gt; {
         try { return typeof x === 'string' ? JSON.parse(x) : x;
         } catch { return null; }
       }).filter(Boolean);
       buffer.sort((a, b) =&gt; new Date(a.timestamp) - new Date(b.timestamp));
       const texts = buffer.map(e =&gt; e.text?.trim()).filter(Boolean);
       const unique = [...new Set(texts)];
       const message = unique.join(' ');
       return [{ json: { context_id: j.context_id, message } }];
       
  Cleanup & Respond

     Delete Redis keys: buffer_in, buffer_count, waiting_reply, last_seen (for the context_id).
     Return consolidated message to the user via your chat integration.

  🛠 Customization Guidance

  Adjust thresholds* by editing the *Config Parameters** node.
  Change concatenation** (e.g., line breaks) by modifying the join separator in the consolidation code.
  Add filters** (e.g., ignore empty or system messages) inside the consolidation Function.
  Monitor performance**: for very high volume, consider sharding Redis keys by date or user segments.

  © 2025 Innovatex • Automation & AI Solutions • innovatexiot.carrd.co • LinkedIn

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.noOp","n8n-nodes-base.code","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.set","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.wait","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.redis","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.redis","n8n-nodes-base.noOp","n8n-nodes-base.wait","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.set","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 6008 characters]

metadata_json:
  {"categories":["Data Processing"],"complexity":"medium","use_cases":["batch message processing","post-batch consolidation","temporary state management","session message aggregation"],"estimated_setup_minutes":30,"required_services":["Redis"],"key_features":["Redis-backed buffer","JavaScript message consolidation","configurable inactivity threshold","session-based aggregation","no LLM dependency"],"target_audience":["developer","system architect"]}


name: Retrieve NASA space weather & asteroid data with GPT-4o-mini and Telegram
author_name: Ghufran Ridhawi
author_username: ghufran-ridhawi
categories: []
created_at: 2025-05-02T14:29:24.567Z
updated_at: 2025-05-02T14:29:24.567Z
url: https://n8n.io/workflows/3834
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who is this for?

  This workflow is intended for researchers, educators, developers, media publications, scientists, engineers, science teachers, researchers & scientists in the fields of astronomy, astrophysics, and space weather, science journalists & content creators, educators & education platform managers, data analysts & data engineers in the space research sector, museum managers or public science institutions and professions that use space data who want and need to automate workflows involving NASA space data, facilitate access to NASA science data without manual coding, increase the efficiency of research/education teams until they can be combined with other tools. In reality, data if processed and work on data one by one is very time-consuming and tiring, especially if we have to compile it first and send it. This is also a form of devotion to the community at n8n and the n8n company, as well as devotion to scientists, teachers, developers, education and media publications so that the reality is no longer tiring and is able to answer the problems of existing reality.

  How it works?

  Easy explanation:
  1) The First Nodes Telegram Trigger is used to receive data that is delivered to the next Nodes. It is like inputting information or instructions to the AI ​​Agent and the AI ​​Agent will process it.

  2) After that, the AI ​​Agent will accept to work together with the AI ​​Model, in this case I chose OpenAI because of its capabilities.
  3) After that, the AI ​​Agent will carry out its task, namely taking data from each NASA Node that I have set up.
  4) Then, after the NASA Nodes send and are received and then processed by the AI ​​Agent, the AI ​​Agent will send it to the last node, namely Telegram, which receives and sends the results of the AI ​​Agent's task.
  5) You can immediately see the data in a mature manner, because the data has been processed. If you want to process it again, just direct this AI System to process it again.
  6) And all tasks and responsibilities are completed

  It is very practical and easy, plus its automated nature. I'm sure you can understand it wisely.

  Set up instructions

  Complete what is in the nodes as stated in the notes column. 

  1) First you have to connect Telegram "Credential Account" to the nodes.
  2) Second, Next I set up using "Define below" it's like customization, because the output that is issued later will be in accordance with the existing trigger. Here I have set it up so just use it.
  3) Then, the AI ​​Model that fits the purpose and has the capability is the OpenAI Model. Here you need to create or connect a "Credential Account" and just choose the model. Here I have set up with a wise and capable choice.
  4) Next, for each NASA Nodes, you must create or connect a "Credential Account" (Using only one Credential Account). Here, just follow the instructions of the module that has been given n8n, it makes it very easy.
  5) Finally, for the Telegram node action, you only need to connect the "Credential Account" that you have created on the first Telegram node.

  Everything has been set up wisely, so you just have to follow the notes or setup instructions given, or you can add other things according to your specific purpose and congratulations you are ready to use it.

  Requirements

  As a reminder:

  It must be set in each node, such as what your goals are, also according to the conditions of your goals.
  There must be (If not, make sure it is registered) in each "Credential Account" by following the guide on how to do it n8n the guide is very complete
  Don't forget to save, and make sure the workflow is active.

  How to customize this workflow to your needs


  You can directly add nodes to store them again in the 2nd data layer. Prepare a knowledge base for your purposes in additional nodes, so that the accuracy is also high when performing tasks and answering them, and in accordance with the objectives of the task and responsibilities.

nodes_used:
  ["n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","n8n-nodes-base.nasaTool","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.telegramTrigger","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE62XW08bRxTHv8pqnz107heeSkjToiqkKlHaqIqqMzNn7G3sXcteSCLEd+9ZQ7gYk2SBF2PWZ8/85j/nNud1k+v9Gv6bvXfT93+/O5uH+fK9qCf1Anuo98/rpl330CY8Gux0QB21LFx74FisCU7qjJLnoKJwGVXKKmdhpArOIZcJPWotJRiwAIX89rhYzqHHwxXm9Qn2p8vDjp5gj7RAvzrFi0ndwgJptV+xr15CDxHWWL18c/z7UXV8cHJQ/dX0s+otznG6gkUFba7eLLE9OKpedxnnwxowXdf7/3wgT/Rk+Hp+uU/tRXHOWpZDlky7UhiEnJnhLkQuFAoF9fX6B+seV12Tq2Ps2ItV92mNg/Mvy+HH1rds450NeHstrOFt1w2rL7t10zddS8sywfnEck4kSyBY2uWKcM4vLt28o/82huJickXorSqqRMtC9pppFT2DBIohx2yCFCUE9wDhKyQJR/Ip4vNj+CLnwQkdmRc6M62NYGAyMHA+W2OVMN7e8F0e2m/NdFadLAmvOulXCIvHqOj8CMoUwOssPMsQONOR9IzGOcYlcMAspPFlm/KoJbcUmi0F/upLdTLr0seRoJ5P9BgxnZAJklMkplcDpmaBu0iKmmgUqIBSbGO+hikRdks4paQ4XHXrddNOR3KO1nPQksIvMxudZ9rownz0lEE8+ChCKSDyNuhx1zelSbBZc+SBy7FKZsW1NBZZ0p4Ag0IGEhwTIHnxTioZ0zbgn5CbDV31Aud99Us7G+rcAtv+MfE5ClcpZRVPjrxaik9nPPM8eaZKEYFbz4WGbdyTbg4rosTVFPsmVX/Aiv7MR5ckNbokBVOEKZlSSFBJshZYFFwwV3iUUmA0D8G+oo+xfKMrZpJOFSDxrAc6epWRUfZLZkH4KLWXlFe3KuZRdTC9c8Q/E9ZPN2hUAKZpBk27B1d2dwLTDnTfhdsLN5E5VByFFJmkFkWmS4OOnlE5t5Z0DMrwG7yrRnY4g/6mm32Hc74YzDdvNlu4hvLI/ICYe/Kal2fvrOCS8keSnBqA+RCIV5pgRAzF463TPqFa+XC69Fc9+u2qmU5xtQ2nr7T8hHHWdR83E0bEwkt2gSEWZDqFwiJNFCxY46IrYLEM/e+HtyPQ5RRVYi6qwDRFBIuBcyZNkYFLVBBvdYJXTdusZ99oo193tBWzcsdOrEZprUNKlkRpA9qQpNwwm6UVOaBLI3fiIRmeLBPOkDLKegqkEpl0yXE0MWbQtw+mSR+/DEX44QRcb2yuTG6fDNWyidT3wqZOHfVIyon9un44HwNkF7kpLFs9dAhJs0KRROwxx+TRAO7mlONBrX4CKNUHFSMmZtBHinQK94icgiQm5Eq7UJLdCaoeB8ooTB5HSiEjTUrU05QjSYWhOcEUz4ojVjMMr0nsJNWjSe1TOKPlGEEOeUay6pRoOCw0gFlP6iZBFS/knZxmvKJKPoXUZ1Fw0HG4mlAy0VRDCRpYiCpmG6yXFneSivGk4VGakjWkvjmjlQrM1zip19j3NOttXsXPmE6HBd6sMhXW/fpMDD7OLt/f1B+ZC00ZjkJFDDcJUzjdKaSitMzeuEQhtRmJCKLFNLjaOL4s6PRlQa2F6OnmNOxxZ+fcmEzohpjxc73PLz58IIRrs10+7tfXnT6uzW75uHR+775DFtD82w9jxLdhv1ptr3V/Xnmyy/tN/NLl0LJPaaq4evY933fNd3PfGbKfDL7rwvtMAt+/Az6T453Xtmfyvfuu9awht2Oefyb/37jePHGFi4v/AWP+aI43EgAA

metadata_json:
  {"categories":["AI/ML","Data Processing","Science"],"complexity":"medium","use_cases":["Retrieve NASA space data","Analyze asteroid information","Monitor space weather","Generate science content","Send automated alerts"],"estimated_setup_minutes":15,"required_services":["NASA APIs","OpenAI (GPT-4o-mini)","Telegram"],"key_features":["Data retrieval from NASA","AI-powered data analysis","Automated messaging","Structured output formatting","Multi-step orchestration"],"target_audience":["scientists","engineers","educators"]}


name: Analyze Google Sheets Data with OpenAI-powered Data Agent
author_name: ozkary
author_username: ozkary
categories: []
created_at: 2025-05-02T18:52:11.348Z
updated_at: 2025-05-02T18:52:11.348Z
url: https://n8n.io/workflows/3835
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Welcome to Ozki Your Data Analyst Agent V1.

  The Ozki Data Analyst Agent is designed to analyze data from Google Sheets. To use it, you'll need to provide the URL of your Google Sheet file. The agent will then process the data and provide you with analysis results, including key performance indicators (KPIs).

  Configuration:

  Configure your credentials on the OpenAI model or select the n8n free OpenAI credits.
  Set up your agent memory. Use Simple Memory as default.
  Set your credentials to Google Sheets. Log in with the Google Sheet tool.

  Instructions:

  Start with a "Hi" to get the instructions.
  Ozki needs your Google Sheet URL, which you can get from the address bar of your browser when you have the file open.
  Follow the conversation with Ozki for your data analysis results.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.googleSheetsTool"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Data Processing","Business Intelligence"],"complexity":"medium","use_cases":["Extract KPIs from spreadsheets","Perform data analysis","Generate insights from data"],"estimated_setup_minutes":10,"required_services":["OpenAI","Google Sheets"],"key_features":["Automated data analysis","AI-driven insights","KPI extraction","Memory for context retention"],"target_audience":["Data analysts","Business owners"]}


name: Google Autocomplete Keyword Scraper
author_name: Ludovic Bablon
author_username: ludoeducatif
categories: []
created_at: 2025-05-02T19:04:08.683Z
updated_at: 2025-05-02T19:04:08.683Z
url: https://n8n.io/workflows/3836
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who is this template for?

  This workflow template is built for SEO specialists and digital marketers looking to uncover keyword opportunities effortlessly.

  It uses Google's autocomplete magic to help you spot what's trending.

  How it works

  Just give it a keyword.

  The workflow then queries Google and collects all autocomplete suggestions by appending every letter from A to Z to your keyword.

  Output example with the keyword "n8n" :



  You can sort these keywords and give them to an LLM to produce entity-enriched text.

  Setup instructions

  It works right out of the box. 🛠️

  However, you may want to tweak the output format to better fit your use case.

  Exporting the Keywords

  You can easily add a node to export the keywords in various ways:

  via a webhook
  by email
  as a file (e.g., saved to Google Drive)
  directly to a website

  Adapting the Language

  Autocomplete results depend on the selected language.

  You can change the &hl=en parameter in the Google Autocomplete node.  

  Replace the "en" part with the language code of your choice.

  Examples:  
  &hl=fr → French  
  &hl=es → Spanish  
  &hl=de → German

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Marketing","Data Processing"],"complexity":"medium","use_cases":["SEO keyword research","trending topic discovery","content idea generation","competitor analysis","search volume estimation"],"estimated_setup_minutes":5,"required_services":["Google Search"],"key_features":["automated autocomplete scraping","alphabetical suffix iteration","batch processing","code execution customization"],"target_audience":["SEO specialists","digital marketers","content strategists"]}


name: Automated Resume Screening & Ranking with Llama 4 AI and Google Workspace
author_name: Sean Lon
author_username: seanlon
categories: []
created_at: 2025-05-03T05:42:29.439Z
updated_at: 2025-05-03T05:42:29.439Z
url: https://n8n.io/workflows/3838
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  Target Audience
  You will find this workflow or template perfect if you are in the internal talent acquisition teams, recruitment agencies, HR professionals, and hiring managers seeking to bulk automate the initial screening of CVs and resumes.
   Eg. Automatically get result of candidate who has been  shortlisted/rejected with its rationale and score automatically.

  By eliminating manual evaluation and screening,  you get smart AI-Agent helping you to have standardized efficient, and scalable solution for handling large volumes of applications. 

  With bulk automation, you can focus strategic decision-making rather than tedious screening tasks, ensuring a faster, more accurate, and fair hiring process.  
  Key focus 
  This workflow focusses on having a more organized file-folder management, trackable candidate cv, maintainable job description, autonomous ai-agent.
  Organized Folder-File Structure – CVs are automatically categorized based on their status, ensuring a structured workflow and easy retrieval

  Candidate Tracker – A real-time tracking system records the state of each CV, allowing recruiters to monitor the shortlisted, rejected, or KIV (Keep in View) candidates.

  AI Agent for Decision Automation – The AI autonomously orchestrates screening decisions, replacing manual LLM configurations with dynamic AI-driven evaluations for scalability and accuracy.

  Maintainable Job Description Management – A structured job description file ensures continuous updates, keeping hiring criteria flexible and aligned with recruitment needs.

  Email Notifications – The system automatically sends receipt confirmations upon processing completion, providing timely updates to recruiters.

  Features - Workflow 
  Automated Resume Screening Workflow  

  This workflow leverages Groq Llama4 for intelligent resume analysis, speeding the screening process by generating a matching score, result (shortlisted/rejected/kiv), and key insights/rationale into their suitability for provided job description.  
  Step-by-Step Process:  

  Monitors Google Drive:** Listens and checks for new resume cv in google drive   .  
  Retrieve Resume:** Downloads the CV resumes from google drive .  
  Extract Resume Data:* Extract *text content** from CV resume PDF files  
  Extract Job Description Data:* Extract *text content** from job description

  Analyze with Groq:**  
    Generate a matching score based on job requirements.  [SCORE: 1-10]
    Provide decision into their job suitability.  [SHORTLISTED/REJECTED/KIV]
    Provide actionable insights into their job suitability.  [REASON]

  This ensures a fast, efficient, and accurate screening process, eliminating manual evaluation. 

  Setup Guide
  Step-by-Step Instructions   
  Ensure all credentials are ready and setup (groq, gdrive ,gmail, gsheet, gdoc)
  View official n8n documentation on node setup accordingly.
  See also the notes of setup .
  Folder & File Setup    
  1. Create a google-drive folder like this
   
  View directory example

  2. Create a job description like this
   
  View file example

  3. Configure a tracker like this ( Candidate Name, AI Score,AI Verdict, AI Reason)
   
  View file example
    email conversations report as you like.

  You are ready to go!

   

nodes_used:
  ["n8n-nodes-base.googleDocs","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.extractFromFile","n8n-nodes-base.gmailTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatGroq"]

workflow_json_compressed:
  [encoded data, 5544 characters]

metadata_json:
  {"categories":["Human Resources","AI/ML"],"complexity":"medium","use_cases":["screening resumes","rank candidates","automate recruitment","evaluate CVs"],"estimated_setup_minutes":15,"required_services":["Google Workspace","Groq"],"key_features":["AI-powered resume analysis","candidate ranking","automated shortlisting","rejection rationale"],"target_audience":["HR professionals","talent acquisition teams","recruitment agencies"]}


name: Analyze Competitor Facebook Ads with AI (GPT-4 & Gemini) & Email Reports
author_name: SamirLiu
author_username: samir
categories: []
created_at: 2025-05-03T07:56:47.137Z
updated_at: 2025-05-03T07:56:47.137Z
url: https://n8n.io/workflows/3839
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Facebook Ads Competitor Creative Analysis & Automated Email Report

  📝 What this workflow does

  This workflow automates the process of competitor creative analysis for Facebook Pages. When a user submits their email and a target Facebook Page URL via a web form, the workflow:

  Scrapes the latest image and video Facebook ads from the submitted Page using Apify.
  Deduplicates and selects the top 5 image and top 5 video ads for further analysis.
  Applies advanced AI analysis:
    Uses OpenAI Vision (GPT-4) to analyze image ads.
    Uses Google Gemini to analyze video ads.
  Aggregates all ad insights and generates a structured, visually engaging creative analytics report.
  Sends the report directly to the user’s email with ad previews and detailed creative evaluation.

  👥 Who is this for?

  Marketers** and agencies conducting competitor research on Facebook.
  Brand managers** who want quick, actionable insights into rival ad creative.
  Growth hackers** and performance advertisers analyzing top-performing creative trends.
  Anyone** in need of an automated, AI-based Facebook ad evaluation and reporting tool using n8n.

  🎯 What problem does this workflow solve?

  Manual ad analysis is time-consuming:** Scraping, filtering, and reviewing Facebook competitor ads by hand is labor-intensive.
  Creative insight requires expertise:** Understanding the message, visuals, and targeting of competitor ads needs marketing/creative skill.
  Lack of automated reporting:** Easily and visually summarize findings for yourself or stakeholders—without manual collation or formatting.

  This workflow provides a turnkey, end-to-end solution for competitor creative analysis, combining real ad data with unbiased, AI-driven creative insights in a shareable email format.

  ⚙️ Setup instructions (About 10-15 minutes)

  Before using this AI marketing automation tool, you'll need:
  Add api key to environment variable
  Add required credentials

  🔧 How to Customize This Workflow

  Adapt Image/Video Analysis Goals:** Modify the prompts or parameters sent to OpenAI Vision and Gemini to suit your specific analysis objectives—e.g., evaluate branding consistency, detect call-to-action effectiveness, or extract emotional tone.
  Revise Email Report Design:** Customize the formatting, insights, and visuals in the delivered report to match your organization’s standards or stakeholder preferences.
  Expand Input Fields:** Add more fields to the user-facing form, such as a competitor list, campaign dates, or target audience details, for more granular analysis.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserAutofixing","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.removeDuplicates","n8n-nodes-base.removeDuplicates","n8n-nodes-base.limit","n8n-nodes-base.limit","n8n-nodes-base.formTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Marketing","Data Processing"],"complexity":"medium","use_cases":["monitor competitor ad campaigns","automate creative analysis","generate email reports"],"estimated_setup_minutes":30,"required_services":["Apify","OpenAI Vision","Gmail","GoHighLevel"],"key_features":["automated web scraping","AI-powered creative analysis","email reporting","data deduplication"],"target_audience":["marketing teams","ad buyers","business owners"]}


name: Automated AI Content Creation & Instagram Publishing from Google Sheets
author_name: Onur
author_username: onurpolat05
categories: []
created_at: 2025-05-03T08:06:31.593Z
updated_at: 2025-05-03T08:06:31.593Z
url: https://n8n.io/workflows/3840
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:24:25
description:
  Automated AI Content Creation & Instagram Publishing from Google Sheets

  This n8n workflow automates the creation and publishing of social media content directly to Instagram, using ideas stored in a Google Sheet. It leverages AI (Google Gemini and Replicate Flux) to generate concepts, image prompts, captions, and the final image, turning your content plan into reality with minimal manual intervention.

  Think of this as the execution engine for your content strategy. It assumes you have a separate process (whether manual entry, another workflow, or a different tool) for populating the Google Sheet with initial post ideas (including Topic, Audience, Voice, and Platform). This workflow takes those ideas and handles the rest, from AI generation to final publication.

  What does this workflow do?

  This workflow streamlines the content execution process by:

  Automatically fetching** unprocessed content ideas from a designated Google Sheet based on a schedule.
  Using Google Gemini to generate a platform-specific content concept (specifically for a 'Single Image' format).
  Generating two distinct AI image prompt options based on the concept using Gemini.
  Writing an engaging, platform-tailored caption (including hashtags) using Gemini, based on the first prompt option.
  Generating a visual image using the first prompt option via the Replicate API (using the Flux model).
  Publishing* the generated image and caption directly to a connected *Instagram Business account**.
  Updating the status** in the Google Sheet to mark the idea as completed, preventing reprocessing.

  Who is this for?

  Social Media Managers & Agencies:** Automate the execution of your content calendar stored in Google Sheets.
  Marketing Teams:** Streamline content production from planned ideas and ensure consistent posting schedules.
  Content Creators & Solopreneurs:** Save significant time by automating the generation and publishing process based on your pre-defined ideas.
  Anyone** using Google Sheets to plan social media content and wanting to automate the creative generation and posting steps with AI.

  Benefits

  Full Automation:** From fetching planned ideas to Instagram publishing, automate the entire content execution pipeline.
  AI-Powered Generation:** Leverage Google Gemini for creative concepts, prompts, and captions, and Replicate for image generation based on your initial topic.
  Content Calendar Execution:** Directly turn your Google Sheet plan into published posts.
  Time Savings:** Drastically reduce the manual effort involved in creating visuals and text for each planned post.
  Consistency:** Maintain a regular posting schedule by automatically processing your queue of ideas.
  Platform-Specific Content:** AI prompts are designed to tailor concepts, prompts, and captions for the platform specified in your sheet (e.g., Instagram or LinkedIn).

  How it Works

  Scheduled Trigger: The workflow starts automatically based on the schedule you set (e.g., every hour, daily).
  Fetch Idea: Reads the next row from your Google Sheet where the 'Status' column indicates it's pending (e.g., '0'). It only fetches one idea per run.
  Prepare Inputs: Extracts Topic, Audience, Voice, and Platform from the sheet data.
  AI Concept Generation (Gemini): Creates a single content concept suitable for a 'Single Image' post on the target platform.
  AI Prompt Generation (Gemini): Develops two detailed, distinct image prompt options based on the concept.
  AI Caption Generation (Gemini): Writes a caption tailored to the platform, using the first image prompt and other context.
  Image Generation (Replicate): Sends the first prompt to the Replicate API (Flux model) to generate the image.
  Prepare for Instagram: Formats the generated image URL and caption.
  Publish to Instagram: Uses the Facebook Graph API in three steps:
      Creates a media container by uploading the image URL and caption.
      Waits for Instagram to process the container.
      Publishes the processed container to your feed.
  Update Sheet: Changes the 'Status' in the Google Sheet for the processed row (e.g., to '1') to mark it as complete.

  n8n Nodes Used

  Schedule Trigger
  Google Sheets (Read & Update operations)
  Set (Multiple instances for data preparation)
  Langchain Chain - LLM (Multiple instances for Gemini calls)
  Langchain Chat Model - Google Gemini (Multiple instances)
  Langchain Output Parser - Structured (Multiple instances)
  HTTP Request (for Replicate API call)
  Wait
  Facebook Graph API (Multiple instances for Instagram publishing steps)

  Prerequisites

  Active n8n instance (Cloud or Self-Hosted).
  Google Account** with access to Google Sheets.
  Google Sheets API Credentials (OAuth2):** Configured in n8n.
  A Google Sheet** structured with columns like Topic, Audience, Voice, Platform, Status (or similar). Ensure your 'pending' and 'completed' statuses are defined (e.g., '0' and '1').
  Google Cloud Project** with the Vertex AI API enabled.
  Google Gemini API Credentials:** Configured in n8n (usually via Google Vertex AI credentials).
  Replicate Account** and API Token.
  Replicate API Credentials (Header Auth):** Configured in n8n.
  Facebook Developer Account**.
  Instagram Business Account** connected to a Facebook Page.
  Facebook App** with necessary permissions: instagram_basic, instagram_content_publish, pages_read_engagement, pages_show_list.
  Facebook Graph API Credentials (OAuth2):** Configured in n8n with the required permissions.

  Setup

  Import the workflow JSON into your n8n instance.
  Configure Schedule Trigger: Set the desired frequency (e.g., every 30 minutes, every 4 hours) for checking new ideas in the sheet.
  Configure Google Sheets Nodes:
      Select your Google Sheets OAuth2 credentials for both Google Sheets nodes.
      In 1. Get Next Post Idea..., enter your Spreadsheet ID and Sheet Name. Verify the Status filter matches your 'pending' value (e.g., 0).
      In 7. Update Post Status..., enter the same Spreadsheet ID and Sheet Name. Ensure the Matching Columns (e.g., Topic) and the Status value to update match your 'completed' value (e.g., 1).
  Configure Google Gemini Nodes: Select your configured Google Vertex AI / Gemini credentials in all Google Gemini Chat Model nodes.
  Configure Replicate Node (4. Generate Image...): Select your Replicate Header Auth credentials. The workflow uses black-forest-labs/flux-1.1-pro-ultra by default; you can change this if needed.
  Configure Facebook Graph API Nodes (6a, 6c):
      Select your Facebook Graph API OAuth2 credentials.
      Crucially, update the Instagram Account ID in the Node parameter of both Facebook Graph API nodes (6a and 6c). The template uses a placeholder (17841473009917118); replace this with your actual Instagram Business Account ID.
  Adjust Wait Node (6b): The default wait time might be sufficient, but if you encounter errors during publishing (especially with larger images/videos in the future), you might need to increase the wait duration.
  Activate the workflow.
  Populate your Google Sheet: Ensure you have rows with your content ideas and the correct 'pending' status (e.g., '0'). The workflow will pick them up on its next scheduled run.

  This workflow transforms your Google Sheet content plan into a fully automated AI-powered Instagram publishing engine. Start automating your social media presence today!

   

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.wait","n8n-nodes-base.facebookGraphApi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 10244 characters]

metadata_json:
  {"categories":["Social Media Marketing","Content Creation","AI/ML"],"complexity":"medium","use_cases":["auto-generate social posts from ideas","create AI-powered Instagram content","automate content publishing schedules","extract ideas from spreadsheets"],"estimated_setup_minutes":80,"required_services":["Google Sheets","Google Gemini AI","Replicate Flux","Instagram","Facebook Graph API","n8n"],"key_features":["generates image prompts and images","writes AI captions and posts","fetches data from spreadsheets","schedules automated publishing"],"target_audience":["social media managers","content creators"]}


name: Extract & Analyze Brand Content with Bright Data and Google Gemini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-03T13:17:38.073Z
updated_at: 2025-05-03T13:17:38.073Z
url: https://n8n.io/workflows/3846
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who this is for?

  The Brand Content Extract, Summarization & Sentiment Analysis workflow is designed for professionals and teams who need to monitor, understand, and act on public brand perception at scale. 

  It is ideal for:

  Brand Managers - Looking to track how their brand is portrayed online.

  Marketing Analysts - Seeking insights from competitor and industry content.

  PR & Communications Teams - Evaluating media tone and potential reputation risks.

  Data Scientists & AI Developers - Automating content intelligence pipelines.

  Growth Hackers - Performing large-scale web listening for campaign optimization.

  What problem is this workflow solving?

  Manually tracking and interpreting how your brand is mentioned across blogs, news sites, or product reviews is labor-intensive and unscalable. Traditional scraping tools return raw data but lack insights like summarization, sentiment analysis etc.

  This workflow addresses:

  Scalable extraction of brand-related content using Bright Data's infrastructure.

  Textual data extract for easy decision-making or alerting.

  Automated summarization of verbose or multi-paragraph articles using Gemini.

  Sentiment analysis of how a brand is being portrayed.

  What this workflow does

  Receives input: A brand URL for the data extraction and analysis.

  Uses Bright Data's Web Unlocker to extract content from relevant sites.

  Cleans and preprocesses the scraped content for readability.

  Sends the content to Google Gemini for:

  	Enriched results including:

  		Cleaned content

  		Summary

  		Sentiment Analysis

  		Sends the response to a target system via Webhook notification
  		Perists the response to disk

  Setup

  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the 
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  A Google Gemini API key (or access through Vertex AI or proxy).
  Update the Set URL and Bright Data Zone for setting the brand content URL and the Bright Data Zone name.
  Update the Webhook HTTP Request node with the Webhook endpoint of your choice.

  How to customize this workflow to your needs

  Update Source** : Update the workflow input to read from Google Sheet or Airbase for dynamically tracking multiple brands or topics.
  AI Prompt Customization** : Tailor Gemini prompts for: 
  	Summary length (brief vs. detailed)

  	Detailed Sentiment with the custom structured data format.

  	Brand-specific tone detection (e.g., trust, excitement, dissatisfaction)

  Output Destinations**: Configure the output node to send the responses to various platforms, such as Slack, CRM systems, or databases.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.readWriteFile","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4584 characters]

metadata_json:
  {"categories":["Marketing","Data Processing","AI/ML"],"complexity":"medium","use_cases":["monitor brand perception","summarize public content","analyze sentiment","extract key insights","identify reputation risks"],"estimated_setup_minutes":25,"required_services":["bright_data","google_gemini","file_storage"],"key_features":["web_scrapping","ai_summarization","sentiment_analysis","automated_reporting","data_extration_func"],"target_audience":["brand MANAGERS","marketing ENTRERS","data ANALYTICS SPECIALISTS"]}


name: Convert PDF to PNG with PDF.co API (Multi-Page Support)
author_name: Ludwig
author_username: ludwig
categories: []
created_at: 2025-05-03T16:37:39.983Z
updated_at: 2025-05-03T16:37:39.983Z
url: https://n8n.io/workflows/3847
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Page2Image: Convert PDF to PNG Workflow (Multi-Page Support)

  How It Works
  This workflow automatically converts each page of a multi-page PDF into high-quality PNG images. It uses the PDF.co API in the background to process the PDF and generate individual images for every page. The entire process is streamlined, making it ideal for converting documents quickly and efficiently.

  Set Up Steps
  Create a PDF.co Account: Sign up for a PDF.co account and get your API Key. This will be required for authentication.

  Import the Workflow into n8n: Add the workflow to your n8n instance.

  Enter Your API Key: In the workflow, enter your PDF.co API Key to authenticate the process.

  Test the Workflow: Run the workflow, and check that each page of the sample PDFs has been converted to a PNG image.

  Replace the sample PDFs with your own PDFs and get started automatically converting your PDFs to images!

  Setup should take just a few minutes, assuming you already have your PDF.co API Key.

  Getting Started
  This workflow requires PDF.co’s API for converting PDF pages into PNG images. You’ll need an active PDF.co account and your unique API Key. Once you have that, just plug it into the workflow, and you’re ready to convert multi-page PDFs into PNGs instantly!

  Customizing the Workflow
  The workflow currently uses sample PDF files to demonstrate the conversion process. To make it work for your use case, replace the sample PDF logic with your own logic to retrieve PDFs. Whether the PDFs are uploaded, fetched from a URL, or pulled from a storage service, just plug your retrieval method into the workflow, and it will handle the conversion seamlessly.

  API Reference
  The PDF.co Web API is REST-based, ensuring secure and efficient communication. All requests are transmitted over HTTPS to protect your data.

  To use the API, you simply authenticate with your API Key and make requests to initiate the conversion. For this workflow, your API Key allows seamless communication with PDF.co to convert PDF pages into images.

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.compression","n8n-nodes-base.aggregate","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.html","n8n-nodes-base.splitOut","n8n-nodes-base.limit","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Document Processing","Image Generation"],"complexity":"medium","use_cases":["batch document conversion","image extraction from PDF","multi-page PDF processing","document digitization"],"estimated_setup_minutes":15,"required_services":["PDF.co API"],"key_features":["multi-page PDF handling","high-quality image output","batch processing automation","API integration"],"target_audience":["document specialists","automation engineers","content processors"]}


name: Build a Document QA System with RAG using Milvus, Cohere, and OpenAI for Google Drive
author_name: Aitor | 1Node
author_username: aitoralonso
categories: []
created_at: 2025-05-03T17:38:37.716Z
updated_at: 2025-05-03T17:38:37.716Z
url: https://n8n.io/workflows/3848
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:19
description:
  Template Description

  This template creates a powerful Retrieval Augmented Generation (RAG) AI agent workflow in n8n. It monitors a specified Google Drive folder for new PDF files, extracts their content, generates vector embeddings using Cohere, and stores these embeddings in a Milvus vector database. Subsequently, it enables a RAG agent that can retrieve relevant information from the Milvus database based on user queries and generate responses using OpenAI, enhanced by the retrieved context.

  Functionality

  The workflow automates the process of ingesting documents into a vector database for use with a RAG system.

   Watch New Files: Triggers when a new file (specifically targeting PDFs) is added to a designated Google Drive folder.

   Download New: Downloads the newly added file from Google Drive.

   Extract from File: Extracts text content from the downloaded PDF file.

   Default Data Loader / Set Chunks: Processes the extracted text, splitting it into manageable chunks for embedding.

   Embeddings Cohere: Generates vector embeddings for each text chunk using the Cohere API.

   Insert into Milvus: Inserts the generated vector embeddings and associated metadata into a Milvus vector database.

   When chat message received: Adapt the trigger tool to fit your needs. 
   RAG Agent: Orchestrates the RAG process.

   Retrieve from Milvus: Queries the Milvus database with the user's chat query to find the most relevant chunks.

  Memory: Manages conversation history for the RAG agent to optimize cost and response speed.

  OpenAI / Cohere embeddings: Uses ChatGPT 4o for text generation.

  Requirements

  To use this template, you will need:

  An n8n instance (cloud or self-hosted).

  Access to a Google Drive account to monitor a folder.

  A Milvus instance or access to a Milvus cloud service like Zilliz. 

  A Cohere API key for generating embeddings.

  An OpenAI API key for the RAG agent's text generation.

  Usage

  Set up the required credentials in n8n for Google Drive, Milvus, Cohere, and OpenAI.

  Configure the "Watch New Files" node to point to the Google Drive folder you want to monitor for PDFs.

  Ensure your Milvus instance is running and the target cluster is set up correctly.

  Activate the workflow.

  Add PDF files to the monitored Google Drive folder. The workflow will automatically process them and insert their embeddings into Milvus.

  Interact with the RAG agent. The agent will use the data in Milvus to provide context-aware answers.

  Benefits

  Automates document ingestion for RAG applications.

  Leverages Milvus for high-performance vector storage and search.

  Uses Cohere for generating high-quality text embeddings.

  Enables building a context-aware AI agent using your own documents.

  Suggested improvements
  Support for More File Types:** Extend the "Watch New Files" node and subsequent extraction steps to handle various document types (e.g., .docx, .txt, .csv, web pages) in addition to PDFs.

  Error Handling and Notifications:** Implement robust error handling for each step of the workflow (e.g., failed downloads, extraction errors, Milvus insertion failures) and add notification mechanisms (e.g., email, Slack) to alert the user.

  Get in touch with us

  Contact us at https://1node.ai 

nodes_used:
  ["@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.embeddingsCohere","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.googleDriveTrigger","n8n-nodes-base.googleDrive","@n8n/n8n-nodes-langchain.vectorStoreMilvus","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.vectorStoreMilvus","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.embeddingsCohere","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.extractFromFile","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML"],"complexity":"medium","use_cases":["RAG agent creation","PDF document processing","AI-powered document retrieval","vector database management"],"estimated_setup_minutes":15,"required_services":["Google Drive","Cohere","Milvus","OpenAI"],"key_features":["file monitoring","PDF text extraction","vector embedding generation","contextual retrieval","AI response generation"],"target_audience":["AI developers","retrieval experts","data engineers"]}


name: Extract Business Leads from Reddit using GPT-4.1-mini Analysis and Google Sheets
author_name: Ari Nakos
author_username: just-aristides
categories: []
created_at: 2025-05-03T18:09:18.082Z
updated_at: 2025-05-03T18:09:18.082Z
url: https://n8n.io/workflows/3849
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:19
description:
  This n8n workflow automates lead generation by searching Reddit for relevant posts based on keywords, filtering them, using OpenRouter AI to analyze and summarize content, and logging the findings (link, summary, etc.) to Google Sheets.

  Watch the full setup tutorial on how I setup this ETL pipeline using n8n: 
  https://youtu.be/F3-fbU3UmYQ

  Required Authentication:

  To run this workflow, you need to set up credentials in n8n for:

  Reddit: Uses OAuth 2.0. Requires creating an app on Reddit to get a Client ID & Secret. (YT Tutorial for Reddit App Creation: https://youtu.be/zlGXtW4LAK8) 
  OpenRouter: Uses an API Key. Generate this key directly from your OpenRouter account settings. (YT Tutorial : https://youtu.be/Cq5Y3zpEhlc)
  Google Sheets: Uses OAuth 2.0. Requires setup in Google Cloud Console (enable Sheets API, create OAuth Client ID with n8n redirect URI) to get a Client ID & Secret.

  Ensure these credentials are created and selected in the respective n8n nodes (Get Posts, OpenRouter Chat Model nodes, Output The Results).

nodes_used:
  ["n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.merge","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.reddit","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.set"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","Marketing"],"complexity":"medium","use_cases":["Extract lead information from social media","Monitor public conversations for sales opportunities","Automate lead qualification and organization"],"estimated_setup_minutes":15,"required_services":["OpenRouter","Google Sheets"],"key_features":["keyword-based search on Reddit","AI-powered content summarization","automated lead categorization","spreadsheet data logging"],"target_audience":["Marketers","Sales agents"]}


name: Automate Etsy Data Mining with Bright Data Scrape & Google Gemini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-03T23:15:27.321Z
updated_at: 2025-05-03T23:15:27.321Z
url: https://n8n.io/workflows/3851
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:19
description:
  Who this is for?
  The Automate Etsy Data Mining with Bright Data Scrape & Google Gemini workflow is designed for eCommerce analysts, product researchers, and AI developers seeking to extract actionable insights from Etsy listings at scale. 

  It is ideal for:

  eCommerce Entrepreneurs** - Researching product demand and competition.

  Market Analysts** - Tracking pricing, reviews, and trends across Etsy categories.

  Product Managers** - Identifying niche opportunities and design inspirations.

  Data Scientists & AI Engineers** - Automating product intelligence pipelines.

  Growth Hackers** - Leveraging Etsy insights to refine product-market fit.

  What problem is this workflow solving?
  Manually browsing Etsy to analyze product listings, pricing, reviews, and seller activity is slow, inconsistent, and unscalable. Scraping Etsy requires unlocking JavaScript-heavy content and structuring noisy data for analysis.

  This workflow solves:

  Automated and scalable scraping of Etsy product listings using Bright Data’s infrastructure.

  A fully paginated data structured Estry production data extraction via the Google Gemini LLM.

  Enables faster decision-making for product research and competitive analysis via the fully automated paginated data extraction.

  What this workflow does

  Receives input: Sets the Esty URL for the data extraction and analysis.

  Uses Bright Data's Web Unlocker to extract content from relevant sites.

  Cleans and preprocesses the scraped content for readability.

  Sends the content to Google Gemini for:

  	Enriched results including:

  		Data persistence over the disk.

  		Sends the response to a target system via Webhook notification.

  Setup

  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the 
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  A Google Gemini API key (or access through Vertex AI or proxy).
  Update the Set Esty Search Query for setting the brand content URL and the Bright Data Zone name.
  Update the Webhook HTTP Request node with the Webhook endpoint of your choice.

  How to customize this workflow to your needs

  Input Sources** : Replace the static URL with dynamic input from Google Sheets, Webhook, or Airtable to research multiple niches.

  Prompt Customization** : Adjust Gemini prompts to extract specific insights for example:

  	List key features of the product

  	Summarization of the review themes
  Data Output Options** : Update the Webhook notification to save data to:

  	Google Sheets
  	Notion or Airtable
  	SQL/NoSQL
  	Slack/Email

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.stickyNote","n8n-nodes-base.readWriteFile","n8n-nodes-base.function","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4400 characters]

metadata_json:
  {"categories":["Data Processing","E-commerce","AI/ML"],"complexity":"medium","use_cases":["Extract Etsy product data","Mine marketplace trends","Analyze competitor pricing","Generate product insights","Track market demand"],"estimated_setup_minutes":15,"required_services":["Etsy","Bright Data","Google Gemini"],"key_features":["Scrape Etsy listings","Process large datasets","AI-generated insights","Batch processing","Custom data extraction"],"target_audience":["eCommerce analysts","product researchers","AI developers"]}


name: Multi-Level WordPress Blog Generator with PerplexityAI Research & OpenAI Content
author_name: Daniel Ng
author_username: danielng
categories: []
created_at: 2025-05-03T23:29:56.750Z
updated_at: 2025-05-03T23:29:56.750Z
url: https://n8n.io/workflows/3852
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  WordPress Auto-Blogging Pro v2 \- with DEEPER RESEARCH \- Advanced Content Automation

  (This version is an upgrade from v1: WordPress Auto-Blogging Pro \- with DEEP RESEARCH \- Content Automation Machine v1)

  Take your content automation to unprecedented depths\! This v2 template enhances the acclaimed "WordPress Auto-Blogging Pro \- with DEEP RESEARCH" by introducing Deeper Research, a multi-level research capability designed to generate exceptionally comprehensive, long-form content like detailed articles, reports, and even e-books. 

  If you need more than just standard blog posts and crave truly authoritative, data-driven content generated automatically, this workflow is built for you. It optionally goes beyond simple topic research by breaking down subjects into sub-topics, and then further into sub-sub-topics, conducting real-time online research (powered by the Research Tool Sub-Flow using PerplexityAI) at each stage. This ensures unparalleled depth and coverage, perfect for tackling complex subjects. Combined with enhanced automation features for batch processing, categorization, tagging, linking, and image generation (using OpenAI's latest image model gpt-image-1 accessed via API), this is the ultimate engine for serious content automation on WordPress.

  It operates using a three-flow system: a Trigger Flow acts as a scheduler and dispatcher, a powerful Main Flow executes the complex content generation process, and a dedicated Research Tool Sub-Flow handles interactions with PerplexityAI.

  Visit AI Automation Pro’s website for more powerful n8n templates.

  What problem is this workflow solving? / Use cases

  Standard content automation often struggles with producing truly in-depth, comprehensive content on complex or rapidly evolving topics. This workflow addresses that challenge by:

  Automating Multi-Level Research:** Optionally eliminates the manual effort required to deeply research topics, sub-topics, and sub-sub-topics, ensuring content is thorough and well-supported when needed.  
  Generating Long-Form Content:** Enables the creation of detailed articles, comprehensive reports, or even initial e-book drafts automatically.  
  Scaling Content Production:** Efficiently handles lists of topics from Google Sheets, processing them sequentially for reliable, automated content creation over time.  
  Enhancing SEO Automatically:** Integrates best practices like sitemap-based internal linking, external source linking, automatic categorization, tag generation/management, and Table of Contents generation (with “Deeper Research” articles).  
  Streamlining Complex Tasks:** Combines research (basic or deep), writing, image generation, SEO optimization, publishing, and comprehensive backup (Google Docs, Drive, Sheets) into a single, automated system.

  Ideal use cases include creating cornerstone content, detailed guides, industry reports, niche site authority building, and automating the production of deeply researched articles where maximum depth is required.

  Who is this for?

  This advanced workflow is designed for demanding users who require robust, comprehensive content automation:

  Content Marketers & Strategists:** Needing to produce authoritative, long-form content at scale, with options for varying research depth.  
  SEO Professionals:** Aiming to build topical authority with well-researched, structured, and highly optimized content featuring strong internal/external linking.  
  Niche Site Builders & Affiliates:** Seeking to dominate specific topics with comprehensive guides and articles.  
  Agencies:** Managing large-scale content production for clients requiring in-depth material.  
  Researchers & Analysts:** Looking to automate the drafting of reports or summaries based on online data.  
  Power Users of v1:** Ready to upgrade to the next level of research depth, flexibility, and automation features.

  Unique Features

  This v2 workflow introduces significant upgrades and retains the best features of v1:



  Conditional Deeper Research:** Choose per-topic whether to activate multi-level research (topic \-\&gt; sub-topic \-\&gt; sub-sub-topic) for maximum depth or use standard chapter-level research.  
  Modular Three-Flow Architecture:** Robust system with a Trigger Flow for scheduling, a Main Flow for generation, and a dedicated Research Tool Sub-Flow.  
  Table of Contents Generation:** Automatically creates a ToC for improved readability and SEO on long articles.  
  Latest AI Image Models:** Optimized for high-quality images using OpenAI's latest model (gpt-image-1 via API), with easy node setup to switch to alternatives.  
  Automatic Categorization & Tag Management:** AI assigns posts to the most relevant existing WordPress category and creates/assigns relevant tags.  
  Dual Trigger Options:** Use Google Sheets for batch processing lists of topics or n8n's Native Form for single, ad-hoc topic submission.  
  Batch Topic Processing:** Handles multiple topic inputs efficiently via the Trigger Flow loop, processing them sequentially with status tracking.  
  Advanced External & Internal Linking:** Automatically inserts relevant internal links (from sitemap) and external source links (from research).  
  Comprehensive Backup System:** Saves final content in multiple formats and locations: Markdown to Google Docs, Images to Google Drive, Final URLs and details to Google Sheets.  
  Centralized Control Interface:** Google Sheets acts as the primary interface for bulk input, parameter setting (like Have Deeper Research), and status monitoring.  
  Direct WordPress Integration:** Seamlessly publishes content, metadata, tags, categories, and images.  
  Rate-Limit Aware:** Includes configurable Wait nodes to prevent API errors during intensive processing.  
  Robust Error Catching:** Uses 'If' nodes to validate AI outputs and ensure smooth data flow.

  How this workflow works



  This template utilizes three interconnected n8n flows: a Trigger Flow, a Main Flow, and a Research Tool Sub-Flow, orchestrated primarily via Google Sheets.

  1\. Trigger Flow (Scheduler & Dispatcher):

  Trigger:** Activates via a Schedule (e.g., every 10 minutes) to check for new tasks OR via a direct n8n Form submission.  
  Select Topics:** Reads rows from a specific Google Sheet (e.g., Deeper Research - Create Topics \-\&gt; Create Topic sheet) where the Status column is 'To Do'.  
  Loop & Dispatch:* Processes each 'To Do' topic one by one. For each topic, it executes the *Main Flow**, passing the topic details and parameters.  
  Wait:** Pauses for a configurable duration (default: 1 hour) after each topic's processing is initiated by the Sub-Workflow, helping manage API limits and pacing.

  2\. Main Flow (Content Generation Engine):

  Trigger:** Starts when called by the Trigger Flow.  
  Setup:** Receives topic parameters (Topic, Audience, Style, Word Count, Have Deeper Research flag, etc.) from the Trigger Flow. Updates the topic's Status to 'In Progress' in the Google Sheet.  
  Internal Link Gathering:** Fetches your website's sitemap XML, parses it, and extracts a set number (e.g., up to 50\) of internal URLs for later use.  
  Initial Research & Planning:* Executes the *Research Tool Sub-Flow** to perform initial online research on the main topic. An AI Agent ("Blog Planner") then uses this research to outline the entire article: Title, Subtitle, Introduction, Slug, Meta Description, Tags, Chapter outlines, and prompts for chapter/featured images.  
  Conditional Content Creation (Based on Have Deeper Research flag):**  
    If YES: Executes the Deeper Research path: Loops through planned chapters \-\&gt; Executes Research Tool Sub-Flow for Chapter Research \-\&gt; AI splits chapter into subchapters \-\&gt; Loops through subchapters \-\&gt; Executes Research Tool Sub-Flow for Subchapter Research \-\&gt; AI ("Subchapter Copywriter") writes detailed content for each subchapter \-\&gt; Aggregates subchapters back into the main chapter content.  
    If NO: Executes the Standard Research path: Loops through planned chapters \-\&gt; Executes Research Tool Sub-Flow for Main Chapter Research \-\&gt; AI ("Chapter Copywriter") writes content for each chapter.  
  Image Generation & Upload:** Generates images (using OpenAI's gpt-image-1 or equivalent via HTTP Request) for each main chapter and a featured image. Resizes images and uploads them to both your WordPress Media Library and a specified Google Drive folder.  
  Tag Management:** Checks if the AI-generated tags exist in WordPress. Creates new tags if necessary and retrieves the IDs for all relevant tags.  
  Article Assembly:** Combines Introduction, finalized chapter content (from either research path), Conclusion, CTA, etc., into a complete article structured in Markdown format (using a Code node).  
  HTML Conversion:** Converts the final Markdown content to HTML suitable for WordPress.  
  Backup \- Google Docs:* Saves the final Markdown version of the article as a new document in a specified Google Drive folder. *Note:** saving to Google Docs only works on "My Drive" and will NOT work on a Shared Drive due to Google Drive API restrictions.  
  Publish to WordPress:** Creates a new post on your WordPress site with the Title, HTML content, Slug, assigned Category (auto-detected or default), Tag IDs, and sets the generated Featured Image. Also sets the Meta Description and Post Excerpt.  
  Backup \- Google Sheets:** Saves the final details (Published URL, Markdown, HTML, Tags, Meta info, Slug, Excerpt, etc.) to a dedicated sheet (e.g., Final Blogs) within your main Google Sheet workbook.  
  Final Status Update:** Updates the topic's Status to 'Done' in the original Create Topic sheet.

  3\. Research Tool Sub-Flow (PerplexityAI Interaction):

  Trigger:** Starts when called by the Main Flow.  
  Setup:** Receives parameters like the research query, model (sonar or sonar-deep-research), system message, and max tokens.  
  API Call:** Makes a POST request to the PerplexityAI API with the provided parameters and authentication.  
  Response Handling:** Extracts the content from the API response.  
  Output:** Returns the research content back to the calling Main Flow.

  Requirements

  n8n Instance**.  
  OpenAI API Key:** Or equivalent credentials for a powerful text generation model (default to GPT-4o) and an image generation model (like gpt-image-1, compatible with OpenAI node or direct HTTP Request).  
  Perplexity API Key:** Or equivalent for an online research tool API (used via HTTP Request node in the Research Tool Sub-Flow).  
  WordPress Website:** REST API enabled, with an Application Password granting permissions to create/edit posts, upload media, manage categories, and manage tags. Needs an accessible post-sitemap.xml.  
  Google Account:** For Google Sheets (trigger, control parameters, status tracking, backup), Google Drive (image/text backup), and Google Docs (Markdown backup).

  Setup Step-by-Step

  Import Workflows: Download the three .json files (Trigger Flow, Main Flow, Research Tool Sub-Flow) and import them into your n8n instance. Name them clearly (e.g., "WP Deeper Research \- Trigger Flow", "WP Deeper Research \- Main Flow", "WP Deeper Research \- Research Tool Sub-Flow").  
  Configure Google Sheet:  
     Clone or create a Google Sheet workbook (e.g., Deeper Research - Create Topics).  
     Ensure two sheets within it: Create Topic and Final Blogs.  
     Set up required columns in Create Topic (e.g., Topic, Status, Have Deeper Research, Audience, Style, etc. \- match these exactly to the names used in the workflow nodes).  
     Set up columns in Final Blogs for backup (e.g., Topic Name, Final URL, Markdown, HTML, etc. \- match workflow nodes).  
     Update all Google Sheets nodes in the Trigger Flow and Main Flow to point to the correct Workbook Name, Sheet Name, and ensure column names match.  
  Link Flows:  
     In the Trigger Flow, locate the "Execute Workflow" node (e.g., "Execute Workflow \- Create A Topic"). Edit this node and select the imported Main Flow from the dropdown.  
     In the Main Flow, locate all "Execute Workflow" nodes that perform research. Edit these nodes and select the imported Research Tool Sub-Flow from the dropdown.  
  Configure Credentials: In n8n, add credentials for: OpenAI, PerplexityAI, WordPress (using Application Password), Google (ensure Sheets, Drive, Docs permissions).  
  Connect Workflow Nodes: Open all three workflows. Go through each node requiring authentication (OpenAI, Perplexity HTTP Request, WordPress, Google Sheets, Google Drive, Google Docs) and assign the correct credential. Pay close attention to HTTP Request nodes, ensuring API keys are correctly placed.  
  Configure Triggers: In the Trigger Flow, configure the Schedule Trigger interval (default 10 mins) or the n8n Form Trigger fields as needed. Ensure only one trigger is active unless you intend both.  
  Customize Inputs & Parameters: Review key nodes:  
     Trigger Flow: Adjust Wait time if needed.  
     Main Flow: Verify Website URL (for sitemap), AI prompts (Planner, Copywriters), default Category ID, internal link limit, image sizes.  
     Research Tool Sub-Flow: Review default model (sonar), system message, max tokens if needed.  
  Test Connections: Perform test runs on individual nodes within each workflow (e.g., read Google Sheet, call Perplexity via Research Tool Sub-Flow, connect to WordPress) to verify credentials and configurations.  
  Initial Test Run: Add one test topic to your Create Topic sheet (set Status to 'To Do', specify 'Yes' or 'No' for Have Deeper Research). Manually trigger the Trigger Flow once (or wait for the schedule). Verify the process completes and check outputs (WordPress post, Google Drive folder, Google Doc, Final Blogs sheet, Create Topic status update).  
  Activate Workflows: Toggle the "Active" switch ON for the Trigger Flow in your n8n instance. The Sub-Workflows should remain inactive as they are triggered by other flows.  
  Start Automating: Add content topics to the Create Topic sheet (set Status='To Do'), and the scheduled Trigger Flow will pick them up.

  Tips for Pros

  Control Research Depth:** Use the Have Deeper Research column ('Yes'/'No') in your Google Sheet to control the level of research per topic, optimizing for cost and complexity where needed.  
  AI Model Selection:** Experiment with different models in the AI/Image nodes. An alternative to OpenAI’s image model is Flux.1, which can yield superior images. For research, test Perplexity's sonar-deep-research model (by passing it as a parameter to the Research Tool Sub-Flow if needed) if the standard sonar isn't deep enough.  
  Wait Times:** Adjust the Trigger Flow's "Wait" node duration based on your API plan limits, the typical runtime of the Main Flow, and desired posting frequency.  
  Prompt Engineering:** Refine the prompts within the Main Flow's AI nodes (Blog Planner, Chapter/Subchapter Copywriters, Image Prompts) and the Research Tool Sub-Flow's system message to fine-tune the output style, tone, structure, and image relevance.  
  Sitemap Accessibility:** Ensure your post-sitemap.xml is publicly accessible and correctly formatted for the parsing node to work reliably for internal linking.

  Important Considerations

  API Costs:** Deep research (especially the sub-sub-topic level) and generating multiple high-quality images per post can consume significant API credits. Monitor your costs closely. Use the Have Deeper Research flag wisely.  
  API Rate Limits:** Even with Wait nodes, high volume can hit API rate limits. Be aware of your plan limits (OpenAI, Perplexity) and adjust workflow timing (schedule interval, wait time) accordingly.  
  Sub-Workflow Runtime:** The Main Flow can take a considerable amount of time to run, especially with Deeper Research enabled. Factor this into scheduling and expectations.  
  Tool Dependencies:** The workflow relies heavily on the specific functionalities and APIs of OpenAI, Perplexity, Google Workspace, and WordPress. Changes in these platforms might require workflow adjustments.  
  Initial Setup Complexity:** Due to the advanced features, three-flow structure, and multiple integrations, the initial setup requires careful configuration of credentials, node settings (especially Google Sheets names/columns), and workflow linking. Test thoroughly.  
  For inquiries about this template, please contact AI Automation Pro.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.formTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.manualTrigger","n8n-nodes-base.executeWorkflow","n8n-nodes-base.wait","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.editImage","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.merge","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.aggregate","n8n-nodes-base.switch","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.merge","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.editImage","n8n-nodes-base.googleDrive","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.xml","n8n-nodes-base.splitOut","n8n-nodes-base.limit","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.aggregate","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.googleDocs","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.markdown","n8n-nodes-base.set","n8n-nodes-base.googleDocs","n8n-nodes-base.wordpress","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.convertToFile","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9880 characters]

metadata_json:
  {"categories":["AI/ML","Content Creation","Marketing"],"complexity":"complex","use_cases":["generate long-form comprehensive content","research topics deeply across multiple levels","automate WordPress blog posts","create detailed SEO-optimized articles","research and publish content automatically"],"estimated_setup_minutes":180,"required_services":["WordPress","PerplexityAI","OpenAI"],"key_features":["multi-level deep research capability","AI-powered content generation","customizable research depth","automated WordPress publishing","SEO-optimized content structure"],"target_audience":["content creators","marketers","wordpress administrators"]}


name: Structured Data Extract & Data Mining with Bright Data & Google Gemini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-03T23:44:32.500Z
updated_at: 2025-05-03T23:44:32.500Z
url: https://n8n.io/workflows/3853
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who this is for?
  The Structured Data Extract & Data Mining workflow is crafted for researchers, content analysts, SEO strategists, and AI developers who need to transform semi-structured web data (like markdown content or scraped HTML) into actionable structured datasets. 

  It is ideal for:

  Content Analysts** - Organizing and mining large volumes of markdown or HTML content.

  SEO & Trend Researchers** - Exploring topics by location and category.

  AI Engineers & NLP Developers** - Looking to automate insight extraction from unstructured inputs.

  Growth Marketers** - Tracking topic-level trends for strategic campaigns.

  Automation Specialists** - Streamlining workflows from scrape to storage.

  What problem is this workflow solving?

  Extracting insights from markdown or HTML documents typically requires manual review, formatting, and parsing. This becomes unscalable when dealing with large datasets or when real-time response is needed. Additionally, trend and topic extraction usually involves external tools, custom scripts, and inconsistent formatting.

  This workflow solves:

  Automatic text extraction from markdown or structured content.

  Location and category-based trend mining with semantic grouping.

  AI-driven topic extraction and summarization

  Real-time notification via webhook with rich structured payloads.

  Persistent storage of mined data to disk for audits or further processing.

  What this workflow does

  Receives input: Sets the URL for the data extraction and analysis.

  Uses Bright Data's Web Unlocker to extract content from relevant sites.

  A Markdown/Text Extractor node parses the content into clean plaintext

  The cleaned data is passed to Google Gemini to:

  	Identify trends by location and category

  	Extract key topics and themes

  	Format the response into structured JSON

  	The structured insights are sent via Webhook Notification to external systems (e.g., Slack, Web apps, Zapier)

  	The final output is saved to disk

  Setup

  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the 
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  A Google Gemini API key (or access through Vertex AI or proxy).
  Update the Set URL and Bright Data Zone for setting the brand content URL and the Bright Data Zone name.
  Update the Webhook HTTP Request node with the Webhook endpoint of your choice.

  How to customize this workflow to your needs

  Update Source** : Update the workflow input to read from Google Sheet or Airbase for dynamically tracking multiple brands or topics.
  Gemini Prompt Customization** : 
  	Extract trends within a custom category (e.g., E-commerce design patterns in the US)

  	Output topics with popularity metrics

  	Structure the output as per your database schema (e.g., [{ topic, trend_score, location }])

  Webhook Output** : Send notifications to -

  	Slack – with AI summaries in rich blocks
  	Internal APIs – for use in dashboards

  	Zapier/Make – for multi-step automation

  Persistence**
  	Save output to:

  		Remote FTP or SFTP storage
  		Amazon S3, Google Cloud Storage etc.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.readWriteFile","n8n-nodes-base.function"]

workflow_json_compressed:
  [encoded data, 4568 characters]

metadata_json:
  {"categories":["Data Processing"],"complexity":"medium","use_cases":["Extract structured data from HTML/Markdown","Clean and transform unstructured web content","Mine content by location and category","Feed semantic data into AI models"],"estimated_setup_minutes":30,"required_services":["HTTP/Webhooks","lmChatGoogleGemini","Bright Data"],"key_features":["Extract structured data from semi-structured HTML and Markdown","Leverage Google Gemini for semantic analysis","Connect to web data sources via HTTP/Webhooks","Process data locally and write to files"],"target_audience":["Content Analysts","SEO Strategists","AI Developers"]}


name: Google Trend Data Extract & Summarization with Bright Data & Google Gemini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-04T00:11:41.788Z
updated_at: 2025-05-04T00:11:41.788Z
url: https://n8n.io/workflows/3854
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:19
description:
  Who this is for
  The Google Trend Data Extract & Summarization workflow is ideal for trend researchers, digital marketers, content strategists, and AI developers who want to automate the extraction, summarization, and distribution of Google Trends data. This end-to-end solution helps transform trend signals into human-readable insights and delivers them across multiple channels.

  It is built for:

  Market Researchers** - Tracking trends by topic or region

  Content Strategists** - Identifying content opportunities from trending data

  SEO Analysts** - Monitoring search volume and shifts in keyword popularity

  Growth Hackers** - Reacting quickly to real-time search behavior

  AI & Automation Engineers** - Creating automated trend monitoring systems

  What problem is this workflow solving?
  Google Trends data can provide rich insights into user interests, but the raw data is not always structured or easily interpretable at scale. Manually extracting, cleaning, and summarizing trends from multiple regions or categories is time-consuming.

  This workflow solves the following problems:

  Automates the conversion of markdown or scraped HTML into clean textual input

  Transforms unstructured data into structured format ready for processing

  Uses AI summarization to generate easy-to-read insights from Google Trends

  Distributes summaries via email and webhook notifications

  Persists responses to disk for archiving, auditing, or future analytics

  What this workflow does

  Receives input: Sets an URL for the data extraction and analysis.

  Uses Bright Data’s Web Unlocker to extract content from relevant site.

  Markdown to Textual Data Extractor: Converts markdown content into plaintext using n8n’s Function or Markdown nodes

  Structured Data Extract: Parses the plaintext into structured JSON suitable for AI processing

  Summarize Google Trends: Sends structured data to Google Gemini with a summarization prompt to extract key takeaways

  Send Summary via Gmail: Composes an email with the AI-generated summary and sends it to a designated recipient

  Persist to Disk: Writes the AI structured data to disk

  Webhook Notification: Sends the summarized response to an external system (e.g., Slack, Notion, Zapier) using a webhook

  Setup

  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the 
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  A Google Gemini API key (or access through Vertex AI or proxy).
  Update the Set URL and Bright Data Zone for setting the brand content URL and the Bright Data Zone name.
  Update the Webhook HTTP Request node with the Webhook endpoint of your choice.

  How to customize this workflow to your needs

  Update Source : Update the workflow input to read from Google Sheet or Airbase etc.
  Gemini Prompt Tuning : 
  Customize prompts to extract summaries like:
  	Summarize the most significant trend shifts
  	Generate content ideas from the trending search topics
  Email Personalization : Configure Gmail node to:
   Use dynamic subject lines like: Weekly Google Trends Summary – {{date}}
  Send to multiple stakeholders or mailing lists

  File Storage Customization : 
  Save with timestamps, e.g., trends_summary_2025-04-29.json
  Extend to S3 or cloud drive integrations
  Webhook Use Cases : 
  Send summary to:
  	Internal dashboards
  	Slack channels
  	Automation tools like Make, Zapier etc.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.httpRequest","n8n-nodes-base.function","@n8n/n8n-nodes-langchain.informationExtractor","@n8n/n8n-nodes-langchain.chainSummarization","n8n-nodes-base.httpRequest","n8n-nodes-base.readWriteFile","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.gmail"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","Marketing","AI/ML"],"complexity":"medium","use_cases":["extract Google Trends data","summarize trend insights","distribute reports to channels"],"estimated_setup_minutes":30,"required_services":["Google Trends API","Bright Data"],"key_features":["automated data extraction","AI-generated summaries","multi-channel distribution"],"target_audience":["market researchers","content strategists","AI developers"]}


name: 🚀 YouTube Comment Sentiment Analyzer with Google Sheets & OpenAI
author_name: Aayushman Sharma
author_username: ajstyle0411
categories: []
created_at: 2025-05-04T04:00:16.873Z
updated_at: 2025-05-04T04:00:16.873Z
url: https://n8n.io/workflows/3855
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  🚀 YouTube Comment Sentiment Analyzer with Google Sheets & OpenAI

  Who Should Use This?
  Influencers, marketers, and data teams who need instant insights into audience sentiment—without manual exports or scattered tools.

  The Challenge
  Manual exports** from YouTube Studio  
  Time-consuming** sentiment tagging  
  Data scattered** across multiple platforms  

  Our workflow automates everything: from fetching comments to logging analysis—so you can focus on insights, not spreadsheets.

  What You’ll Get
  Dynamic Input  
     Read a list of YouTube URLs from your Google Sheet.  
  Full Comment Harvest  
     Pull all top-level comments (handles pagination 100/page).  
  Deep Sentiment Scan  
     Classify each comment as Positive, Neutral, or Negative using OpenAI.  
  Smart Formatting  
     Capture metadata (author, likes, timestamp) alongside sentiment.  
  Seamless Storage  
     Append or update rows in your Google Sheet—ready for reporting.

  Easy Setup
  Prepare Google Sheet  
     Create a sheet with a video_urls column (full YouTube links).  
     Add and authorize a Google Sheets Oauth or service-account credential in n8n.  
  Enable YouTube API  
     Activate Data API v3 in Google Cloud, grab an API key, and save as an HTTP credential in n8n.  
  Configure OpenAI  
     Enter your API key under the “OpenAI Chat” credential in n8n.  
  Import the Workflow  
     Paste the provided JSON into n8n.  
  Run Manually  
     Use the Manual Trigger node to start fetching and analyzing comments on demand.

  Customize to Your Needs
  Filter Comments**: Add an IF node to process only comments with specific keywords or minimum likes.  
  Automate Schedule**: Swap the Manual Trigger for a Cron node if you later want periodic runs.  
  Extended Analysis**: Swap sentiment classification for topic extraction, summarization, or translation by tweaking the LLM prompt.  
  Alternate Destinations**: Replace Google Sheets with Airtable, Notion, or any database node.

  Tags
  `YouTube Google Sheets OpenAI Sentiment Analysis n8n Manual Trigger`  

nodes_used:
  ["n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.noOp","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.sentimentAnalysis","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.noOp","n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE9WY227bRhCGX2XBa627Jy6XvmpqoEGKNgbqHFAUQbCHWYmIRKok5dgxDOQx2tfLk3SWci3Z1tFFL6oLQaJ2Z74dzvwz1E1Whew0u7Jn+svPyr3/oeHq6vqnbJTNoLfZ6U1W1V1vaw+v0jrOogZjjdaqlFxHKJjiPmfSCwU6FIXTxpaa2zKqyGOhA+OMeSVzpTQrBdrtYTaf2h7OWgjdBfSL+VmDV6AHdNC3C7gdZbWdAXr7rVm8WTgguGAGdU8u8K0aPr2o7fT6C7TJnh132envH3BXEyB9vFmeiTnrQyFLWoCVVImYU1MaTUUsgiq0MABldu/rYj6tenK+6JPJ63m6VJuaDjapsx2cdGnFcsG86aq+amp0ZgQbUcXQ/dy2aKqHFhlubpdW3uG3YR2/Hd1hCaktvhzVtrSIFQpqtMppaZiLxkuRq7DCOp9D/eIVOZvYnvyCLNMV3vfI992KcWrrsZ/Yqj6ZztLyYWf1EJYzw0bc7Kc9Efe8nkOw0mpaRgdU8ZxRwzCMXsYIzoITwFe8rxuCjlubHI5IaEjd9JOqHm+Nat2czx9CysR4TESDMFFGF6lmHG90YSOaNopKFwJGlcUg3YrwJfTkXRWgIW/baUdi28zIy6YZT4FcTAC23//xsGhY0z0kpoIdlATqJL+HZtYznUtGPRYRxWLx1HhmqQkQBRc6RBZX0H4C/hOp4aonEXo/IakOSNURe2mrqXUI37Qp1lvpq/iE+RBksZYJzmIRKbz/0jGPmYBVZaAQNAgrjSsLH31xALKD2LRA+gkQv2jbVM7pp4PJuWaj/Sm8Dm5t4DwqQRFSIziWnCsKTnnOg9VMljzohwlypziYHhjWyyFbFpgtWxknfT//Ff5YQPdIHiTCYl7uz4wVrfKRgwuMgtCMKsgldV5o6oAHJ1B/iyhWtHdKSLp7bWwigUtor4lfHuIAxbjfPFjrqu6xbOgjRS5Kpn3uA9VOO6p0tBhxiDRK7yGW2Arkmmj82LQz1LdYwTRgSnekxVBW2B9I35DOXmLa1GRZfqTbWaMdPIo/ytVB6PJE3cNrHwSzGqhxHvNc+YJaLQIF6aUvcuxzpV3Bv6o7aHti60AW84CN7Z+4Hwy9XVh4cViVrgsLWKFYlIZypQXuFQ41xQkqtZOQGrcXa8Lydok8td1dmaagp0JN50nF+3G4+nFnhe44QKmOPoDGIcMa6VPQsVqFZ9Ra4ygWheNWOx+V2t9w+BEdJ/XwozqOZHmBGWJoYZyhSiqgzgmsWGtyy7QprZYrxPcTqImfVv4TcpFvX/98gzJBPjftpzhtPn/7+tdW1JmtF3b6pq3G42HWWdfv1CaPqkmFjaa0ZUGjx6EIxzZGyyCwJllhdB4AYg5r81CPvNfkddPD9lB2w6K05hGcSredP9W9zDd1nzTpNMu2kzLvncmDwc5S4sihLOq1Voqq0sngvfZQrjX0s6HRXCxQWbqO/ArdvMGSPLid5Icp9Ho/MYZFTAAcOCRDhdZ5iZH0keJYiT9hJvF1dVuLpDg+kpwnAUMVOy6UuNr6vrpEV9FOOxhlKI095t+wFa7AL5KH8zZgYp1mlzzZuFzuHyb9gjFWcFPQQkmcT1jqQiUrkSQvcE7lumSpZyJEDT6ZGgyvpmj8MsPWgkfAeTwd9MheNWwe4dNHgKvslN1++ICAT6dhdGOrj6mTLewY7q490+UTQ4/db8m0TUfd8Djx5ESj1fIDVGxjQHbNKpuw9tXKVic7J+ZNnp4xsW50vl88N3k/fMjf6PSArNnk9V/MMbuS439gNgXt8EFoU+yeN4hsBDk89balzt7xf1dcn//gs/E0RwVm7UC7Q7GN5T+JyP4/BTae/PgE3UT/jPl8A83t7d8qrLRIKhMAAA==

metadata_json:
  {"categories":["Marketing","Data Processing"],"complexity":"medium","use_cases":["analyze audience sentiment","extract YouTube comments","store analysis in spreadsheets","automate sentiment tracking","generate insight reports"],"estimated_setup_minutes":15,"required_services":["Google Sheets","OpenAI","YouTube Data API"],"key_features":["real-time comment monitoring","AI-powered sentiment analysis","automated data logging","conditional branching for results","batch processing support"],"target_audience":["marketers","influencers","data analysts"]}


name: OpenAI ImageGen1 via HTTP Request (Edit Image)
author_name: TechDennis
author_username: techdennis
categories: []
created_at: 2025-05-04T13:35:07.714Z
updated_at: 2025-05-04T13:35:07.714Z
url: https://n8n.io/workflows/3858
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Edit an existing image with OpenAI ImageGen1 via API Request

  Transform your creative pipeline by letting n8n call OpenAI ImageGen1’s edit image endpoint, automatically replacing or augmenting parts of any image you supply and returning a brand-new version in seconds. Designers, marketers, and product teams can eliminate repetitive manual edits and test more variations, faster.

  Who is this for?
  Content creators who need quick, on-brand image tweaks  
  Marketers running A/B visual tests at scale  
  Developers exploring the new ImageGen1 API inside low-code automations  

  Use case / problem solved
  Opening design software to mask, fill, or swap objects is slow and error-prone. This workflow feeds an input image plus a prompt to OpenAI ImageGen1, receives the edited output, and passes it on to any service you like—perfect for bulk-editing product shots, social visuals, or UI mocks.

  What this workflow does
  Read or receive the source image (Webhook → Binary Data).  
  Call OpenAI ImageGen1 with an HTTP Request node, sending the image and edit prompt.  
  Parse the JSON response to capture the returned image URL.  
  Download & hand off the edited file (e.g., upload to S3, post to Slack, or store in Drive).

  Setup
  Add your OpenAI API key in the API KEY node.  
  Follow the notes on the workflow for more information. 
  (Optional) Point the final node to your preferred storage or chat tool.  

  &gt; 📝 A sticky note in the workflow summarizes these steps and links to the OpenAI documentation.

  How to customize this workflow
  Trigger alternatives**: Replace the Chat with Google Drive, Airtable, etc.  
  Chained edits**: Loop the output back for successive prompts.  
  Conditional flows**: Add an If node to branch actions by image size or category.  

  With renamed nodes, color-coded sticky notes, and a concise setup guide, you’ll be editing images via OpenAI ImageGen1 in under five minutes—no code, maximum creativity.

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Creative","Marketing"],"complexity":"medium","use_cases":["edit existing images","generate image variations","augment visual content"],"estimated_setup_minutes":15,"required_services":["OpenAI ImageGen1"],"key_features":["API integration","image transformation","creative workflow automation"],"target_audience":["designers","content creators","marketers"]}


name: AI Customer Support Assistant · WhatsApp Ready · Works for Any Business
author_name: Matt F.
author_username: lemolex
categories: []
created_at: 2025-05-04T13:37:44.027Z
updated_at: 2025-05-04T13:37:44.027Z
url: https://n8n.io/workflows/3859
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:24:25
description:
  AI Customer-Support Assistant that auto-maps any business site, answers WhatsApp in real time, and lets you earn or save thousands by replacing pricey SaaS chat tools.

  ⚡ What the workflow does

  Live “AI employee”* - the bot crawls pages on demand (products, policies, FAQs) so you *never** upload documents or fine-tune a model.
  No-code setup** - Drop in API keys, paste your domain, publish the webhook—ready in \~15 min.
  Chat memory** - each conversation turn is written to Supabase/Postgres and automatically replayed into the next prompt, letting the assistant remember context so follow-up questions feel natural and coherent even across long sessions.
  WhatsApp ready** - Free-form replies inside the 24-hour service window, automatically switches to a template when required (recommended by Meta).

  🚀 Why you’ll love it

  | Benefit                   | Impact                                                                |
  | ------------------------- | --------------------------------------------------------------------- |
  | Zero content training | Point the AI Agent at any domain → go live.                            |
  | Save or earn money    | Replace pricey SaaS chat tools or sell white-label bots to clients. |
  | Channel-agnostic      | Ships with WhatsApp; swap one node for Telegram, Slack, or web chat.  |
  | Flexible voice        | Adjust tone & language by editing one prompt line.                    |

  🧰 Prerequisites (all free-tier friendly)

  OpenAI key
  Meta WhatsApp Cloud API number + permanent token (easy setup)
  Supabase (or Postgres) URL for chat memory (easy setup)

  🛠 5-step setup

  Import the template into n8n.
  Add credentials for OpenAI, WhatsApp, and Supabase.
  Enter your root domain in the root\_url variable.
  Point Meta’s Webhook to the n8n URL.
  Hit Execute Trigger and send “Hi” from WhatsApp—watch the bot answer with live data.

  🔄 Easy to extend

  Voice & language** – change wording in the System Prompt.
  Escalation** – add an “If fallback” branch → Zendesk, email, live agents.
  Extra channels** – duplicate the reply node for Telegram or Slack.
  Commerce API hooks** – plug in Shopify, Woo, Stripe for order status or payments.

  💡 Monetization ideas

  Replace costly SaaS seats.* Deploy the bot on your own server and *stop paying \$300–\$500 every month for third-party “AI support” platforms.
  Sell it as a service.* Spin up a branded instance for local shops, clinics, or e-commerce stores and *charge each client \$300–\$500 per month**—setup time is under 15 minutes.
  Upsell premium coverage (24/7 human hand-off) once the bot handles routine questions.
  Embed product links in answers and earn affiliate or upsell revenue automatically.

  Spin it up, connect a domain and a phone number, and you—or your customers—get enterprise-grade support without code, training, or ongoing licence fees.

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolHttpRequest","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.whatsAppTrigger","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.toolHttpRequest","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.whatsApp","n8n-nodes-base.whatsApp","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6624 characters]

metadata_json:
  {"categories":["AI/ML","Customer Support","Communication"],"complexity":"simple","use_cases":["automated whatsapp support","site content scraping","replace saaas chat tools","real time customer responses","knowledge base mapping"],"estimated_setup_minutes":15,"required_services":["WhatsApp Cloud API","Supabase","Postgres","HTTP API"],"key_features":["realtime chat memory","site crawling on demand","no document uploads needed","webhook deployment"],"target_audience":["customer support managers","small business owners","developers"]}


name: Automate Employee Onboarding with Slack, Jira, and Google Workspace Integration
author_name: Velebit from Innovatio
author_username: innovatio
categories: []
created_at: 2025-05-04T14:15:15.411Z
updated_at: 2025-05-04T14:15:15.411Z
url: https://n8n.io/workflows/3860
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Who is this for?

  This template is ideal for HR teams, startup founders, operations leads, remote-first companies, and freelancers managing onboarding manually or across multiple tools.

  Whether you’re hiring your first intern or streamlining onboarding for dozens of new team members, this workflow automates the entire trigger → task creation → onboarding delivery process using no-code tools connected via n8n.

  What problem does this solve?

  Employee onboarding is often fragmented and error-prone — involving Jira tasks, Slack DMs, file sharing, and email templates spread across different apps.

  This workflow connects it all, letting you create tasks, notify people, share folders, and message hires instantly — right when they’re marked as “Hired” in a Google Sheet or added to Slack.

  No more bouncing between 5 tabs. This is onboarding as a system.

  What this workflow does

  ✅ Watches a Google Sheet (or Slack trigger) for new hires  
  📋 Creates a Jira onboarding Epic with role-based subtasks  
  📂 Generates a Google Drive folder and shares it with the new hire  
  📬 Sends a personalized, HTML-formatted welcome email via Gmail  
  💬 Posts a Slack message in the #onboarding channel + DM to the hire  
  📊 Logs onboarding activity back to the Sheet (status, links, etc.)  
  🔁 Modular subtasks based on role/team (e.g. Dev vs Marketing vs Student)  
  🧠 Expressions, fallback logic, and Slack→Jira user ID mapping built-in

  Setup

  Create API credentials for:
     Slack
     Google Sheets
     Google Drive
     Jira Cloud
     Gmail (API or SMTP)

  Import the .json workflow into your n8n instance (Cloud or self-hosted)  
  Replace placeholder values (e.g. Project ID, Issue Type ID, folder path)  
  Customize onboarding messages, email HTML, and task logic  
  Test with included mock data (sample hire, Slack user, Jira user)  
  Activate your flow and start onboarding with one click

  🗒 Color-coded workflow notes

  This workflow uses Innovatio’s sticky note system to guide you visually:

  🟩 Green Notes → Main automation steps  
  🟦 Blue Notes → What to customize (IDs, prompts, expressions)  
  🟨 Yellow Notes → Optional logic and future upgrades  
  🟫 Gray Notes → Welcome + final “next steps” CTA

  Every group includes pre-filled nodes, dynamic expressions, and mock outputs so you can test quickly and scale confidently.

  How to customize this workflow?

  📂 Swap Google Sheets for Airtable (better for teams or approvals)  
  📅 Add 30/60/90-day check-ins via Google Calendar  
  🤖 Plug in OpenAI to generate onboarding subtasks by role  
  📬 Auto-assign mentors or SlackBot reminders after 7 days  
  📊 Push Sheet logs into Notion or your HR dashboard

  Need custom logic? Email me at velebit@innovatio.design

  Final notes

  This template was created by Velebit from Innovatio with modularity, scalability, and team experience in mind.

  All links included are official. No affiliate tracking, no sponsored content.

  📜 A separate commercial license applies to the purchase via Gumroad, which includes extended rights, usage for client work, and scaling strategies.

nodes_used:
  ["n8n-nodes-base.googleSheetsTrigger","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.jira","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.hubspotTrigger","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.code","n8n-nodes-base.jira","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.slackTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.jira","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.slack","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5032 characters]

metadata_json:
  {"categories":["Human Resources","Communication","Data Processing"],"complexity":"medium","use_cases":["automate employee account creation","create tasks in project tracking tools","send onboarding materials","centralize new hire information","trigger welcome emails"],"estimated_setup_minutes":15,"required_services":["Slack","Jira","Google Workspace","Google Drive","HubSpot","Spreadsheets"],"key_features":["multi-tool integration","trigger-based automation","task creation workflows","information centralization","conditional logic"],"target_audience":["HR teams","operations leads","startup founders"]}


name: Automatically Upload Scanned Documents to Nextcloud via ScanservJS
author_name: Joachim Hummel
author_username: jhummel
categories: []
created_at: 2025-05-04T14:31:11.628Z
updated_at: 2025-05-04T14:31:11.628Z
url: https://n8n.io/workflows/3861
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This workflow connects a USB scanner to Nextcloud via ScanservJS and the integrated API. It checks for new scans at a scheduled time (e.g., every 5 minutes). If there are any, they are automatically retrieved via HTTP request and then saved to a desired Nextcloud folder.

  Ideal for home offices, offices, or maker projects with Raspberry Pi and network scanners.



  Nodes used:

  Schedule Trigger – starts the flow cyclically

  HTTP Request – retrieves document data from ScanservJS

  Nextcloud Node – uploads the file directly to your Nextcloud account

  Requirements:

  Local installation of ScanservJS (e.g., on a Raspberry Pi)

  Configured USB scanner



  Nextcloud access with write permissions in the target folder

nodes_used:
  ["n8n-nodes-base.httpRequest","n8n-nodes-base.nextCloud","n8n-nodes-base.httpRequest","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE7VVXW/iRhT9K5a3TxEDM/bYHiPtw5a0ze5DFpVkVanNw50vcAu2a4/ZsMj/vXccEogCXfWhQkjMcObce47PHe/DQofT8KdPN3f5/eaX324/73blFxqOwo1xEE73YVG2DkplPnocpBnLuFSRoJylIEFnVidWS5mmOk+FjW0kuBQ8ozSXwmYyEqDBiFQlVOUCeZ3Z1GtwZtYY3S6M6+pZhTvGGSzgms70o7CEjcFqCwVlG2yrMphf/xx864Jb8+jUuuq054FlG05/f0B0pY3/uX/SkmRc08hGJOEqJ9xGnORKSMJTJpTSNlKZCl9q3NzdzYNfzd+daZ1n3dV+txQlGWiJhNaMV87VR0xdtYUrqhJLEkFH+MUmamiQ0Jmm9aZ1zRpZ/LHpZELHw2cqqKATqIvJlk1sscaeR2FVeyZ/BmW3ptQ3BvRA4q0YhathOX9FfloKRR+EgFKm9u1tYd0NG3W9LhR4/smfLbbbP/T9k8IveHYQwMdRPzr4lgGTibExyRJqCU9UQmRKDYm55mmcZwKkPfr26lGcNa1ExOyAOLEs5uctq8GtkOT9ZHjqk/0++MF3Pfb1gr5HElmU0OyuwcF9va7gGBeFUTKlK2A9ML0U/lAXQ4K9uiOGFPoo4xQbzF4w4Run2ItPeQxRBpkhOqOYL2UkkTSNCGdxahVApiiczxf77wFjF9x6Ctj7Q8JYHo1ZKsZszOiZnJ0z838M3tXk6rtZy2IhaMKIZDImHLKECJZTkkZCSUZVmsU8PLkHVkZ3axPcNcVyaZqLNrYH4BF3OqvRhWFt8MTTTYc7KGIQZwuz9p2uqg5RZ+SwEzmK55DnzBBqAUcnjlKSR7EgOlaWQ5oyA8mJHFeov3bBbeXMZSUD5gA5FTGMTxS9VfG10H6Ackr9wyuWKxdOY1Qcqgp1lbgK370LZlW9C/yElaYJrivVbfCvNnDV8W79o7y6whWOgg7uFz+SZzSUOpg31RKLDgwLNOvTIvhauBX+F3yYfwzfDg22CcoVW/Ocq9Y4V5TLoWXzaFTnhX1uMGvY4JZ5iu3T8eGFw/ClEQEkxFrrr/BcEiEjRYRNZJ5xm1vug4IaS6OeE/36Usf1Bgpvns8sWnx5KgfcCIOgzWM4pf3DA7bzGnuO7cxdeJbpTY6/19q/8vX9P2zOHdi9BwAA

metadata_json:
  {"categories":["Data Processing","DevOps","Productivity"],"complexity":"simple","use_cases":["Automatic document scanning","Cloud file organization","Scheduled backup"],"estimated_setup_minutes":15,"required_services":["Nextcloud","ScanservJS"],"key_features":["Scheduled triggering","HTTP integration","Cloud storage synchronization"],"target_audience":["home offices","small business owners","system administrators"]}


name: Automate Research-Based Newsletters with Perplexity, GPT-4, and Image Generation
author_name: Tianyi
author_username: muzi
categories: []
created_at: 2025-05-04T15:35:27.620Z
updated_at: 2025-05-04T15:35:27.620Z
url: https://n8n.io/workflows/3862
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n workflow automates the process of creating and sending high-quality newsletters with images generated by a GPT image generator. It is triggered on a schedule.

  What is included?

  1 n8n workflow (json)
  1 Setup tutorial doc
  1 video guidance on how to connect n8n with all Google products
  1 video guidance on how to connect n8n with Google Cloud Storage

  Who is this for?

  This template is ideal for:

  Content creators looking to automate their newsletter process.
  Marketers seeking to efficiently produce engaging newsletters with AI-generated content and imagery.
  Anyone wanting to create and send personalized newsletters on a schedule.

  What problem is this workflow solving?

  Manually creating and sending newsletters can be time-consuming, especially when including relevant and engaging content and imagery. This workflow automates the content generation (using AI and web search), image creation, and sending process, freeing up time and ensuring consistent communication with clients.

  What this workflow does:

  This workflow automates the following steps:

  Scheduled Trigger: The workflow is triggered automatically on a predefined schedule.

  Get Newsletter Topic: Retrieves the first unpublished newsletter topic from a Google Sheet titled "Newsletter Topics". It then updates the status of this topic and records the publication date to avoid duplication in future runs.

  AI Newsletter & Image Generator: This is the core content creation step. It uses an AI agent (configured with OpenAI and Perplexity APIs) to generate an engaging newsletter and a detailed, ultra-realistic image prompt based on the selected topic and real-time web research.

  GPT Image Generation: Uses the OpenAI API to generate an image based on the detailed image prompt created in the previous step.

  Get Client List: Retrieves client names and email addresses from a Google Sheet titled "Clients".

  Send Newsletter: Sends the personalized newsletter via Gmail to each client on the list, including the AI-generated title, content, and the uploaded image. The email body HTML is customizable.

  Setup:

  Configure the workflow's run frequency within the "Schedule Trigger" node.

  Create a Google Sheet named "Newsletter Topics" and "Clients"  in your Google Drive.

  Enter your OpenAI and Perplexity  API key in the 'Input' node.

  Connect your Gmail account to the "SendNewsletter" node.

  How to customize this workflow:

  Adjust the prompt for your newsletter style in the "AI Agent" node.

  Adjust the Email Body HTML for your newsletter style in the "SendNewsletter" node.

  Optionally, enable the "Tavily WebSearch" node and configure it if you prefer to use Tavily instead of Perplexity for web search.

  Category:

  Marketing, Content Creation, Automation

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.googleCloudStorage","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.limit","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.gmail","n8n-nodes-base.httpRequestTool","n8n-nodes-base.httpRequestTool","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Content Creation"],"complexity":"medium","use_cases":["automated newsletter creation","research-based content generation","image generation","scheduled publishing"],"estimated_setup_minutes":150,"required_services":["Google Cloud Storage","Perplexity","GPT-4","Google Sheets"],"key_features":["AI-powered research","automated image generation","scheduled execution","Google Cloud Storage integration","Google Sheets data management"],"target_audience":["content creators","marketers","message editors"]}


name: Asynchronous Bulk Web Scraping with Bright Data & Webhook Notifications
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-05-04T22:44:02.145Z
updated_at: 2025-05-04T22:44:02.145Z
url: https://n8n.io/workflows/3866
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  Who this is for
  The Async Structured Bulk Data Extract with Bright Data Web Scraper workflow is designed for data engineers, market researchers, competitive intelligence teams, and automation developers who need to programmatically collect and structure high-volume data from the web using Bright Data's dataset and snapshot capabilities.

  This workflow is built for:

  Data Engineers - Building large-scale ETL pipelines from web sources

  Market Researchers - Collecting bulk data for analysis across competitors or products

  Growth Hackers & Analysts - Mining structured datasets for insights

  Automation Developers - Needing reliable snapshot-triggered scrapers

  Product Managers - Overseeing data-backed decision-making using live web information

  What problem is this workflow solving?
  Web scraping at scale often requires asynchronous operations, including waiting for data preparation and snapshots to complete. Manual handling of this process can lead to timeouts, errors, or inconsistencies in results. 

  This workflow automates the entire process of submitting a scraping request, waiting for the snapshot, retrieving the data, and notifying downstream systems all in a structured, repeatable fashion.

  It solves:

  Asynchronous snapshot completion handling

  Reliable retrieval of large datasets using Bright Data

  Automated delivery of scraped results via webhook

  Disk persistence for traceability or historical analysis

  What this workflow does
  Set Bright Data Dataset ID & Request URL: Takes in the Dataset ID and Bright Data API endpoint used to trigger the scrape job

  HTTP Request: Sends an authenticated request to the Bright Data API to start a scraping snapshot job

  Wait Until Snapshot is Ready: Implements a loop or wait mechanism that checks snapshot status (e.g., polling every 30 seconds) until completion i.e ready state

  Download Snapshot: Downloads the structured dataset snapshot once ready

  Persist Response to Disk: Saves the dataset to disk for archival, review, or local processing

  Webhook Notification: Sends the final result or a summary of it to an external webhook

  Setup

  Sign up at Bright Data.
  Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions.
  In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication).

  The Value field should be set with the 
  Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token.
  Update the Set Dataset Id, Request URL for setting the brand content URL.
  Update the Webhook HTTP Request node with the Webhook endpoint of your choice.

  How to customize this workflow to your needs

  Polling Strategy : Adjust polling interval (e.g., every 15–60 seconds) based on snapshot complexity
  Input Flexibility : Accept datasetId and request URL dynamically from a webhook trigger or input form
  Webhook Output : Send notifications to -

  	Internal APIs – for use in dashboards

  	Zapier/Make – for multi-step automation

  Persistence
  	Save output to:

  		Remote FTP or SFTP storage
  		Amazon S3, Google Cloud Storage etc.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","DevOps"],"complexity":"medium","use_cases":["collect web data intervals","process datasets from Bright Data","schedule automated scrapes","aggregate scraped information","webhook alerts on completion"],"estimated_setup_minutes":25,"required_services":["Bright Data"],"key_features":["async data extraction","structured bulk data handling","webhook integration","conditional routing","file output formatting"],"target_audience":["data engineers","market researchers","automation developers"]}


name: Store Chat Data in Supabase PostgreSQL for WhatsApp/Slack Chatbot
author_name: JPres
author_username: stardawnai
categories: []
created_at: 2025-05-05T09:30:12.206Z
updated_at: 2025-05-05T09:30:12.206Z
url: https://n8n.io/workflows/3867
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  n8n Template: Store Chat Data in Supabase PostgreSQL for WhatsApp/Slack Integration

  This n8n template captures chat data (like user ID, name, or address) and saves it to a Supabase PostgreSQL database. It’s built for testing now but designed to work with WhatsApp, Slack, or similar platforms later, where chat inputs aren’t predefined.
  Guide with images can be found on: https://github.com/JimPresting/Supabase-n8n-Self-Hosted-Integration/

  Step 1: Configure Firewall Rules in Your VPC Network

  To let your n8n instance talk to Supabase, add a firewall rule in your VPC network settings (e.g., Google Cloud, AWS, etc.).

  Go to VPC Network settings.
  Add a new firewall rule:
     Name: allow-postgres-outbound
     Direction: Egress (outbound traffic)
     Destination Filter: IPv4 ranges
     Destination IPv4 Ranges: 0.0.0.0/0 (allows all; restrict to Supabase IPs for security)
     Source Filter: 
       Pick IPv4 ranges and add the n8n VM’s IP range, or
       Pick None if any VM can connect
     Protocols and Ports:
       Protocol: TCP
       Port: 5432 (default PostgreSQL port)

  Save the rule.

  Step 2: Get the Supabase Connection String

  Log into your Supabase Dashboard.
  Go to your project, click the Connect button in the header.
  Copy the PostgreSQL connection string:

        postgresql://postgres.fheraruzdahjd:[YOUR-PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:6543/postgres
     
     Replace [YOUR-PASSWORD] with your Supabase account password (no brackets) and replace the string before that with your actual unique identifier.
     Note the port (6543 or 5432)—use what’s in the string.

  Step 3: Set Up the n8n Workflow

  This workflow takes chat data, maps it to variables, and stores it in Supabase. It’s built to handle messy chat inputs from platforms like WhatsApp or Slack in production.

  Workflow Steps

  Trigger Node: "When clicking 'Test workflow'" (manual trigger).
     For now, it’s manual. In production, this will be a WhatsApp or Slack message trigger, which won’t have a fixed input format.

  Set Node: "Set sample input variables (manual)".
     This node sets variables like id, name, address to mimic chat data.
     Why? Chat platforms send unstructured data (e.g., a message with a user’s name or address). We map it to variables so we can store it properly. The id will be something unique like a phone number, account ID, or account number.

  Sample Agent Node: Uses a model (e.g., GeminiFlash2.0 but doesn't matter).
     This is a placeholder to process data (e.g., clean or validate it) before saving. You can skip or customize it.

  Supabase PostgreSQL Node: "Supabase PostgreSQL Database".
     Connects to Supabase using the connection string from Step 2.
     Saves the variables (id, name, address) to a table.
     Why store extra fields? The id (like a phone number or account ID) is the key. Extra fields like name or address let us keep all user info in one place for later use (e.g., analytics or replies).

  Output Node: "Update additional values e.g., name, address".
     Confirms the data is saved. In production, this could send a reply to the chat platform.

  Why This Design?

  Handles Unstructured Chat Data**: WhatsApp or Slack messages don’t have a fixed format. The "Set" node lets us map any incoming data (e.g., id, name) to our database fields.
  Scales for Production**: Using id as a key (phone number, account ID, etc.) with extra fields like name makes this workflow flexible for many use cases, like user profiles or support logs.
  Future-Ready**: It’s built to swap the manual trigger for a real chat platform trigger without breaking.

  Step 4: Configure the Supabase PostgreSQL Node

  In the n8n workflow, set up the Supabase PostgreSQL node:
     Host: aws-0-eu-central-1.pooler.supabase.com (from the connection string)
     Port: 6543 (or what’s in the connection string)
     Database: postgres
     User: postgres.fhspudlibstmpgwqmumo (from the connection string)
     Password: Your Supabase password
     SSL: Enable (Supabase usually requires it)

  Set the node to Insert or Update:
     Map id to a unique column in your Supabase table (e.g., phone number, account ID).
     Map fields like name, address to their columns.

  Test the workflow to confirm data saves correctly.

  Security Tips

  Limit Firewall Rules**: Don’t use 0.0.0.0/0. Find Supabase’s IP ranges in their docs and use those.
  Hide Passwords**: Store your Supabase password in n8n’s environment variables.
  Use SSL**: Enable SSL in the n8n node for secure data transfer.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.supabase","@n8n/n8n-nodes-langchain.agent"]

workflow_json_compressed:
  H4sIAAAAAAAAE6VW6W7bRhB+FYIokBbQKuTyXAFFazhNEDRxgvoI0iIIhrtDig2vkisfMATkMdrXy5N0lqREy5aPor9MrWdnvvlm5pu9tnNlL+zs9DJcfnSSd/VvWKwuf7Fndoka7MW1nVedhkria2MXSAy4iIUj/ASFk6CXeIlSApWQiK6KJLqpRAkQiBhSQOlD4IR+qDyOXLjkV2PZFKDxsEXVHaNeNYc1naBGCqDbFa5ndgUlUrTjVQMJdGj1Ztb7utNZi51xAllnL/64HtCnxy8o4pF3EXRnAXrH9tbDyRjM3JEt0pc60HTOHR4whzPunbjBgjsLP5rzkP9OZqtGPW62/kQhaoU3QEguRSCly5TrIPMdKZgIQ4+FPMAYOCSek0zAPiyxsmSRyy95lVnfvv59gp22Lur2S1rUF9++/mOSvGqMaRVXrI/FDBfzEqoVFCdtnmXYklVTd7nO64qQeL4zY7FD2BpoKY7GlgBerwdXZ/Srt3PXsxGz54AP6KRMRkCYE8dhScxDBg7wKBApVyqYMFMVrA5MrazXVbPS1hm0OSTFUJG9YDvUuxBDZy9Eu26MwYgWui7PqhIr3f9v5+eGblRRIg3WVPkx86VAFicQMddFH6MkiTyQE/QOO5P7Z7q6hdrplrin3+dQrMzBj75wQ88PHB5Hwt6SpLzYlcJzGAieUmH9lIEULgMV+l6kwoRKPUXq/zwQ4xVWlXV8TmlT6lMQH0G5aULdJuKE0kkkS2QUMxUGiRvHEoLEmYLIJei+BA9FusjRynCpO0vl7U/UsuvbjeDN/S2ANAiTkAvJAi/yme9JZEkQJAxTFaWun7rccycAr7DMq/xlAd2Sz50Jxc9U/+dTDxRQZYQ1r+ZFeUiYX9V1VuBwebcvYmpd13+kL0pyWhwNCPrv7nnW+2IEgqUGDTFqBl1Rs+RQ9C6yPuh7KMqDJu8VrR/XrRHrm2JMbMfYOtwa2XfIm6bIVcA5Co8Fjk9TFLohNb/0mIJECfAT1w/AvitqGzmzXoDuT55AY4ll3V5tbhpKd2l0XWc/j9rM6UjdBV3roGk+lzQVkGHnkZNxQn7FK9M719fWd392dTWfBsdaryez1+pkQCpXna5Lc4t4ryuNl/pDXqn64g1WmV7aJJp3K9JshPyRYmzsHq7D3NtWgguIMIl9xrlPTeyiy4SQDgsUAJ07Mg1xcn/aK70FSuW6rqAgPaPR6SycZ3PLcDWzDpSi+J01n8/v17ixoLcq4d2jdGlebD6JMJWP/U269gWvjvbIFR2fbWba1OX7Z/cL8bMf5jkt2Pne2m3DGfn8q9eeKeSoWzeCHZ2+eXPrVt4ZGZkN3dQ/CPb2UppjobrTfEiXvgdi+yT73/3VMeJk8J8TNB5Maj2mErRcjl0JRfFypHlGEoItjAkMy32PSGyK+ASJuGH6RIGI6bmUKhWxlHu0qyIlGR0IFqAIuQpSR/L0hkAMiR9k5Nh6giaAMdxtPhHu7z0znjvjvV0kQ4dMamt3V7SgyrdDVenOx3plQUvTYi2xaNJVYZm1bJ6G2tDZtPSI0yP9CtO86lm+NamReTeB1Pk5maVEPRpF0Zo2Vx8UL1GuDIR3raLtuLDPXePlfPDQd40vUsW5AkZLOmC+SJCBRyMeSieVqRfFEOPQtRXKbTa7nNJBScwRUdSQhs7/IQa9oxm9khVe2gtn/cn04q31aN4w+WdTsRWR+dZsrp3Y91T8zp3bYR54kO1L8Z4wezN4YEsN2Qyb6IlpjMa3gzz+CN6bxhOeoXtyWq//Be5+pOLsDAAA

metadata_json:
  {"categories":["Communication","Data Processing"],"complexity":"medium","use_cases":["capture and store chat interactions","manage customer conversations","persist chatbot data in PostgreSQL"],"estimated_setup_minutes":15,"required_services":["Supabase","PostgreSQL"],"key_features":["dynamic chat data capture","database connection management","user profile storage","WhatsApp/Slack integration readiness"],"target_audience":["developers","chatbot engineers","database administrators"]}


name: Automate Support Ticket Triage and Resolution with JIRA and AI
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2025-05-05T10:29:45.614Z
updated_at: 2025-05-05T10:29:45.614Z
url: https://n8n.io/workflows/3868
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  This n8n template automates triaging of newly opened support tickets and issue resolution via JIRA.

  If your organisation deals with a large number of support requests daily, automating triaging is a great use-case for introducing AI to your support teams. Extending the idea, we can also get AI to give a first attempt at resolving the issue intelligently.

  How it works
  A scheduled trigger picks up newly opened JIRA support tickets from the queue and discards any seen before.
  An AI agent analyses the open ticket to add labels, priority on the seriousness of the issue and simplifies the description for better readability and understanding for human support.
  Next, the agent attempts to address and resolve the issue by finding similar issues (by tags) which have been resolved.
  Each similar issue has its comments analysed and summarised to identify the actual resolution and facts.
  These summarises are then used as context for the AI agent to suggest a fix to the open ticket.

  How to use
  Simply connect your JIRA instance to the workflow and activate to start watching for open tickets. Depending on frequency, you may need to increase for decrease the intervals.
  Define labels to use in the agent's system prompt.
  Restrict to certain projects or issue types to suit your organisation.

  Requirements
  JIRA for issue management and support portal
  OpenAI for LLM

  Customising this workflow
  Not using JIRA? Try swapping out the nodes for Linear or your issue management system of choice.
  Try a different approach for issue resolution. You might want to try RAG approach where a knowledge base is used.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.jira","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.jira","n8n-nodes-base.jira","n8n-nodes-base.splitInBatches","n8n-nodes-base.noOp","n8n-nodes-base.jira","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.jira","n8n-nodes-base.stickyNote","n8n-nodes-base.removeDuplicates","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7248 characters]

metadata_json:
  {"categories":["AI/ML","Communication","DevOps"],"complexity":"medium","use_cases":["ticket triage","issue resolution","support automation"],"estimated_setup_minutes":15,"required_services":["JIRA"],"key_features":["scheduled job trigger","AI content analysis","content sampling","automatic resolution","sticky note updates"],"target_audience":["support managers","devops engineers","customer success"]}


name: Convert HTML to PDF and Compress Files with CustomJS API
author_name: CustomJS
author_username: customjs
categories: []
created_at: 2025-05-05T10:43:39.715Z
updated_at: 2025-05-05T10:43:39.715Z
url: https://n8n.io/workflows/3869
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template demonstrates how to convert HTML into a PDF, compress the generated PDF, and return it as a binary response using the PDF Toolkit from www.customjs.space.

  Notice

  Community nodes can only be installed on self-hosted instances of n8n.

  @custom-js/n8n-nodes-pdf-toolkit

  What this workflow does

  Convert** the requested HTML to PDF.
  Compress** the PDF file.
  Use** a Code node to handle URLs pointing to PDF files if they exceed 6MB.
  Compress** the PDF pages.

  Requirements

  Self-hosted** n8n instance
  CustomJS API key** for compressing PDF files.
  HTML** Data to convert PDF files
  Code node** for handling URL that indicates PDF file.

  Workflow Steps:

  Manual Trigger:

     Runs with user interaction.

  HTML to PDF:

     Request HTML Data
     Convert HTML to PDF
     Request PDF from URL.

  Compress Pages from PDF:
     Compress PDF as a binary file.

  Usage

  Get API key from customJS

  Sign up to customJS platform.
  Navigate to your profile page
  Press "Show" button to get API key

  Set Credentials for CustomJS API on n8n

  Copy and paste your API key generated from CustomJS here.

  Design workflow

  A Manual Trigger for starting workflow.
  HTTP Request Nodes for downloading PDF files.
  Code node for handling URL that indicates PDF file.
  Compress PDF files.

  You can replace logic for triggering and returning results.
  For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.

nodes_used:
  ["@custom-js/n8n-nodes-pdf-toolkit.html2Pdf","@custom-js/n8n-nodes-pdf-toolkit.CompressPDF","n8n-nodes-base.manualTrigger","@custom-js/n8n-nodes-pdf-toolkit.CompressPDF","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE7WW727bNhDAX0VQ99G0RYqkSK8bNqQomqEbii5bPyxBwT/HWIlMeRJdLwgM9DG21+uTjFTS2G1spy1aGBbIw/F49+Pdkdf5HILKp9d57fugvIFjm0/zikkJVhIJirCKV6rAUosKjDai1LIAzBXhwmiGhSRCVJqygjOuDI0SRfL1KPethT6f/hVNJ5NacgKutEgXyiKqCUZaY4Y41pwRrJ0tyjyuUnOI2s9Ofn2ehTZ78eRpFIarRRL+ZJZ9aOfoop944dGwAVpYh0LbNpd1GM/CvCEvrItLFm1fh7r10QFCilFxFkWqi8YDdH2KN+ke+8UyRMOPZ/jHZ9A0bfaq7Rr7eBLnKQTTgQUfatUMS262/6X/eVEPxFJYGxUU53f+b6lmR3cq+XrgEqA/9k+bdpVPXTQNNwH+GR0bHMbr0a1xKYSjpAIUyStES2BIVZVFhkslCRiOmdjsedTOFx30fYKWubqBzyD3fu0N7y14lO+A963Q7MGgtXbSaYyIMwRRCxhJwSjCVGpemqqoCrOx/2oGPjNNbS5rf569e/vvCfQhW7XdpYvI3739b4Nlw0KrHsZz5ZeqOenq83PoPsRQjHCxC8Mej6kkuqhsiSin8WMxIGW0Trlf6cpZKFlx4ODw1zo5ct/pPCq3y84k48uuiWtcDY19fevLD9fX2XcXfevHCxVm2Xr9zepgDzrLY68pnUOFdjzykwSJEgiysekAk4bFNrOx/zuEgdofL5/vPVYTh/c7wi40F/1R0p1GRmHZ+ez6NE8oTvNpGiYgaXgae0dY9NPJZLVajX2jL8e+jqF1vTKzHvzYwsS2K9+0yk4wp0LiScrBdGyvy3H8pv9phPB9/jEHcsfBcOFMhSlyhsXaZ9wiiQlHJvZgB9ZAadQWhxDz/Sr7LfaWvRz6QedWZYsGpsUI7Ujv3LRN2+VTOspnUJ/PYqckMaei2Id4jnGDR48eZVud+tSj7CX8vUz1NoifqKCS8Kj1b6AL27r3It9kACuFoIICYrqiiIIBJAtVoIo5U1opeanZzsjxZ4deisOhs1G+qm2Y3UZ+AMOmhtU59Jnr2vl7JB+Ut+ozlenaq+5qKPXxARAFpoazkqOCVAWiylRICJwugpKKeANL5/ROEOSLcgDzvRzKvbGf+kO/RGarRLcTZOh1iVKUH4LgOGBhhEYlLiSimGqkWCmR1ZoJbjlUDHZCKL8oGw5AIJ+UDA8D+ZqpcjZs7cGkEAZnt2ssTueqTqHFV5i/aW0HXgmD7ii+BC38k0+L9dlZ3HC7w36SPfyAwfsObJkdNB6+wXc5svPJ+LEHozv1nTfHDofX6/8B/aLy9SQLAAA=

metadata_json:
  {"categories":["Data Processing"],"complexity":"medium","use_cases":["Convert HTML to PDF","Compress PDF files","Handle large file URLs"],"estimated_setup_minutes":20,"required_services":["PDF Toolkit"],"key_features":["HTML to PDF conversion","File size compression","Large file handling via code node"],"target_audience":["developers","file processing engineers"]}


name: Convert HTML & PDF Files to PNG Images with CustomJS PDF Toolkit
author_name: CustomJS
author_username: customjs
categories: []
created_at: 2025-05-05T10:48:19.067Z
updated_at: 2025-05-05T10:48:19.067Z
url: https://n8n.io/workflows/3870
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n workflow shows how to convert PDF files into PNG format with the PDF Toolkit from www.customjs.space.

  @custom-js/n8n-nodes-pdf-toolkit

  Notice

  Community nodes can only be installed on self-hosted instances of n8n.

  What this workflow does

  Generate** PDF file from the requested HTML.
  Convert** the PDF to PNG images.
  Use** a Code node to handle URLs that point to PDF files.
  Convert** the PDF to PNG format.

  Requirements

  Self-hosted** n8n instance.
  CustomJS API key** for converting PDF to PNG.
  HTML** Data to convert PDF files.
  Code node** for handling URL that indicates PDF file.

  Workflow Steps:

  Manual Trigger:

     Runs with user interaction.

  HTML to PDF:

     Request HTML Data.
     Convert HTML to PDF.
     Request PDF from Code.

  Convert PDF to PNG:
     Convert the generated PNG from PDF

  Usage

  Get API key from customJS

  Sign up to customJS platform.
  Navigate to your profile page
  Press "Show" button to get API key

  Set Credentials for CustomJS API on n8n

  Copy and paste your API key generated from CustomJS here.

  Design workflow

  A Manual Trigger for starting workflow.
  HTTP Request Nodes for downloading PDF files.
  Code node for handling URL that indicates PDF file.
  Convert PDF to PNG.

  You can replace logic for triggering and returning results.
  For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.

nodes_used:
  ["@custom-js/n8n-nodes-pdf-toolkit.html2Pdf","n8n-nodes-base.manualTrigger","@custom-js/n8n-nodes-pdf-toolkit.PdfToPng","@custom-js/n8n-nodes-pdf-toolkit.PdfToPng","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code"]

workflow_json_compressed:
  H4sIAAAAAAAAE71WbW/bNhD+K4Kyj6bNN1Gk1w0bUmxt0RVBm60f5qCg+GIrkSlPoucVgYH+jO3v9Zfs6HSJlyhumw2FYYM8H493zz13x8t86aLOp5d5Hfqog3FPbT7Ny0IpZxVVTtOiFKXGRFWydKYyklUKOyI0FdJUBZGKSllWvMCiENpwkGiab0d5aK3r8+mvYDqZ9AxjIqlEnuAKcWILpHEhUMFo6YgXinuWwym9dKD95PSn51lss5PHP4Awvl0l4Xdm3cd2ic77SZAB7S5AK+tRbNvmoo7jRVw29MR6OLJq+zrWbQAHUIHxiEl8BlLdgf3ouj6FnNSfhtU6gu1HC/LtE9c0bfa67Rr7aAL7FIXpnHUh1rrZHbny4Fn//aregZYiu1FBsL8OYU81O75Wybfbq3h+ASd2/pHt6BoiwgmlGFVMcsSdd0hyXyCspRIVVhqAvrH/euFCZpraXNRhnr1/9+ep62O2absL37Sb9+/+ugHuBq1K92681GGtm9Ouns9ddwurkuIRF3ewut9p4xwVlapQSbBCnDGBpC0dKgU1nuOKW1ndOH3cht9dF1NeszqkBL/4kXxGhiG5p+1JmN/ymko8KvjdDHeub9edSabXXQOHfO0a++aDM99cXmZfnfdtGK90XGTb7ZdOOBeel9ZjpBkmUBNaAXZMI6+kKsuqEM7qw9j9P9ANFMcXRsIpxai3BAlGC8RFiZFiTkMlEG+8Nlb7Peq/isD6t9mLNrp7Sd7vdD6o/KsbCDyiA93AtE3b5VM+yje1jYt8CpU4yheuni+gQVAOG9OGCLHAZUdHR9lej5oFlL10v61TBe7Ej3XU4yT9J2l7yuP8QAtQRgpsBNKCS8ShA6OKFB5VijCitZKld4M4kM8HgvGDQIiDwQ+RMdsPOC5cNnfBdTo6u/vXd+1y19DvD7/ghhvPLOJaasRx4YABFNpgVWpqpaiKcpgG9GE8KOi94bNP4sEsDH8SRK/cFTw/v3y+z48k2kEB8gNQaCMd4apElDEDw4BTJEumYHwK4jgmXJd+EAr2MCYcgII+KPwhhvxngihpvfVMIlERQMVbBqVRpJFTKC9oBXze60N7GbgXFAPLgffC0DQ574+T8hTGSlx3Ibuc5Wl6zPJpWqYZkpYzeFfEVT+dTDabzTg01cU41NADu16bRe/C2LqJbTehabWdEChzRSZpdKdm/YaN4Td9Z9Atv74DBN2e7eAPziRnd17tP5Vgu9R1CgKeXeHK2cNjY6c+gtefdX/kU7w9O4M793H7VJPkIzY//lwZumnwHXjb/uhafTDhA+5st38DJhQtD/kKAAA=

metadata_json:
  {"categories":["Data Processing","Document Management"],"complexity":"medium","use_cases":["convert PDF to images","generate images from HTML","extract PDF pages"],"estimated_setup_minutes":15,"required_services":["CustomJS PDF Toolkit"],"key_features":["HTML to PDF conversion","PDF to PNG image extraction","Code node for URL handling"],"target_audience":["developers","document processors","content managers"]}


name: Convert HTML to PDF & Extract Text from PDFs with CustomJS API
author_name: CustomJS
author_username: customjs
categories: []
created_at: 2025-05-05T10:50:27.954Z
updated_at: 2025-05-05T10:50:27.954Z
url: https://n8n.io/workflows/3871
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n workflow illustrates how to convert PDF files into text with the PDF Toolkit from www.customjs.space.

  @custom-js/n8n-nodes-pdf-toolkit

  Notice

  Community nodes can only be installed on self-hosted instances of n8n.

  What this workflow does

  Change** the requested HTML to PDF..
  Extract** text from the PDF.
  Use** a Code node to handle URLs that point to PDF files.
  Convert** the PDF to text.

  Requirements

  Self-hosted** n8n instance.
  CustomJS API key** for converting PDF to text.
  HTML** Data to convert PDF files.
  Code node** for handling URL that indicates PDF file.

  Workflow Steps:

  Manual Trigger:

     Runs with user interaction.

  HTML to PDF:

     Request HTML Data
     Convert HTML to PDF

  Convert PDF to Text:
     Convert the generated Text from PDF

  Usage

  Get API key from customJS

  Sign up to customJS platform.
  Navigate to your profile page
  Press "Show" button to get API key

  Set Credentials for CustomJS API on n8n

  Copy and paste your API key generated from CustomJS here.

  Design workflow

  A Manual Trigger for starting workflow.
  HTTP Request Nodes for downloading PDF files.
  Code node for handling URL that indicates PDF file.
  Convert PDF to Text.

  You can replace logic for triggering and returning results.
  For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.

nodes_used:
  ["@custom-js/n8n-nodes-pdf-toolkit.PdfToText","@custom-js/n8n-nodes-pdf-toolkit.html2Pdf","@custom-js/n8n-nodes-pdf-toolkit.PdfToText","n8n-nodes-base.code","n8n-nodes-base.manualTrigger"]

workflow_json_compressed:
  H4sIAAAAAAAAE72V224bNxCGX2VB9FKUlkvugWpaNHDR2k2D5kJoLmoj4GForb0ihV3KcisIyGMkr5cn6VAyLEFQ4RYociGBuyT/+fnNcHZDWkum5O3VaxH++vmyZu6Cv7kAMiILiIpMN6T1Q1TewFVaV5dSgpWFBFWUdVWrnEnd1GC0abiWObBKFVVjdMkaWTRNrUWZV2WljMA3qiDbEfFqASi1tC6LIYvwGDFaVLcDmf5xg9PBQhpu9s4wmKtkbqlphKWoYqlUuqFWVU7ysoLcKPIsehH8A/Qxe/fjT1nrUX72JP/nMk3/YFZDDAt6N0x84+kuFEUjNIbQ3bdx/M66WXjaswxDG9vg0QtlRT5ieY72lqrHUBF69LjB05geLPjYqi69IPsAvwyvl+0OXjrCYQnF52evR0uzi+clZLvd2/0dQ+yis+3oSUgUuXHK1FRVBaNCO0615YJyB1BWkhcMxEH/cvb210QYWfwHAvO46ArEcAKAi7MASFp+5ZeriNqv5uz7S+i6kL0PfWdfTfCZfGVEDTd5CYZjxoqSCmZzqkstqJOu0lBXDCv3hXJh/1O98DO4ehjCqjdJe9V3uMm10NkPT3a+22yyb+6G4MdLFefZdvu16dV4lSWvJFVaI72GA9VKcNo0vNalKRu8c8f0LBxYHQBpNcDY7CdPa+gclLthpzRFOnHV+2xzTRKEazJNw4QiDa+x1uJymE4m6/V67Dt9P/YtHqoflJkP4McWJjasfReUnbBKNJJNZjDElK8PfIz/6XeNx/+WnBIonglYV5a8agS1TjVUKCeoKmtNQWsjwRWKc3cg8H4OPjNda+5bf5t9+fgpBczWob93XVh/+fj5H/EslF+pbta3t7fQn3Aqq3xUnG02J2nDFcrE9gH1HZYHjMgAMaKVHVZ4BLNKmr/1SAktPLB08If9/l07l7WucpkLWmhsI0LVNdWsZtTmhWtqg0OeGooJ3oNJUjvhfbY2ZKHa5Bc7td/n76XrtNswwi+KhUcyzbc3N+jnuE39a9EXNF/Oy7lIZxvmqf7oyNhx+Z/xsd3+DQmMKjBeBwAA

metadata_json:
  {"categories":["Development","DevOps"],"complexity":"medium","use_cases":["convert HTML to PDF","extract text from PDF","handle file processing"],"estimated_setup_minutes":30,"required_services":["CustomJS","json"],"key_features":["PDF text extraction","HTML to PDF conversion","PDF Toolkit integration"],"target_audience":["developers","ops engineers"]}


name: Extract Specific Pages from PDFs with CustomJS API
author_name: CustomJS
author_username: customjs
categories: []
created_at: 2025-05-05T10:52:45.020Z
updated_at: 2025-05-05T10:52:45.020Z
url: https://n8n.io/workflows/3872
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template shows how to extract selected pages from a generated PDF with the PDF Toolkit by www.customjs.space.

  @custom-js/n8n-nodes-pdf-toolkit

  Notice

  Community nodes can only be installed on self-hosted instances of n8n.

  What this workflow does

  Downloads** each PDF using an HTTP Request.
  Extract** pages from the PDF file as needed.

  Requirements

  Self-hosted** n8n instance
  CustomJS API key** for extracting PDF files.
  PDF files to be merged** to be converted into a PDF

  Workflow Steps:

  Manual Trigger:

     Runs with user interaction.

  Download PDF File:

     Pass urls for PDF files to merge.

  Extract Pages from PDF:
     Extract selected pages from a generated PDF

  Usage

  Get API key from customJS

  Sign up to customJS platform.
  Navigate to your profile page
  Press "Show" button to get API key

  Set Credentials for CustomJS API on n8n

  Copy and paste your API key generated from CustomJS here.

  Design workflow

  A Manual Trigger for starting workflow.
  HTTP Request Nodes for downloading PDF files.
  Extract Pages from PDF.

  You can replace logic for triggering and returning results.
  For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.

  Perfect for

  Taking a note of specific pages from PDF files.
  Splitting PDF file into multiple parts.

nodes_used:
  ["n8n-nodes-base.manualTrigger","@custom-js/n8n-nodes-pdf-toolkit.ExtractPages","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  H4sIAAAAAAAAE41U7W7TMBR9lci/6zZx7NiuhMQETHyKaXQwgSbk2LchLE1C4rabqkh7DHi9PQk36WjH1An+9UbnnnPuudfdkNyRKWneVudn1ZsPn7nR52dHKzIiC/CGTDckL1tvSguvepwUWoPTTINhQibShJFOlQSbWhWnOoQoMSxRNhWR0kwpmXIRJiIxluMXw0g3IqVZAFK9uw7WVXM5L6p1kKCeN1lLpl8uEFA56H9utt6ccTEDqamZc0E5E4Lq0GmquDAiFjLWwpAd7advUAa2yO1lXmbB7c3PGbR+p3R786uXuq57aKlKOmjR1LQwXphyaYpZk2cZNIiqqzb3eVWiEypUONIsRHO1aVDIQ4MON92W6yNWAzDqRnemI2scmDim0iYGTStGU1CcQsTk3EoeS8v2pl9c+cZYH5yYDNrguKkWwcnz42hv9aldtr5a0O/tZO+6dnPqq6q4zP34jmEgeOA94ge9Y5XBqSmznp/RGLvmORTu652nJ87gAeCEtgEHpc9NMbRtnbxuj+p8OI9+2j2EYr0b6x40eLaDkO7x2IwSgkOS0gSYoxxvCXetLWUCJH6PFFfhnv/lbHYSnMKPJa740bV+877eY+4HEyeHg1k2BdL0fe10Mlmv1+O2cN7bcdVkE1MUmPuERULFXMZhpMZYI3NV97zDVTycj49Zhyq4n3yFDueYJIxIC97jjQ6ScAV22fe/bxwe35Ssoj761ZZheHqK2TRlHCjoUFIeaUO1dAlNXSqkZInWTKINW5Ul2D9W/o4I64XJ+9nxbfUR/c/pDR0j/BtwcEWmYXdxgcb+/coOaR3e1wGBrvsNNJqNgJgEAAA=

metadata_json:
  {"categories":["Data Processing"],"complexity":"medium","use_cases":["extract specific pages from PDF","process PDF files programmatically","merge PDF documents"],"estimated_setup_minutes":15,"required_services":["CustomJS PDF Toolkit API","HTTP/Webhooks service"],"key_features":["manual trigger support","custom JavaScript execution","PDF page extraction"],"target_audience":["document processors","automation engineers","backend developers"]}


name: Merge multiple PDF files with CustomJS API
author_name: CustomJS
author_username: customjs
categories: []
created_at: 2025-05-05T10:54:50.369Z
updated_at: 2025-05-05T10:54:50.369Z
url: https://n8n.io/workflows/3873
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  This n8n template demonstrates how to download multiple PDF files from public URLs and merge them into a single PDF using the PDF Toolkit from www.customjs.space.

  @custom-js/n8n-nodes-pdf-toolkit-v2

  What this workflow does

  Downloads** each PDF using an HTTP Request.
  Populates* files into an array with *Merge** node from n8n.
  Merges** all downloaded PDFs using the Merge PDF node from the @custom-js/n8n-nodes-pdf-toolkit-v2.
  Writes** the final merged PDF to disk.

  Requirements

  CustomJS API key** for merging multiple PDF files.
  PDF files to be merged** to be converted into a PDF

  Workflow Steps:

  Manual Trigger:

     Runs with user interaction.

  HTTP Request Node For PDF Download:

     Pass urls for PDF files to merge.

  Merge Node For Array Population:

     Just populates two files into an array.

  Merge PDF files:
     Uses the CustomJS node to merge the incoming PDF files into a single PDF file.
     If size of PDF files exceeds 6MB, you can simply pass an array of URLs for PDF files.

  Usage

  Get API key from customJS

  Sign up to customJS platform.
  Navigate to your profile page
  Press "Show" button to get API key
  Set Credentials for CustomJS API on n8n

  Copy and paste your API key generated from CustomJS here.

  Design workflow

  A Manual Trigger for starting workflow.
  Two HTTP Request Nodes for downloading PDF files.
  A Merge Node for populating files as an array.
  Merge PDFs node for merging files
  Write to Disk node for saving merged PDF file.

  You can replace logic for triggering and returning results.
  For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.

  Perfect for

  Bundling reports or invoices.
  Generating document sets from external sources.
  Automating PDF handling without writing custom code

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.readWriteFile","n8n-nodes-base.readWriteFile","@custom-js/n8n-nodes-pdf-toolkit-v2.pdfToolkit"]

workflow_json_compressed:
  H4sIAAAAAAAAE51V3W7bNhR+FUHXpkVSlEQFGLAgXdYU3RokxoJtyAVFHjpq9ONKVOwgMNDH2F6vT7JDOYuT1G6T3giUdM53vo/n7y4sTXgQ0r/mq+qwf387zP6cH/2qw0lYg1PhwV1YNr1TjYYTb5drrrShSlua2wRiIVmWizTVUoqUUWFNogsjGf5JEqtFJmzKU86oSuIkTwTiOqgXlXJw1IHpz8ENi6MWv4ADDOC6AdaTsFE1YLTfoJtDUA+VK9EgOH1zHNiygj5Ylu4qOBp619bvzoPD0xOPq+Z9ePD3JXq3BvzxbqNNmNQyoJboLKZEmCQmRaIzUnCbGcuMNJkNH2JeXEET6KrU12UzD758/mcGvQuWbXdtq3b55fO/PtTtwps2siFjLFKoHqa1agZVzbpyPocOrRZtX7qybZAJ4VxMGONIbqE6DOSgQ4Z36w3WH/g2GrL15J60lcJQZimxJgci8kKSgmUcT1YayHjMhNySfjubnQZn8GlArnv5XTm32No8Ykcn9DmxcOgqRPjJ+/QHUbRcLqdl42CpprqtI58FZeqyiUyrhxoa10cLY4n/PsUD4rcLjz6KfK5STPmDTiPiuIghJ4nkmgitJMn9g2NNiZjaOE/5bp38R4RyKl8idRlP224eXRyeRL+cRQ6B+mh15epqPI81GHXQt0OnYVQemaGub18nPVNSJxQSEhc51mWqDZE2zUiSM2q4tgU2UPi0F/bX3v3fR2JfWHLxdFt0xreJiBUBLlIiZJ5iMnJGMkizjHPQbOzge0ZnWALRRVc6CI7HrrRdWwdvyv56L80OXUYP7/CUroz5LrqPL3MS+pv/fRPdJ+LhvqFTG5hw6dHD/X2Vx4IXNOEEmEGJsWSkkDImGctUzLjArnuRRPEjGhmV8mUiz6EC7drusdD9opjNEk0zbB1hcFjwwpKcMUA+UhaxzVghnleSH6b9VsPPehym5GMfbeX4jnZtW12Xjtxwz2G2eXuqKmG7M/d/gyD813naFCxK0rgGcH6UqhqdNjze9YeLclw+Xt7q4lNychW//2iq5m13fLyV8rAClNbt0LiAh1+1HFsjM6VdeYMeFsPAJOzBORzvY0RYgR48qw+dAX/hN8zzutn4j1tPsyzLc1UQSo0gAvcaDmOdE5ZbnhVFQanKkZRumwazdp/J+47FQ61Kf0+4j/y97snAaDTBbWtgFR7Q9eUlknhkuAvnJR24E/fJvtjL8BUg/PUobIPyDQ2vkyy+Q/f7i31XvN2b9XmAyU57/k1G6/V/9S8ox3wJAAA=

metadata_json:
  {"categories":["Data Processing","DevOps"],"complexity":"medium","use_cases":["merge pdf files","document consolidation","batch pdf processing"],"estimated_setup_minutes":15,"required_services":["pdf-toolkit-api"],"key_features":["custom JS nodes","pdf manipulation","file operations"],"target_audience":["developers","ops engineers"]}


name: Automate SEO Blog Content Creation with GPT-4, Perplexity AI and WordPress
author_name: LukaszB
author_username: lukaszb
categories: []
created_at: 2025-05-05T11:17:44.963Z
updated_at: 2025-05-05T11:17:44.963Z
url: https://n8n.io/workflows/3874
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  AI Blog Publisher – Automated Blog Content Workflow
  This workflow is designed for individuals and teams who regularly publish content on their blog and want to automate the entire process from start to finish. Its main goal is to generate long-form, SEO-optimized blog posts and publish them directly to WordPress — without needing a copywriter, editor, or someone to handle CMS uploads. The workflow generates a topic, writes a full article based on your brand guidelines, pulls a featured image from Pexels, publishes the post to WordPress, and logs the publication details to Google Sheets, creating a complete archive of published content. This allows users to deliver high-quality, search-optimized content every day while saving significant time. The whole process — from idea to publication — runs fully automatically and can be scheduled to execute without any manual input. It works just as well for solo creators as for marketing teams or agencies producing content at scale.

  How it works
  When triggered, the workflow generates a new blog post idea and checks your Google Sheet to see if the topic has already been published. If the topic is unique, it calls a sub-workflow that contains your brand’s writing style, tone, and blog goals. It then uses Perplexity AI to gather supporting research and context. Based on all this input, a complete 2000–2500 word article is generated in clean HTML, ready for WordPress. The workflow then searches Pexels for a relevant image and sets it as the featured image. Finally, it publishes the post to WordPress, including the proper title, meta description, and category. All relevant data — such as title, link, and publish date — is logged in your Google Sheet.

  How to set up
  To get this workflow running, all you need to do is connect the required APIs — OpenAI, WordPress, Google Sheets, and Pexels — and make a few basic adjustments. Replace the placeholder URLs in the HTTP request nodes with your actual WordPress address. In the Google Sheets nodes, add your own spreadsheet ID and tab name. In the node that fetches brand data, insert the workflow ID of your brand brief sub-workflow. You can also personalize the AI prompts by entering your blog name, company name, and a call-to-action to give the content a more tailored voice. Once that’s done, you can trigger the workflow manually or schedule it using the Schedule Trigger node.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.wordpress","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.markdown","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.notion","n8n-nodes-base.aggregate","n8n-nodes-base.set","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheetsTool"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Content Creation","Marketing","Writing Assistants"],"complexity":"medium","use_cases":["Create SEO blog posts","Generate long-form articles","Publish content to WordPress","Research blog topics","Automated content workflows"],"estimated_setup_minutes":30,"required_services":["GPT-4","Perplexity AI","WordPress"],"key_features":["Automated topic research","AI-generated content","SEO optimization","Direct CMS publishing","Featured image selection"],"target_audience":["blog admins","content creators","marketing teams"]}


name: 🌍 AI Interpreter and Translator for WhatsApp – Translate Voice & Text
author_name: Bruno Dias
author_username: brunodias
categories: []
created_at: 2025-05-05T11:45:24.432Z
updated_at: 2025-05-05T11:45:24.432Z
url: https://n8n.io/workflows/3875
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  🌍 AI WhatsApp Translator – Multilingual Voice & Text Translator for n8n

  Hi! I'm Bruno — I’ve been building AI-powered workflows for n8n and Make for 2+ years, focused on smart automation and real conversational agents.

  This powerful workflow allows you to receive WhatsApp messages (text or audio), automatically detect the sender’s language using their phone prefix, translate the content using GPT-4o via LangChain, and reply instantly via WhatsApp — all with native tone and cultural fluency.

  It’s ideal for international support, global communities, multilingual bots, and agencies managing clients from different countries.

  🔧 How it works

  Message (text or voice) is received via webhook (WhatsApp API or Evolution API)
  Sender's prefix is mapped to a country/language
  Audio messages are transcribed using OpenAI Whisper
  The text is translated using LangChain agent with GPT-4o
  The reply is structured in JSON and sent back via WhatsApp

  🧰 Nodes & Tech Used

  HTTP Request** (Webhook & API calls)
  OpenAI Whisper** (Audio transcription)
  LangChain + GPT-4o** (LLM for translation)
  If, Set, Merge** (Routing and logic)
  Custom JSON response** for WhatsApp formats

  📌 What you’ll need

  OpenAI API key  
  WhatsApp API or Evolution API access  
  n8n (Cloud or self-hosted)  
  (Optional) Typebot, Airtable, CRM for integration

  🛒 Want to use it?

  ❤️ Buy workflows: https://iloveflows.com  
  ☁️ Try n8n Cloud: https://n8n.partnerlinks.io/amanda

nodes_used:
  ["n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.lmChatGroq","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.toolThink","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.toolThink","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.convertToFile","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.toolCalculator","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.toolThink","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 4740 characters]

metadata_json:
  {"categories":["Communication","AI/ML","Translation"],"complexity":"medium","use_cases":["Translate WhatsApp messages in real-time","Receive voice notes via WhatsApp","Auto-reply in sender's language","Detect language from phone prefix","Maintain natural conversational tone"],"estimated_setup_minutes":15,"required_services":["WhatsApp Cloud API","OpenAI GPT-4o","LangChain"],"key_features":["Multilingual voice-to-text translation","Text translation in WhatsApp context","Language detection via phone prefix","Cultural fluency preservation","Instant bi-directional messaging"],"target_audience":["customer support agents","developers","chatbot designers"]}


name: Discover Business Ideas from HackerNews Posts with GPT-4.1 Analysis and Google Sheets
author_name: Ari Nakos
author_username: just-aristides
categories: []
created_at: 2025-05-05T12:59:27.968Z
updated_at: 2025-05-05T12:59:27.968Z
url: https://n8n.io/workflows/3877
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  What it is

  This n8n workflow monitors top Hacker News posts (in the Front Page) and identifies business-related pain points using AI.

  How It Works

  It filters posts by engagement (comments &gt; 80, points &gt; 200, and recent date), extracts key metadata, fetches the article content, and uses a GPT-4.1-based agent to detect and summarize pain points. 

  Results are appended to a Google Sheet for further analysis.

  Setup

  To run this workflow, you need to set up credentials for:


  OpenRouter: Uses an API Key. Generate this key directly from your OpenRouter account settings. (YT Tutorial : https://youtu.be/Cq5Y3zpEhlc)
  Google Sheets: Uses OAuth 2.0. Requires setup in Google Cloud Console (enable Sheets API, create OAuth Client ID with n8n redirect URI) to get a Client ID & Secret.

  Ensure these credentials are created and selected in the respective n8n nodes (Get Posts, OpenRouter Chat Model nodes, Output The Results).

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.hackerNews","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.httpRequestTool","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set"]

workflow_json_compressed:
  H4sIAAAAAAAAE52XyY7bRhCGX4XQWT3pfZlTbAOGB4kXxEJyCIygl2qJMIdURCqOYQzgx0hez0+SokaROBI1kueihShVf13LX6Uvk1vo/OT6y6Ss287XEW7S5HqigvM5U4gJAjPGsUhlcAJ8NByEA+2YYjF7LQy1zlJQyQntAzhBbbBxMp10cLusfAcvVpDa99Ctly8afAId4AHdag1300ndJGgn17/j6f2pQmblgwqEeeBEJmOIjUoSIaN1IrAUTUbPtb8FtP5tAXURqzJ+LOt58e3rPzNou+JTs/qYq+bTt6//9hCfl71pbWuyOYsE38LVra/XvpqtyvkcVmi1bNqyK5saSQinlk4Z1fQDPvcrPKqDFTJ+ubv39it+25iyu+kWO+QYDFBBlFZAJMuZOB4MoUlqL4PxNPg99tt1t1x3xWwBxS/QrquuPck5b5p5Be8XABujASaTdGrsWUZ5pXaUOTDMoXREOpaJBJqI1x6IoQoj64TB7O0pX5YV+izeNW3XFs8/Fy/Bd+sVnGYt80EgmdaXBZJf8R0kWPBGZUqSA4+hFJT4QB1JkXFlkmac2T3ke6ggdsVPgHwlVOk0XQvdIZ7kPZ48iyeu5A6PI4b1LGFt9i/aOuKTVCQFqZ1Q+ObkAK/D2vxcvGk6OA22sdmaPKjDPsWWHuFNYlN3UHfoanK6JLlymRspiUoUk43OiFMaiIpMG+VSFiKOgorvJmWUTvVTOQM11ggfsM97zoTEKACchKiE1zKyoMOe85WPH7Eo38Cn05lebGy2Jg8Sbi+sxz2dAyusFYJkRrGxg0nEBueItgE0jTLwNEj3a1jNobipsbtPK09vc1SJ2MvHATyqwx2WcRgYJSm6dLbH4qSXXWJSlFie1sXkR5PLv78MWU/35PTmJA04zlAPsacl1xhAnTgxLKTklYfs9J702U3xbN773FH+iJg/7FErX8/jwpf1ld/aDVHNpcJ95XaAyGFsEKiCzhlsaPwUsvUEDM0xR8+EEwPpXkL9S7PuhfHFwnfFa6SqLqCtbnvz/a8PwG2vRPy8mu/jqsFimwhNsvYo6DxIEsBE1HJPDba2lZQN2mY2e4ez5s81zsfTfdN1y63NrGmqw9jSyxDlQMsZi7grYM9IlySWKffEi6CJzy4JphnOzAHkz02zLN7+haG9wc3hESVfVmV3Uz/3XVzAUY9TfaGo73ucSyWlyMSqhAokJSOWWUEo9j7HHUiBHPT4TS5mzbKM7PI5KBHJnY/ccAq6qBKAZ0TzgOHrFcgqLogRXDETs7E+Dxt8tY79cE7Fdrd451ftpsrOFWazsb8337s5uIDSF5bn4AYmMy+U5wQnGG5yrs+95UA8T8onyilNA11/1rblvC42i07xCnzqD7h8lCPb1F42yNEGhavGrQEfbXRsJzr4+RZjgg5xHe3PG0/3xmaK23KCvyfX9O7DBzxnbzfm5fHrHTmc7n95silGKYbjcYzj/E436nY418bcPrbQjnMO9Qg9+vKPrpecBzE7mgX/Wx16O4zRAHEYymOHo2zHK+XYlUdH/aG/6RPTOFouT6Rg9y7HB9d96Hs1WOM83T47l4OH5ofsJ0tsjP+R9X08N6eE7v4iQzE7f48H1ocnnf9rOXaf0fV05CZ3d/8B4WAllnYPAAA=

metadata_json:
  {"categories":["Data Processing","Business Intelligence","Market Research"],"complexity":"medium","use_cases":["Generate business ideas from trending articles","Extract pain points from user discussions","Aggregate market feedback into spreadsheets"],"estimated_setup_minutes":15,"required_services":["OpenRouter","Google Sheets","Hacker News"],"key_features":["AI-powered sentiment analysis","Automated data filtering by engagement metrics","Structured data output to spreadsheets","Multi-step extraction and summarization"],"target_audience":["entrepreneurs","product managers","data analysts"]}


name: Monitor Amazon Product Prices with Bright Data and Google Sheets
author_name: Cyril Nicko Gaspar
author_username: cngaspar
categories: []
created_at: 2025-05-05T14:35:00.450Z
updated_at: 2025-05-05T14:35:00.450Z
url: https://n8n.io/workflows/3878
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:20
description:
  Amazon Price Monitoring Workflow

  This workflow enables you to monitor the prices of Amazon product listings directly from a Google Sheet, using data provided by Bright Data’s Amazon Scraper API. It automates the retrieval of price data for specified products and is ideal for market research, competitor analysis, or personal price tracking.

  ✅ Requirements

  Before using this template, ensure you have the following:
  A Bright Data account and access to the Amazon Scraper API.
  An active API key from Bright Data.
  A Google Sheet set up with the required columns.
  N8N account (self-host or cloud version)

  ⸻

  ⚙️ Setup
  1. Create a Google Sheet with the following columns:
  Product URL
  ZIP Code (used for regional price variations)
  ASIN (Amazon Standard Identification Number)

  2. Extract ASIN Automatically using the following formula in the ASIN column:

  =REGEXEXTRACT(A2, "/(?:dp|gp/product|product)/([A-Z0-9]{10})")
  Replace A2 with the appropriate cell reference

  3. Obtain an API Key:

  Sign in to your Bright Data account.
  Go to the API section to generate an API key.
  Create a Bearer Authentication Credential using this key in your automation tool.
  4. Configure the Workflow:
  Use a node (e.g., “Google Sheets”) to read data from your sheet.
  Use an HTTP Request node to send a query to Bright Data’s Amazon API with the ASIN and ZIP code.
  Parse the returned JSON response to extract product price and other relevant data.
  Optionally write the output (e.g., current price, timestamp) back into the sheet or another data store.

  ⸻

  Workflow Functionality

  The workflow is triggered periodically (or manually) and reads product details from your Google Sheet.
  For each row, it extracts the Product URL and ZIP code and sends a request to the Bright Data API.
  The API returns product price information, which is then logged or updated back into the sheet using ASIN.
  You can also map the product URL to the product URL, but ensure that the URL has no parameters. If the URL has appended parameters, refer to the input field from the Bright Data snapshot result.

  ⸻

  💡 Use Cases
  E-commerce sellers monitoring competitors’ prices.
  Consumers tracking price drops on wishlist items.
  Market researchers collecting pricing data across ZIP codes.
  Affiliate marketers ensuring accurate product pricing on their platforms.

  ⸻

  🛠️ Customization
  Add columns for additional product data such as rating, seller, or stock availability.
  Schedule the workflow to run hourly, daily, or weekly depending on your needs.
  Implement email or Slack alerts for significant price changes.
  Filter by product category or brand to narrow your tracking focus.

nodes_used:
  ["n8n-nodes-base.wait","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.aggregate","n8n-nodes-base.googleSheets","n8n-nodes-base.switch","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["Data Processing","Marketing"],"complexity":"medium","use_cases":["Amazon price tracking","Competitor analysis","Market research","Personal price monitoring"],"estimated_setup_minutes":15,"required_services":["Bright Data","Google Sheets","Amazon"],"key_features":["Scheduled web scraping","Batch processing","Conditional logic","AI-powered insights","Google Sheets integration"],"target_audience":["E-commerce managers","Marketers","Data analysts"]}


name: Build an MCP Server with Airtable
author_name: Aitor | 1Node
author_username: aitoralonso
categories: []
created_at: 2025-05-05T17:38:07.713Z
updated_at: 2025-05-05T17:38:07.713Z
url: https://n8n.io/workflows/3879
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  Who is this for?
  This template is designed for anyone who wants to integrate MCP with their AI Agents using Airtable. Whether you're a developer, a data analyst, or an automation enthusiast, if you're looking to leverage the power of MCP and Airtable in your n8n workflows, this template is for you.

  What problem is this workflow solving?
  This template caters to MCP beginners seeking a hands-on example and developers looking to integrate Airtable MCP service. When integrating MCP with Airtable, manually updating AI Agents after changes to Airtable data on the MCP Server is time-consuming and error-prone.

  This template automates the process, enabling the AI Agent to instantly recognize changes made to Airtable on the MCP Server. In data management, for example, it ensures that record updates or additions in Airtable are automatically detected by the AI Agent. With detailed steps, it simplifies the integration process for all users.

  What this workflow does
  This workflow focuses on integrating MCP with Airtable within n8n. Specifically, it allows you to build an MCP Server and Client using Airtable nodes in n8n. Any changes made to the Airtable Base/Table on the MCP Server are automatically recognized by the MCP Client in the workflow. This means that you can make changes to your Airtable (such as adding, deleting, or modifying records) on the MCP Server, and the MCP Client in the n8n workflow will immediately detect these changes without any manual intervention.

  Setup

  Requirements
  An active n8n account.
  Access to Airtable API.
  A sample base and rows in Airtable that you can use to test.
  An API key from your preferred LLM to power the AI agent.

  Step-by-step guide
  Create a new workflow in n8n: Log in to your n8n account and create a new workflow.
  Add Airtable nodes: Search for and add the Airtable nodes to your workflow that you wish the MCP client to have access to.
  Set up the MCP Server and Client: Use the appropriate nodes in n8n to set up the MCP Server and Client. Connect the Airtable nodes to the MCP nodes as required.
  Activate and test the workflow: Talk to the chat trigger once all credentials have been updated and table data synced and try adding some rows, deleting or finding and updating cells.

  How to customize this workflow to your needs
  If you want to customize this workflow, you can:
  Modify the triggers:** You can change the conditions under which the MCP Client detects changes. For example, you can set it to detect changes only in specific fields or based on certain record values in Airtable.
  Integrate with other services:** You can add more nodes to the workflow to integrate with other services, such as sending notifications to Slack or triggering further actions based on the detected Airtable changes.

  Need help?

  Feel free to contact us at 1 Node.
  Get instant access to a library of free resources we created.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.airtableTool","n8n-nodes-base.airtableTool","n8n-nodes-base.airtableTool","n8n-nodes-base.airtableTool","n8n-nodes-base.airtableTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["AI/ML","Data Processing"],"complexity":"medium","use_cases":["Connect Airtable to AI agents","Build MCP server integrations","Leverage AI tools for data access"],"estimated_setup_minutes":15,"required_services":["Airtable","MCP Client","Chat Service"],"key_features":["MCP server integration","AI agent connectivity","Custom tool definitions","Data retrieval automation","Memory context management"],"target_audience":["developers","data analysts","automation enthusiasts"]}


name: Monitor Server Uptime & Get Email Alerts with Google Sheets
author_name: Khaled
author_username: khaled
categories: []
created_at: 2025-05-05T17:52:03.128Z
updated_at: 2025-05-05T17:52:03.128Z
url: https://n8n.io/workflows/3880
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:19
description:
  🌐 Web Server Monitor & Alert System

  This automation pings web servers at regular intervals, logs their status, and sends email alerts if a server goes down. It’s perfect for maintaining visibility over server uptime — without complex monitoring tools.
  🧠 How It Works

  This workflow performs minute-by-minute checks on all listed servers in a Google Sheet and:

      ✅ Logs all reachable servers in an “Alive” log.

      🔻 Sends an email alert if a server is unreachable.

      📄 Logs failed servers in a “Down” sheet with timestamps.

  🧩 Key Components
  ⏰ 1. Schedule Trigger

  Runs the workflow every minute for real-time monitoring.
  📄 2. Web Servers List (Google Sheets)

  Pulls server IPs or hostnames from a Google Sheet named Server_List.
  Each row = one server to monitor. This makes adding/removing servers effortless — just update the sheet.
  🌐 3. Servers Alive Check (HTTP Request)

  Performs an HTTP GET request to each server (e.g., http://your-server.com).
  If the request fails, it automatically triggers the error path (handled via continueOnFail).
  ✅ 4. Web Server Alive Log (Google Sheets)

  Records successful pings in Server_Status_Alive with:

      Timestamp

      Server IP

      Status = Alive

  This log can be used for uptime reports or audits.
  📧 5. Server Down Notification (Gmail)

  If a server fails, this node sends an email to the admin.
  It includes:

      Server address

      Timestamp

      Suggested action

  📄 6. Web Server Down Log (Google Sheets)

  Logs failed pings in a separate sheet for historical tracking and debugging.
  ✅ Main Advantages

      Live Server Monitoring
      Stay informed about server health in near real-time.

      No-Code Configuration
      Add/remove servers from the Google Sheet — no need to touch the workflow.

      Email Alerts on Failure
      Proactively notifies you before users report the issue.

      Audit-Ready Logging
      Maintains logs for both healthy and failed checks for documentation or reporting.

      Flexible & Scalable
      Monitor 1 or 100 servers with the same template — just scale the list.

  ⚙️ Setup Steps
  🔑 Prerequisites

      Google Sheet with server list (column name = “Server”)

      Gmail OAuth2 Connection for alerts

      n8n Instance running regularly

  🛠 Configuration

      Google Sheets

          Sheet 1 (Server_List): Your list of servers.

          Sheet 2 (Server_Status_Alive): Log for reachable servers.

          Sheet 3 (Server_Status_Down): Log for unreachable servers.

      Gmail Integration

          Connect your Gmail account in the Server Down Notification node.

          Edit recipient email and message content as needed.

      HTTP Check

          Adjust the HTTP request URL template if using port numbers or paths (e.g., http://{{Server}}:8080/status).

      Schedule

          Default is every 1 minute. Change via Schedule Trigger if needed.

  🧪 Testing

      Input a reachable server (e.g., example.com) and an unreachable IP.

      Run the workflow manually or wait for the next scheduled run.

      Check:

          Alive log updates correctly.

          Down log records failures.

          Email alert is received.

  🚀 Deployment

  Activate the workflow, and it will quietly run in the background, notifying you of any server downtime instantly while keeping logs for future review.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","n8n-nodes-base.googleSheets"]

workflow_json_compressed:
  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

metadata_json:
  {"categories":["DevOps","Monitoring"],"complexity":"simple","use_cases":["monitor server uptime","receive email alerts","log server status","track server failures"],"estimated_setup_minutes":15,"required_services":["Gmail","Google Sheets","Browser Extension","Scheduler"],"key_features":["ping availability checks","scheduled polling","email notifications","status logging"],"target_audience":["devops engineers","system administrators","IT managers"]}


name: Travel planning agent with Couchbase vector search, Gemini 2.0 Flash and OpenAI
author_name: Elliot Scribner
author_username: ejscribner
categories: []
created_at: 2025-05-05T18:21:37.826Z
updated_at: 2025-05-05T18:21:37.826Z
url: https://n8n.io/workflows/3881
scraped_at: 2026-05-02 08:04:51
metadata_generated_at: 2026-05-02 08:36:20
description:
  &gt; Disclaimer: this workflow template uses the n8n-nodes-couchbase community package. Community nodes are unverified and usage of them comes with some risks. See here for instructions on installing n8n community nodes.

  This template is intended for use by those interested in learning more about Agentic AI workflow development, as well as those interested in learning how to use the Couchbase Search Vector Store node for practical applications.

  This workflow helps users decide on travel destinations based on descriptions of several points of interest loaded into Couchbase and retrieved using Vector Search.

  How it Works

  This template contains two workflows:

  The Data Ingestion workflow uses the following nodes
      Webhook node (to listen for HTTP requests)
      OpenAI Embeddings node (to generate embeddings on document insertion)
          Note: You’ll need to configure OpenAI credentials for this node
      Couchbase Vector node (configured for document insertion)
      Default Data Loader and Recursive Character Text Splitter
  The Chat Application workflow uses the following nodes
      Chat Trigger node
      AI Tools Agent node connect to:
          Gemini (as the Chat Model, for generating responses)
              Note: You will have to configure Gemini credentials for this node
          Simple Memory (as the Memory, to maintain conversation context)
          Couchbase Search Vector node (as the Tool, for search)
          OpenAI Embeddings node (as the Embedding model for the Couchbase Search Vector node, to convert queries to vectors)
              Note: You’ll need to configure OpenAI credentials for this node

  Set up

  Setting up this workflow is easy and only takes around 10 minutes.

  Prerequisites

  A Couchbase Cluster running the Search Service, and corresponding database access credentials
      Be sure the Couchbase cluster allows the incoming IP address for n8n
      Create a Vector Search Index using this index definition
      Create a bucket (called travel-agent), scope (called vectors), and collection (called points-of-interest) in your Cluster
  OpenAI API Key
  Gemini API Key

  Steps

  Configure all necessary credentials (Couchbase, OpenAI, and Gemini)
  Select your bucket, scope, and collection for each of the Couchbase vector nodes
  Ingest data, either using the cURL statements found on the sticky note within the workflow, or using this shell script to ingest 6 points of interest
  Open the chat and test out your travel agent!

  Customization and Next Steps
  This workflow template can be made more robust by enhancing the data model to include more information about each point of interest. For example, the addition of price ranges, ideal seasons to visit, activity types, and accomodation options can help inform the LLM further about each destination, and in turn allow it to provide a more tailored response and be more helpful for travel planning.
  Alternatively, the data model could be entirely re-configured to suit a wide variety of other use cases. This template can serve as a building block for all sorts of AI Agent applications using RAG and is not limited to only travel recommendations.

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.webhook","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.memoryBufferWindow","@n8n/n8n-nodes-langchain.agent","n8n-nodes-couchbase.vectorStoreCouchbaseSearch","n8n-nodes-couchbase.vectorStoreCouchbaseSearch","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi"]

workflow_json_compressed:
  H4sIAAAAAAAAE+VZaW/bRhr+KwNmgcaARuYxvAwsdh03TV0ksTd2L0RBMuQMJTY8VJLyUcP/fZ93SEm0YqdOutj9sDDiSHO89/G84xsrV9aBlb84/OM8jOI34b+c7OTkuTWxSt1J6+DGyqu2k1Wqj+lcKB0dK+UEIg39KE2UTsI0iyI3FNoPQhl7ofQCreJYCeW6WeaKJBB+JBw7DlMRgW6ny2Uhu56e54fhaO2o0ao9091qeVRjRXcah7pmpW8nViVLjRvnjbzQBTstZFXl1ZwdznXVscu8W7CjepUuEtlq9pNOu7phZ1o26WLCXugyr3LmTm32XSHbBZOVYidLXR0eE3M5b62Dt+/AolaaPt70RrEzL3Dww6Xvu1x4WvE49AUPYxFGtuN4se9bG8F+XuiKpQvZsVK3rZxr1uhU5xdQATyul3Tmn1VU7eMfN5w4dJjjRl5N6d55k8/nusHpZd3mXV5XEMWL7IkrbAh3qZNFXX80ZktdN3GxzLPMDrmA7bl0pOSBR6b2bemkCdGRDWTrdNOSI+sl0aSPt7e9RD9hx7Bxps7tZNBaR0kcOb7idgayQocpl66dcCewXS+CL+1UbbV+UdfzQq8tfETqv4JuxSN0Lko63hPo799V3Q/siYhI9Qf1QJQSs9e9LOZzuz83tDi8zTPytvWJthtdpUgcP45DrrRQHDEd8SRwPa5jLxDCdTwhs62uZ12efrxmr+tOb9XbakaRN23NmeHISBnHhTbuPdqkdVE31oEHB+eqW1gHkW1PrIXO54vOOvDpS1pXHYIczJ48YYfHbEiBPvJP60uNrGHJ9Tb+p7NqVj3B4V/rFVKjKFilcaSrD2aVM2Umwdh1vWrY4L7D02NGuQeCuSxaliF5usXGrS9fvppV7p2Lffbce2nY0mWilaIUNeaBTN6UziPNmRzlalqsWhiDPV21dPjtdudILnVRyHdPF123bA/299OiXqlpulEzrcv9PZZXhq3ZnDAIsaVwppsL3ezNKjFlh0qxt9/KTvZct4Jv6as6bXfIG6r7g4ztfikrZDZXAxm+arE6XXRl8SQ1qm23Rhz2+vokl8umXjY5WWCpmzJvKR63hquxKE1sk43ZpYR7u5qO4kQ5q3zYr66yfL5qNHt7WBRwvWLHp0wq1aDm6C9SRdJ9ni/5cNtosWeEMR5GYLN17Z+yH2GzD/bU/OzbH8wxLdscjus0gr6aw8HByMHJKv2ouwlrU6g1MRUXoV6gMEPBKfvZlMe6LDU2SPmsJnlABzHKGOPsmSFwwD50Jty5pHD/MGyeEVXsXZhC366XjzYcsLes86preZ1x/I8cael2OGWv5UU+JyFhW+JMMcHO67poJwgipK9Z7XsHgzMH4c3Ocbmsm269eVwpfQXbLIta7mjBfjg7ec2yvKC1Fe6/XUCErX/medtN54iKVWKco39r0yZPKt3sB5kTeMJTIhEoTzLzHB1lnhC+H0aOSOw9k96z6gSOYfAiqzPwRuHNW5h4iA/Vh9Ao91m7NjVJSyIOHaUPzrYuNaPgZb3d2NNWa6avJPXhnuX5AhzaRb0qFOujnfX2z/8AB3MXuXiv4ce+38hOEi7g2ztsO7IT65prElm2vTP6Uvf7iiKN0kMm9aozO+Or5CYKRrMBtkscReg+n0/ZjNoz6A7SH7N5bUJYsqZGTqNosznwzqW8/sfM+kzD8EQUBFmkuW0nNhehHfDIVWjBsZPEvufIKAlGkKA38IPN4nKzP+oUVP8d295t+V4qgyxRCo3eBz+gMB7bwuWuF9oiUjLyDee7zWUpqaM89u62sVqNvHxWq+sN+KKwfaW7RU2inJ6cnX9iI3djIzdQQgeu5MIlG2k75pEf+TBUqP0kTeMsGzXVb3UmV0XXZ+FLRKZBQH+GHVDeVigd3XCbLm/ujruuA/jkeMGfgIjf2roiEuD495sb9jf6Pk2g/xR2eG8+mBB7X2fv1yE97fIOyX17i7Lz6DtQAlluWOOm1XMmvES462pJZTgfRHk4BgMvSz07yrhQTopfruBx4to8iFSog9RVSSK39n2j0xVIIMuAthqZUqs911eoYcsi77pHWbvD+fXxDb0NufPR7i7oIfP74rPmf1jRSGRR6rkJj7QNRX1ColKn3AkRSojfIBTqXnTmfDE84wEl3T1xMoCy0B2BMhHsgrKjH9+8RPMpS1OCajSGOdUhcqQpd99T7cmpQq0rKhXtRX1pamCKZdNBhhIKAqYDr+tzTcUypwKHAgpHEhOUX2VKJMoWvpjS2BpeHz6gzcFHBeO/MEpVFL81JazOLDabUbvk32PjqNeCn19TOwVAQZczEGSfInN7VrFvbkyPxZ11fM+sAzYs0vIn0X5nn06YjKHVmfU8zzJA2HMCrzNrMj41ypH+7DFMjfqcN0gaDInwILVuXITRICxaT90jQERkuWRKs1eyaakVncomR1P/rjEYZmat2dz2H8x/t98MJptVTxuNKRTUR+bqmyNRJxcX6NrgNyDO9TGKrz0icIj+AsTKegXIO8mq+EgoSgM0tPnVnXZFbk++HB54vi9FIG3pRZ4UURjpwNeu69lJ7KZB4u9N2TM0OsKI1EEpZAzYIYHr5mMGfGIiCNDVLAKTqpXpzGzoV0bVSxpnm1U/ZNO5XqnpZwpT4qYZ5Il4JGLkq0BNAoTBSKXwXUoRC0eP8jU3efBKl3Vz/YgiVJqDz1YInObnvFL15d0UphS9Z1z8dNT1NgLbSRZmOot5Fscx2pWMuAzoV+I4TqZjaUdiK/DO5PUIkeVwbiRlYK/n+YcKolXKq+NuPQlAYBSb9hpxV77q3xXAkeY62RDMRrwts1UBpNTmhNW7AdZ0cBZb0iOJbqZmDjRISw6IDWDQINhULmWSo3abWtLn0zo+UaHWqTwx+D/vTOCouvoGYLO6IExWYsJATHxq5Whj5TCOMyf2HMSBRFgkTgD0ESE2gKPS1PWUF+hxv4LomkAhJpjdd50Bd/fPO/cV+e3E0+t5hn96c7+/vgO3HnhlKPuu3AzicNnyDjPCHZh0S21gTZsmErr4/n1T9LhpsiZCZQMXL2Sxoq/W+F4/5jz+Ignx7bZE0osYQXocJIedblx3PLiOZUC4G6hsTEMUjXXM/NI/nnyx3NtR67GX6fZ2Ju7fPgZih8vcPDVSuPz6a36eLH4/O2zOlnl38cs2NEYvA6NnB5mCDNLsnhjcZnrshlEWipCnUSK4kIjBKNGaJ7FI/FgpLZNRph/3Bfu/FIGOQ4jftR+Mwb5//M8j7/8tZkRqu6FIPR4ECByRCZ8noRJcBV6aadexXT3C2S90RTV78/z1fP381bL+YYtANN88inGPtyWG90d0kc2d1pDeeSWNUb/CL0TY0+2wFnlZFIhMcunGEQZaD90PmvFUusqNPC8Mlf7LSjp/WUsaiDHIfbmeON+j5nWktbqj16o+liCbbk5rgF6MutYaHrXfoWSegcfJZWVGGn2FoYfYnDQ0Yh5YF06fEIaRGc8jWwtb+5J7vvQQLFKgtthoG2mswiCKwyShWQVQtuozwAiwfiAwXT8nRd/emL9CfFURMiQmKBfIUOvAvn33DkLehVlgJPP35fBlxO1BcLM9vkv5vsm9p7+ezv+iPmNKu8wf/LtDLwHF1QpYaVh7pKJ3b+2y/MwfeO7z34OM7nXTn4/pvWLjUfwOu8++o+xe/JT7o0HXIAZBoceadcBNOw78ynrZ89+s3xHia7DjHWL/ISGdz0r5VYnwkIy3t/8Gp9upEcIdAAA=

metadata_json:
  {"categories":["AI/ML","Travel Planning"],"complexity":"medium","use_cases":["automates travel itinerary planning","queries vector database for recommendations","interacts with users via chat interface","integrates multiple LLM models"],"estimated_setup_minutes":25,"required_services":["Couchbase","Google Gemini","OpenAI"],"key_features":["Couchbase vector search","multimodal model response","contextual memory","recursive text splitting"],"target_audience":["AI developers","travel planners","data scientists"]}


