by VKAPS IT
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. 🎯 How it works This workflow captures new lead information from a web form, enriches it with Apollo.io data, qualifies the lead using AI, and—if the lead is strong—automatically sends a personalized outreach email via Gmail and logs the result in Google Sheets. 🛠️ Key Features 📩 Lead form capture with validation 🔍 Enrichment via Apollo API 🤖 Lead scoring using AI (LangChain + Groq) 📧 Dynamic email generation & sending via Gmail 📊 Logging leads with job title & org into Google Sheets ✅ Conditional email sending (score ≥ 6 only) 🧪 Set up steps Estimated time: 15–20 minutes Add your Apollo API Key to the HTTP Header credential (never hardcode!) Connect your Gmail account for sending emails Connect your Google Sheets account and set up the correct spreadsheet & sheet name Enable LangChain/Groq credentials for lead scoring and AI-generated emails Update the form endpoint to your live webhook if needed 📌 Sticky Notes Add the following mandatory sticky notes inside your workflow: FormTrigger Node: "Collects lead info via form. Ensure your form is connected to this endpoint." HTTP Request Node: "Enrich lead using Apollo.io API. Add your API key via header-based authentication." AI Agent (Lead Score): "Scores lead from 1-10 based on job title and industry match. Only leads with score ≥ 6 proceed." AI Agent (Email Composer): "Generates a concise, polite email using lead’s job title & company. Modify tone if needed." Google Sheets Append: "Logs enriched lead with job title, org, and LinkedIn URL. Customize sheet structure if needed." Gmail Node: "Sends personalized outreach email if lead passes score threshold. Uses AI-generated content." 💸 Free or Paid? Free – No paid API services are required (Apollo has a free tier).
by Josh Universe
How the sequence works: A "Schedule Trigger" node activates the automation at a defined schedule. An "Airtable" node will search for previously posted questions in your question database. Airtable Base Template: here An "Aggregate" node will take all the questions from Airtable and compress them to a single output. ChatGPT, or a model of your choice, will generate a discussion question based on the options in the system prompt. The discussion question will be posted to the subreddit of your choice by the "Reddit" node. You can choose between a text, image, or link post! The recently-posted discussion question will then be uploaded to your Airtable base using the "Airtable" node. This will be used to prevent ChatGPT from creating duplicate questions. Setup Steps The setup process will take about 5 minutes. An Airtable base template is also pre-made for you here: https://airtable.com/app6wzQqegKIJOiOg/shrzy7L9yv8BFRQdY Set the recurrence in the "Schedule" node Create an Airtable account, you can use the link here. Get an Airtable personal access token here. Configure the "Get Previous Discussions" Airtable node. Configure the options in brackets in the "Generate New Discussion" node. Set the desired subreddit to post to and the post type(text, image, or link) in the "Post Discussion" node. Configure the "Create Archived Discussion" node to map to the Airtable base(required) and specific subreddit(optional).
by Niklas Hatje
This template shows how to use the Question and Answer tool to save costs in RAG use cases. Who is this for? This template is for everyone who wants to start giving knowledge to their Agents through RAG. Requirements Have a PDF with custom knowledge that you want to provide to your agent. Setup No setup required. Just hit Execute Workflow, upload your knowledge document and then start chatting. How to customize this to your needs Add custom instructions to your Agent by changing the prompts in it. Add a different way to load in knowledge to your vector store, e.g. by looking at some Google Drive files or loading knowledge from a table. Describe your data properly in the Q&A tool Exchange the Simple Vector Store nodes with your own vector store tools ready for production. Add a more sophisticated way to rank files found in the vector store. For more information read our docs on RAG in n8n.
by Naveen Choudhary
Who is this template for? Growth teams, SDRs, recruiters, or anyone who routinely hunts for hard‑to‑find business emails and would rather spend time reaching out than guessing formats. What problem does this workflow solve? Manually piecing together email patterns, cross‑checking them in a verifier, and updating a tracking sheet is slow and error‑prone. This template automates the entire loop—research, guess, verify, and log—so you hit Start and watch rows fill up with ready‑to‑send addresses. What this workflow does Pull fresh leads – Grabs only the rows in your Google Sheet where Status = FALSE. Find the company pattern – Queries Serper.dev for snippets and feeds them to Gemini Flash (via OpenRouter) to spot the dominant email format. Build the address – Constructs a likely email for every first/last name. Verify in real time – Pings Prospeo by default (API) or lets you bulk‑clean in Sparkle.io. Write it back – Updates the sheet with pattern, email, confidence, verification status, and flips Status to TRUE. Loop until done – Runs batch‑by‑batch so you never hit API limits. 🆓 Work free‑tier magic (up to \~2,500 contacts/month) | Service | Free allowance | How this template uses it | | -------------- | ----------------------------- | ------------------------------------------------------------------------------------ | | Serper.dev | 2,500 searches/mo | Scrapes three public email snippets per domain to learn the pattern | | Sparkle.io | 10,000 bulk verifications/day | Manual upload‑download option—perfect to clean your first 2.5k emails at zero cost | | Prospeo | 75 API calls/mo | Built‑in if you prefer fully automated verification | Quick Sparkle workflow: Let the template generate emails. Export the “Email” column to CSV → upload to Sparkle.io. Download the results and paste the "verification\_status" back into the sheet (or add a small n8n import sub‑flow). Setup (5 minutes) Copy the Google Sheet linked in the sticky note and paste its ID into the Get Rows and Update Rows nodes. Add credentials for Google Sheets, Serper (X‑API‑KEY), OpenRouter, and optionally Prospeo. Hit Execute Workflow—that’s it. How to customise Prefer Sparkle for volume:** Skip the Prospeo node, export emails in one click, bulk‑verify in Sparkle, and re‑import results. Swap the search source:* Replace the *Get Email Pattern HTTP node with Bing, Brave, etc. Extend enrichment:* Add phone look‑ups or LinkedIn scrapers before the *Update Rows node. Auto‑run:** Replace the Manual Trigger with a Cron node so the sheet cleans itself every morning. Additional resources | Tool | Purpose | Link | | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------------------------------------------------------- | | Prospeo – API‑ready email verificationSpecial offer: 20 % free credits for the first 3 months on any plan using this link! | Real‑time, single‑call mailbox validation | prospeo.io | | Sparkle.io – high‑volume bulk verifier (manual upload) | Free daily quota of 10 000 verifications | app.sparkle.io/sign‑up | | OpenRouter – API gateway for Gemini Flash & other LLMs | One key unlocks multiple frontier models | openrouter.ai | | Serper.dev – Google Search API | 2 500 searches/month on the free tier | serper.dev | Add the relevant keys or signup details from these links, drop them into the matching n8n credentials, and you’re all set to enrich your first 2 500 contacts at zero cost. Happy building!
by Jimleuk
This n8n template watches a Gmail inbox for support messages and creates an equivalent issue item in Linear. How it works A scheduled trigger fetches recent Gmail messages from the inbox which collects support requests. These support requests are filtered to ensure they are only processed once and their HTML body is converted to markdown for easier parsing. Each support request is then triaged via an AI Agent which adds appropriate labels, assesses priority and summarises a title and description of the original request. Finally, the AI generated values are used to create an issue in Linear to be actioned. How to use Ensure the messages fetched are solely support requests otherwise you'll need to classify messages before processing them. Specify the labels and priorities to use in the system prompt of the AI agent. Requirements Gmail for incoming support messages OpenAI for LLM Linear for issue management Customising this workflow Consider automating more steps after the issue is created such as attempting issue resolution or capacity planning.
by Arlin Perez
AI Research Assistant via Telegram (GPT-4o mini + DeepSeek R1 + SerpAPI) 👥 Who’s it for This workflow is perfect for anyone who wants to receive AI-powered research summaries directly on Telegram. Ideal for people asking frequent product, tech, or decision-making questions and want up-to-date answers sourced from the web. 🤖 What it does Users send a question via Telegram. An AI agent (DeepSeek R1) reformulates and understands the intent, while a second agent (GPT-4o mini) performs live research using SerpAPI. The most relevant answers, including links and images, are delivered back via Telegram. ⚙️ How it works 📲 Telegram Trigger – Starts when a user sends a message to your Telegram bot. 🧠 DeepSeek R1 Agent – Understands, clarifies, or reformulates the user query. 🧠 Research AI Agent (GPT-4o mini + SerpAPI) – Searches the web and summarizes the best results. 📤 Send Telegram Message – Sends the response back to the same user. 📋 Requirements Telegram bot (via BotFather) with API token set in n8n credentials OpenAI account with API key and balance for GPT-4o mini SerpAPI account (100 free searches/month) with API key DeepSeek account with API key and balance 🛠️ How to set up Create your Telegram bot using BotFather and connect it using the Telegram Trigger node Set up DeepSeek credentials and add a Chat Model AI Agent node using DeepSeek R1 to reformulate the user’s question Set up OpenAI credentials and add a second ChatGPT AI Agent node using GPT-4o mini In the GPT-4o node, enable the SerpAPI Tool and add your SerpAPI API key Pass the reformulated question from DeepSeek to the GPT-4o agent for live search and summarization Format the response (text, links, optional images) Send the final reply to the user using the Telegram Send Message node Ensure your n8n instance is publicly accessible Test the workflow by sending a message to your Telegram bot ✅
by Jimleuk
This n8n workflow demonstrates an approach to parsing bank statement PDFs with multimodal LLMs as an alternative to traditional OCR. This allows for much more accurate data extraction from the document especially when it comes to tables and complex layouts. Multimodal Parsing is better than traditiona OCR because: It reduces complexity and overhead by avoiding the need to preprocess the document into text format such as markdown before passing to the LLM. It handles non-standard PDF formats which may produce garbled output via traditional OCR text conversion. It's orders of magnitude cheaper than premium OCR models that still require post-processing cleanup and formatting. LLMs can format to any schema or language you desire! How it works You can use the example bank statement created specifically for this workflow here: https://drive.google.com/file/d/1wS9U7MQDthj57CvEcqG_Llkr-ek6RqGA/view?usp=sharing A PDF bank statement is imported via Google Drive. For this demo, I've created a mock bank statement which includes complex table layouts of 5 columns. Typically, OCR will be unable to align the columns correctly and mistake some deposits for withdrawals. Because multimodal LLMs do not accept PDFs directly, well have to convert the PDF to a series of images. We can achieve this by using a tool such as Stirling PDF. Stirling PDF is self-hostable which is handy for sensitive data such as bank statements. Stirling PDF will return our PDF as a series of JPGs (one for each page) in a zipped file. We can use n8n's decompress node to extract the images and ensure they are ordered by using the Sort node. Next, we'll resize each page using the Edit Image node to ensure the right balance between resolution limits and processing speed. Each resized page image is then passed into the Basic LLM node which will use our multimodal LLM of choice - Gemini 1.5 Pro. In the LLM node's options, we'll add a "user message" of type binary (data) which is how we add our image data as an input. Our prompt will instruct the multimodal LLM to transcribe each page to markdown. Note, you do not need to do this - you can just ask for data points to extract directly! Our goal for this template is to demonstrate the LLMs ability to accurately read the page. Finally, with our markdown version of all pages, we can pass this to another LLM node to extract required data such as deposit line items. Requirements Google Gemini API for Multimodal LLM. Google Drive access for document storage. Stirling PDF instance for PDF to Image conversion Customising the workflow At time of writing, Gemini 1.5 Pro is the most accurate in text document parsing with a relatively low cost. If you are not using Google Gemini however you can switch to other multimodal LLMs such as OpenAI GPT or Antrophic Claude. If you don't need the markdown, simply asking what to extract directly in the LLM's prompt is also acceptable and would save a few extra steps. Not parsing any bank statements any time soon? This template also works for Invoices, inventory lists, contracts, legal documents etc.
by Mohan Gopal
Personalized Tour Package Recommendations via n8n + Pinecone + Lovable UI I've created an intelligent Travel Itinerary Planner that connects a Lovable front-end UI with a smart backend powered by n8n, Pinecone, and OpenAI to deliver personalized tour packages based on natural language queries. What It Does Users type in their travel destination and duration (e.g., "Paris 5 days trip" or "Bali Trip for 7 Days, would love water sports, adventures and trekking included, also some historical monuments") through a Lovable UI. This triggers a webhook in n8n, which processes the request, searches vectorized tour data in Pinecone, and generates a personalized itinerary using OpenAI’s GPT. The results are then structured and sent back to the frontend UI for display in an interactive, reorderable format. Workflow Architecture Lovable UI ➝ Webhook ➝ Tour Recommendation Agent ➝ Vector Search ➝ OpenAI Response ➝ Structured Output ➝ Response to Lovable Tools & Components Used Webhook Acts as the entry point between the Lovable frontend and n8n. Captures the user query (destination, duration) and forwards it into the workflow. OpenAI Chat Model To interpret the user query. To generate a user-friendly, structured tour package from the matched results. Simple Memory Keeps chat state and context for follow-up queries (extendable for future features like multi-step planning or saved itineraries). Question Answering with Vector Store Searches vector embeddings of pre-loaded tour data. Finds the most relevant tour packages by comparing query embeddings. Pinecone Vector Store Stores tour packages and activity data in vectorized format. Enables fast and scalable semantic search across destinations, themes (e.g., "adventure", "cultural"), and duration. OpenAI Embeddings Embeds all tour and activity documents stored in Pinecone. Converts input user queries into embedding vectors for semantic search. Structured Output Parser Parses the final OpenAI-generated response into a consistent, frontend-consumable JSON format. Frontend (Lovable UI) User types in destination or their travel package needs in the Tour Search. Lovable queries the n8n workflow. Displays beautifully structured, editable itineraries. How to Set It Up Webhook Setup in n8n Create a POST webhook node. Set Webhook URL and connect it with Lovable frontend. Pinecone & Embeddings Convert your static tour package documents (PDFs, JSON, CSV, etc.) into embeddings using OpenAI. Store the embeddings in a Pinecone namespace (e.g., kuala-lumpur-3-days). Configure “Answer with Vector Store” Tool Connect the tool to your Pinecone instance and pass query embedding for matching. Connect to OpenAI Chat Use the GPT model to process query + context from Pinecone to generate an engaging itinerary description. Optionally chain a second model to format it into UI-consumable output. Output Parser & Return Use Structured Output Parser to parse the response and pass it to Respond to Webhook node for UI display. Ideal Use Cases Smart itinerary planning for OTAs or DMCs Personalized travel recommendations in chatbots or apps Travel advisors and agents automating package generation Benefits Highly relevant, contextual travel suggestions Natural query understanding via OpenAI Seamless frontend-backend integration via Webhook If you’re building personalized experiences for travelers using AI, give this approach a try! Let me know if you’d like the JSON for this workflow or help setting up the Pinecone data pipeline.
by Adam Janes
How it works The workflow loads a list of test cases from a Google Sheet (previous results stored from an LLM) For each test case, we execute a call to an LLM judge in parallel (using HTTP Request + Webhook nodes) The judge uses the Input, Output, and Reference Answer fields from the spreadsheet to mark each LLM response as Pass/Fail The results are logged into a separate sheet in the same Sheets file. Set up steps: Add your credentials for Google Sheets and OpenRouter (or replace the OpenRouter node with your favourite chat model). Make a copy of the example Sheet to populate it with you own test data. Run the workflow with the Execute Workflow button next to the Manual Trigger node.
by Rodrigue Gbadou
How it works Behavioral analytics**: Real-time analysis of product usage and engagement signals Churn prediction**: Predictive model identifying at-risk customers 15 days before Smart upselling**: Personalized recommendations based on usage and profile Retention campaigns**: Automated retention campaigns with dynamic offers Set up steps Product analytics**: Connect Mixpanel, Amplitude or proprietary analytics Billing system**: Integrate Stripe, Chargebee, Recurly for billing data Customer data**: Synchronize your CRM with complete customer history Email/SMS platforms**: Configure SendGrid, Twilio for communications Pricing rules**: Define your pricing matrix and promotional offers ML pipeline**: Configure predictive model training Key Features 🔮 Churn prediction**: At-risk customer identification with 85% accuracy 💰 Smart upselling**: Personalized recommendations increasing ARPU by 35% ⚡ Proactive interventions**: Automated actions before customer churns 📊 Revenue optimization**: Price optimization based on willingness to pay 🎯 Dynamic segmentation**: Real-time customer groups updates 🔄 A/B testing**: Automated testing of retention strategies 📈 LTV maximization**: Customer lifetime value optimization 🛡️ Dunning management**: Automated payment failure handling
by Adrian
📋 Description This template creates an intelligent AI assistant for WhatsApp that can: Respond naturally** to messages using Google Gemini AI Remember previous conversations** for each user Access a knowledge base** for answering frequently asked questions Automatically save** all conversations for long-term memory 🛠️ Requirements 1. WAMM.pro Account (FREE tier available) What is WAMM.pro?** - A platform that enables WhatsApp automation using proprietary API technology Free tier:** 50 messages/month PRO tier:** Unlimited messages + advanced features Link:** wamm.pro 2. Pinecone Account (for AI memory) For storing conversations and knowledge base Free tier available 3. Google AI Account (for Gemini) For the conversational AI model 4. OpenAI Account (for embeddings) For generating memory vectors 🚀 Step-by-step Setup Step 1: WAMM.pro Configuration Create account at wamm.pro Account Manager → Add WhatsApp profile Scan QR code with your WhatsApp Note down: Instance ID and Access Token Step 2: Webhook Configuration In WAMM.pro: Integrations → Webhooks → Messages Webhooks Add Webhook with the n8n URL Required configuration: From others: ✅ Relevant + ✅ Without media + ✅ Exclude no text To others: ✅ Relevant + ✅ Without media + ✅ Exclude no text To myself: ✅ None (to avoid responding to own messages) Step 3: Pinecone Configuration Create 2 indexes: historywa - for conversation memory knowledge - for knowledge base Index settings: Dimensions: 3072 Metric: cosine Embedding model: text-embedding-3-large Step 4: n8n Configuration Configure credentials: WAMM: Instance ID + Access Token Pinecone: API Key Google Gemini: API Key OpenAI: API Key for embeddings 🔧 How it Works Workflow Flow: 📱 WhatsApp Message ↓ (webhook) 🎯 AI Agent (Gemini) ↓ (uses tools) 📚 Memory Tool + Knowledge Tool ↓ (response generated) 📤 WAMM Send Message ↓ (saves) 💾 Pinecone Memory Storage Available AI Tools: Memory Tool - Searches previous conversations with the user Knowledge Tool - Searches the general knowledge base Special Features: Natural conversations** - AI doesn't mention "searching history" Persistent context** - Remembers names, preferences, previous conversations User language detection** - Automatically responds in user's language Organized memory** - Each user has their own memory space 📊 Benefits ✅ Zero maintenance - Runs automatically ✅ Scalable - Supports multiple users simultaneously ✅ Intelligent memory - Uses similarity search for relevant context ✅ Extensible - Easy to add new features ✅ Cost-effective - Free tiers available for all services 🎯 Use Cases Automated customer support** with memory Personal assistant** for WhatsApp Business chatbot** with specific knowledge Conversation automation** with persistent context 🔒 Security Data** stored in Pinecone as vector embeddings No plain text** message storage Each user** has separate memory space API keys** secured in n8n credentials 📈 Possible Extensions CRM** integrations Scheduling** and reminders Advanced multi-language** support Analytics** and conversation reports Custom knowledge bases** per user 💡 Tip: For optimal results, populate the knowledge base with frequently asked questions specific to your business!
by Davide
🤖📞 This workflow automates the process of calling customers to remind them of their booking reservations using AI-generated messages and a Twilio phone number. It can easily be adapted for other venues. Key Benefits Time-Saving Automation**: Eliminates the need for manual calls by staff, saving hours per week. Human-like AI Messages**: Uses a custom language model to generate polite, natural phone messages tailored to each customer. Multi-Channel Integration**: Google Sheets for reservation tracking. Twilio for automated calling. OpenRouter (or other LLMs) for generating speech content. Error Reduction**: Ensures all customers receive reminders exactly on the reservation day, minimizing no-shows. Scalable**: Easily adapts to growing reservation lists and more complex message logic. Suitable** for restaurants, hairdressers, offices and any other business How It Works Trigger: The workflow can be triggered manually (via "When clicking ‘Execute workflow’) or automatically at 11 AM daily (via Schedule Trigger). Data Fetch: Retrieves today’s reservations from a Google Sheet, filtering rows where DATE = today and CALLED is empty. AI-Generated Call Script: For each reservation, the Secretary Agent (powered by OpenRouter’s Grok-4) generates a phone script using the guest’s name, time, and party size. Twilio Call: The script is sent to Twilio, which calls the guest’s phone number (from the sheet) and reads the message aloud using text-to-speech. Update & Loop: Marks the reservation as called (CALLED = "x") in the sheet and waits 2 minutes between calls to avoid rate limits. Set Up Steps Twilio Configuration: Sign up for Twilio, buy a phone number, and: Enable text-to-speech (set language to Italian). Configure geo permissions for the target country. Add credentials to the Twilio node (sender number in From field). Google Sheets Setup: Clone the Google Sheet template and ensure: Phone numbers include the international prefix (without "+"). Columns: DATE, TIME, NAME, N. PEOPLE, PHONE, CALLED. OpenRouter API: Connect the OpenRouter Chat Model node to your account (using Grok-4 or another model). Deploy: Activate the workflow and test with manual execution. Note: The workflow is currently inactive (active: false). Enable it after setup. Need help customizing? Contact me for consulting and support or add me on Linkedin.