by Tom
This is the workflow powering the n8n demo shown at StrapiConf 2022. The workflow searches matching Tweets every 30 minutes using the Interval node and listens to Form submissions using the Webhook node. Sentiment analysis is handled by Google using the Google Cloud Natural Language node before the result is stored in Strapi using the Strapi node. (These were originally two separate workflows that have been combined into one to simplify sharing.)
by Dhrumil Patel
This n8n workflow template is designed to route user input to specialized agents (like a Reminder Agent, Email Agent, etc.) using a structured output from a language model. Here's a complete description of what it does and how each part works: 🔁 Workflow Purpose: This template receives a user's request via Webhook, processes it using an LLM, extracts structured data like the agent name and user query, and routes the input to the appropriate sub-workflow (agent) based on the specified agent type. 🧩 Workflow Breakdown: 1. Webhook (Trigger) Node: Webhook Purpose: Accepts a POST request from any frontend or API source. It contains the raw user input. 2. GPT Model (LLM Inference) Node: GPT 4o Mini Purpose: Interprets the user input and determines: Which agent should handle it (e.g., "Reminder Agent", "Email Agent", etc.) The actual user request (in structured format) 3. Auto-Fixing Output Parser Node: Auto-fixing Output Parser Purpose: Ensures that the output from the LLM matches the expected structure. If there's a mismatch, it automatically corrects it using a re-prompt. 4. Structured Output Parser Node: Structured Output Parser Purpose: Converts the language model's response into a strict JSON structure with keys like: "Agent Name" "user input" "sessionID" 5. Agent Router Node: Switch ("Agent Route") Purpose: Based on "Agent Name", it routes the input to one of the following sub-workflows: 📅 Reminder Agent 📧 Email Agent 🧾 Document Agent 🤝 Meeting Agent 6. Sub-Workflow Call (Execute Workflow) Each agent is implemented as a separate n8n workflow: The input is forwarded to the selected agent. For example, if "Agent Name" is "Reminder Agent", the workflow "Reminder Agent" is called with "user input". 7. Webhook Response After the sub-agent workflow finishes, a Respond to Webhook node sends the output back as an HTTP response. ✅ Key Features: Fully modular and extensible LLM-driven routing using OpenRouter GPT-4o Auto-corrects structured output errors Clean separation of concerns (agent logic is decoupled in sub-workflows) Easily add more agents by updating the switch logic 📦 Use Case Examples: User says: “Remind me to call my mom tomorrow.” → Routed to Reminder Agent User says: “Send an email to the HR team.” → Routed to Email Agent User says: “Schedule a meeting with John next week.” → Routed to Meeting Agent
by Pablo
Get Scaleway Server Info with Dynamic Filtering Description This workflow is designed for developers, system administrators, and DevOps engineers who need to retrieve and filter Scaleway server information quickly and efficiently. It gathers data from Scaleway instances and baremetal servers across multiple zones and is ideal for: Quickly identifying servers by tags, names, public IPs, or zones. Automating server status checks in production, staging, or test environments. Integrating Scaleway data into broader monitoring or inventory systems. High-Level Steps Webhook Trigger:** Receives an HTTP POST request (with basic authentication) containing the search criteria (search_by and search). Server Data Collection:** Fetches server data from Scaleway’s API endpoints for both instances and baremetal servers across defined zones. Data Processing:** Aggregates and normalizes the fetched data using a Code node with helper functions. Dynamic Filtering:** Routes data to dedicated filtering routines (by tags, name, public_ip, or zone) based on the input criteria. Response:** Returns the filtered data (or an error message) via a webhook response. Set Up Steps Insert Your Scaleway Token: In the “Edit Fields” node, replace the placeholder Your personal Scaleway X Auth Token with your Scaleway API token. Configure Zones: Review or update the zone lists (ZONE_INSTANCE and ZONE_BAREMETAL) to suit your environment. Send a Request: Make a POST request to the workflow’s webhook endpoint with a JSON payload, for example: { "search_by": "tags", "search": "Apiv1" } View the Results: The workflow returns a JSON array of servers matching your criteria, including details like name, tags, public IP, type, state, zone, and user.
by Eduard
Are you a visual thinker working with n8n? 🎨 View and understand workflow structures at a glance with this template! Built with mermaid.js, Bootstrap 5 and AXAJ to create an interactive web page displaying n8n workflows as flowcharts. 🌟 Perfect for documentation, presentations, or just getting a clearer picture of your automation processes. Need customization help? Reach out to Eduard! Benefits 📊 Instant workflow visualization 📱 Responsive design 🔗 Direct links to n8n workflows 🧩 Special shapes for different node types 🚫 Disabled node indication 🔒 No external dependencies – just paste the workflow and call the webhook 🛠️ Easily customizable – enhance the JS script or add custom styling ⚠️ Important note for cloud users ⚠️ Since the cloud version doesn't support environmental variables, please make the following changes in the CONFIG node: Update the instance_url variable: Enter your n8n URL instead of {{$env["N8N_PROTOCOL"]}}://{{$env["N8N_HOST"]}} Change the webhook_path to simply "webhook" instead of {{$env["N8N_ENDPOINT_WEBHOOK"] || "webhook"}} 🌟 Examples Multiple flowcharts on a single page: Several shapes for different nodes: Langchain nodes with special connections styling:
by Arnaud MARIE
Replicate Line Items on New Deal in HubSpot Workflow Use Case This workflow solves the problem of manually copying line items from one deal to another in HubSpot, reducing manual work and minimizing errors. What this workflow does Triggers** upon receiving a webhook with deal IDs. Retrieves** the IDs of the won and created deals. Fetches** line items associated with the won deal. Extracts** product SKUs from the retrieved line items. Fetches** product details based on SKUs. Creates** new line items for the created deal and associates them. Sends** a Slack notification with success details. Step up steps Create a HubSpot Deal Workflow 1.1 Set up your trigger (ex: when deal stage = Won) 1.2 Add step : Create Record (deal) 1.3 Add Step : Send webhook. The webhook should be a Get to your n8n first trigger. Set two query parameter : deal_id_won as the Record ID of the deal triggering the HubSpot Workflow deal_id_create as the Record ID of the deal created above. Click Insert Data -> The created object Set up your HubSpot App token in HubSpot -> Settings -> Integration -> Private Apps Set up your HubSpot Token integration using the predefined model. Set up your Slack connection Add an error Workflow to monitor errors
by Kurt Bijl
🎬 Social Media Content Generator Workflow Overview Automated social media content creation from video transcripts 🎯 Trigger: Airtable Webhook Action**: Receives webhook from Airtable automation Data**: RecordId and action type (e.g., "post-ig") Purpose**: Starts the content generation pipeline 📊 Step 1: Fetch Record Node**: Airtable (Get Record) Action**: Retrieves full record data using RecordId Data**: Name, transcript, and other fields 📁 Step 2: Create Google Drive Folder Node**: Google Drive (Create Folder) Action**: Creates blue folder in /tutorials directory Name**: Uses record Name field Updates**: Stores folder ID back to Airtable 🤖 Step 3: AI Content Analysis Node**: AI Agent with Google Gemini 2.5 Flash Input**: Video transcript from Airtable Structured Output**: JSON with all social formats: YouTube title & description YouTube thumbnail text Twitter thread (array) LinkedIn post Instagram caption TikTok caption YouTube Shorts caption Relevant tags 💾 Step 4: Save Transcript File Node**: Google Drive (Create from Text) Action**: Saves transcript as text file Location**: Inside the created folder Name**: Uses record Name field 📋 Step 5: Update Airtable Results Node**: Airtable (Update Record) Data**: All AI-generated social media content Special**: Twitter thread array joined with newlines 🎯 Result: Complete social media content suite ready for multi-platform publishing, organized in Google Drive with all data stored in Airtable.
by lin@davoy.tech
Are you looking to create a counseling chatbot that provides emotional support and mental health guidance through the LINE messaging platform ? This guide will walk you through connecting LINE with powerful AI language models like GPT-4 to build a chatbot that supports users in navigating their emotions, offering 24/7 conversational therapy and accessible mental health resources . By leveraging LINE's webhook integration and Azure OpenAI , this template allows you to design a chatbot that is both empathetic and efficient, ensuring users receive timely and professional responses. Whether you're a developer, counselor, or business owner, this guide will help you create a customizable counseling chatbot tailored to your audience's needs. Who Is This Template For? Developers who want to integrate AI-powered chatbots into the LINE platform for mental health applications. Counselors & Therapists looking to expand their reach and provide automated emotional support to clients outside of traditional sessions. Businesses & Organizations focused on improving mental health accessibility and offering innovative solutions to their users. Educators & Nonprofits seeking tools to provide free or low-cost counseling services to underserved communities. How this work? Line Webhook to receive new message Send loading animation in Line Check if the input is text or not Send the text as prompt in chat model (GPT 4o) Reply the message to user (you'll need 'edit field' to format it before reply) Pre-Requisites You have access to the LINE Developers Console. An Azure OpenAI account with necessary credentials. Set-up To receive messages from LINE, configure your webhook: Set up a webhook in LINE Developer Console. Copy the Webhook URL from the Line Chatbot node and paste it into the LINE Console. Ensure to remove any 'test' part when moving to production. The loading animation reassures users that the system is processing their request. Authorize using header authorization Message Handling Use the Check Message Type IsText? node to verify if the incoming message is text. If the message type is text, proceed with ChatGPT processing; otherwise, send a reply indicating non-text inputs are not supported. AI Agent Configuration Define the system message within the AI Agent node to guide the conversation based on desired interaction principles. Connect the Azure OpenAI Chat Model to the AI Agent. Formatting Responses Ensure responses are properly formatted before sending them back to the user. Reply Message Use the ReplyMessage - Line node to send the formatted response. Ensure proper header authorization using Bearer tokens.
by Rajneesh Gupta
IP Reputation Check & Threat Summary using Splunk + VirusTotal + AlienVault + n8n This workflow automates IP reputation analysis using Splunk alerts, enriches data via VirusTotal and AlienVault OTX, and generates actionable threat summaries for SOC teams — all without any coding. What It Does When a Splunk alert contains a suspicious IP: Ingests the IP** from the Splunk alert via webhook. Performs dual threat enrichment** using: VirusTotal IP reputation & tags. AlienVault OTX pulses, reputation & WHOIS. Merges & processes** threat intel data. Generates a rich HTML summary** for analyst review. Routes action based on severity**: Sends Slack alert for suspicious IPs. Creates an incident in ServiceNow. Emails a formatted HTML report to the SOC inbox. Tech Stack Used Splunk** – SIEM alert source VirusTotal API** – Reputation check & analysis stats AlienVault OTX API** – Community threat intel & pulse info n8n** – For orchestration, merging, summary generation Slack, Gmail, ServiceNow** – For SOC notifications and ticketing Ideal Use Case Perfect for security teams wanting to: Automatically validate IP reputation from SIEM logs Get quick context from multiple threat feeds Generate email-ready reports and escalate high-risk IPs Included Nodes Webhook (Splunk) Function nodes for IOC extraction and intel processing HTTP Request (VirusTotal & AlienVault) Merge + Switch nodes for conditional logic Gmail, Slack, ServiceNow integration Tips Add your VirusTotal and AlienVault credentials in n8n's credential manager. Use the Switch node to route based on your internal threat score logic. Easily extend this to include AbuseIPDB or GreyNoise for deeper enrichment.
by CustomJS
This n8n workflow illustrates how to convert PDF files into text with the PDF Toolkit from www.customjs.space. @custom-js/n8n-nodes-pdf-toolkit Notice Community nodes can only be installed on self-hosted instances of n8n. What this workflow does Change** the requested HTML to PDF.. Extract** text from the PDF. Use** a Code node to handle URLs that point to PDF files. Convert** the PDF to text. Requirements Self-hosted** n8n instance. CustomJS API key** for converting PDF to text. HTML** Data to convert PDF files. Code node** for handling URL that indicates PDF file. Workflow Steps: Manual Trigger: Runs with user interaction. HTML to PDF: Request HTML Data Convert HTML to PDF Convert PDF to Text: Convert the generated Text from PDF Usage Get API key from customJS Sign up to customJS platform. Navigate to your profile page Press "Show" button to get API key Set Credentials for CustomJS API on n8n Copy and paste your API key generated from CustomJS here. Design workflow A Manual Trigger for starting workflow. HTTP Request Nodes for downloading PDF files. Code node for handling URL that indicates PDF file. Convert PDF to Text. You can replace logic for triggering and returning results. For example, you can trigger this workflow by calling a webhook and get a result as a response from webhook. Simply replace Manual Trigger and Write to Disk nodes.
by Friedemann Schuetz
This n8n workflow template uses community nodes and is only compatible with the self-hosted version of n8n. Welcome to my Wikipedia Podcast Telegram Bot Workflow! This workflow creates an intelligent Telegram bot that transforms Wikipedia articles into engaging 5-minute podcast episodes using natural language queries and voice messages. What this workflow does This workflow processes incoming Telegram messages (text or voice, e.g. "Berlin") and generates professional podcast content about any Wikipedia topic (e.g. "Berlin", "Shakespeare", etc.). The AI agent researches the requested subject, creates a structured podcast script, and delivers it as high-quality audio directly through Telegram. Key Features: Voice message support (speech-to-text and text-to-speech) Wikipedia research integration for accurate content Professional podcast structure (intro, main content, outro) Natural-sounding AI voice synthesis Conversational and educational tone optimized for audio consumption This workflow has the following sequence: Telegram Trigger - Receives incoming messages (text or voice) from users via Telegram bot Text or Voice Switch - Routes the message based on input type (text message vs. voice message) Voice Message Processing (if voice input): Retrieval of voice file from Telegram Transcription of voice message to text using OpenAI Whisper Text Message Preparation (if text input) - Prepares the text message for the AI agent Wikipedia Podcast Agent - Core AI agent that: Researches the requested topic using Wikipedia tool Creates a professional 5-minute podcast script (600-750 words) Follows structured format: intro, main content, outro Uses conversational, accessible, and enthusiastic tone ElevenLabs Text to Speech - Converts the podcast script into natural-sounding audio using AI voice synthesis Send Voice Response - Delivers the generated podcast audio back to the user via Telegram Requirements: Telegram Bot API**: Documentation Create a bot via @BotFather on Telegram Get bot token and configure webhook Anthropic API** (Claude 4 Sonnet): Documentation Used for AI agent processing and podcast script generation Provides Wikipedia research capabilities OpenAI API**: Documentation Used for speech transcription (Whisper model) ElevenLabs API**: Documentation Used for high-quality text-to-speech generation Provides natural-sounding voice synthesis Important: The workflow uses the Wikipedia tool integrated with Claude 4 Sonnet to ensure accurate and comprehensive research. The AI agent is specifically prompted to create engaging, educational podcast content suitable for audio consumption. Configuration Notes: Update the Telegram chat ID in the trigger for your specific bot Modify the voice selection in ElevenLabs for different narrator styles The system prompt can be customized for different podcast formats or target audiences Supports both individual users and can be extended for group chats Feel free to contact me via LinkedIn, if you have any questions!
by Baptiste Fort
Still manually copy-pasting your Tally form responses? What if every submission went straight into Airtable — and the user got an automatic email right after? That’s exactly what this workflow does. No code, no headache — just a simple and fast automation: Tally → Airtable → Gmail. STEP 1 — Capture Tally Form Responses Goal Trigger the workflow automatically every time someone submits your Tally form. What we're setting up A webhook that catches form responses and kicks off the rest of the flow. Steps to follow Add a Webhook node Parameter : Value Method : POST Path : formulaire-tally Authentication : None Respond : Immediately Save the workflow → This will generate a URL like: https://your-workspace.n8n.cloud/webhook-test/formulaire-tally 💡 Use the Test URL first (found under Parameters > Test URL) Head over to Tally Go to your form → Form Settings > Integrations > Webhooks Paste the Test URL into the Webhook field Enable the webhook ✅ Submit a test entry → Tally won’t send anything until a real submission is made. This step is required for n8n to capture the structure. Expected output n8n receives a JSON object containing: General info (IDs, timestamps, etc.) A fields[] array with all the form inputs (name, email, etc.) Each field is nicely structured with a label, key, type, and most importantly, a value. Perfect foundation for the next step: data cleanup. STEP 2 — Clean and Structure the Form Data (Set node) Goal Take the raw data sent by Tally and turn it into clean, readable JSON that's easy to use in the rest of the workflow. Tally sends the responses inside a big array called field. Can you grab a field directly with something like {{$json"fields"["value"]}}? Yes. But a good workflow is like a sock drawer — when everything’s folded and labeled, life’s just easier. So we’re going to clean it up using a Set node. Steps to follow Add a Set node right after the Webhook. Enable the “Keep only set” option. Define the following fields in the Set node: Field name: Expression full_name: {{$json"fields"["value"]}} company_name: {{$json"fields"["value"]}} job_title: {{$json"fields"["value"]}} email: {{$json"fields"["value"]}} phone_number: {{$json"fields"["value"] ?? ""}} submission_date: {{$now.toISOString()}} ⚠️ The order of fields[] depends on your Tally form. If you change the question order, make sure to update these indexes accordingly. Expected output You’ll get a clean, structured JSON like this: Now your data is clear, labeled, and ready for the rest of your workflow. STEP 3 — Save Data in Airtable Goal Every time someone submits your Tally form, their info is automatically added to an Airtable base. No more copy-pasting — everything lands right where it should. Steps to follow Create your Airtable base Start by creating a base named Leads (or whatever you prefer), with a table called Form Submissions. Add the following columns in this exact order so everything maps correctly later: Generate an Airtable token So n8n can send data into your base: Go to 👉 [ https://airtable.com/create/tokens](https://airtable.com/create/tokens ) Click Create token Give it a name (e.g. Tally Automation) Check the following permissions: data.records:read data.records:write schema.bases:read Under Base access, either choose your base manually or select “All current and future bases” Click Create token and copy the generated key Add configure the Airtable node in n8n Node: Airtable Operation: Create Authentication: Personal Access Token Paste your token n8n will suggest your base and table (or you can manually grab the IDs from the URL: https://airtable.com/appXXXXXXXX/tblYYYYYYYY/...) Map your fields Inside the Airtable node, add the following field mappings: Every new Tally form submission automatically creates a new row in your Airtable base. STEP 4 — Send an Automatic Confirmation Email Goal Send a professional email as soon as a form is completed Steps to follow Add a Wait node You don’t want the email to go out instantly — it feels cold and robotic. → Add a Wait node right after Airtable. Mode: Wait for a period of time Delay: 5 to 10 minutes Unit: Minutes Add a Gmail > Send Email node Authentication: OAuth2 Connect a Gmail account (business or test) ⚠️ No API keys here — Gmail requires OAuth. Configure the Send Email node Field Value Credential to connect with Gmail account via OAuth2 Resource : Message Operation : Send To : {{ $json.fields["Email"] }} Subject : Thanks for reaching out! Email Type : HTML Message: (but do the mapping correctly using the Input so that lead receives its name correctly ) End of the Workflow And that’s it — your automation is live! Your lead fills out the Tally form → the info goes to Airtable → they get a clean, professional email without you doing a thing.
by Amjid Ali
AI Chatbot with Conditional Execution for Cost Efficiency Description This n8n workflow implements an AI-powered chatbot that only runs when a chat is initiated on a website. By introducing a conditional step, the workflow ensures that AI tokens are not consumed unnecessarily, making it a cost-efficient and resource-optimized solution. The chatbot, named Sophia, serves as an interactive assistant for SyncBricks. It helps users with guest posting services, YouTube review videos, IT consultancy, and online courses while collecting user details step by step. The chatbot ensures that inquiries are properly logged and confirmed before proceeding to AI-driven responses. This template is ideal for businesses, service providers, and content creators who want to optimize AI token usage while delivering personalized, interactive engagement with their users. Features Conditional Execution – The AI chatbot only activates when a chat is initiated, avoiding unnecessary API calls. AI-Powered Conversations – Uses Google Gemini AI to generate human-like responses. Step-by-Step Data Collection – Ensures structured user input, requesting name, email, and request type sequentially. Memory Buffer for Context Awareness – Maintains conversation context using a window buffer memory system. Multiple Service Offerings – Supports inquiries related to: Guest Posting Services YouTube Review Videos Online Courses on Udemy IT Consultancy Services Automated Confirmation Messages – After collecting user details, sends a confirmation message summarizing the request. How It Works Chat Message Trigger The workflow starts only when a chat message is received from the website. This ensures no AI token is consumed unless a user initiates a chat. Condition Check: Is Chat Input Provided? The workflow checks if chat input is non-empty. If the chat input is empty, the workflow stops, ensuring no unnecessary API usage. If a message is detected, the chatbot continues processing. AI-Powered Chat Response The chatbot, Sophia, generates personalized responses using Google Gemini AI. AI ensures structured conversation flow by collecting: User’s Full Name Email ID Request Type Memory Buffer for Context Retention A Window Buffer Memory system stores chat history and retrieves previous responses to ensure context-aware conversations. Response Optimization Checks memory to avoid asking the same question twice. If details are already provided, Sophia moves directly to processing the request. Confirmation & User Engagement After collecting the required details, Sophia summarizes the request as follows: "Got it [Name], your request is [Request Type]. I will be sending the details to your email ID: [Email]. Hold on while I send confirmation." Final Confirmation Message Ensures the user receives a proper acknowledgment of their inquiry. Prerequisites Before using this workflow, make sure you have: n8n Instance (Cloud or Self-Hosted) Google Gemini API Key (For AI-generated responses) Webhook Integration (To trigger the chatbot from your website) Use Cases Businesses & Enterprises – AI-powered lead qualification for services. Bloggers & Content Creators – Automated guest post inquiry handling. YouTube Influencers & Educators – AI chatbot to promote courses and review services. Marketing Agencies – Lead generation chatbot without excessive AI token consumption. E-Commerce & Consulting Services – AI-driven personalized customer engagement. Nodes Used in This Workflow Chat Trigger (Webhook) – Initiates only when a user sends a chat message. Conditional Check (If Node) – Ensures AI is only used when a chat is initiated. AI Agent (Google Gemini AI) – Generates intelligent chatbot responses. Memory Buffer (Context Retention) – Stores user inputs for context-aware conversations. Important Start with n8n Learn n8n with Amjid Get n8n Book What is Proxmox Creator Information Developed by: Amjid Ali Website: SyncBricks Email: amjid@amjidali.com LinkedIn: Amjid Ali YouTube: SyncBricks Support & Contributions If you find this workflow helpful, consider supporting my work: Donate via PayPal For full courses on n8n, visit: Course by Amjid Final Thoughts This n8n workflow ensures optimal AI token usage while engaging users with an intelligent chatbot. By integrating conditional execution, it prevents unnecessary API calls, making it cost-effective and efficient for businesses looking to automate chat-based customer interactions. Let me know if you need any modifications!