by Davide
This workflow integrates a chatbot frontend with a backend powered by Langflow, a visual low-code AI development tool. The flow is triggered whenever a chat message is received via the n8n chatbot widget embedded on a website. It then sends the message to a Langflow flow for processing and returns the generated response to the user. How It Works Chat Trigger: The workflow starts with a webhook trigger (When chat message received) that listens for incoming chat messages from the n8n Chat interface. Langflow Integration: The chat input is sent to a Langflow instance via an HTTP request (Langflow node). The request includes the user's message and expects a response from the Langflow flow. Response Processing: The output from Langflow is extracted and formatted using the Edit Fields node, ensuring the chatbot displays the response correctly. Customization: Sticky notes provide instructions for embedding the n8n Chat widget on a website and customizing its appearance, including welcome messages, language settings, and branding. Set Up Steps Configure Langflow Connection: Replace LANGFLOW_URL and FLOW_ID in the HTTP request node with your Langflow instance details. Ensure the API headers (e.g., Content-Type: application/json) and authentication (if required) are correctly set. Deploy n8n Chat: Add the provided CDN script to your website, replacing YOUR_PRODUCTION_WEBHOOK_URL with the webhook URL generated by the When chat message received node. Customize the chatbot’s UI (e.g., title, placeholder text, initial messages) using the JavaScript snippet in the sticky notes. Activate Workflow: Toggle the workflow to "Active" in n8n. Test the chatbot by sending a message and verifying the Langflow response is processed and displayed correctly. Advantages ✅ Seamless Langflow Integration It allows n8n to communicate directly with a Langflow flow via API, enabling AI responses using custom-designed Langflow logic. ✅ No-Code Chatbot Deployment With just a script snippet, the chatbot widget can be embedded into any website. Minimal coding is required to launch a fully functioning AI chatbot. ✅ Customizable UI/UX The included embed code offers full control over the chatbot's appearance, language, welcome message, input placeholder, and branding—ideal for white-label or customer-facing deployments. ✅ Modular and Extensible Because it's built in n8n, this chatbot can be easily extended with other services like CRMs, email alerts, or databases, without leaving the platform. ✅ Real-Time AI Interactions Thanks to Langflow's API and chat response support, users get immediate and dynamic AI-driven replies. Need help customizing? Contact me for consulting and support or add me on Linkedin.
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!
by Oneclick AI Squad
This n8n workflow automatically captures LinkedIn leads from multiple sources (new connections, post engagements), enriches the data with AI-powered scoring, eliminates duplicates, syncs to Google Sheets and your CRM (HubSpot or Salesforce), and sends instant notifications to your sales team for high-quality leads. No more manual copy-pasting or lost opportunities—every LinkedIn interaction becomes a tracked, qualified lead ready for follow-up. Benefits Zero Manual Data Entry:** Eliminates tedious copy-paste work—saves 10+ hours per week for active LinkedIn users Smart Lead Scoring:** AI calculates quality scores (0-100) and assigns temperature labels (Hot/Warm/Cold) based on engagement patterns Multi-Source Capture:** Monitors new connections, post comments, likes, and shares to catch leads from all touchpoints Duplicate Prevention:** Tracks leads for 90 days to avoid database clutter and redundant outreach Instant Sales Alerts:** Notifies team via Slack/Email within seconds for Hot & Warm leads, enabling rapid follow-up CRM Integration:** Syncs directly to HubSpot or Salesforce with custom fields for lead temperature and quality metrics Built-in Analytics:** Tracks cumulative statistics (total leads, temperature distribution) for performance monitoring Always-On Automation:** Runs every 15 minutes 24/7, capturing leads even when you're sleeping or in meetings Useful for Which Industry B2B SaaS & Tech:** Sales teams prospecting decision-makers and capturing demo requests from LinkedIn content Consulting & Professional Services:** Agencies tracking client inquiries and partnership opportunities from thought leadership posts Recruiting & HR:** Talent acquisition teams building candidate pipelines from LinkedIn engagement Real Estate & Financial Services:** Agents capturing high-intent leads from market updates and educational content Marketing Agencies:** Business development teams converting social engagement into qualified opportunities E-Learning & Coaching:** Course creators and consultants tracking interested prospects from free content Manufacturing & B2B Sales:** Enterprise sales teams monitoring buying committee members engaging with product content How it works Monitor LinkedIn - Checks every 15 minutes for new connections and post engagements Extract data - Pulls profile information, company, position from multiple sources Score leads - Calculates quality score (0-100) and assigns temperature (Hot/Warm/Cold) Prevent duplicates - Tracks leads for 90 days to avoid duplicate entries Sync to platforms - Saves to Google Sheets and your CRM (HubSpot or Salesforce) Smart notifications - Alerts sales team via Slack/Email for Hot and Warm leads only Setup steps Connect LinkedIn - Add OAuth2 credentials to both LinkedIn nodes Setup Google Sheets - Create spreadsheet with these columns: leadId, fullName, firstName, lastName, email, phone, company, position, headline, location, profileUrl, leadSource, leadTemperature, qualityScore, engagementType, commentText, dateAdded, status, assignedTo, notes, lastUpdated Choose CRM - Enable either HubSpot OR Salesforce nodes (disable the other) Configure alerts - Add Slack webhook URL and/or email settings Test workflow - Run manually first to verify all connections Activate - Turn on for automatic lead capture Key features Smart scoring**: Quality score based on engagement level and profile completeness Temperature labels**: Hot (70+), Warm (50-69), Cold (<50) for prioritization No duplicates**: 90-day tracking prevents duplicate entries Multi-CRM support**: Works with HubSpot or Salesforce Analytics built-in**: Tracks total leads and temperature distribution
by Matt Michels
Pulls newly registered studies from ClinicalTrials.gov through Apify and scores each by the actor's opportunity score, sponsor type, phase, match with your conditions, planned enrollment and recency. New registrations show who is about to recruit patients and buy trial services. Built for CROs, recruitment and site-network teams, trial-software vendors and healthcare analysts. Registry data describes studies, not patients. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set actorInput.daysBack, searchTerm and phases, then conditionKeywords, targetPhases and minEnrollment. Turn on sponsorRollup in actorInput only if you want one row per sponsor (the key then needs changing). Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score new studies (opportunity score 35%, industry sponsor 15, phase 15, condition match 20, enrollment 10, recent 5). Studies are keyed by NCT id, so each registration alerts once. Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling.
by Ninja - Abbas
Transform your email workflow with this intelligent automation that drafts professional emails through Telegram commands using AI and contact retrieval. Key Features 📱 Telegram Integration: Send email requests directly from Telegram 🤖 AI-Powered Email Generation: Uses OpenAI GPT-4 to create formal, professional emails 📧 Smart Contact Retrieval: Leverages Pinecone vector database with RAG to automatically find recipient email addresses ✉️ Gmail Draft Creation: Automatically creates email drafts in your Gmail account 📋 Google Docs Integration: Sync contact data from Google Docs to vector database 🎯 Structured Email Formatting: Ensures consistent professional email format with proper recipients and formal tone How It Works Send Message: Send a message via Telegram with your email request AI Processing: AI agent processes your request and queries the contact database to find recipient emails Email Generation: OpenAI generates a professionally formatted email based on your input Draft Creation: Gmail draft is automatically created with the formatted content Confirmation: Receive confirmation via Telegram with a completion sticker Perfect For Business professionals managing multiple contacts Academic professionals (professors, researchers) who frequently send formal emails Anyone wanting to streamline their email creation process with AI assistance Required Credentials Telegram Bot API OpenAI API google OAuth2 for(gmail&docs) Pinecone Vector Database Setup Instructions Load Contact Data: Add your contact information to the Google Docs document Configure Pinecone: Set up your Pinecone index with namespace "contacts" Connect Services: Add all required API credentials to their respective nodes Customize AI: Modify the AI system message and sender name in the AI Agent node Test Workflow: Run the manual trigger to populate your vector database first ** Ex. of the google docs data
by Matt Michels
Finds businesses that look newly opened on Google Maps (few reviews and photos, no hours or website yet, a recent first review), then scores each on the actor's newness score plus how easy it is to reach and pitch. Built for agencies, suppliers, banks and local-service sellers who want to reach a business before competitors do. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set actorInput.categories and locations, minNewnessScore, and skipChains. Use a modest maxPlacesPerSearch while testing. Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score new businesses (newness 55, no website 15, phone 15, claimed 5, recent first review 5, no hours 5). Add requireSignals: ["noWebsite"] or onlyNew: true to actorInput to narrow at the source. Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling.
by Matt Michels
Pulls new Form D filings from SEC EDGAR through Apify, skips amendments and pooled funds, dedupes, scores each raise by size, company age, industry and state, and adds the named executives plus EDGAR links. Built for B2B sales, investors and service providers selling to newly funded companies. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set targetIndustries, targetStates (2-letter), minAmountSold, and actorInput.lookbackDays (match it to the schedule). Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score and enrich filings (amount 30, first filing 10, young company 15, industry 20, state 10, operating company 10, investors 5). Use industryGroups, states or minAmountSold in actorInput to filter at the source. Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling.
by Muhammad Ali
🚀 How It Works Turn your WhatsApp chats into an AI-powered meeting scheduler with Google Gemini, Google Calendar, and Google Sheets. This workflow understands natural language like “Book a meeting with Ali at 3 PM tomorrow”, checks your contacts, avoids overlaps, and updates your calendar automatically all from WhatsApp. It’s a complete AI scheduling system built for founders, teams, and service providers who manage clients over chat. 🔁 Workflow Overview WhatsApp Trigger** → Captures incoming messages in real time Intent Agent (Gemini)** → Detects scheduling intent (create / edit / cancel) Google Sheets** → Finds contact names, emails, and tags Get Events** → Checks existing meetings to prevent conflicts Correction Agent + Intent Check** → Confirms details with AI Calendar Agent (Gemini)** → Executes the calendar action intelligently Create / Update / Delete Event** → Syncs instantly to Google Calendar Response Node** → Sends WhatsApp and email confirmations ⚙️ Quick Setup (⏱ ~15 min) Connect WhatsApp Cloud API – link your WhatsApp Business account Authenticate Google Calendar & Sheets – use Sheets for contacts (Name | Email | Type) Add Google Gemini API Key – used by Intent, Correction, and Calendar agents Customize Prompts – adjust tone and language in the Gemini nodes Test Your Flow – e.g., message “Schedule meeting with Ali at 10 AM Friday” to verify calendar and confirmation replies 💡 All setup details are also documented inside the workflow sticky notes. 🧩 Integrations WhatsApp Cloud API Google Calendar API Google Sheets API Google Gemini (LLM) 💡 Benefits ✅ Automates scheduling directly from WhatsApp ✅ Understands natural language requests ✅ Prevents double-bookings automatically ✅ Sends instant confirmations ✅ Saves hours of manual coordination 👥 Ideal For Entrepreneurs & consultants managing clients on WhatsApp Sales or support teams booking demos and meetings Virtual assistants and AI service providers Anyone who wants a 24/7 AI calendar manager
by Matt Michels
Reads public state contractor-license records (WA, TX, CT, CO, OR, DE) through Apify and scores each license for your offer. Set leadGoal to new to favour recently licensed contractors (suppliers, insurers, software, lenders) or renewal to favour licenses about to expire or just lapsed (renewal, compliance and insurance services). The key includes the expiry date, so a renewed license shows up again. Public records only; check each state's rules on contacting license holders. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config choose leadGoal, targetTrades, newWithinDays and expiringWithinDays, and set actorInput.states and trade. Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score license leads (timing 40, phone 20, trade 15, contractor license 10, active 10, business 5). Use mode: new_licenses with daysBack in actorInput for a feed of newly issued licenses only, or city / zip to narrow the area. Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling.
by Khairul Muhtadin
Say Goodbye to Manual Prospect Research! Imagine walking into every discovery call fully prepared with company background, recent news, and perfectly tailored questions, without spending a single minute prepping. This AI-powered workflow connects to your Google Calendar, looks for upcoming discovery calls, sends an AI out to do deep web research on your prospects, and drops a neat briefing right into Slack and Google Drive. By fully automating the research phase, you get over 45 minutes of your life back per call. Why You'll Love This Workflow Get your time back:** Cuts prep time from 45 minutes to zero. Save money:** No need to pay for pricey sales intelligence tools or hire virtual assistants just to google companies. Zero duplicates:** It’s smart enough to remember which calls it’s already prepped for, so you won't get annoyed by duplicate alerts. Built to scale:** Whether you have 1 call tomorrow or 20, the prep quality stays exactly the same. Who Is This For? Sales Reps (AEs & SDRs):** Nail those high-stakes discovery calls with automated background checks and news updates. Founders & Consultants:** Spot pain points and company growth signals before you even say "hello" to position your services better. Agency Ops Teams:** Standardize how your team preps and automatically organize all client data neatly into Google Drive folders. How The Magic Happens The Kickoff: Every day at 4:00 PM, the automation wakes up to prep for tomorrow's meetings. Finding the Meetings: It grabs all your upcoming events from Google Calendar. Filtering: It specifically looks for keywords (like "discovery" or "call") and ignores any meetings it has already researched for you. The AI Researcher: An AI agent uses Firecrawl to scour the web, read the company’s website, and dig up recent news, leadership changes, and funding info. Filing It Away: The workflow creates a dedicated client folder in Google Drive (or finds the existing one) and saves a structured research doc. The Ping: You get a handy summary in your #ops Slack channel with the brief and a direct link to the Drive folder. What You Need to Get Started n8n instance (The engine that runs the automation) Google Calendar (To find your meetings) OpenAI API (The brain doing the research) Firecrawl API (For reading websites) Google Drive (For saving the docs) Slack (For sending you alerts) Easy Setup Steps Import the JSON file to your n8n instance. Connect your accounts: Log into your Google, OpenAI, Firecrawl, and Slack accounts so the workflow has permission to do its job. Tell it where to put things: In the Search Client Folder node, pick your main "CLIENTS" Drive folder. In the Notify Ops Channel node, pick the Slack channel you want the alerts to go to. Tweak the keywords: If you call your meetings something specific (like "Intro" or "Demo"), update the keywords in the Extract Call Details node. Give it a test run: Trigger the workflow manually to make sure it catches a test event and generates a brief! Make It Your Own The Basics: Change the trigger words to match how you name your meetings. Adjust the timer! If you'd rather have the briefs run at 6:00 AM instead of 4:00 PM, just change the schedule node. Take It to the Next Level: LinkedIn Sync:** Add a tool like Proxycurl to pull the prospect's actual LinkedIn profile. CRM Integration:** Have it drop the notes directly into Salesforce or HubSpot instead of just Google Drive. Email Delivery:** Set it up to email the brief to you 15 minutes before the meeting starts. Quick Troubleshooting Not finding any events?** Make sure your calendar invites actually have the trigger words in the title. Research coming up blank?** If the prospect used a personal @gmail.com email to book, the AI won't be able to scan a company website. Getting duplicates?** If you restart or move your n8n instance, it might "forget" what it already researched. Created by: Khairul Muhtadin | Khaisa Studio Category: Sales & CRM | Tags: AI Agent, Google Workspace, Slack, Research, Automation Need custom workflows? Contact us Connect with the creator: Portfolio • Store • LinkedIn • Medium • Threads
by Nev
Quick overview This n8n template ingests your entire Notion database into a Supabase vector store, making every page searchable by an AI assistant or chatbot. It runs on a schedule to keep your knowledge base in sync automatically, and each run is safe to repeat — no manual cleanup, no duplicate embeddings. How it works Clears the knowledge base before each run so re-runs are always safe and up to date Fetches all pages in your Notion database Retrieves the full block content of each page Skips empty pages Prepends each page's title to its content and appends the source Notion URL, then splits into chunks and generates embeddings using Ollama's nomic-embed-text Stores the embeddings in Supabase, ready for semantic search Setup Create a Notion internal integration, share your target database with it, and add a Notion API credential in n8n. Enable pgvector in Supabase, create the documents table and match_documents function, and add a Supabase credential (Project URL and service_role key) in n8n. Install and run Ollama, pull nomic-embed-text, and add an Ollama credential pointing to your Ollama base URL. In the Notion node, replace YOUR_DATABASE_ID with your Notion database ID, and in the Supabase delete request, replace YOUR_SUPABASE_PROJECT_URL with your Supabase Project URL. Requirements Supabase account with pgvector enabled Notion account with an internal integration connected to your database Ollama running locally (ollama.com) with nomic-embed-text pulled Customization Swap the Ollama embedding node for OpenAI, Cohere, or HuggingFace. The workflow uses n8n's LangChain-based embedding pipeline, so any supported embedding model works. If you switch models, update the vector(768) column in your SQL to match the new dimension. Adjust chunk size and overlap in the Split Text for Processing node to suit your content. To capture content inside toggles and deeply indented lists, enable Also Fetch Nested Blocks in the Fetch Page Blocks node. For large databases, leave it off to avoid Notion API rate limits. Additional info Pairs well with: Search multiple knowledge bases with an Agentic RAG assistant (query everything you've stored).
by Matt Michels
Pulls businesses by category and city from OpenStreetMap through Apify, drops chains, dedupes against earlier runs, enriches (domain, clean phone, maps link) and scores each lead for your offer. Built for agencies, local service sellers and SDRs. How it works Daily schedule / manual run reads every setting from Config. A weekly schedule uses the same Config to send a report instead of running the actor. Starts the Apify actor asynchronously, then waits and polls the run; FAILED, ABORTED, TIMED-OUT or too many polls stop with an error. Downloads the dataset, validates rows and dedupes within the run and across runs (workflow static data, dedupeMemoryDays). A transparent rule score runs first, then an LLM chain with a structured output parser reads each record against your plain-English aiCriteria and returns a fit score, verdict, summary, outreach angle and red flags. Calls are batched with a delay for rate limits, retried, and fall back to the rule score if the model fails. Upserts every row to Google Sheets. Hot rows go to Slack as one approve / dismiss message (send-and-wait, 24 h limit) and the decision is written back to the sheet; warm rows go to an HTML email digest; cold rows stay in the sheet. Weekly report: reads the sheet, summarises the last 7 days (tiers, approvals, top 10) and emails it. A separate Error Trigger branch posts any failure to Slack. Setup (about 15 minutes) Create an HTTP Header Auth credential: name Authorization, value Bearer (Apify Console > Settings > API & Integrations). Select it on the 3 Apify HTTP nodes. Create a Google Sheet with a tab named in sheetTab and a header row matching the sheet columns (see Upsert to Google Sheets, plus status and reviewedAt). Paste its ID into googleSheetId. Connect OpenAI (or swap the chat model sub-node for Anthropic, Gemini, Ollama...), Slack and Gmail; set slackChannelId and digestEmail in Config (also the channel on Slack: error alert). In Config set actorInput.categories and locations, then leadGoal: website (no-website businesses score highest, for web/SEO offers) or outreach (reachable businesses score highest). List chains to skip in excludeChains. Write your ideal-lead description in aiCriteria; set aiWeight (0 = rules only, 1 = AI only). Run once manually, check the sheet, then activate. Customize Edit weights in Score and enrich leads. Set enrichFromWebsite: true in actorInput to have the actor look for emails on each site (more requests per lead). Swap Gmail/Slack for Teams, Discord, HubSpot, Airtable, etc. Each delivery node only reads $json. Disclosure: I maintain these Apify actors (account transparent_meteorite). The actor is a paid pay-per-event Apify tool; check its Store page for current pricing before scheduling.