# templates

name: Production AI Playbook: Deterministic Steps & AI Steps (4 of 5)
author_name: Elvis Sarvia
author_username: elvissaravia
categories: []
created_at: 2026-03-04T00:18:01.236Z
updated_at: 2026-03-04T00:18:01.236Z
url: https://n8n.io/workflows/13853
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  Protect your workflows with n8n's native Guardrails node, placed before and after your AI step. The input guardrails catch jailbreak attempts and PII before they reach your model. The output guardrails scan AI responses for NSFW content and secret keys before they reach your users.

  What you'll do
  Send clean input and watch it pass through both input and output guardrails successfully.
  Send a prompt injection attempt and see the input guardrails block it with jailbreak detection.
  Send a message containing PII and see it get flagged before reaching the AI.
  See how flagged outputs fall back to a safe templated response.

  What you'll learn
  How to use n8n's Guardrails node for input and output validation
  How jailbreak detection catches prompt injection attempts using an LLM-based check
  How PII detection identifies personal data (SSNs, credit card numbers, emails, and more)
  How to build fallback paths that return safe responses when guardrails trigger

  Why it matters
  Guardrails are the seatbelts of your AI workflow. You hope you don't need them, but when a user sends a prompt injection attempt or the AI leaks sensitive data, you'll be glad they're there. This template uses n8n's dedicated Guardrails node to make safety checks a first-class part of your workflow without writing custom validation code.

  This template is a learning companion to the Production AI Playbook, a series that explores strategies, shares best practices, and provides practical examples for building reliable AI systems in n8n.  

  https://go.n8n.io/PAP-D&A-Blog

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.guardrails","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.guardrails","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["AI/ML","Security"],"complexity":"medium","use_cases":["input validation","jailbreak detection","PII filtering","NSFW content filtering","secret key detection"],"estimated_setup_minutes":15,"required_services":["AI/ML Models","webhook services"],"key_features":["Guardrails node integration","dual-layer protection","prompt injection defense","PII scanning","content safety checks"],"target_audience":["developers","security engineers","AI practitioners"]}


name: Log Telegram receipt images to Excel 365 using Tesseract OCR and GPT-4.1-mini
author_name: Ramdoni
author_username: ramdoni
categories: []
created_at: 2026-03-05T16:02:48.782Z
updated_at: 2026-03-05T16:02:48.782Z
url: https://n8n.io/workflows/13897
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  📸💰 Log receipt transactions from Telegram images to Excel using OCR and AI

  OCR + AI + Duplicate Protection (n8n Workflow)

  Overview

  This workflow automatically converts receipt images or payment proof sent via Telegram into structured financial records stored in Excel 365.

  Core flow:
  Take Photo → OCR → AI Structuring → Validation → Duplicate Check → Append to Excel
  The system is designed to reduce manual data entry errors and improve financial visibility by turning unstructured receipt images into reliable financial records.

  ⸻

  How it works
  This workflow captures receipt images sent to a Telegram bot and converts them into structured financial records in Excel.

  When a user sends an image, the workflow downloads the file and extracts the text using OCR. The extracted text is then analyzed by an AI model (OpenAI or Gemini) to identify key transaction details such as date, amount, merchant, and transaction type.

  The workflow validates the extracted data and generates a unique duplicate key. It then checks Excel to ensure the transaction has not already been recorded. If no duplicate is found, the transaction is appended to the Excel sheet.

  The user receives a confirmation message in Telegram indicating whether the transaction was successfully recorded or rejected due to missing data or duplication.

  Workflow Nodes

  The workflow contains the following nodes:
  Telegram Trigger
  Edit Fields (extract chat_id and image_id)
  Condition (validate image exists)
  Telegram Get File
  Tesseract OCR
  AI Agent (ChatGPT / Gemini)
  Edit Field (JSON Output Parsing)
  Excel 365 – Get Configuration
  Edit Field – Normalize & Generate duplicate_key
  Condition – Validate required fields
  Excel 365 – Lookup duplicate_key
  Condition – Duplicate Check
  Excel 365 – Append Transaction
  Telegram – Send Confirmation Message

  🧠 What This Workflow Does

  This workflow automatically:
  Captures receipt images from Telegram
  Extracts text using OCR
  Converts OCR text into structured transaction data using AI
  Validates required financial fields
  Prevents duplicate transaction entries
  Saves valid records into Excel
  Sends confirmation messages to Telegram

  Setup steps
  Create a Telegram bot using @BotFather and copy the Bot Token.
  Add Telegram credentials in n8n using the Bot Token.
  Prepare an Excel file in OneDrive or SharePoint with a TRANSACTIONS sheet.
  Configure Microsoft Excel credentials in n8n.
  Add either OpenAI or Google Gemini credentials for the AI parsing step.
  If running self-hosted n8n, ensure Tesseract OCR is installed.
  Activate the workflow and send a receipt image to the Telegram bot to test.
  🎯 Key Benefits
  	•	Reduce financial recording errors
  	•	Eliminate repetitive manual data entry
  	•	Improve cashflow visibility
  	•	Simple photo-based financial recording
  	•	Scalable foundation for AI-powered financial automation

  🚀 Use Cases

  This workflow is useful for:
  	•	Small business owners
  	•	Online sellers
  	•	Freelancers
  	•	Finance administrators
  	•	Personal expense tracking

  📌 Notes
  	•	Duplicate detection is based on a composite transaction key
  	•	OCR accuracy depends on image quality
  	•	AI parsing improves recognition compared to OCR-only approaches

  🧱 Requirements

  To run this workflow you need:
  	•	n8n (Cloud or Self-Hosted)
  	•	Telegram Bot Token
  	•	Microsoft Excel 365 Account
  	•	OpenAI API Key or Google Gemini API Key
  	•	Tesseract OCR (for self-hosted installations)

  🏁 Result

  After setup, users can simply send receipt photos to Telegram and the workflow will automatically convert them into structured financial records stored in Excel.

  No manual bookkeeping required.

  Built for automation lovers, small businesses, and teams who want simple but powerful financial tracking using n8n.

nodes_used:
  ["n8n-nodes-base.telegramTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.microsoftExcel","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.stickyNote","n8n-nodes-tesseractjs.tesseractNode","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.microsoftExcel","n8n-nodes-base.microsoftExcel","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["Finance","Automation","Documentation","AI/ML","Data Processing"],"complexity":"medium","use_cases":[],"estimated_setup_minutes":30,"required_services":["Telegram","Microsoft Excel 365","AI/ML","Tesseract"],"key_features":["Receipt Image Processing","OCR Text Recognition","AI Structuring","Duplicate Detection","Excel 365 Integration"],"target_audience":["Accountants","Finance Managers","Administrative Staff"]}


name: Auto-create Instagram carousel posts from Canva with OpenAI and Blotato
author_name: Automate With Marc
author_username: marconi
categories: []
created_at: 2026-03-06T03:16:43.877Z
updated_at: 2026-03-06T03:16:43.877Z
url: https://n8n.io/workflows/13904
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:22
description:
  Auto-Create Instagram Carousel Posts from Canva (Webhook → AI Caption → Instagram)

  Automatically turn Canva carousel exports into a fully published Instagram post with AI-generated captions.
  This workflow receives a webhook payload containing PNG slides (for example from Claude Cowork or a Canva automation), uploads the images, generates an optimized Instagram caption using AI, and publishes the carousel post via Blotato.
  It removes the manual work of downloading slides, writing captions, and posting to Instagram.

  What this template does
  When triggered by a webhook, this workflow:
  Receives a payload containing carousel slide images
  Splits the slides into individual items
  Uploads each image to a media host
  Aggregates all images into a carousel
  Uses AI to generate an Instagram caption with hashtags
  Publishes the post to Instagram via Blotato
  This allows you to go from Canva design → Instagram post automatically.

  Example use cases
  This workflow is useful for:
  Social media managers automating Instagram posting
  Content creators producing carousel posts at scale
  Agencies generating client posts automatically
  AI-assisted content pipelines
  Marketing automation systems
  Example automation pipeline:
  Claude → Canva → n8n → Instagram

  Workflow overview
  Webhook → Split Slides → Upload Media → Aggregate Images → Generate Caption → Publish Instagram Post
  Node breakdown
  Webhook
  Receives a POST request containing the carousel slide data.
  The payload includes slide metadata and PNG URLs generated by Canva.
  Split Out Slides - Splits the slides array so each slide is processed individually.
  This allows each PNG image to be uploaded and processed as its own item.
  Upload Media (Blotato) - Uploads each slide image to the media host used by the social publishing platform.
  Aggregate collects all uploaded image URLs into a single list.
  Message a Model (AI Caption Generator)
  Telegram Node for Approval
  Create Post (Blotato) - Creates and publishes the Instagram carousel post

  Requirements
  Before using this template you must configure the following:
  OpenAI API credential
  Blotato API credential
  Instagram account connected to Blotato
  A system that sends the webhook (Claude, Canva, or another automation)

  Setup instructions
  Import the workflow into n8n
  Configure credentials:
  OpenAI
  Blotato
  Copy the webhook URL from the Webhook node
  Configure your upstream tool (Claude / Canva / automation) to send slide data to this webhook
  Test the workflow by sending a sample payload
  Activate the workflow
  Once active, new carousel payloads will automatically be turned into Instagram posts

  Customization ideas
  You can easily extend this workflow by:
  Adding Telegram approval before posting
  Posting to TikTok, LinkedIn, or Facebook
  Storing posts in Google Sheets or Notion
  Generating captions in different tones or languages
  Adding AI analysis of the slides to generate smarter captions

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.splitOut","@blotato/n8n-nodes-blotato.blotato","@blotato/n8n-nodes-blotato.blotato","n8n-nodes-base.aggregate","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.noOp","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["Marketing","Social Media Management","AI/ML"],"complexity":"medium","use_cases":["Generate AI captions for carousels","Automate Instagram posting","Convert Canva exports to posts"],"estimated_setup_minutes":30,"required_services":["Instagram","Canva","OpenAI","Cloutful"],"key_features":["AI-powered caption generation","Image upload from exports","Multi-slide carousel creation","Webhook-triggered automation","Integration with 3rd party tools"],"target_audience":["marketers","social media managers","content creators"]}


name: Turn YouTube meeting recordings into Notion notes with AI Agent, deAPI & Slack
author_name: deAPI Team
author_username: deapi
categories: []
created_at: 2026-03-06T13:51:25.786Z
updated_at: 2026-03-06T13:51:25.786Z
url: https://n8n.io/workflows/13919
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:21
description:
  Who is this for?

  Teams who upload meeting recordings to YouTube (unlisted or private) and want automated notes
  Project managers who need to track action items across recurring meetings
  Remote teams who want searchable, structured meeting notes in Notion
  Content teams repurposing recorded calls into documentation

  What problem does this solve?

  Meeting notes are either rushed, incomplete, or never written at all. This workflow removes that bottleneck — upload a recording to YouTube and get a structured Notion page with summary, action items, decisions, and key topics, plus a Slack notification, all within minutes.

  What this workflow does

  Monitors a YouTube channel via RSS for new video uploads
  Transcribes the video using deAPI (Whisper Large V3) directly from the YouTube URL — no file download or size limits
  AI Agent analyzes the transcript and extracts a title, summary, action items, decisions, and key topics
  Creates a structured meeting notes page in a Notion database
  Posts the summary and action items to a Slack channel

  Setup

  Requirements

  n8n instance** (self-hosted or n8n Cloud)
  deAPI account for video transcription
  Anthropic account for the AI Agent
  Notion workspace with a meeting notes database
  Slack workspace

  Installing the deAPI Node

  n8n Cloud: Go to **Settings → Community Nodes and toggle the "Verified Community Nodes" option
  Self-hosted: Go to **Settings → Community Nodes and install n8n-nodes-deapi

  Configuration

  Add your deAPI credentials (API key + webhook secret)
  Add your Anthropic credentials (API key)
  Set the Feed URL in the RSS trigger to your YouTube channel's RSS feed: https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID
  Add your Notion credentials and set the Database ID in the Notion node
  Add your Slack credentials and set the Channel in the Slack node
  Ensure your n8n instance is on HTTPS

  How to customize this workflow

  Change the AI model**: Swap Anthropic for OpenAI, Google Gemini, or any other LLM provider
  Adjust the note structure**: Modify the AI Agent system message to extract different fields (attendees, follow-up date, sentiment, etc.)
  Change the trigger**: Replace the RSS trigger with a Google Drive trigger or form upload for non-YouTube recordings
  Change the output destination**: Replace Notion with Google Docs, Confluence, or Airtable
  Change the notification**: Replace Slack with Microsoft Teams, email, or Discord
  Monitor multiple channels**: Duplicate the RSS trigger or use multiple feed URLs to track several YouTube channels

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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedReadTrigger","n8n-nodes-deapi.deapi","n8n-nodes-base.extractFromFile","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.notion","n8n-nodes-base.slack"]

workflow_json_compressed:
  [encoded data, 4848 characters]

metadata_json:
  {"categories":["Productivity","Communication","Data Processing"],"complexity":"medium","use_cases":["Automate meeting notes from YouTube","Track action items in Notion","Convert video content to structured text","Share summaries via Slack"],"estimated_setup_minutes":5,"required_services":["YouTube","Notion","Slack","Anthropic","RSS","deAPI"],"key_features":["AI-powered meeting transcription and summarization","Action item extraction and tagging","Seamless integration across video, knowledge base, and team comms","Structured data output for documentation workflows"],"target_audience":["product managers","remote teams","content teams"]}


name: OpenClaw Clone 🦞: Expandable Personal Telegram AI Agent Template
author_name: Davide Boizza
author_username: n3witalia
categories: []
created_at: 2026-03-11T19:40:02.657Z
updated_at: 2026-03-11T19:40:02.657Z
url: https://n8n.io/workflows/14008
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:21
description:
  This workflow implements an advanced AI automation agent (OpenClaw Agent) that interacts with users through Telegram and integrates multiple AI models, external tools, and cloud services to automate complex tasks.

  I've described my basic idea in this video.

  VERY IMPORTANT:
  By adapting the system prompt, inserting subworkflows or mcp servers and adjusting with webhooks many of the workflows I have developed on this page it is possible to potentially extend the template infinitely.


  The agent can autonomously decide which tools to use to complete the request. It has access to multiple integrations, including:

  Gmail (read, send, reply, draft emails)
  Google Calendar (create, delete, check availability)
  Google Drive, Docs, Sheets, and Slides
  Web search and web scraping tools
  RAG (Retrieval-Augmented Generation) using a vector database Here how set up
  Image and video analysis tools
  Mathematical calculator tools
  Custom sub-workflows and MCP integrations

  The system also includes persistent chat memory stored in PostgreSQL, allowing the AI to remember previous interactions and maintain conversation context.

  Finally, the workflow generates a response and sends it back to the user via Telegram. If the input was voice-based, the response can also be converted into audio and returned as a voice message.

  An escalation mechanism allows the system to transfer the conversation to a human operator when needed.

  Key Advantages

  1. ✅ Multimodal Interaction

  The workflow supports text, voice, and image inputs, allowing users to interact with the system naturally.

  2. ✅ AI-Powered Automation

  The integrated AI agent can autonomously decide which tools to use to solve tasks, reducing manual intervention and enabling intelligent automation.

  3.✅  Deep Integration with Google Workspace

  The workflow can manage emails, documents, spreadsheets, presentations, and calendar events directly through AI commands.

  4. ✅ Retrieval-Augmented Knowledge (RAG)

  The system can access external knowledge sources through a vector database, improving response accuracy and enabling knowledge-based answers.

  5. ✅ Persistent Memory

  Conversation history is stored in PostgreSQL, allowing the agent to maintain context and provide more relevant responses over time.

  6. ✅ Web Intelligence

  Built-in web search and scraping capabilities allow the agent to gather real-time information from the internet.

  7. ✅ Voice Response Capability

  The system can generate audio responses, creating a more natural conversational experience.

  8. ✅ Modular and Scalable Architecture

  The workflow is highly modular, allowing new tools, agents, and services to be added easily.

  9. ✅ Human Escalation

  When automation is not sufficient, the system can escalate the conversation to a human operator.

  10. ✅ Fully Automated Digital Assistant

  Overall, the workflow acts as a fully autonomous AI assistant capable of performing complex operational tasks across multiple platforms.

  How it works

  This workflow is a comprehensive Telegram-based AI orchestrator that simulates an OpenClaw-style multi-agent architecture. When a user sends a message to the Telegram bot, the workflow:

  Receives and authorizes the message through a Telegram trigger, checking if the user ID matches an authorized user (configured in the Code node)

  Routes different content types using a Switch node that detects whether the incoming message contains text, voice, or images:
     Text messages: Directly passed to the orchestrator
     Voice messages: Downloaded and transcribed using OpenAI's audio transcription
     Images: Downloaded, uploaded to an FTP server, and transformed into a URL for processing

  Feeds the processed input (text, transcribed voice, or image URL with caption) into the "OpenClaw Agents" node - an AI agent configured with Gemini as the language model and Postgres for chat memory

  Orchestrates specialized sub-agents through the main AI agent, which can delegate tasks to multiple tools:
     Research and web search (Perplexity AI)
     Web scraping (ScrapeGraphAI)
     Google services (Gmail, Drive, Docs, Sheets, Slides, Calendar)
     RAG (Qdrant vector store with Cohere reranker)
     Image/Video generation (via sub-workflow)
     Calculator
     Telegram communication tools

  Handles response delivery based on the original message type:
     If the original message was voice, the workflow generates an audio response using OpenAI TTS and sends it back as audio
     Otherwise, sends a text response via Telegram

  Includes escalation capabilities through a human-in-the-loop tool for situations requiring human intervention

  Set up steps

  Configure Telegram Bot
     Create a Telegram bot via BotFather to get a bot token
     Set up Telegram credentials in n8n
     Replace XXX in the Code node with your authorized Telegram user ID

  Set up API Keys and Credentials
     OpenAI: API key for audio transcription and text-to-speech
     Google Gemini: API key for the main language model
     Google Cloud: OAuth2 credentials for all Google services (Gmail, Drive, Calendar, Docs, Sheets, Slides)
     Perplexity AI: API key for research and web search
     ScrapeGraphAI: API key for web scraping
     Cohere: API key for reranker functionality
     PostgreSQL: Database connection for chat memory

  Configure External Services
     Qdrant: Set up vector database for RAG functionality
     FTP Server: Configure FTP credentials and path (replace /XXX/ in Upload image node with actual path and domain in Set Image Url node)

  Configure Webhooks and Endpoints
     Set the Telegram webhook URL to point to your n8n instance
     The workflow includes multiple MCP endpoints that need proper configuration

  Review and Adjust Parameters
     Check all nodes with placeholder values (marked with XXX)
     Verify language settings (Italian is set for transcription)
     Review the system prompt in the OpenClaw Agents node and customize if needed
     Ensure all tool descriptions match your use case

  Test and Activate
     Run the workflow in inactive mode first to test with sample inputs
     Check that all connections between nodes are correct
     Activate the workflow when everything is verified

  👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n.

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

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.telegramTrigger","n8n-nodes-base.telegram","n8n-nodes-base.set","n8n-nodes-base.switch","n8n-nodes-base.telegram","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.telegram","n8n-nodes-base.ftp","n8n-nodes-base.set","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.lmChatGoogleGemini","@n8n/n8n-nodes-langchain.memoryPostgresChat","n8n-nodes-base.webhook","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","@n8n/n8n-nodes-langchain.mcpTrigger","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleCalendarTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDriveTool","n8n-nodes-base.googleDocsTool","n8n-nodes-base.googleDocsTool","n8n-nodes-base.googleDocsTool","@n8n/n8n-nodes-langchain.mcpTrigger","@n8n/n8n-nodes-langchain.mcpTrigger","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSheetsTool","n8n-nodes-base.googleSlidesTool","@n8n/n8n-nodes-langchain.mcpTrigger","n8n-nodes-base.googleSlidesTool","n8n-nodes-base.googleSlidesTool","n8n-nodes-base.googleSlidesTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","n8n-nodes-base.gmailTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.perplexityTool","n8n-nodes-scrapegraphai.scrapegraphAiTool","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsOpenAi","@n8n/n8n-nodes-langchain.rerankerCohere","@n8n/n8n-nodes-langchain.toolWorkflow","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.toolWorkflow","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.toolCalculator","n8n-nodes-base.telegramTool","n8n-nodes-base.telegramHitlTool","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 18300 characters]

metadata_json:
  {"categories":["AI/ML","Communication","Automation"],"complexity":"medium","use_cases":["chatbot automation","personal agent deployment","task orchestration","integrated messaging service","ai driven workflow"],"estimated_setup_minutes":45,"required_services":["telegram","openai","google calendar","google drive","mcp server","spreadsheet database"],"key_features":["expandable agent structure","subworkflow integration","mcp client connectivity","multi-model ai support","webhook trigger support"],"target_audience":["developers","automation enthusiasts","ai integrators"]}


name: Analyze competitor Instagram engagement with Bright Data and GPT-5.5
author_name: Yaron Been
author_username: yaron-nofluff
categories: []
created_at: 2026-03-12T14:13:34.579Z
updated_at: 2026-03-12T14:13:34.579Z
url: https://n8n.io/workflows/14014
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  Analyze competitor Instagram engagement by scraping profiles with Bright Data and scoring them with GPT-5.5.

  This workflow reads competitor Instagram URLs from a Google Sheet, scrapes their profile data using the Bright Data Instagram Profiles dataset, validates the API response, then sends the data to GPT-5.5 for engagement scoring. Each competitor is scored on follower growth, engagement rate quality, content consistency, and audience authenticity (0-25 each, total 0-100). High-scoring competitors trigger email alerts.

  How it works:
  Schedule trigger runs the workflow daily.
  Reads competitor URLs from the 'competitor_accounts' sheet.
  Sends each URL to Bright Data's Instagram Profiles API.
  Validates the API response (handles async/error cases).
  GPT-5.5 analyzes profile metrics and scores engagement quality.
  Parses the structured JSON response.
  Filters by AI confidence (&gt;= 0.7 threshold).
  Routes high scorers (engagement_score &gt;= 75) to 'top_performers' with Gmail alert.
  Routes normal results to 'engagement_analysis'.
  Low confidence results go to 'low_confidence_engagement' for review.

  Setup:
  Create a Google Sheet with a 'competitor_accounts' tab containing columns: competitor_name, url, our_industry.
  Add output tabs: engagement_analysis, top_performers, low_confidence_engagement.
  Configure all credentials (Bright Data API, OpenAI, Google Sheets, Gmail).

  Requirements:
  Bright Data API account (~$0.01-0.03 per profile scrape).
  OpenAI API account (GPT-5.5 costs ~$0.003-0.008 per call).
  Google Sheets OAuth2 credentials.
  Gmail OAuth2 credentials.

  Notes:
  Add competitors one per row with their full Instagram profile URL.
  The engagement_score threshold of 75 can be adjusted in the IF node.
  Low confidence results may indicate incomplete profile data from Bright Data.

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.gmail","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","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, 6532 characters]

metadata_json:
  {"categories":["Marketing","Data Processing"],"complexity":"medium","use_cases":["scrape competitor profiles","analyze social engagement","score content quality","compare audience authenticity"],"estimated_setup_minutes":15,"required_services":["Google Sheets","Bright Data","GPT-5.5","Instagram"],"key_features":["Instagram profile scraping","AI engagement scoring","batching validation","competitor comparison","engagement metric tracking"],"target_audience":["social media managers","marketing analysts","brand strategists"]}


name: Build an AI confidence coach for women with GPT-4o, Google Sheets and Gmail
author_name: Rahul Joshi
author_username: rahul08
categories: []
created_at: 2026-03-13T10:45:28.492Z
updated_at: 2026-03-13T10:45:28.492Z
url: https://n8n.io/workflows/14020
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:22
description:
  📊 Description
  Most career advice is generic. This workflow builds a fully personalized AI coaching system that remembers every user, adapts to their career stage and goals, detects what kind of help they need, and gets more contextual with every conversation. It is not a simple chatbot — it is a structured coaching engine with user profiling, conversation memory, intent routing, and proactive weekly outreach.
  Built for women's communities, coaching platforms, HR teams, and edtech creators who want to deliver real personalized career support at scale without hiring a team of coaches.

  What This Workflow Does
  💬 Opens a chat interface where users can start talking immediately — no signup required
  🧮 Detects if the user is new or returning on every message using Google Sheets as a user database
  📋 Walks new users through a 4-step onboarding — name, career stage, biggest challenge, and monthly goal
  🗂️ Stores and updates every user profile in Google Sheets with full onboarding state tracking
  🔍 Detects intent from every coaching message across 6 categories — salary negotiation, interview prep, career change, leadership, confidence building, and work-life balance
  🤖 Routes each message to a topic-specific GPT-4o system prompt tailored to that coaching category
  💬 Loads the last 5 conversations from history to give GPT-4o full context before generating a response
  ✅ Responds with personalized advice, one actionable step for today, and a follow-up question to keep momentum
  📝 Logs every conversation to Google Sheets with timestamp, message, intent, and AI response
  📧 Sends every fully onboarded user a personalized weekly check-in email every Sunday with a weekly challenge, progress acknowledgment, and motivational quote from a woman leader

  Key Benefits
  ✅ Full conversation memory — every session builds on the last
  ✅ Intent detection across 6 coaching categories — not one generic prompt
  ✅ User profiling — advice is always tailored to their stage, challenge, and goal
  ✅ Proactive weekly outreach — not just reactive coaching
  ✅ Complete audit trail — every conversation logged to Google Sheets
  ✅ Works for any number of users simultaneously via session-based identification
  ✅ No login or signup needed — just open the chat URL and start

  How It Works

  SW1 — Onboarding Every message hits the Chat Trigger and gets routed through the onboarding engine. The workflow reads all users from Google Sheets and matches the current session ID. If the user is new they go through 4 onboarding steps one message at a time — name, career stage with a numbered menu, biggest challenge with a numbered menu, and their monthly goal in their own words. Numbered responses are automatically mapped to their full label so 2 becomes Early Career (1-3 years) and 5 becomes Work-life balance. Every step is saved and the onboarding state is tracked so users can return to the same conversation and pick up exactly where they left off.

  SW2 — Coaching Engine Once onboarding is complete every subsequent message goes straight to the coaching engine. The workflow reads the user's last 5 conversations from the Conversation Log sheet for context. It then scans the message for intent keywords across 6 categories and selects the matching system prompt. GPT-4o receives the full user profile, conversation history, and topic-specific coaching instructions before generating a response. Every response includes a main coaching answer, one specific action the user can take today, and a follow-up question to continue the conversation. The full exchange is logged to the Conversation Log sheet.

  SW3 — Weekly Check-in Every Sunday at 10AM the workflow reads all fully onboarded users, pulls their recent conversation topics from the log, and generates a personalized weekly check-in email for each one via GPT-4o. The email includes a warm personalized greeting, acknowledgment of their progress, a concrete weekly challenge tied to their goal, and a motivational quote from a real woman leader relevant to their situation. Emails are sent via Gmail and every send is logged to the Weekly Checkins sheet.

  Features
  n8n Chat Trigger with public URL — shareable with any user
  Session-based user identification — no login required
  4-step guided onboarding with numbered menu options
  Numbered response to label mapping for clean data storage
  New vs returning user detection on every message
  Google Sheets as full user database and conversation memory
  6-category intent detection engine with keyword matching
  Topic-specific GPT-4o system prompts per coaching category
  Last 5 message context window passed to every GPT call
  Structured JSON responses — advice, action step, follow-up question
  Weekly Sunday proactive check-in via Gmail
  Personalized HTML email with challenge box and quote section
  Full logging across 3 sheets — User Profiles, Conversation Log, Weekly Checkins

  Requirements
  OpenAI API key (GPT-4o access)
  Google Sheets OAuth2 connection
  Gmail OAuth2 connection
  A configured Google Sheet with 3 sheets as above

  Setup Steps
  Create a Google Sheet called "AI Confidence Coach" with 3 sheets — User Profiles, Conversation Log, Weekly Checkins
  Paste your Sheet ID into all Google Sheets nodes
  Add your Google Sheets OAuth2 credentials
  Add your OpenAI API key
  Add your Gmail OAuth2 credentials
  Add your email as fallback in the Send Weekly Checkin Email node
  Activate the workflow and copy the Chat 
  Trigger URL
  Open the chat URL and test the full onboarding flow with 5 messages
  Send a coaching question and confirm GPT-4o responds with personalized advice
  Add your email to the User Profiles sheet and run SW3 manually to test the weekly check-in email
  Share the chat URL with your users — the workflow runs itself from here

  Target Audience
  🤖 Women's communities and career platforms who want to offer AI coaching at scale
  💼 HR teams building internal confidence and career development tools
  🎓 Edtech creators running women's upskilling and mentorship programs
  🔧 Automation agencies building AI coaching products for clients

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.gmail","@n8n/n8n-nodes-langchain.chatTrigger","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chat","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleSheets","@n8n/n8n-nodes-langchain.chat","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.filter","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.filter","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 11732 characters]

metadata_json:
  {"categories":["AI/ML","Communication"],"complexity":"medium","use_cases":["personalized career coaching","user intent routing","weekly outreach automation","conversation memory management","goal-based personalization"],"estimated_setup_minutes":60,"required_services":["OpenAI (GPT-4)","Google Sheets","Gmail"],"key_features":["user profiling","adaptive conversation memory","intent detection","proactive weekly outreach","structured coaching engine"],"target_audience":["career coaches","HR teams","edtech creators"]}


name: Generate Real Estate Research Reports With Exa AI, PandaDoc and Instantly AI
author_name: Devon Toh
author_username: devontoh
categories: []
created_at: 2026-03-14T20:15:17.517Z
updated_at: 2026-03-14T20:15:17.517Z
url: https://n8n.io/workflows/14053
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  This Template Demonstrates How To Automate Sending Real Estate Research Reports.

  Use cases are many: send recurring market updates to investors, distribute new listings context to buyers, or push periodic area snapshots to your client base — all without touching it manually after the first setup.

  Good to know
  Exa AI charges per search query. Check Exa AI Pricing for the latest rates before running at scale.
  Instantly AI has rate limits on lead uploads. The workflow handles this with a built-in wait node between batches, but check your plan limits before sending to large lists.
  PandaDoc document generation is asynchronous the workflow polls for completion before moving forward, so generation time will vary depending on template complexity.

  How it works
  PHASE 1: RESEARCH

  A Schedule Trigger kicks off the workflow on your chosen cadence.
  A research task is created and submitted to Exa AI, which pulls market data, listings context, and pricing signals from the web.
  The workflow polls Exa AI until the task is complete. An If + Wait loop handles this — once confirmed, the structured data moves to Phase 2.

  PHASE 2: REPORT GENERATION

  The structured research data is sent to PandaDoc via API. It fills directly into your pre-built real estate template — fixed layouts, brand rules, section structure already in place.
  The workflow polls PandaDoc until the document is fully generated. Another If + Wait loop ensures nothing proceeds with an incomplete report.
  The result is a clean, consistent report every time — no manual formatting or cleanup needed.

  PHASE 3: SEND VIA INSTANTLY AI

  The finalised report is sent to a Slack channel for human approval before anything goes out to clients.
  Once approved, the workflow fetches your client or investor list from Google Sheets.
  Contacts are batched, uploaded to Instantly AI, and each one receives a personalised report email — no manual sending, no individual copy-pasting.
  Send status is written back to your Google Sheet so you always know who's been contacted.
  A final Slack message confirms the full distribution is complete. Closed loop, fully hands-off.

  How to use
  The Schedule Trigger is used as the default starting point. Replace it with a webhook or form trigger if you want to run reports on demand instead.
  Set up your PandaDoc template with your preferred layout and branding before connecting. The workflow fills data in — it won't generate a layout for you.
  Configure Google OAuth via Google Console. Create a project, apply your Client ID and Secret in the Google Sheets node credentials.
  Set up your email sequences and sender accounts inside Instantly AI before the first run.
  Create a dedicated Slack channel or DM for approval routing and completion notifications.

  Requirements
  Exa AI — web research
  PandaDoc API — report template and document generation
  Google OAuth — client and investor list via Google Sheets
  Slack API — approval routing and completion notification
  Instantly API — personalised email delivery at scale
  n8n instance (self-hosted or cloud)

  Customising this workflow
  Swap Google Sheets for a CRM like HubSpot, Airtable, or GoHighLevel as your contact source — just replace the Fetch Contact node with your preferred integration.
  Replace the Slack approval step with an email approval flow if your team doesn't use Slack.
  This pattern works beyond real estate — try it for fund updates, commercial property briefs, or any recurring report where the structure stays fixed but the data changes.
  Add an AI summarisation node before PandaDoc to condense the Exa research output further before it fills into the template.

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-exa-official.exa","n8n-nodes-exa-official.exa","n8n-nodes-base.if","n8n-nodes-base.wait","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.slack","n8n-nodes-base.googleSheets","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 5492 characters]

metadata_json:
  {"categories":["Real Estate","Communication","Marketing"],"complexity":"medium","use_cases":["Send market updates to investors","Distribute new listings to buyers","Push area snapshots to clients"],"estimated_setup_minutes":15,"required_services":["Exa AI","PandaDoc","Instantly AI"],"key_features":["Automate research report generation","Schedule recurring market updates","Distribute document context via email"],"target_audience":["Real estate agents","Property managers","Marketing teams"]}


name: Summarize stock market signals with Alpaca, xAI Grok, Telegram and WhatsApp
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2026-03-16T08:38:03.377Z
updated_at: 2026-03-16T08:38:03.377Z
url: https://n8n.io/workflows/14079
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  Who Is This For?
  This workflow is designed for stock traders, financial analysts, and investment enthusiasts who want automated technical analysis and regular market updates. It's particularly useful for those who rely on technical indicators like RSI and MACD for their trading decisions and want to receive timely notifications through messaging platforms.

  What This Workflow Does
  This workflow functions as an automated trading assistant that:
  Analyzes stock market data for multiple tickers using technical indicators
  Generates buy/sell/hold signals based on RSI and MACD calculations
  Provides scheduled market updates every Friday at 12:30 PM
  Delivers alerts through multiple channels (Telegram and WhatsApp)
  Leverages AI (xAI Grok) to process and summarize market data

  Key Features 
  Alerts** – Telegram & WhatsApp notifications
  Analysis* – *Relative Strength Index* and *Moving Average Convergence Divergence**
  Market Check* – via *Alpaca Markets**
  Trigger** – Scheduled or Telegram command
  AI Summary* – Powered by *Grok** 
  Stock Coverage** – Analyzes major stocks like AAPL, MSFT, NVDA, TSLA, AMZN, etc. 

  Requirements & Setup
  Alpaca API Credentials**: Required for fetching market data and checking market status
  Telegram Bot API**: For sending and receiving messages
  Rapiwa API**: For WhatsApp notifications
  xAI API Credentials**: For accessing the Grok model
  Stock Ticker Configuration**: Currently set to analyze AAPL, MSFT, NVDA, TSLA, AMZN, GOOGL, META, JPM, XOM, UNH, and GME

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

nodes_used:
  ["@n8n/n8n-nodes-langchain.chainLlm","@n8n/n8n-nodes-langchain.lmChatXAiGrok","n8n-nodes-base.telegramTrigger","n8n-nodes-rapiwa.rapiwa","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.dateTime","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.httpRequest","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","n8n-nodes-base.scheduleTrigger"]

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

metadata_json:
  {"categories":["Finance","AI/ML","Communication"],"complexity":"complex","use_cases":["Automate trade analysis","Receive market alerts","Process stock signals","Send notifications"],"estimated_setup_minutes":120,"required_services":["Alpaca","xAI (Grok)","Telegram API","WhatsApp API"],"key_features":["Technical indicator integration (RSI,MACD)","Real-time stock data processing","Multi-channel alert delivery","Custom logic routing"],"target_audience":["Traders","Financial analysts","Investment enthusiasts"]}


name: Analyze GitLab CI job failures with GPT-5.3 and send reports to Slack
author_name: Sergei Byvshev
author_username: javdet
categories: []
created_at: 2026-03-18T03:07:22.315Z
updated_at: 2026-03-18T03:07:22.315Z
url: https://n8n.io/workflows/14129
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  Overview
  This workflow helps automatically analyze the causes of build failures in Gitlab CI and propose solutions without involving DevOps engineers.
  See detailed setup guide

  How it work
  Checks whether a job crashed.
  Gets logs of the crashed job and a description of the pipeline.
  The agent analyzes this data according to its system prompt.
  During the process, the agent can retrieve additional data from Gitlab and check the availability of endpoints.
  A report on the causes and solutions is sent to the selected Slack channel
  Works good with Openai, Anthropic, Google last models 

  How to use
  Generate webhook credentials and use it in Gitlab
  Add your own Rules and recommendations to system prompt
  Run MCP servers
  Choose Slack channel

nodes_used:
  ["n8n-nodes-base.if","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.noOp","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.merge","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","n8n-nodes-base.code","n8n-nodes-base.httpRequestTool","@n8n/n8n-nodes-langchain.mcpClientTool","n8n-nodes-base.slack","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/n8n-nodes-langchain.mcpClientTool","n8n-nodes-base.set"]

workflow_json_compressed:
  [encoded data, 7996 characters]

metadata_json:
  {"categories":["DevOps","Communication","AI/ML"],"complexity":"medium","use_cases":["Auto-debug CI failures","Generate incident reports","Propose troubleshooting steps","Alert DevOps on errors"],"estimated_setup_minutes":10,"required_services":["GitLab","GPT","Slack"],"key_features":["Automated crash analysis","Log retrieval and parsing","Proposed root cause diagnosis","Slack integration for alerts","Autonomous agent data retrieval"],"target_audience":["DevOps Engineers","SREs","Software Researchers"]}


name: Scrape, search and browse the web with a Firecrawl AI agent webhook
author_name: Firecrawl
author_username: firecrawl
categories: []
created_at: 2026-03-18T19:06:35.875Z
updated_at: 2026-03-18T19:06:35.875Z
url: https://n8n.io/workflows/14167
scraped_at: 2026-05-02 08:04:48
metadata_generated_at: 2026-05-02 08:36:20
description:
  Turn any prompt into structured web data. Send a POST request with a natural language prompt and an optional JSON schema, and get back clean, structured results scraped from the web by an AI agent powered by Firecrawl.

  Use Cases

  Data Enrichment**: Feed company names or URLs from your CRM and get back structured firmographic data (industry, funding, team size, tech stack).
  Lead Generation**: Ask the agent to find pricing, contact pages, or product details for a list of competitors.
  Market Research**: Extract structured pricing plans, feature comparisons, or product catalogs from any website.
  Content Aggregation**: Pull structured news, events, or job postings from across the web on a schedule.
  Sales Intelligence**: Enrich prospect lists with company info, recent news, or tech stack details before outreach.

  How It Works

  POST /webhook/scrape-agent

  Receive Scrape Request receives a POST request with prompt and an optional output_schema.
  Validate Output Schema checks the schema. If none is provided, it falls back to a permissive default. If the schema is malformed, it returns a clear error via Return Schema Error.
  Research & Extract Web Data takes the prompt and uses the full Firecrawl toolkit to research the web:
     Search (/search): Finds relevant pages and sources across the web.
     Scrape (/scrape): Extracts clean, structured content from any URL.
     Interact (interactContext, interact, interactStop): Lets the agent interact with scraped pages in a live session. After scraping a page, the agent can click buttons, fill forms, navigate dynamic content, and extract data that static scraping cannot reach, all without managing sessions manually.
     
     This combination gives the AI agent complete web navigation capabilities. It can discover sources, read pages, and interact with dynamic content autonomously.
  Format Response to Schema (Structured Output Parser) formats the agent's response to match the provided (or default) schema.
  Return Structured Results sends the structured JSON back to the caller.

  Setup Requirements

  Firecrawl API Key**: Sign up at firecrawl.dev and grab your API key. Connect it in the Firecrawl credential nodes.
  LLM Provider**: Configure your Primary Chat Model and Fallback Chat Model nodes (e.g., OpenRouter, OpenAI, Anthropic). The template uses two model nodes for reliability, plus a separate Parser Chat Model for the output parser.
  n8n Instance**: Self-hosted or cloud. Make sure the webhook node is set to accept POST requests.

  API Reference

  Endpoint

  POST https://your-n8n-instance/webhook/scrape-agent

  Request Body

  | Field | Type | Required | Description |
  |-------|------|----------|-------------|
  | prompt | string | Yes | Natural language instruction for the agent |
  | output_schema | object | No | JSON Schema defining the desired output structure |

  Response

  Returns a JSON object matching the provided schema, or a flexible object if no schema was given.

  Testing Examples

  1. Basic Request (No Schema)

  The agent decides the output structure on its own.

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl"
    }' | jq

  Expected output: A JSON object with whatever structure the agent finds most appropriate for the data. Since no schema was provided, the internal default ({ "type": "object", "additionalProperties": true }) is used.

  2. Request With a Custom Schema

  You define exactly the shape of data you want back.

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl",
      "output_schema": {
        "type": "object",
        "properties": {
          "source": { "type": "string" },
          "plans": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": { "type": "string" },
                "price": { "type": "string" },
                "credits": { "type": "string" },
                "highlights": {
                  "type": "array",
                  "items": { "type": "string" }
                }
              }
            }
          }
        }
      }
    }' | jq

  Expected output:

  {
    "output": {
      "source": "https://www.firecrawl.dev/pricing",
      "plans": [
        {
          "name": "Free",
          "price": "$0 (one-time)",
          "credits": "500 credits (one-time)",
          "highlights": [
            "Scrape up to 500 pages",
            "2 concurrent requests",
            "Low rate limits",
            "No credit card required"
          ]
        },
        {
          "name": "Hobby",
          "price": "$16/month (billed yearly, save $38)",
          "credits": "3,000 credits / month",
          "highlights": [
            "Scrape up to 3,000 pages",
            "5 concurrent requests",
            "Basic support",
            "$9 per extra 1k credits"
          ]
        }
      ]
    }
  }

  3. Invalid Schema (String Instead of Object)

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl",
      "output_schema": "not a valid schema"
    }' | jq

  Expected output:

  {
    "error": true,
    "message": "Invalid output_schema: must be a JSON object with a valid 'type' property (object, array, string, number, boolean)",
    "example_schema": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "price": { "type": "number" }
      }
    }
  }

  4. Invalid Schema (Array Instead of Object)

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl",
      "output_schema": [1, 2, 3]
    }' | jq

  Expected output: Same error response as above.

  5. Invalid Schema (Missing type Property)

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl",
      "output_schema": {
        "properties": {
          "name": { "type": "string" }
        }
      }
    }' | jq

  Expected output: Same error response as above.

  6. Invalid Schema (Invalid type Value)

  curl -X POST "https://your-n8n-instance/webhook/scrape-agent" \
    -H "Content-Type: application/json" \
    -d '{
      "prompt": "Find the latest pricing for Firecrawl",
      "output_schema": {
        "type": "banana"
      }
    }' | jq

  Expected output: Same error response as above.

  Workflow Architecture

  Receive Scrape Request (POST)
    |
    v
  Validate Output Schema
    |--- Error --&gt; Return Schema Error (error JSON)
    |--- Success --&gt; Research & Extract Web Data (AI Agent)
                       |
                       |--- Primary Chat Model
                       |--- Fallback Chat Model
                       |--- Search & Scrape:
                       |      - /search with Firecrawl
                       |      - /scrape with Firecrawl
                       |--- Interact Tool:
                       |      - Interact context with Firecrawl
                       |      - Execute interaction with Firecrawl
                       |      - Stop interaction with Firecrawl
                       |
                       v
                     Return Structured Results
                       |
                       |--- Format Response to Schema (Output Parser)
                              |
                              |--- Parser Chat Model

  Schema Validation Logic

  The Validate Output Schema node runs this validation before passing data to the agent:

  If output_schema is missing or null, the default permissive schema is used: { "type": "object", "additionalProperties": true }.
  If output_schema is present, it must be a JSON object (not a string, array, or primitive).
  It must have a type property with a valid value: object, array, string, number, or boolean.
  If validation fails, the workflow returns an error response with a helpful message and example schema.

  Notes

  The Format Response to Schema node (Structured Output Parser) requires the schema to be passed as a JSON string. The expression {{ JSON.stringify($('Validate Output Schema').item.json.output_schema) }} handles this conversion.
  The agent has access to Firecrawl's full toolkit: search, scrape, and interact. With all three connected, the agent has complete web navigation powers. It can discover sources via search, extract content via scrape, and interact with dynamic JavaScript-heavy pages via interact. The interact tools let the agent scrape a page first and then continue working with it in a live session, clicking buttons, filling forms, and navigating deeper, all without manual session management. The agent autonomously decides which tools to use based on the prompt.
  Response times vary depending on the complexity of the prompt and how many pages the agent needs to visit. Simple lookups take a few seconds; deep research can take longer.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.respondToWebhook","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","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","@mendable/n8n-nodes-firecrawl.firecrawlTool","@mendable/n8n-nodes-firecrawl.firecrawlTool","@mendable/n8n-nodes-firecrawl.firecrawlTool","@mendable/n8n-nodes-firecrawl.firecrawlTool","@mendable/n8n-nodes-firecrawl.firecrawlTool"]

workflow_json_compressed:
  [encoded data, 5496 characters]

metadata_json:
  {"categories":["Data Processing","Marketing","AI/ML"],"complexity":"medium","use_cases":["data enrichment","lead generation","market research","competitor analysis","web analytics"],"estimated_setup_minutes":15,"required_services":["Firecrawl","OpenRouter"],"key_features":["web scraping with AI agent","natural language to structured data","JSON schema validation","webhook-based input/output","competitor research automation"],"target_audience":["marketers","analysts","developers"]}


name: Generate and Send Personalized Quotations PDF
author_name: Devon Toh
author_username: devontoh
categories: []
created_at: 2026-03-19T20:14:01.656Z
updated_at: 2026-03-19T20:14:01.656Z
url: https://n8n.io/workflows/14185
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  This Template Demonstrates How To Automate Generating and Sending Personalized Quotations as PDF.

  Use cases are many: send branded quotations to new leads after a discovery call, distribute pricing proposals to inbound form submissions, or push service packages to prospects. All without manually creating documents, exporting PDFs, or writing individual emails.

  Good to know
  OpenAI charges per token. The workflow uses gpt-4o-mini for cost efficiency (~$0.15/1M input tokens). Check OpenAI Pricing before running at scale.
  Google Docs template must be set up with placeholder variables before the first run. The workflow fills data in — it won’t generate a layout for you.
  Gmail has daily sending limits depending on your Google Workspace plan. Check your quota before sending large volumes.
  The form is hosted by n8n — share the form URL with your team or embed it in your internal tools.

  How it works
  PHASE 1: FORM INTAKE
  An n8n Form Trigger collects all quotation details: client name, email, company, service type, service description, price, validity date, and optional notes.
  The form is self-hosted on your n8n instance — no third-party form tools needed.
  Once submitted, all fields pass directly into the workflow as structured data.

  PHASE 2: AI PERSONALIZATION
  The form data is sent to OpenAI (gpt-4o-mini) which generates two pieces of content:
  – A personalized introduction paragraph addressing the client by name, referencing their company and specific needs.
  – A structured scope of work summary with deliverable bullet points based on the service description.
  Output is returned as JSON so it slots cleanly into the document template and email body.

  PHASE 3: DOCUMENT GENERATION
  The workflow copies your pre-built Google Docs quotation template to a new document, named automatically as “Quotation - {Company} - {Service}”.
  Nine placeholder variables are replaced in the copied document: {{client_name}}, {{company_name}}, {{client_email}}, {{service}}, {{price}}, {{valid_until}}, {{notes}}, {{intro}}, and {{scope_summary}}.
  The completed document is exported from Google Drive as a PDF. Your branding, layout, and formatting stay exactly as designed in the template.

  PHASE 4: EMAIL DELIVERY
  The PDF is attached to a personalized email sent via Gmail directly to the client’s email address.
  The email body includes the AI-generated intro, scope of work summary, total price, and validity date — no manual copy-pasting.
  The form submitter sees a confirmation response once the email is sent. Closed loop, fully hands-off.

  How to use
  Create your Google Docs template with your preferred layout, branding, and these placeholders: {{client_name}}, {{company_name}}, {{client_email}}, {{service}}, {{price}}, {{valid_until}}, {{notes}}, {{intro}}, {{scope_summary}}.
  Copy the template Document ID from the URL (docs.google.com/document/d/THIS_PART/edit) and paste it into the Copy Template node.
  Configure Google OAuth via Google Console. Create a project, apply your Client ID and Secret in the Google Drive, Google Docs, and Gmail node credentials.
  Set the OpenAI credential with your API key in the OpenAI Personalize node.
  Share the form URL with your team. The URL is generated automatically when the workflow is activated.
  Requirements
  • OpenAI API — personalized intro and scope generation
  • Google Drive OAuth — template copying and PDF export
  • Google Docs OAuth — variable replacement in the document
  • Gmail OAuth — personalized email delivery with PDF attachment
  • n8n instance (self-hosted or cloud)

  Customising this workflow
  • Swap the form trigger for a webhook or CRM integration (HubSpot, GoHighLevel, Airtable) if you want quotations generated from pipeline stage changes instead of manual form submissions.
  • Add a Slack or email approval step before sending — insert a Slack node between Export as PDF and Send Quotation Email if you want a manager to review before it goes out.
  • Replace Gmail with any email provider (Outlook, SMTP, SendGrid) if your team doesn’t use Google Workspace.
  • Add a Google Sheets logging step after sending to track all sent quotations with client name, date, service, and price for reporting.
  • This pattern works beyond quotations — try it for proposals, invoices, contracts, or any document where the structure stays fixed but the data changes.
  • Add multiple service line items by extending the form with repeating fields and adjusting the template to include a table of services with individual pricing.

nodes_used:
  ["n8n-nodes-base.formTrigger","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDocs","n8n-nodes-base.googleDrive","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["Marketing","Communication","Data Processing"],"complexity":"medium","use_cases":["send brand quotations to new leads","distribute pricing proposals to form submissions","push service packages to prospects","automate quotation generation","personalize exported PDF documents"],"estimated_setup_minutes":5,"required_services":["OpenAI","Google Drive","Google Docs","Webhook Form"],"key_features":["dynamic PDF generation","AI-driven personalization","automated email dispatch","form data parsing and enrichment","document version control via Git"],"target_audience":["sales representatives","marketing managers","business developers"]}


name: Generate cold email icebreakers and subject lines with Google Sheets and OpenAI
author_name: Devon Toh
author_username: devontoh
categories: []
created_at: 2026-03-20T14:48:20.687Z
updated_at: 2026-03-20T14:48:20.687Z
url: https://n8n.io/workflows/14199
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  Email List Personalization - Icebreaker & Subject Line Generator

  Reads an enriched lead list from Google Sheets, generates a personalized icebreaker + subject line for each lead using OpenAI, and writes results back to the same sheet -- ready for your email sequencer.

  Who is this for?

  SDRs, founders, and agency owners running cold outbound who want personalized first lines without spending 2-3 minutes per lead on manual research. Sits between your Apollo / Sales Nav export and Instantly / Smartlead / Lemlist.

  What problem does this solve?

  Generic cold emails get ignored. Writing unique icebreakers for 200+ leads/day is not realistic by hand. This workflow does it at ~$0.002/lead with GPT-4.1-mini -- spartan, human-sounding copy that references real prospect details.

  How it works

  Read Lead Sheets from Google Sheets (enriched with LinkedIn data)
  Filter Empty Rows rows where icebreakers or subjectLine is empty (safe to re-run)
  Limit To 200 Leads batch to 200 leads per run
  Process One-By-One with an IF safety check before each API call
  Genrates Icebreaker a JSON response with few-shot examples locking the tone:
     icebreaker -- spartan one-liner referencing their company/role/industry
     subjectLine -- personalized with name + relevant hook
     shortenedCompanyName -- strips "Agency", "Inc.", "LLC" for natural copy
     verdict -- true for real people, false for company pages (filter before sending)
  Write Result To Sheet to the same row via row_number match key
  Rate Limit Delay between calls to avoid throttling

  Setup

  Google Sheets -- Connect OAuth2 in both sheet nodes. Point to your lead spreadsheet.
  OpenAI -- Connect API key. Default: GPT-4.1-mini. Swap to GPT-4o for premium campaigns.
  Sheet columns needed: first_name, last_name, email, job_title, company, linkedin_industry, location, summary, linkedin_description, linkedin_specialities, linkedin_company_employee_count, linkedin_founded_year, icebreakers, subjectLine, row_number
  Customize the prompt -- Swap the few-shot examples in the OpenAI node to match your voice and offer.
  Test first -- Set Limit to 5, run manually, review output, then scale.

  Customization tips

  Trigger** -- Replace Manual Trigger with Schedule or Google Drive Trigger for automation
  Batch size** -- Adjust the Limit node to match your daily send volume
  Model** -- GPT-4.1-mini ($0.002/lead) vs GPT-4o ($0.01/lead)

  Built by Devon Toh

nodes_used:
  ["n8n-nodes-base.wait","n8n-nodes-base.googleSheets","n8n-nodes-base.filter","n8n-nodes-base.limit","n8n-nodes-base.googleSheets","n8n-nodes-base.splitInBatches","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.manualTrigger","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, 5424 characters]

metadata_json:
  {"categories":["AI/ML","Communication","Marketing"],"complexity":"medium","use_cases":["generate cold outreach icebreakers","personalize email subject lines","auto-fill lead sheets with openai content"],"estimated_setup_minutes":15,"required_services":["Google Sheets","OpenAI"],"key_features":["batch processing of lead data","personalized subject line generation","result persistence to spreadsheet"],"target_audience":["SDRs","agency owners","founders"]}


name: Enrich Google Sheets rows via any REST API in rate-limited batches
author_name: Patrick Siewert
author_username: patrickn8n
categories: []
created_at: 2026-03-20T20:56:15.295Z
updated_at: 2026-03-20T20:56:15.295Z
url: https://n8n.io/workflows/14205
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  How it works
  • Reads all rows from a Google Sheet
  • Splits them into configurable batches (default: 5 rows per batch)
  • Calls any external REST API once per row (GET or POST, Header Auth)
  • Waits 1 second between batches to stay within API rate limits
  • Routes responses: writes enriched data back to the sheet on success, logs errors on failure
  • Loops through all batches until the full sheet is processed
  • Want more REST API workflows? See n8n webhook & API templates ranked by demand

  Set up steps
  • Takes ~10 minutes to configure
  • Connect your Google Sheets OAuth2 credential to both Sheet nodes
  • Set your Sheet ID and tab name in the Read Rows node
  • Paste your API endpoint URL in the Call API node and connect your Header Auth credential
  • Adjust batch size and wait duration via the sticky notes inside the workflow
  • Update the Update Row node with the column(s) you want to write back

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

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

metadata_json:
  {"categories":["Data Processing","Automation"],"complexity":"medium","use_cases":["enrich spreadsheet data","batch REST API calls","process Google Sheets rows","rate limit API requests","store external API results"],"estimated_setup_minutes":15,"required_services":["Google Sheets","External REST API"],"key_features":["configurable batch sizes","built-in rate limiting","Header authentication support","automatic retry logic","conditional routing"],"target_audience":["data analysts","automation engineers","business users"]}


name: Optimize Cold Email Copy with Claude, Instantly, and Google Sheets
author_name: Devon Toh
author_username: devontoh
categories: []
created_at: 2026-03-21T01:36:16.845Z
updated_at: 2026-03-21T01:36:16.845Z
url: https://n8n.io/workflows/14211
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  Optimize Cold Email Copy with Claude, Instantly, and Google Sheets

  Inspired by Karpathy's Autoresearch, this workflow treats your cold email campaigns as continuous experiments. Instead of writing copy once and hoping for the best, it runs an automated optimization loop that evolves your emails based on real performance data.

  How it works
  Runs on a schedule (every 6 hours)
  Pulls live campaign stats (open rate, reply rate) from Instantly
  Reads the current champion and challenger variants from Google Sheets
  Reads the full experiment history (last 10 rounds)
  Checks if both variants have enough data (200+ sends each)
  If below threshold, exits and waits for the next run
  If above threshold, feeds everything to Claude: both variants, metrics, experiment history, and the cold email program rules
  Claude declares a winner, explains why, and generates a new challenger with a specific hypothesis
  Safety check: if reply rate drops below the floor threshold, pauses and sends a Telegram alert instead of continuing
  Logs the full experiment (variants, metrics, winner, reasoning, change type) to Google Sheets
  Promotes winner, deploys new challenger to Instantly

  What makes it different
  Learns across rounds, not just the current test.** Claude sees the last 10 experiments and identifies patterns over time.
  Program doc driven.** Brand voice, hard rules, and constraints live in a Google Sheet, not hardcoded in prompts. Update the rules without touching the workflow.
  Structured change tracking.** Every experiment logs what specifically changed (subject, CTA, tone, length, opener style) so you can filter by change type.
  Safety floor.** If reply rate drops below your minimum, the system pauses and alerts you instead of running bad copy.

  What you need
  Instantly account with active campaign
  Claude API key (Anthropic)
  Google Sheets (two tabs: Active, Experiments + one tab: Program)
  Telegram bot (for safety alerts)
  Enough send volume for meaningful data (200+ sends per variant)

  Google Sheets setup
  Active tab (A:F): Variant | Subject Line | Email Body | Sends | Open Rate | Reply Rate

  Experiments tab (A:M): Experiment ID | Date | Champion Copy | Challenger Copy | Champion Subject | Challenger Subject | Champion Sends | Challenger Sends | Champion Reply Rate | Challenger Reply Rate | Winner | Change Type | Reasoning

  Program tab (A:B): Rule Name | Rule Content (brand voice, constraints, off-limits topics, max word count, required variables, etc.)

  Environment variables
  OPTIMIZER_SHEET_ID
  REMOVEFAST_CAMPAIGN_ID
  INSTANTLY_API_KEY
  ANTHROPIC_API_KEY
  TELEGRAM_BOT_TOKEN
  TELEGRAM_CHAT_ID
  REPLY_RATE_FLOOR (default: 1.0)

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.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest"]

workflow_json_compressed:
  [encoded data, 8092 characters]

metadata_json:
  {"categories":["Marketing","AI/ML","Data Processing"],"complexity":"complex","use_cases":["Optimize email campaigns","A/B test email content","Automate performance analysis","Scale email outreach","Improve conversion rates"],"estimated_setup_minutes":30,"required_services":["Claude","Instantly","Google Sheets"],"key_features":["scheduled execution","campaign performance tracking","champion vs challenger logic","automated copy optimization","continuous experimentation"],"target_audience":["marketing teams","outreach managers","growth hackers"]}


name: Screen and score investment deals with AI using OpenAI, Gmail, and Telegram
author_name: Devon Toh
author_username: devontoh
categories: []
created_at: 2026-03-22T18:23:13.099Z
updated_at: 2026-03-22T18:23:13.099Z
url: https://n8n.io/workflows/14239
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  Screen and Score Investment Deals with AI using OpenAI, Gmail, and Telegram

  Automatically screens incoming deal submissions using AI, scores them against investment criteria, and routes to the right action.

  Who is this for?
  VC firms, PE funds, angel investors, or M&A advisors who receive deal flow via email or form submissions.

  What problem does this solve?
  Manually reviewing every pitch deck and deal memo is time-consuming. Most deals don't meet investment criteria. This agent screens, scores, and prioritizes deals so your team focuses on the best opportunities.

  How it works:
  New Email Received / Deal Submission Webhook - captures deals from email or form
  Normalize Email/Webhook Data - standardizes fields from either source
  Build Deal Text - combines email body + attachment info into screening text
  Has Deal Content? - validates there is enough content to screen
  Extract Deal Info - OpenAI - AI extracts company, industry, revenue, ask, team, highlights, red flags
  Score Deal - OpenAI - AI scores on 5 criteria (industry fit, revenue, growth, team, clarity)
  Is PASS? / Is REVIEW? - routes by verdict (PASS/REVIEW/REJECT)
  Telegram Alerts - notifies with deal summary and scores
  Log Deal to Pipeline Sheet - tracks all deals in a pipeline spreadsheet

  Setup:
  Add credentials: Gmail, OpenAI, Telegram Bot, Google Sheets
  Replace YOUR_TELEGRAM_CHAT_ID with your chat ID
  Create a Google Sheet with columns: received_at, company_name, industry, stage, revenue, ask_amount, overall_score, verdict, one_line_summary, recommendation, key_highlights, red_flags, sender_name, sender_email, source, industry_fit, revenue_stage, growth_trajectory, team_strength, deal_clarity
  Replace YOUR_GOOGLE_SHEET_ID with your sheet ID

  Customization:
  Edit the scoring criteria in the Score Deal OpenAI prompt
  Adjust score thresholds for PASS/REVIEW/REJECT
  Add Slack notifications instead of Telegram
  Add auto-decline email for REJECT deals
  Connect to a CRM instead of Google Sheets

nodes_used:
  ["n8n-nodes-base.gmailTrigger","n8n-nodes-base.webhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.telegram","n8n-nodes-base.googleSheets","n8n-nodes-base.stopAndError","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, 7644 characters]

metadata_json:
  {"categories":["AI/ML","Finance","Investment"],"complexity":"medium","use_cases":["Screen investment deal submissions","Automatically score deal deals","Route deals to actionable lists","Automate deal flow workflow"],"estimated_setup_minutes":30,"required_services":["OpenAI","Gmail","Telegram"],"key_features":["AI-based deal screening","Automated investment criteria scoring","Multi-channel routing","Deal flow automation"],"target_audience":["VC firms","PE funds","Angel investors"]}


name: AI-powered fuzzy matching, and assigns confidence scores.
author_name: ResilNext
author_username: rnair1996
categories: []
created_at: 2026-03-23T16:56:38.580Z
updated_at: 2026-03-23T16:56:38.580Z
url: https://n8n.io/workflows/14276
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  Overview
  This workflow automates financial reconciliation across multiple data sources such as bank statements, invoices, ERP systems, and CSV uploads.

  It standardizes all incoming data, performs rule-based matching, enhances results with AI-powered fuzzy matching, and assigns confidence scores. High-confidence matches are auto-reconciled, while uncertain ones are flagged for human review.

  How It Works

  Data Ingestion
     Receives financial data via webhook from different sources.

  Source Detection & Routing
     Identifies the data type and routes it to the correct normalization flow.

  Data Normalization
     Converts all records into a unified schema with consistent fields like ID, amount, date, and description.

  Data Merging
     Combines all normalized records into a single dataset for matching.

  Deterministic Matching
     Matches records using exact field combinations such as ID, amount, and date to generate initial confidence.

  Match Quality Check
     Filters low-confidence matches for further analysis.

  AI Fuzzy Matching
     Uses AI to identify near matches based on descriptions, amount tolerance, and date proximity.

  Confidence Scoring
     Combines deterministic and AI results into a final confidence score with a detailed audit trail.

  Decision Routing
     High confidence → auto-reconciled  
     Low confidence → flagged for human review  

  Reporting
     Logs reconciliation results into Google Sheets.

  Notifications
     Sends a summary report to Slack for visibility.

  Setup Instructions

  Configure webhook to receive financial data  
  Set matching keys and confidence thresholds  
  Connect OpenAI for fuzzy matching  
  Connect Google Sheets for reporting  
  Connect Slack for notifications  
  Ensure input data follows expected formats  
  Test with sample financial data  
  Activate the workflow  

  Use Cases

  Bank statement vs invoice reconciliation  
  ERP vs accounting system matching  
  Financial audit automation  
  Detecting missing or duplicate transactions  
  Reducing manual reconciliation effort  

  Requirements

  n8n instance with webhook support  
  OpenAI API access  
  Google Sheets account  
  Slack workspace  
  Structured financial datasets (CSV/API)  

  Notes

  Deterministic matching ensures accuracy for exact matches.
  AI fuzzy matching improves coverage for ambiguous records.
  Confidence scoring provides transparency and auditability.
  Human review ensures control over uncertain reconciliations.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.extractFromFile","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.if","@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.merge","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.slack","n8n-nodes-base.merge","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"]

workflow_json_compressed:
  [encoded data, 8128 characters]

metadata_json:
  {"categories":["Finance","Data Processing","AI/ML"],"complexity":"medium","use_cases":["automate financial reconciliation","match bank statements to invoices","standardize incoming financial data","assign confidence scores to matches","flag uncertain records for review"],"estimated_setup_minutes":60,"required_services":["Spreadsheets"],"key_features":["AI-powered fuzzy matching","confidence scoring","rule-based matching","automatic reconciliation","data standardization"],"target_audience":["accountants","finance analysts","back-office staff"]}


name: Send overdue invoice payment reminders with iFirma, Gmail, PostGrid and Slack
author_name: Łukasz
author_username: lukaszpp
categories: []
created_at: 2026-03-25T10:37:00.891Z
updated_at: 2026-03-25T10:37:00.891Z
url: https://n8n.io/workflows/14310
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  Overdue Invoice Payment Reminder Workflow Documentation

  What Is This?

  This workflow is an automated invoice payment tracking and reminder system for the Polish accounting service iFirma.pl. It monitors unpaid and overdue invoices, then automatically sends escalating reminders to contractors based on configurable time thresholds. The system handles three escalation levels: payment reminders before/at due date, pre-trial summons, and formal legal action notices.

  Who Is It For?

  Designed for Polish businesses, accounting departments, and financial controllers using iFirma.pl for invoice management. This workflow is essential for companies struggling with late payments and cash flow management, particularly those needing to enforce payment terms professionally and systematically.

  B2B service providers, consultancies, software development agencies, and any business issuing invoices to other companies will benefit from automated payment enforcement. The workflow eliminates manual tracking of payment deadlines and ensures consistent, professional follow-up with delinquent clients.

  Whether managing a handful of high-value invoices or processing hundreds of transactions monthly, this automation delivers timely notifications without manual calendar monitoring or spreadsheet management.

  How Does It Work?

  This end-to-end invoice monitoring automation consists of four main stages:

  1. Configuration & Authentication  
  Sets up user credentials (email/login, API key), defines escalation timeframes (X days before due date, Y days after, Z days after), and prepares company details for legal correspondence. The workflow then constructs a cryptographic authentication signature using HMAC-SHA1 algorithm, which iFirma requires for API access.


  2. Invoice Retrieval & Filtering  
  Connects to iFirma API to fetch all unpaid, partially paid, and overdue invoices, then filters them based on payment deadline dates. Only invoices that are either overdue or approaching their due date (within X days) proceed to the next stage.


  3. Contractor Data Enrichment  
  For each qualifying invoice, the workflow fetches complete contractor information from iFirma (since invoice records contain only partial contractor data). This includes email addresses, company names, and addresses needed for sending reminders. The workflow deduplicates contractors to avoid redundant API calls.


  4. Escalation Logic & Notification Dispatch  
  Invoices are categorized into three groups based on how overdue they are:

  Payment Reminder**: Due today or X days before due date → Sends reminder via iFirma's built-in notification system
  Pre-Trial Summons**: Y days after due date → Sends formal legal warning via email and optionally physical mail (PostGrid)
  Legal Action Notice**: Z days after due date → Sends notice of commenced legal proceedings via email and optionally physical mail


  Each action triggers a Slack notification to keep your team informed.

  How To Set It Up?

  Prerequisites:

  An active N8N account or self-hosted instance
  An iFirma.pl account with API access enabled
  A Slack workspace with appropriate bot permissions
  (Optional) PostGrid account for physical mail delivery
  (Optional) Gmail account configured for sending emails

  Required Configuration:

  In the "Configuration" node, set the following parameters:

  Email/Login: Your iFirma.pl account email or login username
  API Key Invoice: API key from iFirma.pl (found at: Start &gt; Data and Configuration &gt; Extensions and Integrations &gt; API)
  X days before due date: How many days before payment deadline to send the first reminder (default: 7)
  Y days after due date: When to send pre-trial summons (default: 7 days overdue)
  Z days after due date: When to send legal action notice (default: 14 days overdue)

  Your Company Details Configuration:

  In the "Your Company Details" node, provide:

  Company Name, Email, Phone
  Full address (Street, City, Postal Code, Country Code)
  Bank details (Bank Name, Account Number, SWIFT Code)
  Tax Identification Number (TIN/NIP)

  This information is used for professional letterheads in legal correspondence and PostGrid physical mail delivery.

  Credentials Setup:

  Configure Slack OAuth2 credentials for notifications
  Set up Gmail OAuth2 credentials for email sending (if using email route)
  Configure PostGrid API credentials for physical letter delivery (if using mail route)

  Scheduling:  
  The workflow runs automatically every 24 hours via the Schedule Trigger node. For testing, execute manually using the "Execute workflow" button.

  What's More?

  Custom Authentication Implementation:  
  iFirma.pl requires HMAC-SHA1 authentication, which N8N doesn't provide natively. The workflow includes a complete JavaScript implementation of the SHA-1 cryptographic hash function and HMAC (Hash-based Message Authentication Code) algorithm. This ensures secure API access without external dependencies.

  Endpoint Mapping Intelligence:  
  The workflow automatically maps invoice types (Rodzaj) to the correct iFirma API endpoints. Different invoice types (domestic, foreign, construction, advance payments, etc.) require different API paths for sending reminders.

  Professional HTML Templates:  
  Pre-trial summons and legal action notices use professionally formatted HTML templates with proper legal language, payment details, deadlines, and consequences clearly outlined. These templates maintain consistent branding and meet legal communication standards.



  Multi-Channel Notification:  
  Reminders can be sent via multiple channels simultaneously: iFirma's e-invoice system, email, physical mail (PostGrid), and internal Slack notifications for team awareness.

  Understanding the HMAC-SHA1 Authentication

  The "Encode API Key" nodes implement a critical security function that N8N cannot perform natively. Here's what happens and why:

  What the iFirma API Requires:

  iFirma.pl uses HMAC-SHA1 for request authentication. Each API request must include an Authentication header formatted as:

  IAPIS user={userLogin}, hmac-sha1={hash}

  The hash is calculated from: URL + userLogin + keyName + requestBody

  Why Custom Implementation is Needed:

  N8N's crypto functions don't include SHA-1 (it's considered outdated for modern security, though still required by some legacy APIs). Therefore, the workflow implements the entire SHA-1 and HMAC algorithms in pure JavaScript.

  How the Algorithm Works:

  Message Construction: Combines the API endpoint URL, user login, key name ("faktura"), and request body (if any) into a single string
  Hex Key Conversion: The API key from iFirma is provided in hexadecimal format and must be converted to raw bytes
  HMAC Process:
      Creates inner and outer padding arrays using XOR operations with specific constants (0x36 and 0x5C)
      Hashes the inner padded message using SHA-1
      Hashes the outer padding combined with the inner hash result
  SHA-1 Implementation: Uses bitwise operations, rotating functions, and four rounds of 20 operations each to produce a 160-bit hash
  Header Generation: Formats the final hash as a hex string and constructs the authentication header

  Why Each Step Matters:

  Deterministic Hashing**: The same input always produces the same hash, allowing iFirma to verify request authenticity
  Binary Key Conversion**: The hex-to-bytes conversion ensures the secret key is interpreted correctly
  HMAC Security**: Using both inner and outer hashing with different padding prevents length extension attacks
  Message Integrity**: Including the URL and request body in the hash ensures the request hasn't been tampered with

  Thank You, Perfect!

  Visit my profile for other free business automations. And if you're looking for dedicated software development or custom n8n workflow solutions, don't hesitate to reach out at developers@sailingbyte.com or on sailingbyte.com!

nodes_used:
  ["n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.stopAndError","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.stopAndError","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.removeDuplicates","n8n-nodes-base.filter","n8n-nodes-base.splitOut","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.slack","n8n-nodes-base.set","n8n-nodes-base.slack","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.gmail","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.slack","n8n-nodes-base.set","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail","n8n-nodes-base.stickyNote","n8n-nodes-base.merge"]

workflow_json_compressed:
  [encoded data, 19204 characters]

metadata_json:
  {"categories":["Data Processing","Communication","Accounting","Legal"],"complexity":"medium","use_cases":["track overdue invoices","send automated payment reminders","generate escalation notices"],"estimated_setup_minutes":15,"required_services":["iFirma","Gmail","PostGrid","Slack"],"key_features":["automated invoice tracking","escalation based reminders","conditional logic for payment status"],"target_audience":["accountants","admins","finance managers"]}


name: Send multi-stage overdue invoice reminders with NocoDB, Gmail and PostGrid
author_name: Łukasz
author_username: lukaszpp
categories: []
created_at: 2026-03-25T12:46:14.762Z
updated_at: 2026-03-25T12:46:14.762Z
url: https://n8n.io/workflows/14313
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  What Is This?

  This workflow is an automated invoice payment tracking and vindication system that monitors unpaid and overdue invoices stored in NocoDB, then sends escalating reminders to clients based on configurable time thresholds. The system handles three escalation levels: friendly payment reminders before/at due date, formal warning notices for overdue invoices, and legal action notifications for severely overdue accounts.

  It works with any accounting system that can populate a NocoDB database, making it ideal for businesses using custom invoicing systems, international accounting software, or multiple invoice sources.

  Who Is It For?

  Designed for small to medium-sized businesses, IT service providers, consulting agencies, and accounting departments that need professional payment enforcement without expensive debt collection services. This workflow is particularly valuable for companies experiencing cash flow challenges due to late-paying clients.

  B2B service providers, software development agencies, consultancies, and freelancers managing multiple client invoices will benefit from automated, multi-channel payment reminders that maintain professional relationships while firmly enforcing payment terms.

  Whether you're tracking 5 high-value contracts or managing 200+ monthly invoices, this automation ensures no payment deadline slips through the cracks. It's especially useful for businesses operating internationally or using accounting systems without built-in reminder features.

  How Does It Work?

  This comprehensive invoice vindication automation consists of four main stages:

  1. Configuration & Company Details Setup  
  Defines critical parameters including escalation timeframes (Days before Due Date for reminder, Days after Due Date for warning, Days after Due Date for Legal action), and toggles for notification channels (Send Email, Send Physical Letter). The workflow also captures complete company information for professional correspondence including banking details, tax identification numbers, and contact information.



  2. Invoice & Client Data Retrieval  
  Connects to NocoDB to fetch all invoices with their associated client information. The workflow uses a Split in Batches node to process each invoice individually, retrieving complete client details (name, email, full address) from the linked Clients table. This two-step fetch ensures all necessary data is available for personalized communications.



  3. Intelligent Filtering & Categorization  
  Invoices are filtered to remove already-paid invoices (checking both Invoice Status ≠ "Paid" and Payment Date = empty), then categorized into three escalation groups:

  Today/Upcoming Invoices**: Due date is today OR X days away → Sends friendly payment reminder
  Overdue for Warning**: Exactly Y days past due date → Sends formal warning about potential legal action
  Overdue for Legal Notice**: Exactly Z days past due date → Sends notice of commenced legal proceedings



  4. Multi-Channel Notification Dispatch  
  For each escalation level, the workflow generates professionally formatted HTML content with complete invoice details, payment instructions, and appropriate urgency levels. Notifications are dispatched via:

  Email** (Gmail): Professional HTML emails with company branding
  Physical Mail** (PostGrid): Printed letters delivered via postal service for serious escalations
  Slack**: Internal team notifications for tracking sent reminders



  Each notification includes invoice number, amounts, due dates, payment details (bank account, SWIFT code), and clear call-to-action based on escalation level.

  How To Set It Up?

  Prerequisites:

  An active N8N account or self-hosted instance
  A NocoDB instance (hosted at your domain or using NocoDB Cloud)
  A Slack workspace with bot permissions
  (Optional) Gmail account configured for sending emails
  (Optional) PostGrid account for physical mail delivery

  Step 1: Create NocoDB Tables

  Execute the "Create Tables" manual trigger to automatically create two tables in your NocoDB base:

  Invoices Table with fields:

  Invoice Id (SingleLineText)
  Amount (Currency, PLN)
  Issue Date (Date)
  Due Date (Date)
  Invoice Status (SingleSelect: Unpaid, Partial, Paid, Overdue)
  Vindication Status (SingleSelect: None, Reminder Sent, Warning Sent, Legal Notice Sent)
  Reminder Sent Date, Warning Sent Date, Legal Notice Sent Date (Date fields)
  Payment Date (Date)




  Clients Table with fields:

  Name (SingleLineText)
  Email (Email)
  Country Code, Province, City, Postal Code, Address (SingleLineText)




  The workflow automatically creates a one-to-many relationship between Clients and Invoices.

  Step 2: Configure NocoDB Connection

  In the "NocoDB Config" node:

  Base ID**: Your NocoDB base identifier (e.g., pksfpoc943gwhvy)
  NocoDB Url**: Your NocoDB instance URL (e.g., https://noco.sbyte.eu/)

  Update all NocoDB credentials to point to your instance using the "NocoDB Token" authentication.

  Step 3: Set Escalation Timing

  In the "Config" node, configure:

  Days before Due Date for reminder**: How early to send friendly reminders (default: 7 days before)
  Days after Due Date for warning**: When to escalate to formal warning (default: 7 days overdue)
  Days after Due Date for Legal action**: When to send legal notices (default: 10 days overdue)

  Critical: Ensure "Days after Due Date for Legal action" &gt; "Days after Due Date for warning" to maintain proper escalation sequence. Setting legal action earlier than warning will confuse clients.

  Step 4: Configure Notification Channels

  In the "Config" node:

  Send Email**: Toggle to enable/disable Gmail notifications
  Send Physical Letter**: Toggle to enable/disable PostGrid physical mail

  Step 5: Add Your Company Details

  In the "Your Company Details" node, provide:

  Company Name, Email, Phone
  Full address (Country Code, City, Street, Postal Code)
  Banking information (Bank Name, Bank Account Number, SWIFT Code)
  Tax Identification Number (TIN)

  This information appears in all correspondence and legal notices.

  Step 6: Configure Credentials

  Set up the following credentials:

  NocoDB API Token**: From your NocoDB account settings
  Gmail OAuth2**: For email delivery (if Send Email = true)
  PostGrid API**: For physical letter delivery (if Send Physical Letter = true)
  Slack OAuth2**: For internal team notifications

  Step 7: Customize Slack Channel

  In the "Send a message" node, update the Slack channel ID to your desired notification channel.

  Step 8: Schedule Execution

  The workflow runs automatically daily at 7:00 AM via the "Run daily" trigger node. Adjust timing in the Schedule Trigger node as needed. For testing, execute manually using the "Execute workflow" button.

  What's More?

  Professional HTML Email Templates:  
  Three distinct HTML email templates provide escalating urgency levels while maintaining professional communication standards. Each template includes:

  Company branding and letterhead
  Clear invoice details with formatting
  Payment instructions with bank details
  Appropriate tone for escalation level (friendly → formal → legal)
  Contact information for questions

  Smart Date Calculations:  
  The workflow uses N8N's DateTime functions to calculate:

  Days until due date for upcoming invoices
  Days overdue for late payments
  Exact matching for escalation thresholds (uses equals operator, not ranges)

  This ensures invoices are processed exactly once at each escalation stage, preventing duplicate notifications.

  Flexible Data Model:  
  The NocoDB schema supports tracking:

  Multiple vindication stages with dedicated date fields
  Invoice status progression (Unpaid → Partial → Overdue → Paid)
  Vindication status history (None → Reminder Sent → Warning Sent → Legal Notice Sent)
  Payment reconciliation via Payment Date field

  Multi-Format Address Handling:  
  The workflow correctly formats addresses for:

  Email recipients (standard format)
  PostGrid API (structured JSON with country codes, provinces, postal codes)
  HTML templates (human-readable format)

  Batch Processing with Error Isolation:  
  The Split in Batches node processes invoices individually, ensuring one failed notification (e.g., invalid email address) doesn't block processing of remaining invoices. Each invoice proceeds through the workflow independently.

  Conditional Notification Routing:  
  IF nodes check configuration flags before sending notifications, allowing granular control:

  Send only emails for low-cost operations
  Send only physical letters for serious escalations
  Send both for maximum impact
  Disable specific channels temporarily without modifying workflow

  Slack Notification Intelligence:  
  Slack messages include structured blocks showing:

  Email subject (escalation type)
  Invoice number and amount
  Contractor name
  Days overdue calculation
  Payment deadline and issue date

  This provides at-a-glance visibility into which invoices triggered notifications and why.

  Table Creation Automation:  
  Rather than requiring manual NocoDB table setup, the workflow includes HTTP Request nodes that programmatically create tables with exact field types, validation rules, and relationships using NocoDB's Meta API. This ensures consistent schema across deployments and eliminates manual configuration errors.

  Currency Support:  
  While defaulting to PLN (Polish Złoty), the Amount field uses NocoDB's Currency type, which can be easily changed to EUR, USD, GBP, or 150+ other currencies via the table schema without modifying workflow logic.

  Thank You, Perfect!

  Visit my profile for other free business automations. And if you're looking for dedicated software development or custom n8n workflow solutions, don't hesitate to reach out at developers@sailingbyte.com or on sailingbyte.com!

nodes_used:
  ["n8n-nodes-base.set","n8n-nodes-base.filter","n8n-nodes-base.filter","n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.filter","n8n-nodes-base.set","n8n-nodes-base.filter","n8n-nodes-base.if","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.nocoDb","n8n-nodes-base.splitInBatches","n8n-nodes-base.nocoDb","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.gmail","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.slack","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, 12932 characters]

metadata_json:
  {"categories":["Finance"],"complexity":"medium","use_cases":["Automate invoice reminders","Track payment status","Notify customers about overdue accounts","Escalate payment follow-ups","Monitor unpaid invoices"],"estimated_setup_minutes":15,"required_services":["NocoDB","Gmail","PostGrid"],"key_features":["Multi-stage email reminders","Configurable time thresholds","Escalation logic","Invoice payment tracking","Automated client communication"],"target_audience":["Accountants","Finance managers","Administrators"]}


name: Ads Factory: Generate Unlimited Length UGC AI Video Pipeline
author_name: Ghufran Barcha
author_username: ghufranbarcha
categories: []
created_at: 2026-03-25T14:49:19.262Z
updated_at: 2026-03-25T14:49:19.262Z
url: https://n8n.io/workflows/14316
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  UGC Ads Factory — Automated AI Video Pipeline                                                                                                                                                                                             
                                                                                                                                                                                                                                                
    This n8n workflow turns a script and character/setting description from Google Sheets into a complete stitched UGC-style video ad, fully automated from intake to final delivery.                                                           
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  Overview                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                              
    The workflow runs a full production pipeline in four stages:                                                                                                                                                                                
                                                                                                                                                                                                                                              
    Image Generation                                                                                                                                                                                                                     
       An AI agent creates a photorealistic selfie prompt from the character/setting description.                                                                                                                                             
       The image is generated with Kie (Nano Banana), then uploaded to Google Drive and shared.                                                                                                                                                 
                                                                                                                                                                                                                                                
    Scene Scripting                                                                                                                                                                                                                      
       The generated image is analyzed by Claude-4o-mini for visual consistency.                                                                                                                                                                
       Claude Opus then converts the user script into structured 8-second scenes with consistent visuals and environment-aware motion prompts.                                                                                                  
                                                                                                                                                                                                                                                
    Video Clip Generation                                                                                                                                                                                                                
       Each scene is sent to Kie VEO3 for video generation.                                                                                                                                                                                     
       The workflow polls until each clip is complete, then uploads clips to Google Drive and updates status per scene.                                                                                                                         
                                                                                                                                                                                                                                                
    Video Stitching                                                                                                                                                                                                                      
       After all scene clips are completed, clips are sorted and merged into one final video using fal.ai FFmpeg.                                                                                                                               
       The stitched output is uploaded to Drive, and the final links are written back to Sheets.                                                                                                                                                
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  Google Sheets Structure                                                                                                                                                                                                                  
                                                                                                                                                                                                                                              
    This workflow uses two tabs in one spreadsheet:                                                                                                                                                                                             
                                                                                                                                                                                                                                              
    Videos (campaign-level tracking)                                                                                                                                                                                                      
      Main input/output tab with script, character description, aspect ratio, and global run status (Create → Processing → Completed / Failed), plus final video links.                                                               
                                                                                                                                                                                                                                                
    Video Data (scene-level tracking)                                                                                                                                                                                                     
      One row per scene with scene script JSON, scene number, image URL, clip links, and per-scene status.                                                                                                                                      
      This tab enables robust scene retries and progress visibility.                                                                                                                                                                            
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  Triggers                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                              
    Every 30 minutes: processes new rows in Videos where LAUNCH CREATION = Create                                                                                                                                                   
    Every 15 minutes: reprocesses rows in Video Data where LAUNCH = Redo                                                                                                                                                          
    Execute Workflow Trigger: allows orchestration from another workflow                                                                                                                                                                  
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  Error Handling                                                                                                                                                                                                                           
                                                                                                                                                                                                                                              
    API nodes retry on failure with a 5-second delay                                                                                                                                                                                          
    Failed image or clip generations are written to Sheets with error details                                                                                                                                                               
    Individual failed scenes can be retried by setting LAUNCH = Redo in Video Data                                                                                                                                                      
    Final stitching runs only after verifying all required scenes are completed                                                                                                                                                               
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  External Services                                                                                                                                                                                                                        
                                                                                                                                                                                                                                              
    Kie API — image generation (Nano Banana) and video generation (VEO3)                                                                                                                                                                  
    OpenRouter (Claude Opus) — prompt engineering and scene script generation                                                                                                                                                           
    OpenAI (Claude-4o-mini) — image analysis for visual continuity                                                                                                                                                                        
    fal.ai — FFmpeg-based clip stitching                                                                                                                                                                                                  
    Google Drive — asset storage and share links                                                                                                                                                                                          
    Google Sheets — input/output control plane and status tracking                                                                                                                                                                        
                                                                                                                                                                                                                                                
    ---                                                                                                                                                                                                                                         
  Usage                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                              
    Add a row in Videos with script, character/setting description, and aspect ratio.                                                                                                                                                    
    Set LAUNCH CREATION to Create.                                                                                                                                                                                                   
    Wait for the scheduled run (or trigger from another workflow).                                                                                                                                                                           
    Track scene progress in Video Data.                                                                                                                                                                                                  
    Retrieve final video links in Videos once status is Completed.                                                                                                                                                                     
                                                                                                                                                                                                                                                
    To retry failed scenes, set scene status to Redo in Video Data.          

nodes_used:
  ["n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.stopAndError","@n8n/n8n-nodes-langchain.lmChatOpenRouter","@n8n/n8n-nodes-langchain.outputParserStructured","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.splitOut","@n8n/n8n-nodes-langchain.openAi","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.wait","n8n-nodes-base.stopAndError","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.googleDrive","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.sort","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.googleDrive","n8n-nodes-base.googleDrive","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","@fal-ai/n8n-nodes-fal.falAi","n8n-nodes-base.aggregate","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.executeWorkflowTrigger","n8n-nodes-base.googleSheets","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, 16096 characters]

metadata_json:
  {"categories":["Marketing","AI/ML","Data Processing"],"complexity":"complex","use_cases":["automated UGC video ad generation","bulk video content creation","scalable marketing ad pipelines","social media ad production"],"estimated_setup_minutes":120,"required_services":["OpenRouter","Google Drive","Spreadsheets","HTTP endpoints"],"key_features":["multi-step AI video generation","automated content scaling","template-driven ad production","UGC style video synthesis"],"target_audience":["marketers","content creators","ad ops teams"]}


name: Analyze Alertmanager incidents and post diagnostic reports to Mattermost
author_name: Sergei Byvshev
author_username: javdet
categories: []
created_at: 2026-03-26T06:43:03.646Z
updated_at: 2026-03-26T06:43:03.646Z
url: https://n8n.io/workflows/14347
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  Overview
  This workflow helps automatically analyze alerts occurring in the infrastructure and suggest solutions even before the on-duty engineer sees the alert.
  How it work
  Workflow receives alert from Alertmanager via Webhook.
  The variables required for operation are set
  Preparing a prompt for the agent containing only the data necessary for analysis
  Optional step to deduplicating duplicate alerts
  Getting the trigger condition
  The agent performs diagnostics as described in the system prompt. During operation, it can access various systems via MCP to obtain additional information.
  Search for a message in a Slack channel corresponding to a processed alert
  Send report to Slack thread.
  How to use
  Generate webhook credentials and use it in Alertmanager
  Add Alert fingerprint into Slack message template
  Set variables it SetVars node
  Add your own Rules and recomendations to system promt
  5 Run mcp servers
  Choose Slack channel with alerts

nodes_used:
  ["@n8n/n8n-nodes-langchain.agent","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.vectorStoreQdrant","@n8n/n8n-nodes-langchain.embeddingsGoogleGemini","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","@n8n/n8n-nodes-langchain.mcpClientTool","n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.mattermost","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.set","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 10164 characters]

metadata_json:
  {"categories":["DevOps"],"complexity":"medium","use_cases":["automate incident analysis","generate diagnostic reports","reduce engineer workload","proactive incident management"],"estimated_setup_minutes":30,"required_services":["Alertmanager","Mattermost","Qdrant","Google Gemini","MCP","LLM"],"key_features":["alert deduplication","alert mattermost","prompt engineering for diagnostics","diagnostic report generation"],"target_audience":["devops engineers","site reliability engineers"]}


name: Automate Birthday Wishes from Google Contacts with Multi-Platform Messaging
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2026-03-29T09:03:31.180Z
updated_at: 2026-03-29T09:03:31.180Z
url: https://n8n.io/workflows/14432
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  Who Is This For?
  This workflow is designed for individuals, families, and teams who want to automate birthday greetings for their contacts. It's particularly useful for those who maintain their contacts in Google and want to send personalized birthday wishes through multiple communication platforms without manual intervention.

  What This Workflow Does
  This workflow functions as an automated birthday reminder and greeting system that:
  Checks contacts daily to identify whose birthday it is
  Sends personalized birthday wishes through multiple platforms
  Provides voice announcements through Google Home speakers
  Handles WhatsApp verification before sending messages
  Formats dates appropriately for Bengali locale (bd)

  Key Features
  Automated Scheduling** – Runs every day at 10 AM
  Multi-Platform Messaging** – Telegram, Microsoft Teams, and WhatsApp
  Voice Announcements** – Google Home speaker integration
  Contact Management** – Google Contacts integration
  Date Formatting** – Bengali locale (bd) date formatting
  WhatsApp Verification** – Checks if contact has WhatsApp before sending
  Loop Processing** – Handles multiple birthdays on the same day

  Requirements & Setup
  Google Contacts API**: Required for accessing contact information and birthdays
  Telegram Bot API**: For sending birthday messages
  Microsoft Teams API**: For team notifications
  Rapiwa API**: For WhatsApp messaging and verification
  Home Assistant API**: For Google Home speaker integration
  Scheduled Trigger**: Set to run daily at 10 AM

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

nodes_used:
  ["n8n-nodes-base.telegram","n8n-nodes-base.splitInBatches","n8n-nodes-base.noOp","n8n-nodes-base.homeAssistant","n8n-nodes-base.microsoftTeams","n8n-nodes-base.scheduleTrigger","n8n-nodes-rapiwa.rapiwa","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.googleContacts","n8n-nodes-base.googleContacts","n8n-nodes-rapiwa.rapiwa","n8n-nodes-base.telegram","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["Communication"],"complexity":"medium","use_cases":["Automate personalized birthday greetings","Track contact birthdays","Send messages across multiple platforms"],"estimated_setup_minutes":30,"required_services":["Google Contacts","Telegram","Microsoft Teams","Rapiwa"],"key_features":["Daily contact schedule checks","Multi-platform message distribution","Conditional branching for message routing","Batch processing for contact lists"],"target_audience":["Communications administrators","Team managers","Personal users"]}


name: Analyze Google Ads search terms with AI and send wastage alerts
author_name: SpaGreen Creative
author_username: spagreen
categories: []
created_at: 2026-03-30T06:16:24.068Z
updated_at: 2026-03-30T06:16:24.068Z
url: https://n8n.io/workflows/14449
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  Who Is This For?
  This workflow is designed for Google Ads advertisers, PPC managers, and marketing teams who want to automatically monitor and optimize their search term performance. It's particularly valuable for those running brand campaigns who need to identify and eliminate wasteful ad spend on non-brand keywords.

  What This Workflow Does
  This workflow functions as an automated Google Ads performance monitoring and optimization system that:
  Fetches search term data from active Google Ads campaigns daily
  Filters out brand terms and excluded search terms automatically
  Analyzes performance metrics using AI to identify wasteful keywords
  Generates optimization recommendations for negative keyword lists
  Sends detailed reports through multiple communication platforms
  Calculates ad wastage in USD for better budget management

  Key Features
  Automated Daily Monitoring** – Runs every day at 8 AM to check campaign performance
  AI-Powered Analysis** – Uses multiple AI models (DeepSeek, OpenAI, xAI, Anthropic) for intelligent keyword categorization
  Performance Metrics Calculation** – Automatically calculates CTR, CPC, conversions, and ad wastage
  Multi-Channel Reporting** – Sends reports to Slack, Microsoft Teams, WhatsApp, and Discord
  Smart Filtering** – Automatically excludes brand terms and excluded search terms
  Cost Analysis** – Calculates total ad wastage in USD for budget optimization
  14-Day Data Window** – Analyzes search terms from the past 14 days for comprehensive insights

  Requirements & Setup
  Google Ads API**: Required for fetching campaign and search term data
  AI Model APIs**: DeepSeek, OpenAI, xAI, or Anthropic for keyword analysis
  Communication APIs**: Slack, Microsoft Teams, WhatsApp (Rapiwa), Discord for report distribution
  Scheduled Trigger**: Configured to run daily at 8 AM
  Google Ads Manager and Client IDs**: For accessing specific campaign data

  How It Works
  Data Collection: Fetches active campaigns and extracts search term data from the past 14 days
  Data Processing: Cleans and aggregates metrics by search term, campaign, and ad group
  AI Analysis: Uses AI to categorize keywords into wasteful (zero conversions) and review-worthy (has conversions)
  Report Generation: Creates structured reports with recommendations and cost analysis
  Multi-Platform Distribution: Sends formatted reports to all configured communication channels

  Support & Help
  WhatsApp**: Chat on WhatsApp
  Discord**: SpaGreen Community
  Facebook Group**: SpaGreen Support
  Website**: https://spagreen.net
  Developer Portfolio**: Codecanyon SpaGreen

nodes_used:
  ["n8n-nodes-base.slack","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.filter","@n8n/n8n-nodes-langchain.agent","n8n-nodes-base.googleAdsTool","@n8n/n8n-nodes-langchain.lmChatDeepSeek","@n8n/n8n-nodes-langchain.lmChatOpenAi","@n8n/n8n-nodes-langchain.lmChatXAiGrok","@n8n/n8n-nodes-langchain.lmChatAnthropic","n8n-nodes-base.microsoftTeams","n8n-nodes-rapiwa.rapiwa","n8n-nodes-base.discord","n8n-nodes-base.aggregate","n8n-nodes-base.splitOut","n8n-nodes-base.filter","n8n-nodes-base.googleAds","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","n8n-nodes-base.set","@n8n/n8n-nodes-langchain.modelSelector","@n8n/n8n-nodes-langchain.outputParserStructured","n8n-nodes-base.code"]

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

metadata_json:
  {"categories":["Marketing","Data Processing","AI/ML"],"complexity":"medium","use_cases":["automate search term monitoring","identify wasteful ad spend","analyze PPC performance","optimize Google Ads campaigns"],"estimated_setup_minutes":15,"required_services":["Google Ads","DeepSeek","xAI Grok"],"key_features":["AI-powered search term analysis","automated wastage detection","wastage alert notifications","campaign performance tracking"],"target_audience":["PPC managers","marketing teams","Google Ads advertisers"]}


name: Summarize Nextcloud documents with IONOS AI Model Hub for sovereign AI
author_name: Fabrice
author_username: fwurtz
categories: []
created_at: 2026-04-01T08:52:48.616Z
updated_at: 2026-04-01T08:52:48.616Z
url: https://n8n.io/workflows/14544
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:21
description:
  This n8n template shows you how to automate document summarization while keeping full digital sovereignty. By combining Nextcloud for file storage and the IONOS AI Model Hub, your sensitive documents stay on European infrastructure—fully outside US CLOUD Act jurisdiction.

  Use cases

  Daily briefings: Automatically summarize lengthy reports as soon as your team uploads them.
  Meeting notes: Turn uploaded transcripts into clear, actionable bullet points—hands-free.
  Research management: Get instant summaries of academic papers or PDFs the moment they land in your research folder.

  How it works

  A Schedule Trigger kicks off the workflow at regular intervals. It calls the Nextcloud List a Folder node to retrieve all files in your chosen directory.

  A Code node then acts as a filter, checking each file's last-modified timestamp and letting through only files changed within the past 24 hours.

  Filtered files are pulled into the workflow via the Nextcloud Download a File node. From there, the Summarization Chain takes over: a Default Data Loader and Token Splitter prepare the content, and the IONOS AI Model Hub Chat Model generates a concise, structured summary.

  The final output is saved back to your Nextcloud instance as a note for your team.

  Good to know

  Nextcloud setup: Make sure your Nextcloud credentials include both read and write permissions—one to download source files, one to upload the generated summary.

  Model selection: The IONOS AI Model Hub currently offers several LLMs, including Mistral Small 24B and Nemo. For document summarization, Mistral Small 24B  strikes the best balance between output quality and speed. 

  How to set it up

  Set your folder path in the List a Folder node to the directory you want to monitor.
  In the New Files Only code node, adjust the 24 value to change how far back the workflow looks.
  Open the Summarization Chain and define your output format—for example: "Summarize this document in 3 bullet points."

  Requirements

  Nextcloud account for file hosting and retrieval
  IONOS Cloud account to access the AI Model Hub

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","@n8n/n8n-nodes-langchain.chainSummarization","@n8n/n8n-nodes-langchain.documentDefaultDataLoader","@n8n/n8n-nodes-langchain.textSplitterTokenSplitter","n8n-nodes-base.nextCloud","n8n-nodes-base.nextCloud","@ionos-cloud/n8n-nodes-ionos-cloud.ionosCloudChatModel","n8n-nodes-base.nextCloud","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

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

metadata_json:
  {"categories":["AI/ML","Data Processing"],"complexity":"medium","use_cases":["Daily briefings","Meeting notes","Research management"],"estimated_setup_minutes":15,"required_services":["Nextcloud","IONOS AI Model Hub"],"key_features":["Sovereign AI processing","Automated document summarization","European data residency"],"target_audience":["IT administrators","Research teams","SME managers"]}


name: Fetch daily YouTube videos from top AI automators and log them to Google Sheets
author_name: Koulikas Giannis
author_username: giannis
categories: []
created_at: 2026-04-03T16:42:08.233Z
updated_at: 2026-04-03T16:42:08.233Z
url: https://n8n.io/workflows/14677
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:21
description:
  This automation runs daily to fetch the latest videos on Youtube from leading AI automators, such as:

  Nate Herk
  Nick Saraev
  Jack Roberts
  Cole Medin
  Nick Puru
  Ed Hill
  Jason Cooperson
  Manthan Patel
  Nick Daily Updates

  This can be a great asset for keeping up with daily updates and new strategies in the field of AI automation, especially when combined with my "YT Video Analyzer" workflow, which is designed to intelligently analyze each of these newly retrieved videos.

  You can find the "YT Video Analyzer" workflow template in my profile.

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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.googleSheets","n8n-nodes-base.removeDuplicates","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.youTube","n8n-nodes-base.merge","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.youTube","n8n-nodes-base.set"]

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

metadata_json:
  {"categories":["Marketing","Data Processing","Content Management"],"complexity":"medium","use_cases":["track industry updates","collect video metadata","maintain content logs","monitor competitor activities"],"estimated_setup_minutes":10,"required_services":["YouTube","Google Sheets"],"key_features":["scheduled execution","duplicate removal","data logging","workflow chaining"],"target_audience":["content creators","analysts","knowledge managers"]}


name: Generate LinkedIn leads using Google Sheets and Serper API
author_name: Koulikas Giannis
author_username: giannis
categories: []
created_at: 2026-04-03T16:54:36.916Z
updated_at: 2026-04-03T16:54:36.916Z
url: https://n8n.io/workflows/14682
scraped_at: 2026-05-02 08:04:49
metadata_generated_at: 2026-05-02 08:36:22
description:
  The automation starts by retreiving the unused queries from a sheet, executes queries in the web using Serper API and extracts linkedin profiles of decision makers.

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.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.wait","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.googleSheets","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.filter","n8n-nodes-base.stopAndError"]

workflow_json_compressed:
  H4sIAAAAAAAAE62X227bRhCGX4XQtTfY88F3aZIWBtLUtdP2ovDFHmZlwjKpUhQcI/C7d8jEoWVRMiXnTofl7Lf/zPw7/Dqr6gSr2em/X2dlmp3OvAbtqU/EJ6eIzMwSz2UgUTlmLI/aKjU7mVX+FnD1ZVvGm/viU90C/tjeL7sfK1uRPioJfgVvVv2a70uW9apsy7rCDYmQkp4wzfQV/u4bjNhCgyhfZ7GuWqhajDV7+Bb2b/ynf4w9nHwnNS4FDhBIECYQKagknuIny42h0XLILI6SssNRubUdqpbHoVKjo9JJEkmjJhKyIY5pSTSjVPtgPBV6FJUfgSrpa1AVkyJEpDRgPJEuMxICd8Qwx7gUlmVhRlHF4ajMCY2olh6pqvBCp2CIyN5iAZhIXPCRJKuty0lwS+0oqjwCVVL7ilp1kTMlQZLcq4oiEu9zINpEQbEcNLfjtaoOR7WCv0JUH72WNFuSjXWYf0x94IwRL5PDEqAYebxU9REGYOUrSKOxAqiXxFEUtie1lGcijE0UK0JwKkdJzcGk+jWcAYJywUUSFEQijU4kRG6IdRFsUNJiyw2cv/tq7RfFZeubdifnbb/oc1PO59BsWVWXf+P4c9o9jRSt8TwB8VmEjhDTrZBQcmkhJc4cDQPhL76N18V5U0dYrQpFi3M/xxtkp6bLRdmeVf1T/bKNtrIW2wr79CVYMcjJXNRBcoLKYSspYYg3XBDtBPaoUIZSN8D+48u2yHVTXPgWio/lbblb1Tvf/7nBx51+5LuDcF3XN2cdRIPRyKKLRpZ+verLZZrWJnrnqFLEJYX4gCXhfLRYtSrSkKkBmwb895DWqF/s4FHxXC5gVYT74q+LjzuPEfHjs2MoTSepzIfmSjx4nVDb2HlrMECCw6mASR6Ec5Jn8UTlC/Cp+PClxP6p5gNoburb4vIaoN1dHvO6ni/gx6INexB6ErUcCjkrK7VUhKVAibRYJU5Z9FqJhew4EwzyQP1rucCIxSe4+4F8iKiM8Wminsz84s7fr/5Yt8t1+963fnbaNmsY7lzZXVgaG85yHA+SZHiR4QGU1wHdg9ko6YD9G7TFJfgGm/BdU+KmpT9GXa6MnuQTg7wpG8x9SgSoRs5I0dOyQM4oEgQnHQo8cJ7Xq7Zoa2y66gbSWfUI/fb8bCfvddsuL+C/Nay6TqyrD01TN105otGW1Rr67990fJ4N06eDb409W8d5M5qQ7BerISMUgqeWQdebeLdI6YkXSZBAuZaaU4F/Dif98KVtfGwfq6joIx5QSaa7B39OJamkXUQ7Uby7EyEqYq3PJEEyhgHXWfOB+901xJveHSf1QJk3uSc3wIAXGbUgEsleo6sYHN6djjhhGoFG7owJ6Qne2+USqrTB1tXT0YZyuJ9YajJ4h8MQYK1LytEFlQPCKE9WQXIpPrm63zXQ+7SflxV+SI8F/+cae/Qwb+GM20nNOWhLgxMi6UByREKpUyYOZzZCU8Q3IcSWnG5533fCC1itF3s0zf3q54xCTRs0+Jvh9uaY8xAsDsKJ4qiRKSM2aEqMtFQmRbNWT0aNz9Dc9loWdVV884Ldo1u9fFulx0Ub1iDw+uN0e3bfvqVxBVpNBbF7th/xNuYx/H7ryy4ovi53m79kx/3qk1lZJfgyO6UPV1e459i9Mxb5pfYcDT6GMxb8hQIYjT02TI3F3u+Ho6FHHxmLPWki2if7sxOPCj+1kUf32TEfP9no6mTYa9ItObrPjvIYO9BEJ93a5gnnS1P/KOK+ZI1xHjJHjm64T82xDfe+HuyTY58zjZLtT8EY21GKv1S6P22jCanaYzuTDe3h4X+goD/AohQAAA==

metadata_json:
  {"categories":["Lead Generation"],"complexity":"medium","use_cases":["extract LinkedIn profiles from search queries","identify decision makers for outreach","automate web research using Google Sheets"],"estimated_setup_minutes":15,"required_services":["Google Sheets","Serper API"],"key_features":["dynamic query execution from spreadsheets","web search via external APIs","data filtering by profile type","batch processing of search results"],"target_audience":["sales teams","marketing professionals","business development"]}


name: Auto-post trending X tweets with Gemini AI images, FLUX and Buffer
author_name: Afigo Sam
author_username: sampidia
categories: []
created_at: 2026-04-06T01:38:32.215Z
updated_at: 2026-04-06T01:38:32.215Z
url: https://n8n.io/workflows/14768
scraped_at: 2026-05-02 08:04:50
metadata_generated_at: 2026-05-02 08:36:22
description:
  This n8n workflow automatically scrapes X (Twitter) trending topics for any country, generates a pidgin-style tweet and a matching AI image for each trend, then schedules and posts them to X via Buffer — all on a custom schedule.

  Perfect for social media managers, content creators, and personal brands who want to stay relevant on X without manually tracking trends or writing posts every day.

  Good to know
  The workflow runs 3 times daily by default (8:30am, 12:30pm, 4:30pm). You can adjust the schedule in the Schedule Trigger node to suit your timezone.
  Trends already used in the last 24 hours are automatically skipped to avoid repetition.
  If the primary Apify scraper fails, the workflow falls back to Gemini AI search to fetch trends — so it rarely runs dry.
  FLUX.1-schnell on HuggingFace is a free-tier model but has rate limits. For higher volume, consider upgrading your HuggingFace plan.

  How it works

  A Schedule Trigger fires 3 times a day and kicks off the Apify Twitter Trending Topics Scraper for your chosen country (default: Nigeria).
  If Apify fails or returns no data, Gemini AI searches for current trending topics as a fallback.
  Already-used trends are fetched from an n8n Data Table and filtered out so the same trend is never posted twice within 24 hours.
  2 unused trends are randomly picked and passed into a loop.
  For each trend, Gemini 2.5 Flash generates a short, engaging pidgin-English tweet (≤275 characters) grounded in live context via Google Search.
  FLUX.1-schnell on HuggingFace generates a photorealistic image matching the trend topic.
  The image is uploaded to Dropbox and a temporary public URL is extracted.
  The tweet and image are posted to X via Buffer MCP on automatic scheduling.
  The used trend is saved back to the Data Table with a timestamp to prevent reuse.

  How to use

  Change the country field in both Apify nodes to scrape trends for your own country.
  Edit the tweet prompt in the Generate Tweet with Gemini node to match your personal tone, language, or brand voice.
  Edit the FLUX image prompt in the Generate Image with FLUX node to change the visual style of generated images.
  Run the Create a data table node once manually to set up the trend history table, then disable it.
  Replace YOUR_BUFFER_CHANNEL_ID in the Post to X via Buffer node with your actual Buffer channel ID.

  Requirements

  Apify account with the Twitter Trending Topics Scraper actor
  Google Gemini API credential
  HuggingFace account with an API token (HTTP Bearer Token credential)
  Dropbox account (OAuth2)
  Buffer account connected to your X profile

  Customising this workflow

  Swap Nigeria for any country supported by the Apify actor to target a different audience.
  Replace the pidgin-English tweet prompt with any language or tone — formal English, Yoruba slang, Spanish, etc.
  Replace Dropbox with Google Drive or S3 if you prefer a different image storage provider.
  Increase the number of picked trends from 2 to more in the Pick Trend node to post more tweets per run.

  👋 Need help or want to customize this workflow?

  📺 Contact: Fiverr
  📩 Consultation: Book Appointment

nodes_used:
  ["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.dataTable","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.dataTable","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","@apify/n8n-nodes-apify.apify","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.httpRequest","n8n-nodes-base.dropbox","@n8n/n8n-nodes-langchain.googleGemini","@n8n/n8n-nodes-langchain.mcpClient","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.code","@apify/n8n-nodes-apify.apify","n8n-nodes-base.if","n8n-nodes-base.dataTable","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.mcpClient","@n8n/n8n-nodes-langchain.mcpClient","n8n-nodes-base.stickyNote","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.stickyNote","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.merge","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 14272 characters]

metadata_json:
  {"categories":["Social Media","Content Creation"],"complexity":"medium","use_cases":["scrape trending topics","generate AI content","automate social posting"],"estimated_setup_minutes":30,"required_services":["X / Twitter","Buffer","Google Gemini","FLUX"],"key_features":["trending topic scraping","AI image generation","natural language generation","scheduled posting","pidgin English style"],"target_audience":["social media managers","content creators"]}


