# templates

name: Analyze Facebook Ads & Send Insights to Google Sheets with Gemini AI
author_name: JJ Tham
author_username: jj-tham
categories: []
created_at: 2025-11-02T05:25:25.505Z
updated_at: 2025-11-02T05:25:25.505Z
url: https://n8n.io/workflows/10427
scraped_at: 2025-12-24 13:02:41
description:
  Stop manually digging through Meta Ads data and spending hours trying to connect the dots.

  This workflow turns n8n into an AI-powered media buyer that automatically analyzes your ad performance, categorizes your creatives, and delivers insights directly into a Google Sheet.

  ➡️ Watch the full 4-part setup and tutorial on YouTube:
  https://youtu.be/hxQshcD3e1Y

  About This 4-Part Automation Series

  As a media buyer, I built this system to automate the heavy lifting of analyzing ad data and brainstorming new creative ideas.
  This template is the first foundational part of that larger system.

  ✅ Part 1 (This Template): Pulling Ad Data & Getting Quick Insights
  Automatically pulls data into a Google Sheet and uses an LLM to categorize ad performance.

  ✅ Part 2: Finding the Source Files for the Best Ads
  Fetches the image or video files for top-performing ads.

  ✅ Part 3: Using AI to Understand Why an Ad Works
  Sends your best ads to Google Gemini for structured notes on hooks, transcripts, and visuals.

  ✅ Part 4: Getting the AI to Suggest New Creative Ideas
  Uses all the insights to generate fresh ad concepts, scripts, and creative briefs.

  What This Template (Part 1) Does

  Secure Token Management
  Automatically retrieves and refreshes your Facebook long-term access token.

  Fetch Ad Data
  Pulls the last 28 days of ad-level performance data from your Facebook Ads account.

  Process & Clean
  Parses raw data, standardizes key e-commerce metrics (like ROAS), and filters for sales-focused campaigns.

  Benchmark Calculation
  Aggregates all data to create an overall performance benchmark (e.g., average Cost Per Purchase).

  AI Analysis
  A “Senior Media Buyer” AI persona evaluates each ad against the benchmark and categorizes it as “HELL YES,” “YES,” or “MAYBE,” with justifications.

  Output to Google Sheets
  Updates your Google Sheet with both raw performance data and AI-generated insights.

  Who Is It For?

  E-commerce store owners

  Digital marketing agencies

  Facebook Ads media buyers

  How to Set It Up

  Credentials

  Connect your Google Gemini and Google Sheets accounts in the respective nodes.

  The template uses NocoDB for token management. Configure the “Getting Long-Term Token” and “Updating Token” nodes — or replace them with your preferred credential storage method.

  Update Your IDs

  In the “Getting Data For the Past 28 Days…” HTTP Request node, replace act_XXXXXX in the URL with your Facebook Ad Account ID.

  In both Google Sheets nodes (“Sending Raw Data…” and “Updating Ad Insights…”), update the Document ID with your target Google Sheet’s ID.

  Run the Workflow

  Click “Test workflow” to run your first AI-powered analysis!

  Tools Used

  n8n

  Facebook for Developers

  Google AI Studio (Gemini)

  NocoDB (or any credential database of your choice)

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.nocoDb","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.nocoDb","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.sort","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.aggregate","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 16932 characters]


name: Generate LinkedIn Posts with Mistral AI Using 7 Dynamic Content Templates
author_name: DIGITAL BIZ TECH
author_username: dbt
categories: []
created_at: 2025-11-03T07:21:43.502Z
updated_at: 2025-11-03T07:21:43.502Z
url: https://n8n.io/workflows/10450
scraped_at: 2025-12-24 13:02:43
description:
  AI-Powered LinkedIn Post Generator Workflow

  Overview
  This workflow is a two-part intelligent content creation system built in n8n, designed to generate professional and on-brand LinkedIn posts.

  It combines a conversational frontend agent that interacts naturally with users and a backend post generation engine powered by structured templates and Mistral Cloud AI models.

  Workflow Structure
  Frontend:** Conversational “LinkedIn Agent” that guides the user.
  Backend:** “Post Generator” engine that produces final, high-quality content using dynamic templates.

  LinkedIn Agent (Frontend Flow)

  Trigger:** When chat message received
    Starts the workflow whenever a user sends a message to the chatbot or embedded interface.

  Agent:** LinkedIn Agent
    Welcomes the user and lists 7 available post templates:
      Educational  
      Promotional  
      Discussion  
      Case Study & Testimonial  
      News  
      Personal  
      General  
    Prompts the user to select a template number.
    Asks for a topic after the user’s choice.
    Sends both template number and topic to the backend using a Tool call.

  Memory:** Simple Memory1  
    Stores the last 10 messages to maintain conversational context.

  LLM Model:** Mistral Cloud Chat Model1  
    Used for reasoning, conversational responses, and user guidance.

  Tool Used:** template  
    Invokes another trigger in the same workflow: When Executed by Another Workflow.
    Passes the user’s chosen template and topic to the backend.

  Post Generation Engine (Backend Flow)

  Trigger:** When Executed by Another Workflow  
    Receives payload from the template tool (template ID + topic).

  Router Node:** Switch between templates  
    Directs flow to the correct post template logic based on user’s choice (1–7).  
    Example:  
      1 → Knowledge & Educational  
      2 → Promotion  
      3 → Discussion  
      4 → Case Study & Testimonial  
      etc.

  Prompt Template Nodes:**  
    Each Set node defines a large, structured prompt containing:
    Specific tone, audience, and purpose rules  
    Example hooks and CTAs  
    Layout and line formatting instructions  
    “FORBIDDEN PHRASES” list (e.g., no “game-changer”, “revolutionary”)

  Expert Writer Agent:** post generator  
    A specialized agent node that receives the selected prompt template.  
    Generates the final LinkedIn post text using strict formatting and tone rules.  
    Model: Mistral Cloud Chat Model

  Output:**  
    The generated post text is sent back to the template tool and displayed to the user in chat.

  Integrations Used
  | Service | Purpose | Credential |
  |----------|----------|-------------|
  | Mistral Cloud | LLM & post generation | Mistral Cloud account dbt |
  | n8n Agent Framework | Multi-agent orchestration | Native |
  | Chat UI / Webhook | Frontend interaction | Custom embedded UI or webhook trigger |

  Agent System Prompt Summary
  &gt; “You are an intelligent LinkedIn assistant that helps users craft posts.  
  List available templates, guide them to select one, and collect a topic.  
  Then use the provided template tool to request the backend writer to generate a final post.”

  Backend writer’s system prompt:  
  &gt; “You are an expert LinkedIn marketing leader.  
  Generate structured, professional posts for AI/automation topics.  
  Avoid hype, buzzwords, and clichés.  
  Keep sentences short, tone confident, and use strong openers.”

  Key Features
  Dual-agent architecture (Frontend Assistant + Backend Writer)  
  7 dynamic content templates for flexibility  
  Conversational chat interface for ease of use  
  Strict brand tone enforcement with style run Fully automated generation and return of final post in chat

  Summary
  &gt; A modular, agent-based n8n workflow for automated LinkedIn post creation, featuring conversational input, structured templates, and AI-generated output powered by Mistral Cloud.

  Perfect for content teams, social media managers, and AI automation startups.

  Need Help or More Workflows?
  Want to customize this workflow for your business.
  Our team at Digital Biz Tech can tailor it precisely to your use case — from automation logic to AI-powered content engines.

  We can help you set it up for free — from connecting credentials to deploying it live.

  Contact: shilpa.raju@digitalbiz.tech  
  Website: https://www.digitalbiz.tech  
  LinkedIn: https://www.linkedin.com/company/digital-biz-tech/  
  You can also DM us on LinkedIn for any help.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatMistralCloud","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.toolThink","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.executeWorkflowTrigger","@n8n/n8n-nodes-langchain.lmChatMistralCloud","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/n8n-nodes-langchain.agent","n8n-nodes-base.switch","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, 21052 characters]


name: Generate & Publish AI Faceless Videos to YouTube Shorts using Sora 2
author_name: SuS
author_username: sulieman-said
categories: []
created_at: 2025-11-03T09:13:00.747Z
updated_at: 2025-11-03T09:13:00.747Z
url: https://n8n.io/workflows/10455
scraped_at: 2025-12-24 13:02:42
description:
  How it Works  
  This workflow lets you auto-generate cinematic faceless YouTube Shorts — completely on autopilot.  
  It uses a custom automation setup to create short-form AI videos much cheaper than the standard Sora 2 video generation process.  
  Perfect for running a fully automated Shorts or Reels channel that posts new videos daily — without showing your face or editing manually.  

  Workflow Overview  
  Schedule Trigger  
     Automatically runs at your chosen times (e.g., twice per day).  

  AI Prompt Generator  
     Creates detailed, creative video ideas based on your chosen niche.  
     You only need to adjust the system prompt (e.g., Travel Facts, Tech Visuals, Dream Loops, Mini-Facts, Nature Illusions).  
     Output includes:  
       Video Prompt (for Sora 2)  
       AI-Generated Title & Description  
       Social Caption with hashtags  

  AI Video Generation  
     Generates 9:16 vertical short-form videos optimized for YouTube Shorts, TikTok, and Instagram Reels.  
     Runs via a cost-efficient automation layer, offering cinematic results at a fraction of Sora 2’s standard cost.  

  Publishing Automation  
     Uploads automatically to YouTube Shorts (title, description, and hashtags included).  
     Can also post to Telegram or Instagram Reels with a small modification.  

  Why Use This Workflow?  

  🎬 Faceless Content Made Easy  
    Ideal for automated channels that post AI-generated visuals and storytelling — no filming or voice needed.  

  💸 Cheaper Than Sora 2’s Direct API  
    Uses a custom route that drastically reduces costs while keeping near-cinematic quality.  

  ⚙️ Full Automation  
    From idea → video → upload — all handled automatically.  
    You decide the posting frequency (e.g., 1–5 Shorts per day).  

  🌍 Multi-Niche Ready  
    Works for any theme — facts, surreal visuals, art loops, mini documentaries, motivational clips, and more.  

  🚀 Cross-Platform Scaling  
    Native support for YouTube & Telegram.  
    Optional integrations for Instagram Reels or TikTok uploads.  

  Setup Steps  

  API Keys & Credentials  
     Sora 2 access (or connected API key)  
     YouTube API credentials  
     (Optional) Telegram or Instagram API  

  Define Schedule  
     Choose how many videos to post per day.  

  Adjust Prompts  
     Customize the AI agent prompt to your niche.  

  Launch & Scale  
     Watch your faceless channel grow while everything runs automatically.  

  Tips & Notes  

  Start with one niche to test engagement, then duplicate the workflow for more channels.  
  Add subtitles or trending sound layers for higher virality.  
  The workflow is built for long-term, hands-off scalability — ideal for faceless automation entrepreneurs.  

  ⚡ Summary  
  Create an AI-powered faceless Shorts machine that works 24/7.  
  Just pick your niche, adjust the prompt, and let automation handle video generation, upload, and growth — smarter and cheaper than doing it manually with Sora 2.  

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.youTube","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE6VX224bNxD9FUHPosvL8OanBi4Q5KGtkaQpiiIohuRQEiLvutIKaRD43zsruZIsaX0r/GLszh4eHh6eGX0f31CH48vv43mz6rDJ9K6ML8cgq44E1iYlk6EqvdPROAM2FlnRRQsh+AJQChYVyANaayJC8FUT0Xgy7ujmdoEdXS2prD5Qt769avkJdcQLdMs13U3GTVtoNb78k1fvV0UbbcrFilCiFABoRHIRhPJeheJcNQCM3OANcfWHbp6/fBv90nY0EqOPy/l0Sst+4W+3/esmNGKDLxKu6GK1qe6LueS2Xc27edvw0kJFLSfCeveZn+OSsTtarnpFctt01HSMNb7bwn7iN5vP1N3knrNX5CUySUtRCUgWRQJmn8BpUMn5oPQB5zyjsl7Q03TvC/d1Dzh7JydM/JjyCc0LvSOKNRiTfBG+YC+uYqLknCioE1CCmqUfEvfNu9H1kk+ve4W82sFEQHidulolpU2WQsfiBGDVItpahfdQPG8GUOU9aab5Ztpj7lj+yDR/2FNdYDPNM5w3F3hfd0g1GD1RTj4lqj4Q1ScLqdok0HnmR9WJIAGFhgwejNSS5J7f27ad8tm/pZt5Mx9dzbAb/cy8Fs/gu7jpy7cA2++PybPMxp3IPCytkoXPH7RwDrWAiEw96Sykk5i9z7r6OOSHT/NC7ejN9buX+8EC2yGciPw8OyTCKC1GEYsCAY6NESpaoY1KkHKOxYYDuamhJSfQlu4g1VnX3b6nv9e0OjYEBPkcQ8CBIQz6ZAJmQUmj4LjkW5arEpm0yhWjUfWA4e8470a1XY7eU1MeSYOvXHfETcN/3L5SmrXtl01uS+PAGAIhi0ucRimyMZIROaLRlFIKTo2fDI294K6wGyQnsnU9XlCVtwMgTLQGS82Wj2O/nasZ5S/3exl96LBbr16uOm8L4CWShxwsau4VBRIHWy5ZJKOdkBm4iUUDGsqQka/XaTFfzebN9MVO9uF/5BpSyFXXIsDk/pxKEYH4nGRQENnXiHhgk99uFy2WUdeO/mjXH9eJBsl+270/YKqU5GyQT4q6p2d9CTk5PuzkLUva26jyjYuKI0aVWnM5bMR84D25j7SgKeMPsuv2Bcf0lNJHVgYTismgBKnAHMBXEUJlsaRleQBDofK0lfc2sTUb6WURSYbMeIlDW1UpIlgpVXAlQD20yXKduzXPLqNf193tuhtd43J1eEUHo7rd1G/L9zBH19d5/ay4vjC7DWSFWGTmNpMlib69COT2I4rX3iLprOrBofzUfm02rnll+PU5rU6HokezLyeftORmjTH26YwiJjJCGW7VsgL/qT3BbQ/JS8Juo855fvP6kJbhYe0ZtA57NPLwitF5wcblg8/saB7OqqhVg2XO1Yc8lA+7wUe9ZrB8TUJwNb9vKPcwm/LdVMP/37DBGJsH5p7BIz1uUzjhob7QP+NLeff5My/1UPJzcEOuOYGb7L8ZbGJnORytcI7EcJ4cI0523zwSkWdpHOl2jsbL9nVcfQ7x0f54FvXk98I52NOx9yzWudXPwQ1czPMyDk20DIzzv/pQXPOoff/sUc4n5SdaDEXydq3D2H16qQfVD1e6u/sXa5zvqxUPAAA=


name: Build a Product Catalog Chatbot with Mistral AI, Google Drive & Supabase RAG
author_name: DIGITAL BIZ TECH
author_username: dbt
categories: []
created_at: 2025-11-03T09:57:50.267Z
updated_at: 2025-11-03T09:57:50.267Z
url: https://n8n.io/workflows/10459
scraped_at: 2025-12-24 13:02:43
description:
  AI Product Catalog Chatbot with Google Drive Ingestion & Supabase RAG

  Overview
  This workflow builds a dual-system that connects automated document ingestion with a live product catalog chatbot powered by Mistral AI and Supabase.

  It includes:
  Ingestion Pipeline:** Automatically fetches JSON files from Google Drive, processes their content, and stores vector embeddings in Supabase.  
  Chatbot:** An AI agent that queries the Supabase vector store (RAG) to answer user questions about the product catalog.  

  It uses Mistral AI for chat intelligence and embeddings, and Supabase for vector storage and semantic product search.

  Chatbot Flow
  Trigger:** When chat message received or Webhook (from live website)
  Model:** Mistral Cloud Chat Model (mistral-medium-latest)
  Memory:** Simple Memory (Buffer Window) — keeps last 15 messages for conversational context
  Vector Search Tool:** Supabase Vector Store
  Embeddings:** Mistral Cloud
  Agent:** product catalog agent
    Responds to user queries using the products table in Supabase.  
    Searches vectors for relevant items and returns structured product details (name, specs, images, and links).  
    Maintains chat session history for natural follow-up questions.

  Document → Knowledge Base Pipeline
  Triggered manually (Execute workflow) to populate or refresh the Supabase vector store.

  Steps
  Google Drive (List Files)  
     → Fetch all files from the configured Google Drive folder.

  Loop Over Items  
     → For each file:
     Google Drive (Get File)  
       → Download the JSON document.
     Extract from File  
       → Parse and read raw JSON content.
     Map Data into Fields (Set node)  
       → Clean and normalize JSON keys (e.g., page_title, comprehensive_summary, key_topics).
     Convert Data into Chunks (Code node)  
       → Merge text fields like summary and markdown.  
       → Split content into overlapping 2,000-character chunks.  
       → Add metadata such as title, URL, and chunk index.
     Embeddings (Mistral Cloud)  
       → Generate vector embeddings for each text chunk.
     Insert into Supabase Vectorstore  
       → Save chunks + embeddings into the website_mark table.
     Wait  
       → Pause for 30 seconds before the next file to respect rate limits.

  Integrations Used
  | Service | Purpose | Credential |
  |----------|----------|------------|
  | Google Drive | File source for catalog JSON documents | Google Drive account dbt |
  | Mistral AI | Chat model & embeddings | Mistral Cloud account dbt |
  | Supabase | Vector storage & RAG search | Supabase DB account dbt |
  | Webhook / Chat | User-facing interface for chatbot | Website or Webhook |

  Sample JSON Data Format (for Ingestion)

  The ingestion pipeline expects structured JSON product files, which can include different categories such as Apparel or Tools.

  Apparel Example (T-Shirts)
  [
    {
      "Name": "Classic Crewneck T-Shirt",
      "Item Number": "A-TSH-NVY-M",
      "Image URL": "https://www.example.com/images/tshirt-navy.jpg",
      "Image Markdown": "",
      "Size Chart URL": "https://www.example.com/charts/tshirt-sizing",
      "Materials": "100% Pima Cotton",
      "Color": "Navy Blue",
      "Size": "M",
      "Fit": "Regular Fit",
      "Collection": "Core Essentials"
    }
  ]

  Tools Example (Drill Bits)
  [
    {
      "Name": "Titanium Drill Bit, 1/4\"",
      "Item Number": "T-DB-TIN-250",
      "Image URL": "https://www.example.com/images/drill-bit-1-4.jpg",
      "Image Markdown": "",
      "Spec Sheet URL": "https://www.example.com/specs/T-DB-TIN-250",
      "Materials": "HSS with Titanium Coating",
      "Type": "Twist Drill Bit",
      "Size (in)": "1/4",
      "Shank Type": "Hex",
      "Application": "Metal, Wood, Plastic"
    }
  ]

  Agent System Prompt Summary
  &gt; “You are an AI product catalog assistant.  
  Use only the Supabase vector database as your knowledge base.  
  Provide accurate, structured responses with clear formatting — including product names, attributes, and URLs.  
  If data is unavailable, reply politely: ‘I couldn’t find that product in the catalog.’”

  Key Features
  Automated JSON ingestion from Google Drive → Supabase  
  Intelligent text chunking and metadata mapping  
  Dual-workflow architecture (Ingestion + Chatbot)  
  Live conversational product search via RAG  
  Supports both embedded chat and webhook channels  

  Summary
  &gt; A powerful end-to-end workflow that transforms your product data into a searchable, AI-ready knowledge base, enabling real-time product Q&A through a Mistral-powered chatbot.

  Perfect for eCommerce teams, distributors, or B2B companies managing large product catalogs.

  Need Help or More Workflows?
  Want to customize this workflow for your business or integrate it with your tools?  
  Our team at Digital Biz Tech can tailor it precisely to your use case — from automation pipelines to AI-powered product discovery.

  💡 We can help you set it up for free — from connecting credentials to deploying it live.

  Contact: shilpa.raju@digitalbiz.tech  
  Website: https://www.digitalbiz.tech  
  LinkedIn: https://www.linkedin.com/company/digital-biz-tech/  
  You can also DM us on LinkedIn for any help.

nodes_used:
  ["n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.googleDrive","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter","@n8n/n8n-nodes-langchain.embeddingsMistralCloud","@n8n/n8n-nodes-langchain.vectorStoreSupabase","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.manualTrigger","@n8n/n8n-nodes-langchain.vectorStoreSupabase","@n8n/n8n-nodes-langchain.lmChatMistralCloud","@n8n/n8n-nodes-langchain.embeddingsMistralCloud","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.webhook","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.code","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.googleDrive","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.chatTrigger","@n8n/n8n-nodes-langchain.agent","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"]

workflow_json_compressed:
  [encoded data, 8884 characters]


name: Automated BBB Lead Generation with BrowserAct
author_name: Bakir Ali
author_username: bakirali001
categories: []
created_at: 2025-11-03T15:55:00.397Z
updated_at: 2025-11-03T15:55:00.397Z
url: https://n8n.io/workflows/10473
scraped_at: 2025-12-24 13:02:43
description:
  Automated BBB Lead Generation with BrowserAct

  🚀 Overview

  This workflow automates business data extraction, duplicate checking, and email outreach using BrowserAct, Google Sheets, Gmail, and Google Gemini AI — all inside n8n.

  It’s designed for marketers, lead generation specialists, or automation developers who want to build a fully autonomous AI agent that finds businesses online, filters duplicates, and automatically sends personalized outreach emails.

  🧩 Key Features

  🌐 BrowserAct Integration — Scrapes business data (name, phone, email, website, rating) from any target site.
  🤖 AI Data Extraction Agent — Uses Google Gemini AI to clean, structure, and validate scraped data into standardized JSON.
  📊 Google Sheets Sync —

    Reads all existing records
    Checks for duplicates
    Appends new rows automatically
  ✉️ Automated Gmail Outreach —

    Validates email addresses
    Sends outreach emails to valid leads
    Logs each status (e.g., Successful, Duplicate, Pending - Invalid Email)
  ⏳ Smart Delay Control — Uses Wait node to pause execution and respect email sending limits (max 2 emails per run).

  🛠️ Included Nodes

  | Node                       | Function                                          |
  | -------------------------- | ------------------------------------------------- |
  | 🕓 Schedule Trigger    | Runs the workflow automatically on schedule       |
  | 🌍 BrowserAct          | Scrapes or extracts business data                 |
  | ⚙️ If Node             | Checks scraping results before processing         |
  | 🧠 AI Agent (Gemini)   | Extracts structured business info                 |
  | 💻 Code (JavaScript)   | Cleans and parses AI output into usable JSON      |
  | 📩 AI Agent 2 (Gemini) | Handles decision-making for email + sheet updates |
  | 📊 Google Sheets Tools | Reads, appends, and manages lead data             |
  | 📨 Gmail Node          | Sends automated outreach emails                   |
  | ⏱️ Wait Node           | Adds delay to control workflow speed              |

  🧾 How It Works

  Schedule Trigger starts the automation.
  BrowserAct fetches business listings based on defined keywords and location.
  AI Agent (Gemini) extracts business details (business_name, website_url, phone_number, email_address, rating).
  JavaScript Code Node parses the AI’s JSON response.
  AI Agent 2 (Gemini) decides:

     If duplicate → send message on your email address Duplicate data found
     If invalid email → marks as “Pending - Invalid Email”
     If valid email → sends via Gmail + updates Google Sheet
  Final output returns structured statuses for each processed business.

  🖼️ Workflow Diagram


  &gt; * Schedule Trigger
  &gt; * BrowserAct
  &gt; * AI Agent (Gemini)
  &gt; * JavaScript Code
  &gt; * Gmail & Google Sheets tools

  ![Workflow Preview]

  ⚙️ Setup Instructions

  Connect your BrowserAct, Google Sheets, Gmail, and Google Gemini API credentials.
  Define search keywords and locations inside the BrowserAct node.
  Set your Google Sheet ID in the relevant nodes.
  Customize the Gmail message if needed.
  Activate the workflow and schedule it.

  📤 Output Example

  [
    {
      "business_name": "ABC Restaurant",
      "email_sent": "Successful"
    },
    {
      "business_name": "XYZ Foods",
      "email_sent": "Duplicate - Already Exist"
    },
    {
      "business_name": "Fresh Eats",
      "email_sent": "Pending - Invalid Email"
    }
  ]

  👨‍💻 Created by

  Bakir Ali
  Automation & AI Workflow Creator — specialized in BrowserAct, Google AI (Gemini), and n8n-based automation systems.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.wait","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-browseract.browserAct","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool"]

workflow_json_compressed:
  [encoded data, 7584 characters]


name: Moderate Your Discord Server using chatGPT-5 & Google Sheets (Learning System)
author_name: Cj Elijah Garay
author_username: elijahbuilds-ai
categories: []
created_at: 2025-11-03T21:38:31.499Z
updated_at: 2025-11-03T21:38:31.499Z
url: https://n8n.io/workflows/10483
scraped_at: 2025-12-24 13:02:46
description:
  Discord AI Content Moderator with Learning System

  This n8n template demonstrates how to automatically moderate Discord messages using AI-powered content analysis that learns from your community standards. It continuously monitors your server, intelligently flags problematic content while allowing context-appropriate language, and provides a complete audit trail for all moderation actions.

  Use cases are many:

  Try moderating a forex trading community where enthusiasm runs high, protecting a gaming server from toxic behavior while keeping banter alive, or maintaining professional standards in a business Discord without being overly strict!

  Good to know

  This workflow uses OpenAI's GPT-5 Mini model which incurs API costs per message analyzed (approximately $0.001-0.003 per moderation check depending on message volume)
  The workflow runs every minute by default - adjust the Schedule Trigger interval based on your server activity and budget
  Discord API rate limits apply - the batch processor includes 1.5-second delays between deletions to prevent rate limiting
  You'll need a Google Sheet to store training examples - a template link is provided in the workflow notes
  The AI analyzes context and intent, not just keywords - "I *cking love this community" won't be deleted, but "you guys are sht" will be
  Deleted messages cannot be recovered from Discord - the admin notification channel preserves the content for review

  How it works

  The Schedule Trigger activates every minute to check for new messages requiring moderation
  We'll fetch training data from Google Sheets containing labeled examples of messages to delete (with reasons) and messages to keep
  The workflow retrieves the last 10 messages from your specified Discord channel using the Discord API
  A preparation node formats both the training examples and recent messages into a structured prompt with unique indices for each message
  The AI Agent (powered by GPT-5 Mini) analyzes each message against your community standards, considering intent and context rather than just keywords
  The AI returns a JSON array of message indices that violate guidelines (e.g., [0, 2, 5])
  A parsing node extracts these indices, validates them, removes duplicates, and maps them to actual Discord message objects
  The batch processor loops through each flagged message one at a time to prevent API rate limiting and ensure proper error handling
  Each message is deleted from Discord using the exact message ID
  A 1.5-second wait prevents hitting Discord's rate limits between operations
  Finally, an admin notification is posted to your designated admin channel with the deleted message's author, ID, and original content for audit purposes

  How to use

  Replace the Discord Server ID, Moderated Channel ID, and Admin Channel ID in the "Edit Fields" node with your server's specific IDs
  Create a copy of the provided Google Sheets template with columns: message_content, should_delete (YES/NO), and reason
  Connect your Discord OAuth2 credentials (requires bot permissions for reading messages, deleting messages, and posting to channels)
  Add your OpenAI API key to access GPT-5 Mini
  Customize the AI Agent's system message to reflect your specific community standards and tone
  Adjust the message fetch limit (default: 10) based on your server activity - higher limits cost more per run but catch more violations
  Consider changing the Schedule Trigger from every minute to every 3-5 minutes if you have a smaller community

  Requirements

  Discord OAuth2 credentials for bot authentication with message read, delete, and send permissions
  Google Sheets API connection for accessing the training data knowledge base
  OpenAI API key for GPT-5 Mini model access
  A Google Sheet formatted with message examples, deletion labels, and reasoning
  Discord Server ID, Channel IDs (moderated + admin) which you can get by enabling Developer Mode in Discord

  Customising this workflow

  Try building an emoji-based feedback system where admins can react to notifications with ✅ (correct deletion) or ❌ (wrong deletion) to automatically update your training data
  Add a severity scoring system that issues warnings for minor violations before deleting messages
  Implement a user strike system that tracks repeat offenders and automatically applies temporary mutes or bans
  Expand the AI prompt to categorize violations (spam, harassment, profanity, etc.) and route different types to different admin channels
  Create a weekly digest that summarizes moderation statistics and trending violation types
  Add support for monitoring multiple channels by duplicating the Discord message fetch nodes with different channel IDs
  Integrate with a database instead of Google Sheets for faster lookups and more sophisticated training data management

  If you have questions 
  Feel free to contact me here:

  elijahmamuri@gmail.com
  elijahfxtrading@gmail.com

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.discord","n8n-nodes-base.discord","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.discord","n8n-nodes-base.code","n8n-nodes-base.wait","n8n-nodes-base.set","n8n-nodes-base.splitInBatches"]

workflow_json_compressed:
  [encoded data, 6672 characters]


name: Automate Web Research & Analysis with Oxylabs & GPT for Comprehensive Reports
author_name: Vytenis
author_username: vytenis
categories: []
created_at: 2025-11-04T14:54:38.597Z
updated_at: 2025-11-04T14:54:38.597Z
url: https://n8n.io/workflows/10504
scraped_at: 2025-12-24 13:02:41
description:
  Fully automate deep research from start to finish: scrape Google Search results, select relevant sources, scrape & analyze each source in parallel, and generate a comprehensive research report.

  Who is this for?

  This workflow is for anyone who needs to research topics quickly and thoroughly: content creators, marketers, product managers, researchers, journalists, students, or anyone seeking deep insights without spending hours browsing websites. If you find yourself opening dozens of browser tabs to piece together information, this template will automate that entire process and deliver comprehensive reports in minutes.

  How it works

  Submit your research questions through n8n's chat interface (include as much context as you need)  
  AI generates strategic search queries to explore different angles of your topic (customize the number of queries as needed)  
  Oxylabs scrapes Google Search results for each query (up to 50 results per query)  
  AI evaluates and selects sources that are the most relevant and authoritative  
  Content extraction runs in parallel as Oxylabs scrapes each source and AI extracts key insights  
  Summaries are collected in n8n's data table for final processing  
  AI synthesizes everything into a comprehensive research report with actionable insights

  See the complete step-by-step tutorial on the n8n blog.

  Requirements

  Oxylabs AI Studio API key** – Get a free API key with 1000 credits  
  OpenAI API key** (or use alternatives like Claude, Gemini, and local Ollama LLMs)

  Setup

  Install Oxylabs AI Studio as shown on this page
  Set your API keys:  
  	Oxylabs AI Studio  
  	OpenAI  
  Create a data table  
  Select the table name in each data table node  
  Create a sub-workflow:  
  	Select the 3 nodes (Scrape content, Summarize content, Insert row)  
  	Right-click  
  	Select “Convert 3 nodes to sub-workflow”  
  Edit the sub-workflow settings for for parallel execution:  
  	Mode: Run once for each item  
  	Options → Add Option → disable “Wait For Sub-Workflow Completion”

  Once you finish all these setup steps, you can run the workflow through n8n's chat interface. For example, send the following message:
  I'm planning to build a wooden summer house and would appreciate guidance on the process. What are the key considerations I should keep in mind from planning through completion? I'm particularly interested in the recommended construction steps and which materials will ensure long-term durability and quality.

  Customize this workflow for your needs

  Feel free to modify the workflow to fit the scale and final output your project requires:

  To reuse this workflow, clear the data table after the final analysis by adding a Data table node with the Delete row(s) action  
  Scale up** by processing more search queries, increasing results per query beyond 10, and selecting additional relevant URLs  
  Enable JavaScript rendering** in Oxylabs AI Studio (Scraper) node to ensure all content is gathered  
  Adjust the system prompts** in LLM nodes to fit your specific research goals  
  Explore other AI Studio apps** like Browser Agent for interactive browser control or Crawler for mapping entire websites  
  Connect other nodes** like Google Sheets, Notion, Airtable, or webhooks to route results where you need them

nodes_used:
  ["@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-oxylabs-ai-studio.oxylabsAiStudio","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.dataTable","n8n-nodes-base.dataTable","n8n-nodes-base.if","n8n-nodes-base.aggregate","n8n-nodes-base.wait","n8n-nodes-base.wait","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/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-oxylabs-ai-studio.oxylabsAiStudio","n8n-nodes-base.dataTable","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi"]

workflow_json_compressed:
  [encoded data, 7756 characters]


name: AI-Driven Inventory Management with OpenAI Forecasting & ERP Integration
author_name: Oneclick AI Squad
author_username: oneclick-ai
categories: []
created_at: 2025-11-05T13:27:19.843Z
updated_at: 2025-11-05T13:27:19.843Z
url: https://n8n.io/workflows/10531
scraped_at: 2025-12-24 13:02:41
description:
  This n8n workflow automates the monitoring of warehouse inventory and sales velocity to predict demand, generate purchase orders automatically, send them to suppliers, and record all transactions in ERP and database systems. It uses AI-driven forecasting to ensure timely restocking while maintaining operational efficiency and minimizing stockouts or overstocking.

  Key Features

  Automated Scheduling:** Periodically checks inventory and sales data at defined intervals.
  Real-Time Data Fetching:** Retrieves live warehouse stock levels and sales trends.
  AI Demand Forecasting:** Uses OpenAI GPT to predict future demand based on sales velocity and stock trends.
  Auto-Purchase Orders:** Automatically generates and sends purchase orders to suppliers.
  ERP Integration:** Logs completed purchase orders into ERP systems like SAP, Oracle, or Netsuite.
  Database Logging:** Saves purchase order details and forecast confidence data into SQL databases (PostgreSQL/MySQL).
  Email Notifications:** Notifies relevant teams upon successful order creation and logging.
  Modular Configuration:** Each node includes configuration notes and credentials setup instructions.

  Workflow Process

  Schedule Trigger

     Runs every 6 hours to monitor stock and sales data.
     Interval can be adjusted for higher or lower frequency checks.

  Fetch Current Inventory Data

     Retrieves live inventory levels from the warehouse API endpoint.
     Requires API credentials and optional GET/POST method setup.

  Fetch Sales Velocity

     Pulls recent sales data for forecasting analysis.
     Used later for AI-based trend prediction.

  Merge Inventory & Sales Data

     Combines inventory and sales datasets into a unified JSON structure.
     Prepares data for AI model input.

  AI Demand Forecasting

     Sends merged data to OpenAI GPT for demand prediction.
     Returns demand score, reorder need, and confidence levels.

  Parse AI Response

     Extracts and structures forecast results.
     Combines AI data with original inventory dataset.

  Filter: Reorder Needed

     Identifies items flagged for reorder based on AI output.
     Passes only reorder-required products to next steps.

  Create Purchase Order

     Automatically creates a PO document with item details, quantity, and supplier information.
     Calculates total cost and applies forecast-based reorder logic.

  Send PO to Supplier

     Sends the generated purchase order to supplier API endpoints.
     Includes response validation for order success/failure.

  Log to ERP System

      Records confirmed purchase orders into ERP platforms (SAP, Oracle, Netsuite).
      Includes timestamps and forecast metrics.

  Save to Database

      Stores all PO data, supplier responses, and AI forecast metrics into PostgreSQL/MySQL tables.
      Useful for long-term audit and analytics.

  Send Notification Email

      Sends summary emails upon PO creation and logging.
      Includes PO ID, supplier, cost, and demand reasoning.

  Setup Instructions

  Schedule Trigger:**
    Adjust to your preferred interval (e.g., every 6 hours or once daily).

  API Configuration:**

    Provide credentials in Inventory, Sales, and Supplier nodes.
    Use Authorization headers or API keys as per your system.

  AI Node (OpenAI):**

    Add your OpenAI API key in the credentials section.
    Modify the prompt if you wish to include additional forecasting parameters.

  ERP Integration:**

    Replace placeholder URLs with your ERP system endpoints.
    Match fields like purchase order number, date, and cost.

  Database Connection:**

    Configure credentials for PostgreSQL/MySQL in the Save to Database node.
    Ensure tables (purchase_orders) are created as per schema provided in sticky notes.

  Email Notifications:**

    Set up SMTP credentials (e.g., Gmail, Outlook, or custom mail server).
    Add recipients under workflow notification settings.

  Industries That Benefit

  This automation is highly beneficial for:

  Retail & E-commerce:** Predicts product demand and auto-orders from suppliers.
  Manufacturing:** Ensures raw materials are restocked based on production cycles.
  Pharmaceuticals:** Maintains optimum inventory for high-demand medicines.
  FMCG & Supply Chain:** Balances fast-moving goods availability with minimal overstocking.
  Automotive & Electronics:** Prevents delays due to missing components.

  Prerequisites

  API access to inventory, sales, supplier, and ERP systems.
  Valid OpenAI API key for demand forecasting.
  SQL database (PostgreSQL/MySQL) for record storage.
  SMTP or mail server credentials for email notifications.
  n8n environment with required nodes installed (HTTP, AI, Filter, Email, Database).

  Modification Options

  Change forecast logic or thresholds for different industries.
  Integrate Slack/Teams for live notifications.
  Add approval workflow before sending POs.
  Extend AI prompt for seasonality or promotional trends.
  Add dashboard visualization using Grafana or Google Sheets.

  Explore More AI Workflows:
  Get in touch with us to build industry-grade n8n automations with predictive intelligence.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.postgres","n8n-nodes-base.emailSend","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","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, 9052 characters]


name: Generate Custom Branded PDF Invoices from QuickBooks & Email to Clients
author_name: Chintan Prajapati
author_username: satva-technolabs
categories: []
created_at: 2025-11-06T06:53:47.515Z
updated_at: 2025-11-06T06:53:47.515Z
url: https://n8n.io/workflows/10553
scraped_at: 2025-12-24 13:02:46
description:
  Automated QuickBooks Invoice to Custom PDF & Email

  This n8n workflow automates the entire QuickBooks invoicing process — from creation to delivery. When a new invoice is generated in QuickBooks Online, it automatically fetches the data, applies your company branding, converts it into a professional multi-page PDF via Gotenberg, and emails it directly to your client.

  Key Features:

  ⚡ Fully Automated: Triggers instantly on new QuickBooks invoices.

  🧾 Custom Branding: Adds your logo and signature from public URLs.

  🎨 Modern PDF Design: Clean, professional multi-page layout with smart totals and “Page X of Y” footers.

  📧 Automatic Emailing: Sends the final PDF in a formatted email to your customer.

  Requirements:
  QuickBooks Online, n8n instance, Gotenberg (HTML→PDF converter), and public URLs for logo/signature.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.quickbooks","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.extractFromFile","n8n-nodes-base.extractFromFile","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.html","n8n-nodes-base.convertToFile","n8n-nodes-base.httpRequest","n8n-nodes-base.emailSend","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:
  H4sIAAAAAAAAE62YS5PTRhDHv4rKh5w81EzPm1tYsoQqQpEslUuKwzx6Fhe2tNgysEXtd09La7Djlbwy4WZbo+lfP+bfPf46W2EbZk+/zhb1pg11wpd59nQGthQMSuuSjZIuBZ8sLzYIBZpnq4t2KjpMUonEVZZSpWRB2ujBe6NhNp+1uLpZhhYv1pg3V9huby4a+gVbJAPteot381ndZNzMnv5D1nurKWSZuWIhc8eUM/SJW81QqZQTh8g90s51WCGtfrXYtFhXpVlXr/Fz9ed2kT48a5oPm+pl/alZpG5pe3vTLa1dzXpbLIYNPvmM8T0tpOc3zWbRLpqaGITQMLfSvJvPds/7SBSvsvKEY7FIpiBaFgJYlg0Hp6zOElK3UVgTVYtrcufr3b3hv+lbv7e4m+88lDZrZZNnwntkKnLDHP3GOBRtucAQwe89fIHtN1+q56ENVVk3qwNHRx382C2JuyWHPjrn5sqod5OBjZQgI3KWpCD3A4+M0iIZzxhlKYE8UHvgS2zT+6rLc6hvq1fNdVO9XIXr8Uy8b9ubv/DjFjftEakGvsvGRFIfRVTF2i5RgSnhBAtGeCZF8jJCTinyMdKrxXUd2u0a/xeu4M5N50XiElpKFqKmUkAwzHfVVbyU3nlISok970VTf8J1ex/TtqmeEU4f+WFQ/NKuQ2ovqV4uF0scqIKzYiuSgBBsZEmLyFQ2lrmcFCs8gtUKOU/+Ies+qj8D2AuYDkxlybU1yEqOiYrBd8BesewKag7WxVwOgVdxUeO3sza/j/IvewdGsVe4vj6CBQEUXeCPwconsJcFIwzJgGIyU9mq2NdCEcxrEkGpFBXGQXzfrJF2xurX5XInCySBb3dyO4qa6OMRqZRmSh3sOaMihfeoiTMBI81PLJpiWEkQQXFdlD9Qg2fbxTJXv7/949V3FesFrGM+ccRWyyNMDdPK9SCgJiBgEaTVCJ1qB2SBYstsNgmxYOEFHxZsj9rV6qIO69tqV4hj4ezfeds8LFew0+IqnhwUbALhHcUzR7lTA5d8pqrlCMIKiFkeNoYa15Ts6s3zy+rTIlQvGmqFkYrxfOmSnE8KrzoIL8F4VMlS3yJkVTRpbYqFunWWzlGD4SLvaX9bhcWyR/1WBhTji+2mbej4jCtC99YV1vkIl47DQJtOzhXDbWIaBcWvUHelNp0YFONzMQg+Pdqm4SAfCjx6ryPTBhUVELkZOMkezTjGJ2eV0wcn8qqlfntbvaYsiFGHNv2ibs2RunELcxKr4wTMqMQoqy3tNBtXupK8NeA8M9RQ6EjqzAI5TefSxmQtchNxEBTOB3VUKfJhpUwD1STABkRhXlmKKCJ25ZIpQzKWVCBGEIOg8nxQpfiPR1RYWxA0DaBBkMgBDXuBo2QmK+0Ceu3RDIKOd7eToN486BXTQEOO3igbGLhgqStrUmPtDVU/qbF1WCJXg6D6bFDwpMGGPxhvpoH6zIXwAAxSJDxUmoWSNQ3BQRRB+uODHgQ1Z4NKMGqufzSiBgp3VnKa7ulEKVCBUbJphnQOA918pBqJ6Pmc1CLOPkq0mp7XmLpN+uUjYyE9IfXs7NDVqqM5b8jp353TjTDjl97uO2IZne2HjZ0eV/9rgd9bONHVhmxMbCuDpk51/CFbUxruSUNDs/BPzRLc2zs5c53K1MnZZ9C101eoU7ZOXgwGbZ0eeYdsTRs+R+rwkWv3T03c90J57P0hqxOvAoMWH///ZPgkTP1P4tjo/Psej/9NMPXd0Yv7gMd3d/8C8t7f9e0SAAA=


name: Process Large Documents with OCR using SubworkflowAI and Gemini
author_name: Jimleuk
author_username: jimleuk
categories: []
created_at: 2025-11-06T11:49:13.463Z
updated_at: 2025-11-06T11:49:13.463Z
url: https://n8n.io/workflows/10566
scraped_at: 2025-12-24 13:02:41
description:
  Working with Large Documents In Your VLM OCR Workflow

  Document workflows are popular ways to use AI but what happens when your document is too large for your app or your AI to handle? Whether its context window or application memory that's grinding to a halt, Subworkflow.ai is one approach to keep you going.

  &gt; Subworkflow.ai is a third party API service to help AI developers work with documents too large for context windows and runtime memory.

  Prequisites
  You'll need a Subworkflow.ai API key to use the Subworkflow.ai service.
  Add the API key as a header auth credential. More details in the official docs https://docs.subworkflow.ai/category/api-reference

  How it Works
  Import your document into your n8n workflow
  Upload it to the Subworkflow.ai service via the Extract API using the HTTP node. This endpoint takes files up to 100mb.
  Once uploaded, this will trigger an Extract job on the service's side and the response is a "job" record to track progress.
  Poll Subworkflow.ai's Jobs endpoint and keep polling until the job is finished. You can use the "IF" node looping back unto itself to achieve this in n8n.
  Once the job is done, the Dataset of the uploaded document is ready for retrieval. Use the Datasets and DatasetItems API to retrieve whatever you need to complete your AI task.
  In this example, all pages are retrieved and run through a multimodal LLM to parse into markdown. A well-known process when parsing data tables or graphics are required.

  How to use
  Integrate Subworkflow's Extract API seemlessly into your existing document workflows to support larger documents from 100mb+ to up to 5000 pages.

  Customising the workflow
  Sometimes you don't want the entire document back especially if the document is quite large (think 500+ pages!), instead, use query parameters on the DatasetItems API to pick individual pages or a range of pages to reduce the load.

  Need Help?
  Official API documentation**: https://docs.subworkflow.ai/category/api-reference
  Join the discord**: https://discord.gg/RCHeCPJnYw

nodes_used:
  ["n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.manualTrigger","n8n-nodes-base.googleDrive","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5380 characters]


name: Automate Hotel Booking Requests from Gmail to Google Sheets with GPT-5-mini
author_name: Gtaras
author_username: tarasidis
categories: []
created_at: 2025-11-06T23:44:26.252Z
updated_at: 2025-11-06T23:44:26.252Z
url: https://n8n.io/workflows/10578
scraped_at: 2025-12-24 13:02:42
description:
  Who’s it for
  This workflow is for hotel managers, travel agencies, and hospitality teams who receive booking requests via email. It eliminates the need for manual data entry by automatically parsing emails and attachments, assigning booking cases to the right teams, and tracking performance metrics.

  What it does
  This workflow goes beyond simple automation by including enterprise-grade logic and security:

  🛡️ Gatekeeper:** Watches your Gmail and filters irrelevant emails before spending money on AI tokens.
  🧠 AI Brain:** Uses OpenAI (GPT-5-mini) to extract structured data from unstructured email bodies and PDF attachments.
  ⚖️ Business Logic:** Automatically routes tasks to different teams based on urgency, room count, and VIP status.
  🔒 Security:** Catches PII (like credit card numbers) and scrubs them before they hit your database.
  🚨 Safety Net:** If anything breaks, a dedicated error handling path logs the issue immediately so no booking is lost.
  📈 ROI Tracking:** Calculates the time saved per booking to prove the value of automation.

  How to set up
  Create your Google Sheet: Create a new sheet and rename the tabs to: Cases, Team Assignments, Error Logs, Success Metrics.
  Add Credentials: Go to n8n Settings → Credentials and add your Gmail (OAuth2), Google Sheets, and OpenAI API keys.
  Configure User Settings: Open the "Configuration: User Settings" node at the start of the workflow. Paste your specific Google Sheet ID and Admin Email there.
  Adjust Business Rules: Open the "Apply Business Rules" node (Code node) to adjust the logic for team assignment (e.g., defining what counts as a "VIP" booking).
  Customize Templates: Modify the email templates in the Gmail nodes to match your hotel's branding.
  Test: Send a sample booking email to yourself to verify the filters and data extraction.

  Setup requirements
  Gmail account (OAuth2 connected)
  Google Sheets (with the 4 tabs listed below)
  OpenAI API key (GPT-5-mini recommended)
  n8n Cloud or self-hosted instance

  How to customize
  Filter Booking Emails:** Update the trigger node keywords to match your specific email subjects (e.g., "Reservation", "Booking Request").
  Apply Business Rules:** Edit the Javascript in the Code node to fit your company’s internal logic (e.g., changing priority thresholds).
  New Metrics:** Add new columns in the Google Sheet (e.g., “Revenue Metrics”) and map them in the "Update Sheet" node.
  AI Model:** Switch to GPT-5 if you need higher reasoning capabilities for complex PDF layouts.

  Google Sheets Structure Description
  This workflow uses a Google Sheets document with four main tabs to track and manage hotel booking requests.

  1. Cases
  This is the main data log for all incoming booking requests.
  case_id:** Unique identifier generated by the workflow.
  processed_date:** Timestamp when the workflow processed the booking.
  travel_agency / contact_details:** Extracted from the email.
  number_of_rooms / check_in_date:** Booking details parsed by the AI.
  special_requests:** Optional notes (e.g., airport transfer).
  assigned_team / priority:** Automatically set based on business rules.
  days_until_checkin:** Dynamic field showing urgency.

  2. Team Assignments
  Stores internal routing and assignment details.
  timestamp:** When the case was routed.
  case_id:** Link to the corresponding record in the Cases tab.
  assigned_team / team_email:** Which department handles this request.
  priority:** Auto-set based on room count or urgency.

  3. Error Log
  A critical audit trail that captures details about any failed processing steps.
  error_type:** Categorization of the failure (e.g., MISSING_REQUIRED_FIELDS).
  error_message:** Detailed technical explanation for debugging.
  original_sender / snippet:** Context to help you manually process the request if needed.

  4. Success Metrics
  Tracks the results of your automation to prove its value.
  processing_time_seconds:** The time savings achieved by the automation (run time vs. human time).
  record_updated:** Confirmation that the database was updated.

  🙋 Support
  If you encounter any issues during setup or have questions about customization, please reach out to our dedicated support email: foivosautomationhelp@gmail.com

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.guardrails","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.gmail","n8n-nodes-base.gmailTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.guardrails","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.gmail","n8n-nodes-base.googleSheets","n8n-nodes-base.if","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/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.lmChatOpenAi"]

workflow_json_compressed:
  [encoded data, 13848 characters]


name: Automate Bank Statement and Invoice Reconciliation with GPT and Google Sheets
author_name: Chintan Prajapati
author_username: satva-technolabs
categories: []
created_at: 2025-11-07T05:27:00.287Z
updated_at: 2025-11-07T05:27:00.287Z
url: https://n8n.io/workflows/10581
scraped_at: 2025-12-24 13:02:44
description:
  🟢 Manual Trigger

  Workflow starts manually to initiate the reconciliation process on demand.

  📄 Fetch Invoices & Bank Statements

  Retrieves invoice data and bank statement data from Google Sheets for comparison.

  🔀 Merge Data

  Combines both datasets into a single structured dataset for processing.

  🧩 Format Payload for AI

  Function node prepares and structures the merged data into a clean JSON payload for AI analysis.

  🤖 AI Reconciliation

  AI Agent analyzes the invoice and bank statement data to identify matches, discrepancies, and reconciled entries.

  🧮 Parse AI Output

  Parses the AI response into a structured format suitable for adding back to Google Sheets.

  📊 Update Sheets

  Adds the reconciled data and reconciliation results into the target Google Sheet for recordkeeping.


  🧾 Prerequisites

  ✅ OpenAI API Credentials
  Required for the AI Reconciliation node to process and match transactions.

  Add your OpenAI API key in n8n → Credentials → OpenAI.

  ✅ Google Sheets Credentials
  Needed to read invoice and bank statement data and to write reconciled results.
  Add credentials in n8n → Credentials → Google Sheets.

  ✅ Google Sheets Setup
  The connected spreadsheet must contain the following tabs:
  Invoices – for invoice data
  Bank_Statement – for bank transaction data
  Reconciled_Data – for storing the AI-processed reconciliation output

  ✅ Tab Structure & Required Headers

  Invoices Sheet Columns:
  Invoice_ID
  Invoice_Date
  Customer_Name
  Amount
  Status

  Bank_Statement Sheet Columns:
  Transaction_ID
  Transaction_Date
  Description
  Debit/Credit
  Amount

  Reconciled_Data Sheet Columns:
  Invoice_ID
  Transaction_ID
  Matched_Status
  Remarks
  Confidence_Score

  ⚙️ n8n Environment Setup

  Ensure all nodes are connected correctly and the workflow has permission to access the required sheets.

  Test each fetch and write operation before running the full workflow.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.switch","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.code","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:
  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


name: Fetch Odoo Customer Data and Export to JSON or Excel
author_name: V3 Code Studio
author_username: v3codestudio
categories: []
created_at: 2025-11-07T13:47:55.468Z
updated_at: 2025-11-07T13:47:55.468Z
url: https://n8n.io/workflows/10599
scraped_at: 2025-12-24 13:02:44
description:
  Odoo Customers API – Export to JSON or Excel

  Odoo Customers API – Export to JSON or Excel provides a simple way to fetch customer records from your Odoo database and get them back either as a structured JSON response or a downloadable Excel (.xlsx) file.

  ⚙️ What it does
  Listens for HTTP GET requests on the endpoint /api/v1/get-customers.
  Checks for the required name parameter and builds a search filter automatically.
  Queries the res.partner model to return only customer contacts (is_company = false).
  Delivers results in JSON by default, or as an Excel (.xlsx) export when response_format=excel is included.

  📥 Parameters

  name — Required. Used for partial matching on customer names (via Odoo’s Like filter).
  response_format — Optional. Accepts json (default) or excel.

  🔗 Examples
  Excel Example
  GET /api/v1/get-customers?name=Demo&response_format=excel
  JSON Example
  GET /api/v1/get-customers?name=Demo&response_format=json

  🧩 Default fields
  display_name, name, email, phone, mobile, parent_id, company_id, country_code, country_id

  🛠️ Setup
  Open the Odoo node and connect your Odoo API credentials.
  Adjust the fieldsList in the node if you want to include more data fields (e.g., address, city, or VAT).
  Trigger the flow from its webhook URL or run it manually inside n8n to test the output.

  💡 Notes
  Built and tested for n8n v1.108.2+

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.if","n8n-nodes-base.convertToFile","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.odoo","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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


name: Summarize Google Play Store Reviews with GPT-4-mini, Pinecone & Slack Alerts
author_name: Ertay Kaya
author_username: ertay
categories: []
created_at: 2025-11-07T18:06:27.519Z
updated_at: 2025-11-07T18:06:27.519Z
url: https://n8n.io/workflows/10605
scraped_at: 2025-12-24 13:02:45
description:
  This workflow automatically fetches reviews for one or more Google Play Store apps, summarizes the feedback using OpenAI, stores and manages review data with Pinecone, and posts the summary to a Slack channel. It is designed for product teams, community managers, or anyone who wants to keep track of app sentiment and review trends without manually reading each review.

  Features:

  Fetches daily reviews for specified Google Play Store app bundle IDs using a Google Service Account.
  Stores reviews in a Pinecone vector database for efficient retrieval and summarization.
  Uses OpenAI to generate a summary, including:
    Positive and negative review highlights
    Star rating breakdown and average rating
    Total number of reviews processed
  Posts the summary to a Slack channel of your choice.
  Supports both daily and weekly triggers.
  Automatically clears old reviews from the vector store weekly to keep data fresh.

  Setup Instructions:

  Add your Google Play app bundle IDs in the “Set the bundle ids” node.
  Configure your Google Service Account, Pinecone, OpenAI, and Slack credentials.
  Set your preferred Slack channel in the “Send to Slack channel” node.
  Enable the workflow and customize the schedule as needed.

  Use Cases:

  Monitor app sentiment and user feedback trends.
  Share review insights with your team in Slack.
  Automate reporting for product or support teams.

nodes_used:
  ["n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.vectorStorePinecone","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6408 characters]


name: Real-Time Stock Insights Using xAI
author_name: DevCode Journey
author_username: devcodejourney
categories: []
created_at: 2025-11-08T04:17:22.349Z
updated_at: 2025-11-08T04:17:22.349Z
url: https://n8n.io/workflows/10615
scraped_at: 2025-12-24 13:02:45
description:
  Who is this for?
  This n8n workflow is designed for investors, financial analysts, automated trading system developers, and finance enthusiasts who require daily, comprehensive, data-driven insights into specific stock symbols. It's perfect for users who need to automate the complex process of combining technical indicators, news sentiment, professional analyst ratings, and social media buzz into a single, actionable recommendation. This system provides a 24/7 automated "analyst" for portfolio monitoring.

  What this Workflow Does
  This n8n workflow executes a daily, multi-faceted analysis of a target stock. It starts by gathering all relevant data (price history, news, ratings, social posts) and processes it through specialized Code nodes to calculate technical indicators (SMA, RSI), determine price predictions (Linear Regression), and perform sentiment analysis on news and social media. Finally, it uses a weighted model to synthesize all data into a single, comprehensive Buy/Sell/Hold recommendation and delivers a detailed report via Telegram.

  Key Features
  Daily Scheduling**: Automatically triggers analysis every day at a specified time (e.g., 9:00 AM).
  Multi-Factor Analysis: Combines **four key domains for a holistic view: Technical, Prediction, News Sentiment, Analyst Ratings, and Social Sentiment.
  Technical Indicator Calculation: Calculates **SMA (20, 50, 200), RSI (14-day), and identifies Support/Resistance levels.
  Price Prediction: Uses **Simple Linear Regression to forecast a 7-day price trend and generate an initial recommendation.
  Sentiment Analysis: Custom Code nodes perform **keyword-based sentiment analysis on news articles and social media posts.
  Composite Recommendation: A weighted model combines all analysis scores (35% Technical, 25% News, 25% Analyst, 15% Social) to generate a **final recommendation, confidence score, and summary.
  Automated Alerting: Delivers a fully formatted, easily readable **Markdown report via Telegram.

  Requirements
  API Configuration Node**: A preliminary node (implied by the expression references) containing:
      Target stockSymbols (e.g., TSLA, AAPL).
      telegramChatId for receiving the report.
      API Keys for data sources (e.g., a Financial Data API for price/news/ratings, a Social Media API).
  Telegram Credentials**: For the Telegram node to send the final message.
  Financial Data Source Workflow**: Requires preceding nodes (not fully visible) to fetch:
      Historical price data (required for SMA/RSI/Regression).
      Recent news headlines and summaries.
      Recent analyst ratings.
      Social media data (e.g., from Twitter/StockTwits).
  n8n Instance**: Self-hosted or cloud-based n8n installation.

  How to Use
  Step-by-Step Setup
  1. Configure Scheduling
  Open the "Daily Stock Check" node.
  Set the interval rule to the precise hour you want the report to run (e.g., 9:00 AM).

  2. Configure Stock Symbol and Telegram
  In the (implied) "API Configuration" node, set the stockSymbols you wish to track.
  Set the target telegramChatId where the report will be delivered.
  Ensure your Telegram credentials are set up in n8n.

  3. Verify Data Fetching Nodes
  Ensure the nodes feeding data into "Analyze Stock Trends," "Analyze News Sentiment," "Process Analyst Ratings," and "Analyze Social Sentiment" are correctly configured to fetch the required historical price, news, ratings, and social data.

  4. Adjust Analysis Weights (Advanced)
  If you wish to change the importance of different factors, edit the WEIGHTS object inside the "Generate Comprehensive Recommendation" Code node.
      Default Weights: Technical (0.35), News (0.25), Analyst (0.25), Social (0.15).

  5. Test the Workflow
  Manually execute the workflow to ensure all Code nodes process the incoming data correctly and the "Send Telegram Alert" successfully delivers the final, formatted message.

  Workflow Components
  The workflow is structured into three main phases: Data Processing, Recommendation Synthesis, and Reporting.

  1. Data Processing and Indicator Calculation
  | Node Name | Type | Key Functionality |
  | :--- | :--- | :--- |
  | Daily Stock Check | Schedule Trigger | Initiates the entire workflow daily at the set time. |
  | Analyze Stock Trends | Code | Calculates Technical Indicators: SMA (20, 50, 200), RSI (14-day), Volume Trend, and Support/Resistance levels. |
  | Predict Future Trends | Code | Performs Simple Linear Regression on historical prices to determine slope and predict the price 7 days ahead. |
  | Analyze News Sentiment | Code | Performs keyword-based sentiment analysis on news headlines and summaries to categorize overall sentiment (positive/negative/neutral) and assign a score. |
  | Process Analyst Ratings | Code | Aggregates analyst recommendations (Buy/Hold/Sell) to calculate consensus rating and average price target. |
  | Analyze Social Sentiment | Code | Performs keyword-based sentiment analysis on social media data to determine community mood and trending hashtags. |

  2. Recommendation Synthesis
  | Node Name | Type | Description |
  | :--- | :--- | :--- |
  | Combine All Analysis | Merge | Consolidates the outputs from the four analysis branches (Technical, News, Analyst, Social) into a single data item. |
  | Generate Comprehensive Recommendation | Code | The core logic. Calculates a weighted composite score (from -100 to 100) based on all four inputs, generating the final STRONG BUY/BUY/HOLD/SELL/STRONG SELL recommendation and a numerical confidence score. |

  3. Reporting and Alerting
  | Node Name | Type | Description |
  | :--- | :--- | :--- |
  | Format Telegram Message | Set | Constructs the final detailed report message using Markdown formatting, pulling data from all preceding analysis nodes into a clear, structured report. |
  | Send Telegram Alert | Telegram | Sends the fully formatted analysis report to the pre-configured Telegram chat ID. |

  🙋 For Help & Community
  👾 Discord: n8n channel
  🌐 Website: devcodejourney.com
  🔗 LinkedIn: Connect with Shakil
  📱 WhatsApp Channel: Join Now
  💬 Direct Chat: Message Now

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.lmChatXAiGrok"]

workflow_json_compressed:
  [encoded data, 15428 characters]


name: zenTrade your AI-Powered rational Stock Trading advisor
author_name: Paul Abraham
author_username: hellopaul
categories: []
created_at: 2025-11-08T12:08:50.088Z
updated_at: 2025-11-08T12:08:50.088Z
url: https://n8n.io/workflows/10630
scraped_at: 2025-12-24 13:02:44
description:
  This n8n template automates intraday trading insights by combining candlestick pattern analysis and news sentiment aggregation to suggest actionable Buy / Sell / Hold decisions across international stock markets.

    Use cases

  Automatically analyze stock trends using live candlestick data.
  Aggregate real-time news sentiment to strengthen trading confidence.
  Generate AI-backed Buy / Sell / Hold recommendations for traders.
  Build an automated Telegram trading assistant or analytics bot.
  Create a backend for AI-powered portfolio advisors or trading dashboards.

  Good to know

  This workflow integrates both market and news APIs, processes data intelligently, and leverages an AI model (Gemini or OpenAI) for trading recommendations.
  It runs smoothly on both n8n Cloud and self-hosted instances, and setup typically takes 10–15 minutes.

  Requirements

  n8n Cloud or self-hosted instance
  TwelveData API key (for fetching OHLC & candlestick data) → twelvedata.com
  NewsAPI.org key (for aggregating relevant stock news) → newsapi.org
  AI model API key (Google Gemini or OpenAI) for sentiment reasoning
  Telegram Bot Token (via @BotFather) for command input & output

  Customising this workflow

  Replace Telegram with Slack, Discord, or Notion for alternate alerts.
  Integrate TradingView or Alpaca API for executing mock trades.
  Modify the candlestick intervals (1m, 15m, 1h) or patterns as per strategy.
  Add portfolio tracking or alert thresholds for advanced users.
  Expand to cover crypto, forex, or commodities with minimal edits.

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.aggregate","n8n-nodes-base.code","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.merge","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","n8n-nodes-base.telegram","n8n-nodes-base.switch","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:
  H4sIAAAAAAAAE6WYS2/bOBDHv4qhsyfL9yOnLXIoukB72BZ7WRQFyRk6RmM5ayt9oMh337Hj1HIiuXZzUyxq+JvhPP7Mj2ZBXWoufzTzdt2lttAbbC4bF4MIqLKraNGUqITUPsnqg8LoKwljnRUKnXFaRptVRpHIuiqzR6d8M206WtzepI6uVoTr99Td3V4t+RfqiDfoVnd0P23aJdK6ufyXd9/sKqvWQisLgiiCMapCktaCRZ1FdN7bKNlymxbEqz/QDc1WaTH5sJrPZrTa7Pn9dvOmDS1sTUNOa7rodgv3626X63k3X7a8NTgRpjKqj9PmK+Xr5fLzNgDeWOlMCFBtJjDFZkhkBCh2lV1OOtewMZTYLru0Yi9+3D8A/MN/bW3LC3U/fXQNo66WCIKKDoxFx/acBhLCYxQlRdVzTdrJYt5O3rRs+Uu6GfXsuutu/6b/7mjdHXrlzM6no4CmB1i9c2iSBU0pgHFeQrZKQM3Re8KE2uke4Mv5xDl0FLAWUzwUZQsYQoKIlCEIUiqKZKWtfbrr5d3qZXhGnAVYnEapcoRqMoLxKUG0pgCFWrytSfhY9oBvaTWjUazF7m0PyEg3ld79ikj3iIJHkwtGyLFaMFg546zwkKIvxstcTXF7olez2YpmXK6jVKm3oh8qdVKqyZ9c1kpRXahQdeTK0hyuJIwCUVB5h5IPmvZcVwww4VT7K31J78tqftuNAhZ+PGQLWp3C1otZUmiFRMiYDZ+ilhCrEOAslixJJAy9mL2jr+vJY+CW4/3nWJqF89KM+6ISLjGgJcGAVkDgPsUd0kfJ7IqS6qfZep1mNEmTBdP06uBPJvxjT3mT2lm5TvP2YrZczm7oNXF1zw9ZrXenwO7PWSmtRJYenMuVO56NEAgNIJrI1Uwl6PikIuQ5JSFlMFMlwjk1kcnmEiK38cI4RvvC5ZA9YPLID0WLWAdqYpxrpCikjuoUtn20jIkOBSrgIuD+QZIgVx6CiodutlbXEnpV8eoN5x213Qknmnbr+nROiFPoVC9yplq0PBpAl5DAyFggBD5cTYK4m6QSMe35Xm/TaPKQR5Or69RN3p6YgTeLzfLXo3m4hTfmjNBqabxnrQLoCjdC0pbRufVIyVOONtNc9UL7nlrkgunoWzdZPNTPL4XFE8JoHw+/ryiiTKkUjlvyWoGp3I9jrhF0rTFFIUKS4hxFESiQEyyWkgmaFQq30Fi40qxnmaaFIC6QXsaUsrxrOz4LKp9HHVp/nXfl+olA0tqd0kX1hd6rHYFbRcO1r9hXsWXzPIqCLi4WChz0Xsi7efn8ffJueWT6rLdrdkt6dNqFqX7G1pQlz37O+8umOTKJhNVWSQfOcB813EghIG7Ej8mpFllyP6d7lOP9YAxTSmF+mzMIFBR9BlmRe4OphcWPkxxXUX3JIuRsBjnV2ZwsqKYwcNinBjSkUosDG90mjJrVRjUVZAoFq0mc7nEQVP8WqHvewk7jjKlaUVhNakxuk54ZsudStAozdzUVgsVBTnM+Jx8SR1T+ZkSLZ+HIspwLiae8IVblAYXjtmt08EVL7YYLyZ6fovEFKYo6OqkNQkyWmxErEd6M64l7rFc5OatUHeR050dUKtZNMKCGj6Pyan7fUtnY2S5/UOH8sODBw5b5GrrZf1gNb9dM+ZaM9K25FPcfP/IWO9Vy1IT8hY2fs3zIytFpNGzuJ/qQvWNy+ri5ES+fCZFhKwfTZ8jQ2IXyqbnp/ouxO/KRT8buheOfjGr8QT+feDHk6JOr34iZQ86z7aidHftCHvmY5of3iFE7o7m+M/Q0msOGRi4tg6F69k+gwSwdFj+DBgcq5Hx3d7ZGZTBbTPNPG9F7x67ufjtaVs+WH+51f/8/mvYOz8kTAAA=


name: Instant Lead Notifications with Gmail/SMTP for Teams & Auto-Responses
author_name: V3 Code Studio
author_username: v3codestudio
categories: []
created_at: 2025-11-08T14:29:52.710Z
updated_at: 2025-11-08T14:29:52.710Z
url: https://n8n.io/workflows/10634
scraped_at: 2025-12-24 13:02:46
description:
    🚀 Never miss a new lead again — get instant email alerts and stay ahead of
      every opportunity!



    This workflow automatically notifies your team the moment a new lead is
    created in your CRM or form submission. It keeps your sales, marketing, and
    support teams aligned — so no lead goes unnoticed, and every customer feels
    heard right away.


  ✨ How it works

    
      ✅ Capture: A webhook receives new lead data from your CRM
      or online form.
    
    
      🧩 Clean: The workflow filters and formats the data for
      clear presentation.
    
    
      💌 Compose: Generates a beautiful HTML email with your
      branding and lead details.
    
    
      📨 Send: Instantly emails your team or the lead using Gmail
      or SMTP.
    
    
      ⚡ React Fast: Your team gets notified in seconds — no
      manual checks needed!
    


  ⚙️ Set up steps

    
      🔗 Add a POST webhook in your CRM or app that points to your n8n webhook
      URL.
    
    
      🏢 Update your company info (logo, name, website) in the configuration node.
    
    
      📧 Connect Gmail OAuth2 or your SMTP credentials to send branded emails
      instantly.
    



    Compatible with Odoo, HubSpot, Zoho CRM, Salesforce, Pipedrive, Typeform,
      and any system that supports outgoing webhooks.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.gmail","n8n-nodes-base.webhook","n8n-nodes-base.code","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.stickyNote","n8n-nodes-base.code","n8n-nodes-base.emailSend","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.emailSend","n8n-nodes-base.html","n8n-nodes-base.html","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.switch"]

workflow_json_compressed:
  [encoded data, 8600 characters]


name: Scrape Google Maps Business Leads with Apify & GPT-4 Email Extraction
author_name: Dr. Firas
author_username: drfiras
categories: []
created_at: 2025-11-08T18:57:42.413Z
updated_at: 2025-11-08T18:57:42.413Z
url: https://n8n.io/workflows/10640
scraped_at: 2025-12-24 13:02:41
description:
  💥 Automate Scrape Google Maps Business Leads (Email, Phone, Website) using Apify

  🧠 AI-Powered Business Prospecting Workflow (Google Maps + Email Enrichment)

  Who is this for?
  This workflow is designed for entrepreneurs, sales teams, marketers, and agencies who want to automate lead discovery and build qualified business contact lists — without manual searching or copying data.  
  It’s perfect for anyone seeking an AI-driven prospecting assistant that saves time, centralizes business data, and stays fully compliant with GDPR.

  What problem is this workflow solving?
  Manually searching for potential clients, copying their details, and qualifying them takes hours — and often leads to messy spreadsheets.  
  This workflow automates the process by:
  Gathering publicly available business information from Google Maps  
  Enriching that data with AI-powered summaries and contact insights  
  Compiling it into a clean, ready-to-use Google Sheet database

  This means you can focus on closing deals, not collecting data.

  What this workflow does
  This automation identifies, analyzes, and organizes business opportunities in just a few steps:
  Telegram Trigger → Send a message specifying your business type, number of leads, and Google Maps URL.  
  Apify Integration → Fetches business information from Google Maps (public data).  
  Duplicate Removal → Ensures clean, non-redundant results.  
  AI Summarization (GPT-4) → Generates concise business summaries for better understanding.  
  Email Extraction (GPT-4) → Finds and extracts professional contact emails from company websites.  
  Google Sheets Integration → Automatically stores results (name, category, location, phone, email, etc.) in a structured sheet.  
  Telegram Notification → Confirms when all businesses are processed.  

  All data is handled ethically and transparently — only from public sources and without any unsolicited contact.

  Setup
  Telegram Setup  
     Create a Telegram bot via BotFather  
     Copy the API token and paste it into the Telegram Trigger node credentials.  

  Apify Setup  
     Create an account on Apify  
     Get your API token and connect it to the “Run Google Maps Scraper” node.  

  Google Sheets Setup  
     Connect your Google account under the “Google Maps Database” node.  
     Specify the target spreadsheet and worksheet name.  

  OpenAI Setup  
     Add your OpenAI API key to the AI nodes (“Company Summary Info” and “Extract Business Email”).  

  Test  
     Send a Telegram message like:  
       restaurants, 5, https://www.google.com/maps/search/restaurants+in+Paris  

  How to customize this workflow to your needs
  Change search region or business type** by modifying the Telegram input message format.  
  Adjust the number of leads** via the maxCrawledPlacesPerSearch parameter in Apify.  
  Add filters or enrichments** (e.g., websites with social links, review counts, or opening hours).  
  Customize AI summaries** by tweaking the prompt inside the “Company Summary Info” node.  
  Integrate CRM tools** like HubSpot or Pipedrive by adding a connector after the Google Sheets node.  

  ⚙️ Expected Outcome
  ✅ A clean, enriched, and ready-to-use Google Sheet of businesses with:  
  Name, category, address, and city  
  Phone number and website  
  AI-generated business summary  
  Extracted professional email (if available)  

  ✅ Telegram confirmation once all businesses are processed  

  ✅ Fully automated, scalable, and GDPR-compliant prospecting workflow  

  💡 This workflow provides a transparent, ethical way to streamline your B2B lead research while staying compliant with privacy and anti-spam regulations.

  🎥 Watch This Tutorial

  👋 Need help or want to customize this?
  📩 Contact: LinkedIn  
  📺 YouTube: @DRFIRASS  
  🚀 Workshops: Mes Ateliers n8n

  📄 Documentation: Notion Guide
  Need help customizing?
  Contact me for consulting and support : Linkedin / Youtube / 🚀 Mes Ateliers n8n  

nodes_used:
  ["@apify/n8n-nodes-apify.apify","n8n-nodes-base.removeDuplicates","@apify/n8n-nodes-apify.apify","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.wait","n8n-nodes-base.telegramTrigger","n8n-nodes-base.code","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7328 characters]


name: Search & Enrich: Smart Keyword Analysis with Decodo + OpenAI GPT-4.1-mini
author_name: Ranjan Dailata
author_username: ranjancse
categories: []
created_at: 2025-11-09T08:34:56.307Z
updated_at: 2025-11-09T08:34:56.307Z
url: https://n8n.io/workflows/10648
scraped_at: 2025-12-24 13:02:41
description:
  Disclaimer

  Please note - This workflow is only available on n8n self-hosted as it's making use of the community node for the Decodo Web Scraping



  This workflow automates intelligent keyword and topic extraction from Google Search results, combining Decodo’s advanced scraping engine with OpenAI GPT-4.1-mini’s semantic analysis capabilities. The result is a fully automated keyword enrichment pipeline that gathers, analyzes, and stores SEO-relevant insights.

  Who this is for

  This workflow is ideal for:

  SEO professionals** who want to extract high-value keywords from competitors.
  Digital marketers** aiming to automate topic discovery and keyword clustering.
  Content strategists** building data-driven content calendars.
  AI automation engineers** designing scalable web intelligence and enrichment pipelines.
  Growth teams** performing market and search intent research with minimal effort.

  What problem this workflow solves

  Manual keyword research is time-consuming and often incomplete. Traditional keyword tools only provide surface-level data and fail to uncover contextual topics or semantic relationships hidden in search results.

  This workflow solves that by:

  Automatically scraping live Google Search results for any keyword.
  Extracting meaningful topics, related terms, and entities using AI.
  Enriching your keyword list with semantic intelligence to improve SEO and content planning.
  Storing structured results directly in n8n Data Tables for trend tracking or export.

  What this workflow does

  Here’s a breakdown of the flow:

  Set the Input Fields – Define your search query and target geo (e.g., “Pizza” in “India”).
  Decodo Google Search – Fetches organic search results using Decodo’s web scraping API.
  Return Organic Results – Extracts the list of organic results and passes them downstream.
  Loop Over Each Result – Iterates through every search result description.
  Extract Keywords and Topics – Uses OpenAI GPT-4.1-mini to identify relevant keywords, entities, and thematic topics from each snippet.
  Data Enrichment Logic – Checks whether each result already exists in the n8n Data Table (based on URL).
  Insert or Skip – If a record doesn’t exist, inserts the extracted data into the table.
  Store Results – Saves both enriched search data and Decodo’s original response to disk.

  End Result: A structured and deduplicated dataset containing URLs, keywords, and key topics — ready for SEO tracking or further analytics.

  Setup

  Pre-requisite

  Please make sure to install the n8n custom node for Decodo.

  Import and Configure the Workflow

  Open n8n and import the JSON template.
  Add your credentials:

     Decodo API Key under Decodo Credentials account.
     OpenAI API Key under OpenAI Account.

  Define Input Parameters

  Modify the Set node to define:

    search_query: your keyword or topic (e.g., “AI tools for marketing”)
    geo: the target region (e.g., “United States”)

  Configure Output

  The workflow writes two outputs:

    Enriched keyword data → Stored in n8n Data Table (DecodoGoogleSearchResults).
    Raw Decodo response → Saved locally in JSON format.

  Execute

  Click Execute Workflow or schedule it for recurring keyword enrichment (e.g., weekly trend tracking).

  How to customize this workflow

  Change AI Model** — Replace gpt-4.1-mini with gemini-1.5-pro or claude-3-opus for testing different reasoning strengths.
  Expand the Schema** — Add extra fields like keyword difficulty, page type, or author info.
  Add Sentiment Analysis** — Chain a second AI node to assess tone (positive, neutral, or promotional).
  Export to Sheets or DB** — Replace the Data Table node with Google Sheets, Notion, Airtable, or MySQL connectors.
  Multi-Language Research** — Pass a locale parameter in the Decodo node to gather insights in specific languages.
  Automate Alerts** — Add a Slack or Email node to notify your team when high-value topics appear.

  Summary

  Search & Enrich is a low-code AI-powered keyword intelligence engine that automates research and enrichment for SEO, content, and digital marketing.

  By combining Decodo’s real-time SERP scraping with OpenAI’s contextual understanding, the workflow transforms raw search results into structured, actionable keyword insights. It eliminates repetitive research work, enhances content strategy, and keeps your keyword database continuously enriched — all within n8n.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.function","n8n-nodes-base.readWriteFile","n8n-nodes-base.stickyNote","@decodo/n8n-nodes-decodo.decodo","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.informationExtractor","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.dataTable","n8n-nodes-base.stickyNote","n8n-nodes-base.dataTable","n8n-nodes-base.if","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5544 characters]


name: Summarize Apple App Store Reviews with Pinecone, GPT-4 Mini & Slack
author_name: Ertay Kaya
author_username: ertay
categories: []
created_at: 2025-11-09T22:39:52.451Z
updated_at: 2025-11-09T22:39:52.451Z
url: https://n8n.io/workflows/10666
scraped_at: 2025-12-24 13:02:41
description:
  This n8n workflow automates the process of collecting, storing, and summarizing customer reviews from the Apple App Store for multiple apps. It fetches daily reviews, stores them in a Pinecone vector database, and generates a weekly summary using OpenAI, which is then posted to a Slack channel.

  Key Features

  Fetches daily customer reviews for a list of Apple App Store apps using the App Store Connect API.
  Stores reviews in Pinecone, with separate namespaces for each app and automatic weekly cleanup.
  Uses OpenAI to generate a summary of reviews, including positive/negative highlights and average star rating.
  Posts the summary to a specified Slack channel every week.


  How to use

  Set your Apple App Store app IDs and names in the provided Set nodes.
  Configure your Apple API, Pinecone, OpenAI, and Slack credentials.
  Adjust the schedule triggers as needed for daily fetching and weekly summarization.
  Deploy the workflow to automate review monitoring and reporting for your apps.

nodes_used:
  ["n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.jwt","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.vectorStorePinecone","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.vectorStorePinecone","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 6396 characters]


name: AI Telegram-to-WordPress Publishing with GPT-4 & Media Handling
author_name: Alexandru Burca
author_username: alex13
categories: []
created_at: 2025-11-10T06:38:04.925Z
updated_at: 2025-11-10T06:38:04.925Z
url: https://n8n.io/workflows/10671
scraped_at: 2025-12-24 13:02:43
description:
  AI-powered automation that rewrites, enhances, and publishes Telegram RSS content directly to your WordPress news site, including image/video upload and category mapping.

  Who’s it for
  This workflow is designed for content creators, news publishers, and social media managers who share updates on Telegram and want to automatically republish them as formatted articles on WordPress. It’s ideal for news portals, agencies, or blogs that manage content across multiple channels.

  Features
  Multi-Channel Telegram RSS Monitoring
  Automatic Category Assignment
  Duplicate Prevention System (GUID Matching)
  Media Download + Type Detection (Image / Video)
  Full AI Article Rewriting (GPT-4O)
  -- Stage 1: Full rewrite with structure
  -- Stage 2: Context enhancement
  Media Handling Logic
  WordPress Publish

  How it works / What it does
  Fetches new posts from a Telegram channel feed (via RSS).
  Uses OpenAI to rewrite the text into a polished news-style article.
  Detects whether the content includes images or videos and downloads them.
  Uploads the media to WordPress and links it to the post.
  Automatically publishes the formatted article to WordPress with the correct category and excerpt.

  Set up steps

  Setup takes around 10–15 minutes.
  You’ll need API keys for OpenAI and WordPress Application Passwords.
  Add your Telegram RSS feed URL and WordPress site URL in the relevant nodes.
  (Optional) Adjust tone or rewrite style in the OpenAI node and category mapping in the Switch node.
  All configuration details are included in sticky notes inside the workflow.

  Requirements

  WordPress site with REST API access and Application Password
  OpenAI API key
  Telegram channels RSS URL

  How to customize the workflow
  You can easily adjust the writing style in the OpenAI node, change categories in the Switch node, or schedule how often the workflow checks Telegram for new posts.

nodes_used:
  ["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.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 13632 characters]


name: Automate Daily Google Calendar Events to Trello Cards
author_name: PrideVel
author_username: n8nwizard
categories: []
created_at: 2025-11-11T11:44:50.560Z
updated_at: 2025-11-11T11:44:50.560Z
url: https://n8n.io/workflows/10723
scraped_at: 2025-12-24 13:02:45
description:
  📋 Overview

  This n8n workflow automatically converts your Google Calendar events for the current day into Trello cards every morning at 8 AM. It fetches all calendar events for the day, filters out routine events (like Lunch or Check email), and creates neatly formatted Trello cards with a predefined meeting notes template.

  Perfect for professionals who want to keep their daily meetings and tasks synced with their Trello board.

  ⚙️ Key Features

  🕗 Runs daily at 8 AM (configurable via Cron node)
  📅 Fetches all Google Calendar events for the current day
  🚫 Skips routine/repetitive events (Lunch, Check email, etc.)
  🧩 Creates Trello cards with structured meeting notes
  🔗 Includes event URL and due date in Trello card
  🧠 Customizable filters and templates for full control

  🧱 Workflow Steps

  1. Run Daily at 8 AM (Cron Node)

  Automatically triggers the workflow every morning at 8:00 AM. You can adjust the time as needed.

  2. Calculate Today's Date Range (Function Node)

  Generates the ISO-formatted start and end times for the current day (00:00–23:59). These values are passed to the Google Calendar node for querying events.

  3. Fetch All Today's Calendar Events (Google Calendar Node)

  Fetches all events scheduled for today using your Google account. The calendar email (your-email@example.com) should be replaced with your actual email.

  4. Process Events One by One (SplitInBatches Node)

  Splits the list of events into single items for individual processing.

  5. Extract Event Details for Trello (Set Node)

  Maps each event’s details (summary, description, start time, and URL) into structured fields ready for Trello card creation.

  6. Filter Out Routine Events (If Node)

  Skips over common recurring events (like “Check email,” “Lunch,” “Wrap Up & Clear Desk,” or “Beers and Griping”). You can customize this list as needed.

  7. Create New Trello Card with Template (Trello Node)

  For non-filtered events, creates a new Trello card using a predefined meeting notes template. Includes:

  Title: Event summary
  Due date: Event start time
  Description: Preformatted meeting notes layout
  Source URL: Event link from Google Calendar

  8. Skip Filtered Event (NoOp Node)

  Handles skipped events gracefully without performing any action.

  🧰 Setup Instructions

  1. Add Credentials

  Add Google Calendar OAuth2 credentials in n8n.
  Add Trello API credentials in n8n.

  2. Replace Placeholder Values

  Update the calendar email in the Google Calendar node.
  Add your Trello board and list IDs in the Trello node.

  3. Optional Customizations

  Modify the Cron node to change trigger time.
  Edit the Trello card template to match your meeting format.
  Add labels using idLabels in the Trello node.
  Adjust the filter conditions for different recurring tasks.

  🧠 Example Use Case

  Imagine you have daily meetings in your Google Calendar. Each morning, this workflow:

  Collects all your events for the day.
  Skips unimportant ones (like lunch breaks).
  Automatically adds Trello cards for real meetings, each with a structured template for you to take notes and assign next steps.

  🧾 Example Trello Card Template

  Title: Meeting with Client A
  Due Date: 2025-11-11T10:00:00Z
  Description:

  Meeting purpose (*Integrations, Playbooks, UI Issues, Project*):

  Task

  Next Steps (*Task, Assigned to, Checkpoint Date*):

  Task

  Decisions Made (*What, Why, Impacts*):

  Task

  Discussion (*Items/Knowledge Shared*):

  Task

  ✅ Requirements

  Google Calendar OAuth2 credentials
  Trello API credentials
  Active Google Calendar with events
  A Trello board/list to create cards in

  📌 Notes

  You can adjust the workflow to run multiple times a day if needed.
  You can integrate Slack or email notifications for newly created cards.
  The workflow is lightweight and suitable for daily automation tasks.

  ✨ Tip: Combine this with n8n’s Slack or Notion integrations to get a full daily planning system that syncs your meetings, notes, and tasks automatically!

nodes_used:
  ["n8n-nodes-base.function","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.googleCalendar","n8n-nodes-base.splitInBatches","n8n-nodes-base.trello","n8n-nodes-base.noOp","n8n-nodes-base.cron","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE52WS2/bRhDHvwrBSy+aYt8P3VI7BXJoXDhBewh82MesQ5gmBXJVxzD03buUnVpVqNj0RRJXo/n/NK+dh/oWs6vXD3XTjdl1AT/Eel0HYShLSRsjZCAyMiuFsoJTFDoZdC4pHlN0OnnqfKSSGWEZN96qkKhS9arOeLtpXcazAeP4CfN2c9aXE8xYBPKwxd2q7vqIY73+UtQnVUaZodFQ8E4oEM4ocJITYJZGVFRqq1Lx3LlbLNZnrg3bSaH63Ed3/8tYnU8Pl667xkn/fjNZdaaDvUxxOuKvaduF3PRdMdj0Y7P/uP5iFVkJQ67KoRuK94xDwXrYPXr5qzzt7ehu9URKhVeE2wCSMA/CKgNOSQqOMya9wsSYeSZ9/y0PLuTq/T/Y5eq8BLxpxyr1Q/V5wLbtT9KOmP8PSpUwy0ildZSgJGCC1iAICeAJalDeO6YjJ1zyZ9Lfm7Z4rC62ubrst7np8BF6PInYpCNCo9kywqQUjV5ZwKhK1i2J4IxLQKWJwQhELcIBIebwtXrXtv9lvdQBdtENL5Fe9/11i9+tj6ipEcuoCWUeDZHAiacgvFZgMRHQjiYpWOQ+0WfqP4c+4Dg+IVYXJa7+fno7nfpN2+QP3W+u/F0cj2gFWVgFiI6pFDX4RBiIEmTwTHNQgcTo0LNE40FnDTh10ke8eyrQEuMhVndN/lp9fmrrk+D5e0kfADNi1Upq9Xpgo4yRyibgXAkQilMwhFLgQgXJouKaH4yCTzfNpnqsXYyPQT7J1/UXmxk6bsTr6bwtY08KDQmDA1HmJJSJWF4cCi+ojJIetP/ltiujqWnvK5crU7374yRbGI4nk+ZqWaYVUSFyboHwVPqdUw2mTCsgxlBCFFXsEO3vfrhJbX9Xnfdhe1vC5p6G44mizE24uf/Y79N/GEFBVpwdQ9ah7/KUinVdnwbWijiM2oIMsmSaxQCWoYTS9SyJ4KJGd5DpjJuKAluMOAXyrYiO2RitckCVxXIv7YuxcJqkvZEpUs/5ESIHsRiRUiLezFjuxxRVEFAQJQjDCLhpnio0kbpyK4VkjxglqOWMQr49jpqmJK0QQISIIJB68CoZCMp4YY2X3usjxlK9yxlNGY9LGYt1+b7D/XawN/+xbcvhrWsmibKxTCCv3kL2P1uVHSvit3pNdldXheD0ZTsn9NMZ94P/1QHhomk+S3r6+pojff26Myv204jO6S1YCWYFX+SdFX15U5pP+ouwc2qv2B9m1Ha7fwHPefXq3wsAAA==


name: Collect API User Data and Store in Google Sheets with CSV backup
author_name: PrideVel
author_username: n8nwizard
categories: []
created_at: 2025-11-11T11:47:04.185Z
updated_at: 2025-11-11T11:47:04.185Z
url: https://n8n.io/workflows/10725
scraped_at: 2025-12-24 13:02:45
description:
  🧾 Overview

  This n8n workflow automates the process of fetching user data from an API, verifying its validity, transforming the response, and then saving it to Google Sheets for team collaboration. Additionally, it generates a CSV backup file of the same data for offline access or external integrations.

  Perfect for developers, analysts, or teams who want an automated, no-code data ingestion and backup solution.

  ⚙️ Key Features

  🔌 Fetches data from any REST API endpoint (e.g., RandomUser API)
  ✅ Validates successful API responses before processing
  🧠 Transforms JSON response into simple key-value pairs (name and country)
  📊 Appends data directly into Google Sheets
  💾 Generates a downloadable CSV backup file
  🧱 Modular design — easily customizable and extendable

  🧱 Workflow Steps

  1. Start Workflow Manually (Manual Trigger Node)

  The workflow starts manually by clicking Execute Workflow. You can later replace this with a Cron or Webhook trigger for automation.

  2. Fetch User Data from API (HTTP Request Node)

  Makes an HTTP GET request to the configured API endpoint defined in the environment variable BASE_URL.

  Example:

  https://randomuser.me/api/?results=10

  This node fetches raw user data in JSON format.

  3. Verify API Response Success (If Node)

  Checks if the API response returned an HTTP 200 status code.

  ✅ If status = 200 → Continue processing data
  ❌ If status ≠ 200 → Trigger Stop and Error node to halt execution

  This prevents saving invalid or failed responses.

  4. Transform API Data to Name and Country (Function Node)

  Formats the raw JSON data to extract key details (name and country) from each user record.

  Input Example:

  {
    "results": [
      {
        "name": { "first": "John", "last": "Doe" },
        "location": { "country": "United States" }
      }
    ]
  }

  Output Example:

  [
    { "name": "John Doe", "country": "United States" }
  ]

  This step makes the data compatible with Google Sheets.

  5. Append Data to Google Sheets (Google Sheets Node)

  Appends the formatted data to your specified Google Sheet.

  Environment Variables Required:

  GOOGLE_SHEET_ID → ID of your target Google Sheet

  Configuration:

  Range:** A:B
  Columns:** Name (A) and Country (B)

  Example Google Sheet:

  | Name       | Country       |
  | ---------- | ------------- |
  | John Doe   | United States |
  | Jane Smith | Canada        |

  6. Create CSV Backup File (Spreadsheet File Node)

  Generates a .csv file named users_backup_export.csv containing all saved user data.

  This file can be:

  Stored locally
  Sent via email
  Uploaded to cloud storage (e.g., Google Drive, Dropbox)
  Used for external analytics tools

  ⚠️ Error Handling

  If the API response is invalid (non-200), the Stop on API Failure node halts the workflow and logs the error:

  &gt; ❌ API request failed — status code not 200. Workflow stopped.

  This ensures only valid data is stored.

  🧰 Setup Instructions

  Add Environment Variables:

        BASE_URL=https://randomuser.me/api/?results=10
     GOOGLE_SHEET_ID=&lt;your_google_sheet_id&gt;
     
  Add Credentials:

     Google Sheets OAuth2 credentials
     API (if authentication is required)

  Run Workflow:

     Start manually or configure a Cron node to run periodically

  Check Output:

     Data appears in your Google Sheet
     CSV file is created in n8n’s file system

  🧩 Customization Options

  | Goal                    | How to Modify                                                     |
  | ----------------------- | ----------------------------------------------------------------- |
  | Change API fields       | Edit Transform API Data function to extract desired fields      |
  | Add columns             | Expand output object and update Google Sheets range (e.g., A:D) |
  | Automate execution      | Replace manual trigger with a Cron or Webhook node                |
  | Filter users            | Add an If node after transformation to include/exclude data       |
  | Send email notification | Add Gmail or SMTP node after CSV creation                         |

  🧠 Example Use Case

  A recruiter fetches random candidate data daily from an HR API.
  Data (Name + Country) is saved to Google Sheets.
  A CSV backup is automatically generated for offline analysis.

  ✅ Benefits

  Hands-free automated data collection
  Centralized storage in Google Sheets for team access
  Built-in CSV export for reporting and backups
  Protects data integrity with API validation
  Fully customizable for any API format

  ✨ Tip: Add a Slack or Telegram node at the end to notify your team whenever new data is added successfully!

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.function","n8n-nodes-base.googleSheets","n8n-nodes-base.spreadsheetFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stopAndError","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:
  H4sIAAAAAAAAE52WTW/jNhCG/4qgs1nwm1RuabYp9tBFsdmmhyKHITlMhNiSKslog8D/vWMlG2cd27V9MWBzOPP45fDlPJcLHKG8eC7rZhihifg5lRdl1F7InJ332kRukqyMtpVWArXLHgGyVSkncDkICEkY6XUllQ+VjVlYW65mZdMmHMqLvyj1OqVNQTiXFUucC6az0CwIDCwGK8B5iJmHknbBAin6ZoR+LP5s+8c8b/8pfoNmCfP5EwWMT906oPENmyqwAAP+tJgCvvX1/T32FNW1Qz3WbUP1tZ9ZJ+/oN+gp+Yg9UT2vXjLd0rcpTKxmr6AhOZPBRBZTiEwLtCwEb5iw2aGlv+Cz34Be4xgfij8G7ItPMEKR+3ZRXP7+eS/pwzh2X/HvJQ7jj5zSyWNA5RtoFpUKQXLKC4ZpL4EBBEW0iiC9TgJgA0oJ6vy0Riu+4tC1zYDFzTJGHIa9rHXekrKyJ2pZJW5NZRl3OTMt6dBBa8sUN1JGI6xycoP4rYdmyG0/Cfgi59gWX2ixgCYVV+2yGfv9PZCXTZxAf2B25ihZN8wcksygElPSc6YrnlllErKIqBAEdWp0G+bLrkNi+w77a9vez0nYB8Rxv673U9Rb0Dvayp2osE2ajjklljQPTBtnWFDKMm8Ulw68tLba0F71CCMWVze3xc8QH5ddcV3PcS/n0FF8Gtacr3HvUIXk/ERWQd5AF50hfVLDesV8CsiyVElEn2yocMP6dvk/tXG5wGaE18PdwzrW8fHpSztuYfIZ3yYsY9uMlJCSlAdoK9QV0sEnnpFpcJxVim6bstGjcKi48O8Nq+2Ktpk69xrq+bI/ICvFXjbpl75v+4/N6rU/XlKZuFDcJQaGW6aRKwbKaka3KwAGblDBe0jsClGwYmOUp4kpjT1XTg4iQRbIrAfH6BkBVkkvyBmi044rWtwmlUT64lff7fI0WiPkubTRk3LZA+NYVdSq4FnlIZGFeetMiilB2KJVRHsL8zqd16fO+nNhPcgkpY0sWyGZXl+pAJmMgEw3IGZ6pd0WrJ6a4NVuT2YVXOqzYZ2pIJCeRiRFz6slZVEAS8pnEKCzNWIL1hDscca6F5is/FxgiN6hJjl5pOlF67x+YUNgXKpIpusjxLQFbAl447Gn0xplZx9d4DAuRdN6g9MTOIXvm6FoaQH1uhDNZmuco8aYacuMxsSE/5YXfHV3Rwx7t+2qcdQEsrPMoZ27Kp06SHwoOtvkOmjsO2kPjgS7cP/vVd5Z5cj/uKvecTPLjqqr1X+Sf6kvMAwAAA==


name: Create LinkedIn Content with GPT-4 via Telegram Bot & Approval Loop
author_name: Feras Dabour
author_username: ferasdabour
categories: []
created_at: 2025-11-11T19:49:32.252Z
updated_at: 2025-11-11T19:49:32.252Z
url: https://n8n.io/workflows/10737
scraped_at: 2025-12-24 13:02:44
description:
   AI LinkedIn Content Bot with Approval Loop

  This n8n workflow transforms your Telegram messenger into a personal assistant for creating and publishing LinkedIn posts. You can simply send an idea as a text or voice message, collaboratively edit the AI's suggestion in a chat, and then publish the finished post directly to LinkedIn just by saying "Okay."

  What You'll Need to Get Started

  Before you can use this workflow, you'll need a few prerequisites set up. This workflow connects three different services, so you will need API credentials for each:

  Telegram Bot API Key: You can get this by talking to the "BotFather" on Telegram. It will guide you through creating your new bot and provide you with the API token.
  New Chat with Telegram BotFather

  OpenAI API Key: This is required for the "Speech to Text" and "AI Agent" nodes. You'll need an account with OpenAI to generate this key.
  [OpenAI API Platform](https://platform.openai.com
  )
  Blotato API Key: This service is used to publish the final post to LinkedIn. You'll need a Blotato account and to connect your LinkedIn profile there to get the key.
  [Blotato platform for social media publishing]

  Once you have these keys, you can add them to the corresponding credentials in your n8n instance.

  How the Workflow Operates, Step-by-Step

  Here is a detailed breakdown of how the workflow processes your request and handles the publishing.

  1\. Input & Initial Processing

  This phase captures your idea and converts it into usable text.

  | Node Name | Role in Workflow |
  | :--- | :--- |
  | Start: Telegram Message | This Telegram Trigger node initiates the entire process upon receiving any message from you in the bot. |
  | Prepare Input | Consolidates the message content, ensuring the AI receives only one clean text input. |
  | Check: ist it a Voice? | Checks the incoming message for text. If text is empty, it proceeds to voice handling. |
  | Get Voice File | If a voice note is detected, this node downloads the raw audio file from Telegram. |
  | Speech to Text | This node uses the OpenAI Whisper API to convert the downloaded audio file into a text string. |

  2\. AI Core & Iteration Loop

  This is the central dialogue system where the AI drafts the content and engages in the feedback loop.

  | Node Name | Role in Workflow |
  | :--- | :--- |
  | AI: Draft & Revise Post | The main logic agent. It analyzes your request, applies the "System Prompt" rules, drafts the post, and handles revisions based on your feedback. |
  | OpenAI Chat Model | Defines the large language model (LLM) used for generating and revising the post. |
  | Window Buffer Memory | A memory buffer that stores the last turns of the conversation, allowing the AI to maintain context when you request changes (e.g., "Make it shorter"). |
  | Check if Approved | This crucial node detects the specific JSON structure the AI outputs only when you provide an approval keyword (like "ok" or "approved"). |
  | Post Suggestion Or Ask For Approval | Sends the AI's post draft back to your Telegram chat for review and feedback. |

  AI Agent System Prompt (Internal Instructions - English)

  The agent operates under a strict prompt that dictates its behavior and formatting (found within the AI: Draft & Revise Post node):

  &gt; You are a LinkedIn Content Creator Agent for Telegram.
  &gt; Keep the confirmation process, but change the output format as follows:
  &gt;
  &gt; Your Task
  &gt; Analyze the user's message:
  &gt;
  &gt;   * Topic
  &gt;   * Goal (e.g., reach, show expertise, recruiting, personal branding, leads)
  &gt;   * Target Audience
  &gt;   * Tonality (e.g., factual, personal, bold, inspiring)
  &gt;
  &gt; Create a LinkedIn post as ONE continuous text:
  &gt;
  &gt;   * Strong hook in the first 1–2 lines.
  &gt;   * Clear main part with added value, story, example, or insight.
  &gt;   * Optional Call-to-Action (e.g., question to the community, invitation to exchange).
  &gt;   * Integrate hashtags at the end of the post (5–12 suitable hashtags, mix of niche + somewhat broader).
  &gt;   * Readable on LinkedIn: short paragraphs, emojis only sparingly.
  &gt;
  &gt; Present the suggestion to the user in the following format:
  &gt;
  &gt; Headline: Post Proposal:
  &gt; Below that, the complete LinkedIn post (incl. hashtags at the end in the same text).
  &gt;
  &gt; Ask for feedback:
  &gt; For example:
  &gt; "Any changes? (Tone, length, formality, personal vs. professional, more technical content, different hashtags?)"
  &gt;
  &gt; If the user requests changes:
  &gt; Adjust the post specifically based on the feedback.
  &gt; Again, output only:
  &gt; Post Proposal:
  &gt; the revised complete post.
  &gt;
  &gt; If the user says “approved”, “ok”, “sounds good”, or similar:
  &gt; Return exclusively this JSON, without additional text, without Markdown:
  &gt;
  &gt; &gt; {
  &gt;   "Post": "The final LinkedIn post as one text, including hashtags at the end"
  &gt; }
  &gt; &gt;
  &gt; Important:
  &gt;
  &gt;   * Never output JSON before approval, only normal suggestion text.
  &gt;   * The final output after approval consists of only one field: Post.

  3\. Publishing & Status Check

  Once approved, the workflow handles the publication and monitors the post's status in real-time.

  | Node Name | Role in Workflow |
  | :--- | :--- |
  | Approval: Extract Final Post Text | Parses the incoming JSON, extracting only the clean text ready for publishing. |
  | Create post with Blotato | Uses the Blotato API to upload the finalized content to your connected LinkedIn account. |
  | Give Blotat 5s :) | A brief pause to allow the publishing service to start processing the request. |
  | Check post status | Checks back with Blotato to determine if the post is published, in progress, or failed. |
  | Published? | Checks if the status is "published" to send the success message. |
  | In Progress? | Checks if the post is still being processed. If so, it loops back to the next wait period. |
  | Give Blotat other 5s :) | Pauses the workflow before re-checking the post status, preventing unnecessary API calls. |

  4\. Final Notification

  | Node Name | Role in Workflow |
  | :--- | :--- |
  | Send a confirmation message | Sends a confirmation message and the direct link to the published LinkedIn post. |
  | Send an error message | Sends a notification if the post failed to upload or encountered an error during processing. |

  🛠️ Personalizing Your Content Bot

  The true power of this n8n workflow lies in its flexibility. You can easily modify key components to match your unique brand voice and technical preferences.

  1\. Tweak the Content Creator Prompt

  The personality, tone, and formatting rules for your LinkedIn content are all defined in the System Prompt.

    Where to find it: Inside the AI: Draft & Revise Post node, under the System Message setting.
    What to personalize: Adjust the tone, change the formatting rules (e.g., number of hashtags, required emojis), or insert specific details about your industry or target audience.

  2\. Switch the AI Model or Provider

  You can easily swap the language model used for generation.

    Where to find it: The OpenAI Chat Model node.
    What to personalize:
        Model: Swap out the default model for a more powerful or faster alternative (e.g., gpt-4 family, or models from other providers if you change the node).
        Provider: You can replace the entire Langchain block (including the AI Model and Window Buffer Memory nodes) with an equivalent block using a different provider's Chat/LLM node (e.g., Anthropic, Cohere, or Google Gemini), provided you set up the corresponding credentials and context flow.

  3\. Modify Publishing Behavior (Schedule vs. Post)

  The final step is currently set to publish immediately, but you might prefer to schedule posts.

    Where to find it: The Create post with Blotato node.
    What to personalize:
        Consult the Blotato documentation for alternative operations. Instead of choosing the "Create Post" operation (which often posts immediately), you can typically select a "Schedule Post" or "Add to Queue" operation within the Blotato node.
        If scheduling, you will need to add a step (e.g., a Set node or another agent prompt) before publishing to calculate and pass a Scheduled Time parameter to the Blotato node.

nodes_used:
  ["@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.telegram","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.stickyNote","n8n-nodes-base.telegramTrigger","n8n-nodes-base.set","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.code","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.wait","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7040 characters]


name: Automate External Attack Surface Mapping with Shodan API and DNS Lookups
author_name: Sean Birmingham
author_username: knute
categories: []
created_at: 2025-11-12T00:57:16.973Z
updated_at: 2025-11-12T00:57:16.973Z
url: https://n8n.io/workflows/10740
scraped_at: 2025-12-24 13:02:45
description:
  The Bug Bounty Target Recon n8n workflow is a powerful automation tool for security professionals and ethical hackers.

  It efficiently automates the time-consuming process of external attack surface mapping.

  By taking a domain, the workflow performs DNS Lookups to identify all associated IP addresses, and then utilizes the Shodan API to query:

  Detailed service banners
  Open ports
  Technologies
  Known vulnerabilities

  This system delivers crucial, organized OSINT data, saving the user hours of manual scripting and reconnaissance, and providing a clear, actionable map of a target's exposed infrastructure.

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.noOp","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7188 characters]


name: Automate Zoom 🎦 User Onboarding with OAuth Token Management and Data Tables
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-11-12T07:34:42.134Z
updated_at: 2025-11-12T07:34:42.134Z
url: https://n8n.io/workflows/10747
scraped_at: 2025-12-24 13:02:44
description:
  This workflow automates the management of Zoom OAuth tokens and the creation of new Zoom users through the Zoom API.

  This workflow automates the process of creating a new Zoom user by first ensuring a valid OAuth access token is available. It is designed to handle the fact that Zoom access tokens are short-lived (1 hour) by using a longer-lived refresh token (90 days) stored in an n8n Data Table.

  It includes two main phases:

  Token Generation & Management

     The workflow initially requests a Zoom access token using the OAuth 2.0 “authorization code” method.
     The resulting access token (valid for 1 hour) and refresh token (valid for 90 days) are stored in an n8n Data Table.
     When executed again, the workflow checks for the most recent token, refreshes it using the refresh token, and updates the Data Table automatically.

  User Creation in Zoom

     Once a valid token is retrieved, the workflow collects the user’s first name, last name, and email (set in the “Data” node).
     It then generates a secure random password for the new user.
     Using the Zoom API, it sends a POST request to create the new user, automatically triggering an invitation email from Zoom.

  Key Features

  ✅ Full Automation of Zoom Authentication

     Eliminates manual token handling by automatically refreshing and updating OAuth credentials.

  ✅ Centralized Token Storage

     Securely stores access and refresh tokens in an n8n Data Table, simplifying reuse across workflows.

  ✅ Error Prevention

     Ensures that expired tokens are replaced before API requests, avoiding failed Zoom operations.

  4.✅  Automatic User Provisioning

     Creates Zoom users automatically with prefilled credentials and triggers Zoom’s built-in invitation process.

  ✅ Scalability

     Can be easily extended to handle bulk user creation, role assignments, or integration with other systems (e.g., HR, CRM).

  ✅ Transparency & Modularity

     Each node is clearly labeled with “Sticky Notes” explaining every step, making maintenance and handover simple.

  How it works


  Trigger and Data Retrieval: The workflow starts manually. It first retrieves user data (first name, last name, email) from the "Data" node. In parallel, it fetches all stored token records from a Data Table.
  Token Management: The retrieved tokens are sorted and limited to get only the most recent one. This latest token (which contains the refresh_token) is then used in an HTTP Request to Zoom's OAuth endpoint to generate a fresh, valid access_token.
  User Creation: The new access_token and refresh_token are saved back to the Data Table for future use. The workflow then generates a random password for the new user, merges this password with the initial user data, and finally sends a POST request to the Zoom API to create the new user. If the creation is successful, Zoom automatically sends an invitation email to the new user.

  Set up steps

  Prepare the Data Table:
      Create a new Data Table in your n8n project.
      Add two columns to it: accessToken and refreshToken.

  Configure Zoom OAuth App:
      Create a standard OAuth app in the Zoom Marketplace (not a Server-to-Server app).
      Note your Zoom account_id.
      Encode your Zoom app's client_id and client_secret in Base64 format (as client_id:client_secret).
      In both the "Get new token" and "Zoom First Access Token" nodes, replace the "XXX" in the Authorization header with this Base64-encoded string.

  Generate Initial Tokens (First Run Only):
      Manually execute the "Zoom First Access Token" node once. This node uses an authorization code to fetch the first-ever access and refresh tokens and saves them to your Data Table. The main workflow will use these stored tokens from this point forward.

  Configure User Data:
      In the "Data" node, set the default values for the new Zoom user by replacing the "XXX" placeholders for first_name, last_name, and email.

  After these setup steps, the main workflow (triggered via "When clicking 'Execute workflow'") can be run whenever you need to create a new Zoom user. It will automatically refresh the token and use the provided user data to create the account.

  Need help customizing?  
  Contact me for consulting and support or add me on Linkedin. 

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.dataTable","n8n-nodes-base.sort","n8n-nodes-base.limit","n8n-nodes-base.if","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.dataTable","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.dataTable","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5700 characters]


name: Automated Document Sync Between SharePoint and Google Drive with Supabase
author_name: DIGITAL BIZ TECH
author_username: dbt
categories: []
created_at: 2025-11-12T08:27:34.109Z
updated_at: 2025-11-12T08:27:34.109Z
url: https://n8n.io/workflows/10749
scraped_at: 2025-12-24 13:02:43
description:
  SharePoint → Supabase → Google Drive Sync Workflow

  Overview
  This workflow is a multi-system document synchronization pipeline built in n8n, designed to automatically sync and back up files between Microsoft SharePoint, Supabase/Postgres, and Google Drive.

  It runs on a scheduled trigger, compares SharePoint file metadata against your Supabase table, downloads new or updated files, uploads them to Google Drive, and marks records as completed — keeping your databases and storage systems perfectly in sync.

  Workflow Structure
  Data Source:** SharePoint REST API for recursive folder and file discovery.  
  Processing Layer:** n8n logic for filtering, comparison, and metadata normalization.  
  Destination Systems:** Supabase/Postgres for metadata, Google Drive for file backup.

  SharePoint Sync Flow (Frontend Flow)

  Trigger:** Schedule Trigger  
    Runs at fixed intervals (customizable) to start synchronization.

  Fetch Files:** Microsoft SharePoint HTTP Request  
    Recursively retrieves folders and files using SharePoint’s REST API:  
    /GetFolderByServerRelativeUrl(...)?$expand=Files,Folders,Folders/Files,Folders/Folders/Folders/Files

  Filter Files:** filter files  
    A Code node that flattens nested folders and filters unwanted file types:  
    Excludes system or temporary files (~$)  
    Excludes extensions: .db, .msg, .xlsx, .xlsm, .pptx

  Normalize Metadata:** normalize last modified date  
    Ensures consistent Last_modified_date format for accurate comparison.

  Fetch Existing Records:** Supabase (Get)  
    Retrieves current entries from n8n_metadata to compare against SharePoint files.

  Compare Datasets:** Compare Datasets  
    Detects new or modified files based on UniqueId, Last_modified_date, and Exists.  
    Routes only changed entries forward for processing.

  File Processing Engine (Backend Flow)

  Loop:** Loop Over Items2  
    Iterates through each new or updated file detected.

  Build Metadata:** get metadata and Set metadata  
    Constructs final metadata fields:
    file_id, file_title, file_url, file_type, foldername, last_modified_date  
    Generates fileUrl using UniqueId and ServerRelativeUrl if missing.

  Upsert Metadata:** Insert Document Metadata  
    Inserts or updates file records in Supabase/Postgres (n8n_metadata table).  
    Operation: upsert with id as the primary matching key.

  Download File:** Microsoft SharePoint HTTP Request1  
    Fetches the binary file directly from SharePoint using its ServerRelativeUrl.

  Rename File:** rename files  
    Renames each downloaded binary file to its original file_title before upload.

  Upload File:** Upload file  
    Uploads the renamed file to Google Drive (My Drive → root folder).

  Mark Complete:** Postgres  
    Updates the Supabase/Postgres record setting Loading Done = true.

  Optional Cleanup:** Supabase1  
    Deletes obsolete or invalid metadata entries when required.

  Integrations Used
  | Service | Purpose | Credential |
  |----------|----------|-------------|
  | Microsoft SharePoint | File retrieval and download | microsoftSharePointOAuth2Api |
  | Supabase / Postgres | Metadata storage and synchronization | Supabase account 6 ayan |
  | Google Drive | File backup and redundancy | Google Drive account 6 rn dbt |
  | n8n Core | Flow control, dataset comparison, batch looping | Native |

  System Prompt Summary
  &gt; “You are a SharePoint document synchronization workflow.  
  Fetch all files, compare them to database entries, and only process new or modified files.  
  Download files, rename correctly, upload to Google Drive, and mark as completed in Supabase.”  

  Workflow rule summary:  
  &gt; “Maintain data integrity, prevent duplicates, handle retries gracefully, and continue on errors.  
  Skip excluded file types and ensure reliable backups between all connected systems.”

  Key Features
  Scheduled automatic sync across SharePoint, Supabase, and Google Drive  
  Intelligent comparison to detect only new or modified files  
  Idempotent upsert for consistent metadata updates  
  Configurable file exclusion filters  
  Safe rename + upload pipeline for clean backups  
  Error-tolerant and fully automated operation  

  Summary
  &gt; A reliable, SharePoint-to-Google Drive synchronization workflow built with n8n, integrating Supabase/Postgres for metadata management.  
  It automates file fetching, filtering, downloading, uploading, and marking as completed — ensuring your data stays mirrored across platforms.

  Perfect for enterprises managing document automation, backup systems, or cross-cloud data synchronization.

  Need Help or More Workflows?
  Want to customize this workflow for your organization?  
  Our team at Digital Biz Tech can extend it for enterprise-scale document automation, RAGs and social media automation.

   We can help you set it up for free — from connecting credentials to deploying it live.

  Contact: shilpa.raju@digitalbiz.tech  
  Website: https://www.digitalbiz.tech  
  LinkedIn: https://www.linkedin.com/company/digital-biz-tech/  
  You can also DM us on LinkedIn for any help.

nodes_used:
  ["n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.compareDatasets","n8n-nodes-base.supabase","n8n-nodes-base.supabase","n8n-nodes-base.postgres","n8n-nodes-base.postgres","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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 7552 characters]


name: Automate Blog-to-Social Media with GPT-4 for LinkedIn, X, and Reddit
author_name: Le Nguyen
author_username: leeseifer
categories: []
created_at: 2025-11-12T09:24:53.723Z
updated_at: 2025-11-12T09:24:53.723Z
url: https://n8n.io/workflows/10750
scraped_at: 2025-12-24 13:02:42
description:
  Turn your blog into a set-and-forget content engine: every new article is instantly repurposed into channel-specific social posts with visuals, keeping your brand visible on LinkedIn, X, and Reddit without extra copywriting time. Perfect for lean marketing teams who want consistent, always-on distribution from a single source of content.

  How it works
  • Watches your blog RSS feed (or receives a single URL) and detects new articles.
  • Saves each post in Postgres so every article is only processed once.
  • Fetches the article HTML, extracts the main body content and sends it to OpenAI (GPT-4.1).
  • OpenAI creates platform-optimized copy: 1 LinkedIn post, 1 X/Twitter post, 1 Reddit post + image prompts.
  • Generates on-brand images with OpenAI and publishes everything automatically to LinkedIn, X, and Reddit.
  • You can also trigger it manually or via webhook whenever you want to push a specific campaign.

  Setup Steps
  • Time: around 20–40 minutes for someone familiar with n8n and the platforms.
  • Create a Postgres table “rss_items” with fields: guid (PRIMARY KEY), title, link, published_at.
  • Add credentials in n8n for:
    – Postgres
    – OpenAI
    – LinkedIn OAuth2
    – X/Twitter OAuth2 + OAuth1 (for media upload)
    – Reddit OAuth2
  • In the RSS node, set your blog feed URL (for example: https://yourblog.com/feed).
  • In the webhook node, confirm the URL/path you want external tools or other workflows to call with a “link” field.
  • Run the manual trigger with one test blog URL to verify:
    – Article content is extracted correctly.
    – AI returns LinkedIn/X/Reddit posts and image prompts.
    – Posts and images appear correctly on all social accounts.
  • Once tests look good, enable the Schedule Trigger so Blog2Social AI runs automatically at your chosen interval.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.html","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.linkedIn","n8n-nodes-base.twitter","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.webhook","n8n-nodes-base.rssFeedRead","n8n-nodes-base.postgres","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.splitInBatches","n8n-nodes-base.respondToWebhook","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.reddit","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.wait","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, 12152 characters]


name: Daily Finance & Stock Market News Analysis with OpenAI, Groq & Email Reports
author_name: Nguyễn Thiệu Toàn (Jay Nguyen)
author_username: nguyenthieutoan
categories: []
created_at: 2025-11-12T21:50:57.204Z
updated_at: 2025-11-12T21:50:57.204Z
url: https://n8n.io/workflows/10776
scraped_at: 2025-12-24 13:02:42
description:
  Finance & Insurance News Aggregator with AI Analysis

  Automatically collect, classify, and analyze financial news from Vietnamese sources with AI-powered expert commentary. Delivers daily HTML email reports.

  What It Does

  This workflow automates the entire process of monitoring financial and insurance news:
  Collects** articles from 4 Vietnamese RSS feeds daily
  Filters** content from the last 24 hours
  Classifies** articles using AI (OpenAI GPT)
  Summarizes** top 15 most important articles
  Adds** expert commentary with AI (Groq LLaMA)
  Saves** results to Google Sheets
  Sends** formatted HTML email report

  Time saved: 2.5 hours/day → 5 minutes/day (95% reduction)

  How It Works

  1. Data Collection (30-60s)
  Schedule Trigger** fires daily at 8:00 AM (GMT+7)
  RSS Feed Reader** fetches from 4 sources with retry logic
  Filter** keeps only articles from last 24 hours
  Normalize** data structure across different RSS formats

  2. AI Classification (20-40s)
  Text Classifier** (OpenAI GPT-4.1-nano) identifies finance/insurance content
  Fallback**: Discards non-relevant articles
  Archive** all processed links to Google Sheets

  3. AI Analysis (40-80s)
  AI Agent 1** (OpenAI GPT-4o-mini) selects top 15 most important articles
  AI Agent 2** (Groq LLaMA 3.1 120B) adds expert commentary with:
    Specific data/numbers
    Impact analysis
    Actionable recommendations

  4. Storage & Reporting (10-20s)
  Google Sheets** stores analyzed articles with commentary
  Code Node** formats responsive HTML email (2-column layout)
  Gmail** sends daily report

  Total execution: 2-3 minutes

  Setup Requirements

  Credentials Needed
  OpenAI API** - For classification and summarization
  Groq API** - For expert commentary (FREE, 14k requests/day limit)
  Google Sheets OAuth2** - For data storage
  Gmail OAuth2** - For email delivery

  Configuration Steps

  Configure RSS Sources
        Set Node: Update array with your RSS URLs
     Default sources:
     vneconomy.vn/tai-chinh.rss
     vnbusiness.vn/rss/tai-chinh.rss
     vietnamfinance.vn/bao-hiem.rss
     tapchikinhtetaichinh.vn/bao-hiem-ngan-hang.rss
     
  Set Google Sheets Document
        Google Sheets Nodes:
     Document ID: Your spreadsheet ID
     Sheet names: "Tai_chinh_Bao_hiem", "List"
     
  Configure Email Recipients
        Gmail Node:
     To: your-email@gmail.com
     Subject: Auto-generated with date
     
  Adjust AI Prompts (Optional)
     AI: Summarize Top 15 - Change max articles (15 → 10 or 20)
     AI: Add Expert Commentary - Adjust comment length (60-120 words)

  Use Cases

  Primary Use Case
  Daily Financial News Monitoring for:
  Financial analysts
  Insurance professionals
  Investment advisors
  Business development teams
  Marketing teams tracking industry trends

  Extended Use Cases
  Compliance monitoring** - Track regulatory changes
  Competitive intelligence** - Monitor competitor news
  Content curation** - Source material for newsletters
  Market research** - Identify emerging trends
  Client updates** - Share relevant news with clients

  Key Features

  Automation
  ✅ Zero manual work - Runs completely automated  
  ✅ Daily schedule - Consistent 8 AM delivery  
  ✅ Error handling - Retry logic for failed RSS fetches  
  ✅ Fallback options - Continues even if some sources fail  

  AI Intelligence
  ✅ Smart classification - Only relevant finance/insurance articles  
  ✅ Quality summarization - Top 15 most important news  
  ✅ Expert commentary - AI-generated analysis with specific data  
  ✅ Structured output - Consistent JSON format  

  Reporting
  ✅ Responsive HTML email - Beautiful on desktop and mobile  
  ✅ Two-column layout - Content | Commentary side-by-side  
  ✅ Source links - Direct links to original articles  
  ✅ Timestamp - Vietnam timezone (GMT+7)  

  Cost Efficiency
  ✅ Groq for free - 0 cost for expert commentary  
  ✅ Optimized tokens - Only send necessary content to AI  
  ✅ Batch processing - Minimize API calls  

  Monthly cost: $35-40 (or $5 if self-hosting n8n)

  Technical Specifications

  Performance
  Execution time**: 2-3 minutes/run
  Throughput**: 50-100 articles → 15 analyzed articles
  Success rate**: &gt;99% (with retry logic)

  Scalability
  RSS sources**: Easily add more (currently 4)
  Output formats**: Email, Sheets (extendable to Slack, Telegram)
  Languages**: Vietnamese (can adapt prompts for English)

  Error Handling
  RSS fetch: Retry 2x, continue on fail
  AI classification: Skip non-matching articles
  Google Sheets: Rate limit protection
  Email: Fallback to error notification

  Customization Tips

  Change Number of Articles
  AI Agent 2 prompt:
  "Chọn TỐI ĐA 15 bài" → "Chọn TỐI ĐA 10 bài"

  Add RSS Source
  Configure RSS Sources node:
  Add URL to array: "https://newsite.com/rss"

  Switch to Mobile Email Layout
  Disable: "Format Email (Desktop)"
  Enable: "Format Email (Mobile)"

  Change AI Model
  OpenAI nodes: gpt-4o-mini → gpt-3.5-turbo (cheaper)
  Groq node: Can switch to OpenAI for potentially better quality

  Adjust Schedule
  Daily RSS Trigger:
  Hour: 8 → Change to any 0-23
  Or use cron: "0 8,16 * * *" (8 AM and 4 PM)

  Cost Breakdown

  | Service | Monthly Cost | Notes |
  |---------|--------------|-------|
  | OpenAI API | $1-5 | Classification + Summarization |
  | Groq API | $0 | FREE (14,400 req/day limit) |
  | Google Sheets | $0 | Free tier sufficient |
  | Gmail | $0 | Free tier sufficient |
  | n8n Cloud | $20 | Or self-host for $0-5 |
  | Total | $20-25 | Can reduce to $1 with optimization |

  Cost Optimization
  Use Groq for all AI → Save $15-20/month
  Self-host n8n on $5 VPS → Save $20/month
  Result: $5/month (87% cost reduction)

  Limitations & Considerations

  ⚠️ RSS dependency - Relies on RSS feeds staying available  
  ⚠️ Vietnamese domains - Some may be blocked by n8n whitelist  
  ⚠️ AI accuracy - ~90% classification accuracy (can improve with prompt tuning)  
  ⚠️ Rate limits - OpenAI: 3 req/min, Groq: 14,400 req/day  
  ⚠️ Email limits - Gmail: 500/day (not an issue for daily reports)  

  Version History

  v1.0
  Initial release
  4 RSS sources
  OpenAI + Groq AI analysis
  Google Sheets storage
  HTML email reports

  Support & Documentation

  📚 Full documentation: See RSS_Finance_Insurance_Workflow_Guide.md  
  📦 Cluster descriptions: See Cluster_Descriptions.md  
  📊 Workflow overview: See Workflow_Overview.md  

  Author: Nguyễn Thiệu Toàn  
  Contact: jayracroi@gmail.com  
  Website: nguyenthieutoan.com

  Tags
  news-aggregation rss ai-analysis finance insurance openai groq google-sheets email-automation vietnamese

  License
  Personal use. Please contact author for commercial usage rights.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.rssFeedRead","n8n-nodes-base.filter","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.textClassifier","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.splitOut","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.code","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","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatGroq"]

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


name: Automate YouTube Content Strategy with AI, Apify & Google Sheets
author_name: PrideVel
author_username: n8nwizard
categories: []
created_at: 2025-11-14T04:38:46.796Z
updated_at: 2025-11-14T04:38:46.796Z
url: https://n8n.io/workflows/10808
scraped_at: 2025-12-24 13:02:43
description:
  📌 Overview

  This advanced multi-phase n8n workflow automates the complete research, analysis, and ideation pipeline for a YouTube strategist. It scrapes competitor channels, analyzes top-performing titles and thumbnails, identifies niche trends, gathers audience sentiment from comments, and produces data-driven content ideas—automatically writing them into a structured Google Sheets dashboard.

  This system is ideal for:

  YouTube creators
  Agencies
  Content strategists
  Automation engineers
  Anyone who wants to generate YouTube content ideas backed by real data

  🧠 High‑Level Architecture

  The workflow is split into 5 phases, each building on the previous:

  Phase 1 — Niche Outliers (Input: User Form)

  Scrapes 3 high‑quality channels from your niche, extracts their outlier videos, and analyzes why they work.

  Phase 2 — Broad Niche Insights (Weekly)

  Scrapes the top trending content in your broad niche (e.g., "AI", "fitness", "personal finance") and logs weekly insights.

  Phase 3 — Niche Insights (Daily)

  Scrapes the top videos in your specific micro‑niche daily to keep track of content momentum.

  Phase 4 — Comment Analysis

  Analyzes real comments from your channel to understand what your audience likes, dislikes, and wants more of.

  Phase 5 — Content Ideation

  Generates 3 highly‑optimized title + thumbnail concepts using all prior insights.

  Everything is automatically logged into a Google Sheets dashboard.

  🧩 Phase-by-Phase Breakdown

  ⭐ Phase 1 — Niche Outliers (Form Trigger)

  User enters 3 YouTube channel URLs in a form.
  Workflow scrapes each channel using Apify YouTube Scraper.
  Filters for top-performing videos.
  Extracts: title, views, likes, thumbnail, URL.
  AI analyzes:

     Power words in titles (OpenRouter/GPT 4.1-mini)
     Thumbnail attention hooks (OpenAI Vision)
  All insights are appended into the “Niche Outliers” sheet.

  Purpose: Understand what the best creators in your niche are doing.

  🌐 Phase 2 — Broad Niche Insights (Weekly — Sundays @ 5 AM)

  Workflow scrapes the top videos for a broad niche (e.g., “artificial intelligence”).
  Analyzes:

     Title structure
     Power words
     Thumbnail cues
  Writes weekly insights to “Broad Niche Weekly” sheet.

  Purpose: Stay informed about macro‑level trends.

  🎯 Phase 3 — Niche Insights (Daily @ 6 AM)

  Scrapes the top videos in your specific micro‑niche (e.g., “n8n automations”).
  Runs title + thumbnail analysis.
  Appends daily results to “Niche Daily”.
  Results feed directly into Phase 5.

  Purpose: Track daily momentum and trending formats.

  💬 Phase 4 — Comment Analysis (Channel Feedback)

  Scrapes your channel’s latest 5 videos.
  Extracts up to 30 comments from each.
  Aggregates comments.
  AI identifies:

     What viewers love
     What viewers dislike
     What viewers are asking for
  Stores patterns in “Comment Analysis” sheet.

  Purpose: Understand real audience demand.

  💡 Phase 5 — Content Ideation Using AI

  Using insights from all previous phases:

  Top titles
  Power words
  Thumbnail patterns
  Daily niche trends
  Audience comment analysis
  Channel positioning

  The Creative Agent produces:

  3 optimized video titles
  3 matching thumbnail concepts

  These are appended to the “Ideation” sheet.

  A Slack notification is sent when ideation is ready.

  Purpose: Fully automated content idea generation.

  🗂️ Outputs in Google Sheets

  The workflow populates these tabs:

  📌 Niche Outliers (top competitor videos)

  📌 Broad Niche Weekly (weekly trend analysis)

  📌 Niche Daily (daily trend analysis)

  📌 Comment Analysis (audience sentiment)

  📌 Ideation (final titles + thumbnails)

  🔧 What This Workflow Automates

  ✔ Competitor analysis
  ✔ Thumbnail + title breakdowns
  ✔ Daily niche tracking
  ✔ Weekly niche tracking
  ✔ Viewer sentiment analysis
  ✔ Fully AI‑generated content ideas
  ✔ Automatic data logging to Google Sheets
  ✔ Slack notifications

  This is essentially a 24/7 AI YouTube strategist.

  ⚙️ Setup Requirements

  Apify API Key** (used in 5 scraper nodes)
  OpenRouter API Key** (for GPT 4.1-mini intelligence)
  OpenAI API Key** (for thumbnail image analysis)
  Google Sheets OAuth2 Credential**
  Make a copy of the provided sheet template
  Fill Set nodes:

    Phase II: Broad niche (e.g., "AI")
    Phase III: Micro niche (e.g., "n8n automations")
    Phase IV: Your Channel URL
    Phase V: Your Channel Description

  🧪 Testing Guide

  Test the Form Trigger with 3 competitor channel URLs.
  Test both Schedule Triggers (weekly + daily) manually.
  Verify Sheets are receiving rows.
  Run the full pipeline end‑to‑end.
  Confirm Slack notification.

  Everything should chain together smoothly.

  🎉 Final Result

  By the end of this workflow, you have a:

  🧠 Data‑driven YouTube strategy system

  that:

  studies your niche
  finds outliers
  understands your audience
  detects trends
  generates smart content ideas every day

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.set","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleSheets","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.aggregate","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.googleSheets","n8n-nodes-base.aggregate","n8n-nodes-base.slack","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.sort","n8n-nodes-base.filter","n8n-nodes-base.limit","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

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


name: Create & Share AI Videos with Telegram, Gemini & Post to TikTok, Instagram, FB
author_name: Feras Dabour
author_username: ferasdabour
categories: []
created_at: 2025-11-14T18:52:07.437Z
updated_at: 2025-11-14T18:52:07.437Z
url: https://n8n.io/workflows/10850
scraped_at: 2025-12-24 13:02:43
description:
  Video Generation with Telegram Bot and Gemini API – Auto-Post to TikTok, Instagram & Facebook

  This n8n workflow turns your Telegram messenger into a full video content pipeline:
  you send a text or voice idea to a Telegram bot, collaborate with an AI on the script and caption, let Gemini generate the video, and then automatically publish it to TikTok, Instagram and Facebook – all with status tracking and Telegram confirmations.

  What You Need to Get Started

  This workflow connects several external services. You’ll need:

  Telegram Bot API Key**

    Create a bot via Telegram’s BotFather and copy the bot token.
    This is used by the Listen for incoming events and other Telegram nodes.

  OpenAI API Key**

    Required for:

      Speech to Text (OpenAI Whisper) – to transcribe voice notes.
      The OpenAI Chat Model used inside the AI Agent.

  Google Gemini / Vertex (via n8n Gemini Node)**

    Used by the Generate a video node (model: veo-3.0-fast-generate-001) to create the video.

  Google Drive**

    The generated video is temporarily stored in a Google Drive folder via Upload video and later downloaded again for uploading to  Blotato.

  Blotato API Key*

    Social media publishing layer:

      Uploads the video as media.
      Creates posts for TikTok, Instagram and Facebook.
      Exposes a status endpoint the workflow uses for polling.

  Google Sheets Access** (optional but included)

    Used by Save Prompt & Post-Text to log your prompts and captions.

  Once these credentials are configured in n8n, the workflow runs end-to-end from Telegram idea to multi-platform publishing.

  How the Workflow Operates – Step by Step

  1. Input & Initial Processing (Telegram + Voice Handling)

  This phase listens to your messages and normalizes them into a single text input for the AI.

  | Node Name                      | Role in Workflow                                                                                        |
  | ------------------------------ | ------------------------------------------------------------------------------------------------------- |
  | Listen for incoming events | Telegram Trigger node that starts the workflow whenever your bot receives a message (text or voice).    |
  | Voice or Text              | Set node that structures the incoming payload and prepares a unified text field for downstream nodes. |
  | A Voice?                   | IF node that checks whether the incoming message is a voice note or plain text.                         |
  | Get Voice File             | If voice is detected, this Telegram node downloads the audio file from Telegram.                        |
  | Speech to Text             | Uses OpenAI Whisper to convert the voice note into a text transcript.                                   |

  If you send text**:
    The workflow skips the voice download/transcription and goes directly to the AI agent with your original text.

  If you send a voice note**:
    The workflow downloads the file, runs it through Whisper in Speech to Text, and passes the resulting transcript onward.

  The output of this stage is always a clean text string representing your idea.

  2. AI Core & Approval Loop (Script + Caption via AI)

  Here the AI designs the video prompt (for Gemini) and the social media caption (for all platforms), then iterates with you until you approve.

  | Node Name                              | Role in Workflow                                                                                                                                                     |
  | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | AI Agent                           | Central logic agent. Takes your idea text and applies the system prompt to create a video prompt and social media caption. Handles revisions based on your feedback. |
  | OpenAI Chat Model                  | The LLM backing the agent (OpenAI Chat model).                                                                                                                       |
  | Window Buffer Memory               | Memory buffer that stores recent turns, so the agent can keep context across your “make it shorter / more fun / more technical” requests.                            |
  | Send questions or proposal to user | Telegram node that sends the AI’s suggested prompt + caption back to you for review.                                                                                 |
  | Approved from user?                | IF node that checks whether the agent’s output is the “approved” JSON (meaning you said “ok” / “approved”) or just a normal suggestion.                              |

  Video Prompt Assistant System Prompt (Internal Instructions)

  The AI Agent is configured with a system message like:

  &gt; You are a video prompt assistant for Telegram.
  &gt;
  &gt; 1. Analyze the user’s message and create a video prompt.
  &gt; 2. Create relevant social media text with hashtags.
  &gt; 3. Present both to the user and ask for feedback.
  &gt; 4. If the user requests changes, refine and present again.
  &gt; 5. Only when the user says “approved” or “ok”, output a final JSON:
  &gt;    { "videoPrompt": "...", "socialMediaText": "..." }

  Key behavior:

  Before approval**:
    The agent always responds with human-readable suggestions (prompt + caption) and a follow-up question asking what to change.
  After approval**:
    The agent returns only JSON (no Markdown, no explanation) with:

    videoPrompt – to be sent to Gemini.
    socialMediaText – to be used as a caption on all platforms.

  JSON Parsing

  | Node Name           | Role in Workflow                                                                                                                                                                                           |
  | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Parse AI Output | Code node that extracts videoPrompt and socialMediaText from the agent’s output. It is tolerant of different formats (e.g. JSON wrapped in markdown) and throws errors if required fields are missing. |

  If the AI output is approved JSON, this node returns two clean fields:

  videoPrompt
  socialMediaText

  These are used in all subsequent steps.

  3. User Feedback & Logging

  Right after parsing the final JSON, the workflow informs you and logs the content.

  | Node Name                        | Role in Workflow                                                                                                                                              |
  | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Inform user about processing | Telegram node that tells you: “Okay. Your video is being prepared now. I’ll let you know as soon as it’s online.”                                           |
  | Save Prompt & Post-Text      | Google Sheets node that appends a new row containing the videoPrompt and socialMediaText to a sheet (e.g., for tracking which prompts/captions you used). |

  This gives you both visibility (confirmation message) and historical tracking of your content ideas.

  4. Video Generation with Gemini

  Now the actual video is created using Google Gemini’s video model.

  | Node Name            | Role in Workflow                                                                                                                 |
  | -------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
  | Generate a video | Gemini node (model models/veo-3.0-fast-generate-001) that uses videoPrompt to generate a vertical video (aspect ratio 9:16). |

  The videoPrompt from the AI agent is passed directly into this node.
  The resulting binary output is a generated short-form video suitable for TikTok, Reels and Stories.

  5. Staging the Video in Google Drive

  To make the video accessible for Blotato, the workflow uses Google Drive as a simple file staging area.

  | Node Name                      | Role in Workflow                                                                                                                                                    |
  | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Upload video               | Uploads the generated video binary to a specific folder in Google Drive (n8n_videos). The file name is taken from the binary metadata or defaults to video.mp4. |
  | Download Video from Drive1 | Immediately downloads the uploaded video by file ID, this time as binary data suitable for passing into  [Blotato].                                                    |

  Using Drive ensures that the file is properly hosted and addressable when uploading to  [Blotato]’s media API.

  6. Uploading to  [Blotato]and Creating Posts

  First, the video is sent to  [Blotato] as a media asset. Then three separate posts are created for TikTok, Instagram, and Facebook.

  Media Upload

  | Node Name         | Role in Workflow                                                                                                          |
  | ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
  | Upload media1 |  [Blotato] media node. Uploads the binary video as a media asset and returns a public url used by all post creation nodes. |

  Platform-Specific Post Creation

  From the uploaded media, the workflow fans out into three branches:

  | Node Name                | Platform      | Role in Workflow                                                                                                                              |
  | ------------------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
  | Create TikTok post   | TikTok        | Creates a TikTok post using the media URL and socialMediaText as the caption. Also sets the flag that the video is AI-generated.            |
  | Create post1         | Instagram     | Creates an Instagram (or related) post linked to the  [Blotato] account (e.g., aimaginate_xx), using the same socialMediaText and media URL. |
  | Create Facebook post | Facebook Page | Creates a Facebook post on your specified page, again using the shared caption and media URL.                                                 |

  At this point, all three platforms have an initial “post submission” created via  [Blotato].
  Next, the workflow tracks their publishing status.

  7. Status Monitoring & Retry Loops

  Each platform has its own mini-loop that polls  [Blotato]) until the post is either published or failed.

  TikTok Status Loop

  | Node Name                        | Role in Workflow                                                                                                                     |
  | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
  | Wait                         | Initial 5-second (or configured) pause after creating the TikTok post.                                                               |
  | Check Post Status            |  Blotato “get” operation that fetches the current status (published, in-progress, etc.) of the TikTok post by postSubmissionId. |
  | Published to TikTok?         | IF node that checks if status === "published".                                                                                     |
  | Confirm publishing to Tiktok | Telegram node that notifies you when the TikTok post is live (often including a link or at least a confirmation text).               |
  | In Progress?                 | IF node that checks if status === "in-progress".                                                                                   |
  | Give Blotat other 5s :)      | Wait node that sleeps a bit before checking again. Feeds back into Published to TikTok? to create a polling loop.                |
  | Send TikTok Error Message    | Telegram node that informs you if the status is neither published nor in progress (i.e., a failure).                                 |

  Instagram Status Loop

  | Node Name                           | Role in Workflow                                                                     |
  | ----------------------------------- | ------------------------------------------------------------------------------------ |
  | Wait1                           | Wait node after Create post1, giving Blotato time to process the Instagram post. |
  | Get post1                       | Blotato “get” operation to read status of the Instagram post.                        |
  | Published to Instagram?         | IF node checking if status === "published".                                        |
  | Confirm publishing to Instagram | Telegram message with confirmation that your Instagram post is live.                 |
  | In Progress?1                   | IF node checking if status === "in-progress".                                      |
  | Give Blotat more time           | Wait node that loops back to Published to Instagram? for another status check.   |
  | Send Instagram Error Message    | Telegram notification if the Instagram post fails.                                   |

  Facebook Status Loop

  | Node Name                          | Role in Workflow                                                                 |
  | ---------------------------------- | -------------------------------------------------------------------------------- |
  | Wait2                          | Wait node after Create Facebook post (longer pause, e.g. 30 seconds).        |
  | Get Facebook post              | Blotato “get” operation to fetch Facebook post status.                           |
  | Published to Facebook?         | IF node testing for status === "published".                                    |
  | Confirm publishing to Facebook | Telegram notification that the Facebook post is online.                          |
  | In Progress?2                  | IF node checking if the Facebook post is still in progress.                      |
  | Give Blotat other 5s :)2       | Wait node that loops back into Published to Facebook? for repeated checks.   |
  | Send Facebook Error Message    | Telegram notification if the Facebook post fails or ends in an unexpected state. |

  This structure ensures that each platform is monitored independently, with clear success or error messages delivered right into your Telegram chat.

  🛠️ Personalizing Your Video Content Bot

  The real power of this workflow is how easy it is to adapt it to your own style, platforms, and preferences.

  1. Tweak the AI Prompt & Behavior

  Where:* Inside the *AI Agent* node, in the *System Message (systemMessage) of the options.
  What you can change:**

    The tone (funny, educational, corporate, storytelling, etc.).
    The level of detail in the video prompt (camera moves, style, characters, environment).
    The caption structure (hook, value, CTA, hashtag strategy).
    Whether the agent should produce multiple variants or just one.

  You can also extend it, e.g.:

  Ask for multi-slide carousel prompts instead of a single video.
  Force language (e.g., always English, always German).
  Add platform-specific hints (e.g., stronger hooks for TikTok).

  2. Change Video Model or Aspect Ratio

  Where:* *Generate a video** node.
  Options:**

    Swap the model (within the Gemini node) if you want higher quality or different behavior.
    Adjust the aspectRatio from 9:16 to 16:9 or 1:1 depending on your target platform.

  3. Modify Which Platforms You Post To

  Where:** Blotato nodes:

    Create TikTok post
    Create post1 (Instagram)
    Create Facebook post

  You can:

  Disable or delete branches for platforms you don’t use.
  Add new accounts or platforms supported by Blotato.
  Use different captions per platform (e.g. shorter for TikTok, more detailed for Facebook) by adding extra AI formatting steps.

  4. Adjust Wait Times and Retry Logic

  Where:** Wait and IF nodes:

    Wait, Wait1, Wait2, Give Blotat other 5s :), Give Blotat more time, Give Blotat other 5s :)2
  What:**

    Increase or decrease retry intervals.
    Limit the number of loops (e.g. by adding a counter) if needed.
    Customize error messages in the Telegram nodes.

  5. Extend Logging & Analytics

  Where:* *Save Prompt & Post-Text** (Google Sheets).
  Ideas:**

    Add more columns (timestamp, platform flags, target audience, campaign name).
    Write back publish status and final URLs after success.
    Use this sheet as a content inventory or analytics base.

  In short, this workflow gives you a full AI-powered video pipeline:

  Idea (text/voice) via Telegram
  Drafting & approval of video prompt + caption via OpenAI agent
  Video generation with Gemini (veo)
  Staging in Google Drive
  Auto-posting and status monitoring across TikTok, Instagram & Facebook via Blotato
  All communication and confirmations returned directly to Telegram

  And everything is fully editable so you can adapt it precisely to your personal brand and content strategy.

nodes_used:
  ["@n8n/n8n-nodes-langchain.googleGemini","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.telegramTrigger","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.telegram","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.memoryBufferWindow","n8n-nodes-base.googleDrive","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.wait","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.if","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","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","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 9580 characters]


name: Auto Generate Descriptive Node Names with AI for Workflow Readability
author_name: Anan
author_username: mohamed3nan
categories: []
created_at: 2025-11-16T15:58:08.323Z
updated_at: 2025-11-16T15:58:08.323Z
url: https://n8n.io/workflows/10889
scraped_at: 2025-12-24 13:02:41
description:
  ⚡Auto Rename n8n Workflow Nodes with AI✨
  This workflow uses AI to automatically generate clear and descriptive names for every node in your n8n workflows.
  It analyzes each node's type, parameters, and connections to create meaningful names, making your workflows instantly readable.

  Who is it for?
  This workflow is for n8n users who manage complex workflows with dozens of nodes. If you've ever:
  Built workflows full of generic names like HTTP Request 2 or Edit Fields 1
  Struggled to understand your own work after a few weeks
  Copied workflows from others with unclear node names
  Spent hours manually renaming nodes one by one

  ...then this workflow will save you significant time and effort.

  Requirements
  n8n API Credentials**: Must be configured to allow listing and updating workflows
  AI Provider Credentials**: An API key for your preferred AI provider (OpenRouter is used currently)

  How it works
  Trigger: Launch via form (select from dropdown) or manual trigger (quick testing with pre-selected workflow)
  Fetch: Retrieve the target workflow's JSON and extract nodes and connections
  Generate: Send the workflow JSON to the AI, which creates a unique, descriptive name for every node
  Validate: Verify the AI mapping covers all original node names
  Apply: If valid, update all node names, parameter references, and connections throughout the workflow
  Save: Save/Update the workflow with renamed nodes and provide links to both new and previous versions


  If validation fails (e.g., AI missed nodes), the workflow stops with an error. You can modify the error handling to retry or loop back to the AI node.

  Setup
  Connect n8n API credentials
     Open any n8n node in the workflow and make sure your n8n API credentials is connected

  Configure AI provider credentials
     Open the "OpenRouter" node (or replace with your preferred AI)
     Add your API credentials
     Adjust the model if needed (current: openai/gpt-5.1-codex-mini)

  Test the workflow
     Use Manual Trigger for quick testing with a pre-selected workflow
     Use Form Trigger for a user-friendly interface with workflow selection

  Important notice
  If you're renaming a currently opened workflow, you must reload the page after execution to see the latest version, n8n doesn't automatically refresh the canvas when workflow versions are updated via API.

  Need help?
  If you're facing any issues using this workflow, join the community discussion on the n8n forum.

nodes_used:
  ["n8n-nodes-base.n8n","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.chainLlm","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.form","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.n8n","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.stopAndError","n8n-nodes-base.n8n","n8n-nodes-base.aggregate","n8n-nodes-base.form","@n8n/n8n-nodes-langchain.lmChatOpenRouter","n8n-nodes-base.n8n","n8n-nodes-base.formTrigger","n8n-nodes-base.manualTrigger","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 9580 characters]


