by CompanyEnrich
This n8n template automates turning your Closed-Won HubSpot deals into lookalike prospects using the CompanyEnrich Similar Companies API. Instead of manually guessing who looks like your best customers, this workflow takes your top-performing companies from HubSpot, finds highly similar companies and pushes the results into a Google Sheet ready for outreach or further enrichment. It’s ideal for GTM, sales, and growth teams who want to scale what already works. Good to know This workflow uses company domains as seeds for lookalike generation. Make sure your HubSpot company records have valid domains. Lookalike results are query-based, meaning the same company can appear in different runs if it matches the input at that moment. The Google Sheet uses the domain column to avoid duplicates when appending or updating rows. Credit usage depends on the number of similar companies returned by the CompanyEnrich API. How it works The Schedule Trigger runs the workflow on a defined interval (weekly by default). HubSpot companies are fetched using the HubSpot Get Companies node. A custom filter selects the top-performing companies (based on revenue percentile). Company domains are extracted and passed into the CompanyEnrich Similar Companies API. Similar companies are returned and split into individual rows. The enriched company data is cleaned and normalized. Results are appended or updated in a connected Google Sheet. How to use Connect your HubSpot app with company read access. Add your CompanyEnrich API key to the HTTP Request node. Connect your Google Sheets account and select a sheet with a domain column. Adjust the schedule or top-percentage filter if needed. Activate the workflow and let it run automatically. Requirements HubSpot app (Company read access) CompanyEnrich API key Google Sheets account n8n instance with HTTP and HubSpot nodes enabled Customising this workflow Change the Top_Percent value to control how many of your best customers are used as seeds. Modify the schedule interval to run daily, weekly, or on demand. Extend the workflow to push results into a CRM, enrichment pipeline, or outbound tool. Add additional filters (industry, location, employee size) before writing to Sheets.
by Robert Breen
🧑💻 Description This workflow connects SerpApi with OpenAI inside n8n to automate Google News monitoring and analysis. It’s built for market researchers, analysts, communications teams, and business leaders who need to stay on top of fast-changing news without wasting time scrolling through endless headlines. Instead of manually searching, this workflow automatically fetches news, groups it into meaningful categories, and recommends the most relevant articles. Problem it solves: Reduces time spent manually monitoring news. Helps track competitors, industries, or emerging trends. Provides structured, actionable insights from unstructured headline feeds. Disclaimer: this template can only be used on self-hosted installations. 📌 Use Cases Market Intelligence**: Track industry-specific news to guide strategy. Competitor Monitoring**: Automatically surface competitor mentions in the press. Research Support**: Organize articles into categories for academic or professional projects. Executive Briefings**: Deliver a curated daily digest to stakeholders. Trend Spotting**: Detect recurring topics to understand where coverage is growing. ⚙️ Setup Instructions Preconditions You need a self-hosted n8n instance (this template doesn’t run on n8n.cloud). A valid SerpApi account + API Key. An OpenAI API Key with billing enabled. Optional: Connected Slack, Email, or Google Sheets credentials if you plan to extend output. 1️⃣ Set Up SerpApi Connection Create a free account at SerpApi Copy your API Key from the dashboard In n8n → Credentials → New → SerpApi Paste your API Key → Save In the workflow, select your SerpApi credential in the Google News Search node. 2️⃣ Set Up OpenAI Connection Go to OpenAI Platform Navigate to Billing and ensure your account has credits/funding Copy your API Key into the OpenAI credentials in n8n 🧠 Workflow Breakdown Chat Trigger → A user enters a search query (e.g., “EV market 2025”). Google News Search (SerpApi) → Fetches the latest headlines for that query. Split Out Links → Separates articles into individual items. Aggregate Node → Merges article titles and links into a structured list. OpenAI Agent → Summarizes, categorizes, and selects the most relevant article per category. Response Output → Returns a clean, categorized digest with clickable links. 🎛️ Customization Guidance Adjust Categories**: Change the OpenAI system prompt to return 3, 5, or 10 categories depending on the depth you want. Regional Focus**: Use SerpApi’s filters (gl=us, hl=en) to restrict results by geography or language. Delivery Methods**: Add Slack, Email, or Google Sheets nodes to automatically share the digest with your team. Automation Frequency: Add a **Schedule Trigger to run daily, weekly, or at custom intervals. Extended Analysis**: Modify the prompt to include sentiment analysis, top keywords, or executive summaries. Multi-Query Runs**: Duplicate the SerpApi node to monitor multiple industries or competitors in one workflow. 💬 Example Q&A Question: “What’s happening in renewable energy today?” Response: Policy**: “US expands solar subsidies” – [link] Innovation**: “New battery breakthrough announced” – [link] Market Moves**: “Wind energy stocks surge” – [link] Competition**: “Shell invests in offshore projects” – [link] Sustainability**: “Community solar initiatives expand” – [link] 📬 Contact Need help customizing this template (e.g., tracking multiple industries, adding auto-delivery, or integrating dashboards)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com
by Stéphane Heckel
Keep your Google Sheets contacts in sync with SeaTable Update or Insert records in SeaTable How it works Use a Google Sheet as your central contact list. For each contact in the sheet: Check if the record already exists in SeaTable (based on email). If it exists → update the record. If it doesn’t → insert the new contact. How to use Copy the Google Sheet Template Link. Get the Google Sheet ID (the string between d/ and /edit). In the workflow, set the Sheet ID in the settings node. In SeaTable, create or update a base with a Table1 containing these fields: email firstname lastname company Configure your Google Sheets and SeaTable credentials in n8n. Add your own contacts to the Google Sheet & run the workflow Requirements Google credentials (for Sheets access) SeaTable account (Cloud) n8n (tested on version 1.105.2, Ubuntu) Example use cases Maintain a central CRM-like database in SeaTable. Ensure consistent contact data when collecting leads in Google Sheets. Automate record deduplication (prevent duplicate entries). Need Help? Join the discussion here or contact me directly on LinkedIn. Ask the community in the n8n Forum.
by Rahul Joshi
Description This workflow automates the tracking of deal stage updates in HighLevel CRM and syncs them with ClickUp for task management. It filters opportunities based on the most recent update date, creates actionable tasks in ClickUp for recent deals, and sends Slack alerts when older deal updates are detected. This ensures that your sales and operations teams stay aligned, reducing manual tracking and improving visibility of pipeline activity. What This Template Does (Step-by-Step) 📋 Fetch All Deals from HighLevel CRM Pulls a complete list of opportunities with contact details and deal stages. ⏱ Filter Recent Deal Updates Checks if a deal was updated on/after a specific date (e.g., Sept 30, 2025). 🔀 Route Deals via If Node ✅ Recent Updates → Proceed to get contact details & create a task in ClickUp. ❌ Older Updates → Trigger a Slack notification for awareness. 👤 Get Contact Information Retrieves full contact details (name, location ID, etc.) from HighLevel for better context in tasks. 🗂 Create ClickUp Task Generates a new ClickUp task containing deal and contact information, ensuring your team has actionable follow-up tasks. 💬 Send Slack Notification Notifies a specified Slack user when a deal update is older than the defined threshold, highlighting deals that may need attention. Prerequisites HighLevel CRM account & API credentials ClickUp account & API credentials Slack workspace & API credentials n8n instance (cloud or self-hosted) Step-by-Step Setup Connect HighLevel CRM → Fetch all opportunities. Apply Date Filter (If Node) → Split deals into recent vs. old updates. Recent Deals → Fetch contact details → Create task in ClickUp. Old Deals → Send Slack notification to assigned user. Customization Ideas 🎯 Adjust the date threshold for “recent updates.” 📢 Add Slack/Teams alerts for new deals as well. 📚 Sync ClickUp tasks into Notion or Airtable for reporting. 💡 Enrich ClickUp tasks with deal value, stage, or assigned salesperson. Key Benefits ✅ Keeps deal updates transparent and organized ✅ Ensures no recent deal activity is missed ✅ Automates ClickUp task creation for sales follow-ups ✅ Sends real-time Slack alerts for old updates ✅ 100% automated, customizable workflow Perfect For 👥 Sales teams managing multiple deals daily 🏢 Companies using HighLevel CRM & ClickUp 🎯 Teams wanting instant visibility into pipeline changes 📊 Managers tracking deal activity timelines
by Jitesh Dugar
Elevate your shopping experience with an AI-driven personal assistant that lives right in your WhatsApp. This template automates the entire lifecycle of a shopping list—from intelligent intake and live web price comparisons to proactive daily deal alerts—by combining WATI, OpenAI, Serper (Google Search), and Google Sheets. 🎯 What This Workflow Does Turns WhatsApp into a high-powered price engine across three independent pipelines: 📥 Pipeline A: Intelligent Intake When a user sends a list (e.g., list: milk 2L, eggs 12), OpenAI parses every item into structured categories, quantities, and units before saving them to the Google Sheets master list. 🔍 Pipeline B: Live Price Engine When a user types compare, the bot triggers a real-time web search via Serper. OpenAI then analyzes the search results to pick the absolute best deal and alternative stores, sending back a formatted "Comparison Card" with links. 📬 Pipeline C: Proactive Deal Alerts A scheduled trigger runs daily at 8 AM, scanning your saved items for price drops. If it finds a saving of ≥ 10%, it automatically pings the user with a personalized deal alert. ✨ Key Features Semantic Parsing:** OpenAI understands natural language lists, so you don't have to follow strict formatting. Live Search Integration:** Uses the Serper API to fetch actual live prices from major Indian retailers in seconds. Automated UI:** Uses custom emojis and visual bar charts to group items by category (e.g., 🥦 Produce, 🥛 Dairy) for easy mobile viewing. Duplicate Prevention:** The "Savings Tracker" logic de-duplicates items so you only ever see the latest, most relevant price for any product. Maintenance Commands:** Simple keywords like clear allow users to reset their list and start fresh. 💼 Perfect For Savvy Shoppers:** Finding the lowest prices on groceries and electronics without manual searching. Budget-Conscious Households:** Tracking long-term price trends for recurring household purchases. E-commerce Researchers:** Monitoring competitor pricing and deals automatically. Teams:** Sharing a centralized shopping list that updates with live market data. 🔧 What You'll Need Required Integrations WATI** – To handle all WhatsApp triggers and message delivery. OpenAI API** – For item classification and deal extraction. Serper.dev** – To perform high-speed Google Shopping searches. Google Sheets** – As your primary database for lists and deals. 🚀 Quick Start Import Template – Copy the JSON and import it into your n8n instance. Set Credentials – Connect your WATI, OpenAI, Serper, and Google Sheets accounts. Configure Sheets – Ensure your Google Sheet has two tabs: Shopping List: phone, item, qty, unit, category, addedAt, listid, username, Status Deals: listid, phone, item, price, originalPrice, storeName, savingPct, Currency, url, summary, confidence, alternatives, foundAt, alertSent Test the Flow – Send list: 1kg rice, milk 2L to your WATI number. Run Comparison – Reply compare to see the AI find the best deals live! 📈 Expected Results 15–25% savings on monthly groceries by consistently identifying the cheapest reputable retailer. Zero search time: The AI searches the entire web for you in the background. Automated alerts: Never miss a price drop on items you actually need. Centralized organization: A tidy, categorized list that replaces messy paper notes or fragmented chat messages. Ready to shop smarter? Import this template and connect your Serper account to start saving today!
by Rahul Joshi
Description: Keep your CRM always up to date by automatically syncing closed deals from Stripe into Google Sheets. This n8n workflow fetches all paid invoices, finds matching customer records in your CRM tracking sheet, removes duplicates, marks the deal as “Closed,” and updates the sheet in real time—eliminating manual updates and ensuring your sales pipeline reflects actual revenue. What This Template Does ⏰ Scheduled Trigger (Cron): Runs automatically at your chosen frequency (daily/hourly) to check Stripe for new paid invoices. 💳 Fetch Paid Invoices from Stripe: Calls the Stripe API to retrieve all invoices with status = “paid.” 📋 Split Invoice Array: Breaks down the list of paid invoices into individual records for easier processing. 🔍 Find Customer in CRM Sheet: Looks up each Stripe customer email against your Google Sheets CRM tracker to fetch HubSpot/Pipedrive Deal IDs. 🧹 Clean Data & Mark as Closed (Code Node): Removes duplicates, filters out empty rows, and tags deals with status = “Closed” (customizable to “Won” or your CRM’s terminology). ✅ Update CRM Sheet with Closed Deals: Updates your Google Sheet by matching records via Stripe Email and marking them as closed while preserving existing CRM IDs. 📈 Full Sync Summary: At the end, your CRM sheet reflects all customers who have completed payments in Stripe, ensuring your pipeline and revenue reporting stay aligned. Required Integrations ✅ Stripe API Credentials (for fetching paid invoices) ✅ Google Sheets OAuth2 API (for reading/writing CRM records) Ideal Use Cases 💼 Automatically close deals when payment is received 📊 Keep CRM pipeline metrics aligned with Stripe transactions 🧑💼 Sync sales & finance teams on deal status 🏢 Perfect for SaaS, e-commerce, or agencies handling recurring payments Why This Template is Powerful ✔ Removes manual CRM updates ✔ Prevents duplicate or missed records ✔ Ensures instant revenue recognition in CRM ✔ Easy to extend to HubSpot, Pipedrive, or Zoho
by Ian Kerins
Overview This n8n template tracks GitHub Trending repositories (daily/weekly/monthly), parses the trending page into structured data (rank, repo name, stars, language, etc.), and stores results in Google Sheets with automatic deduping. It’s designed for teams who want a simple “trending feed” for engineering research, developer tooling discovery, and weekly reporting. Who is this for? Developers, PMs, DevRel, and tooling teams who want a lightweight trend radar Anyone building a curated list of fast-rising open source projects Teams who want Sheets-based tracking without manual copy/paste What problems it solves Automatically collects GitHub Trending data on a schedule Prevents duplicate rows using a stable dedupe_key Updates existing rows when values change (rank/stars/score) How it works A schedule triggers the workflow. Inputs define the trending window (daily, weekly, or monthly) and optional languages. ScrapeOps fetches the GitHub Trending HTML reliably. The workflow parses repositories and ranks from the HTML. Cleaned rows are written to Google Sheets using Append or Update Row matching on dedupe_key. Setup steps (~5–10 minutes) 1) ScrapeOps Register & get an API key: https://scrapeops.io/app/register/n8n Read the n8n overview: https://scrapeops.io/docs/n8n/overview/ (Optional) Learn ScrapeOps Proxy API features: https://scrapeops.io/docs/n8n/proxy-api/ 2) Google Sheets Duplicate this sheet/create a Sheet and add a trending_raw tab. Add columns used by the workflow (e.g. captured_at, since, source_url, rank_on_page, full_name, repo_url, stars_total, forks_total, stars_in_period, score, dedupe_key). In the Google Sheets node, choose Append or Update Row and set Column to match on = dedupe_key. 3) Customize Change since to daily/weekly/monthly in the Inputs node. Add languages via languages_csv (example: any,python,go,rust). Adjust delay if needed. Pre-conditions ScrapeOps account + API key configured in n8n Google Sheets credentials connected in n8n A Sheet tab named trending_raw with matching columns Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with GitHub’s Terms of Service, robots directives, and applicable laws in your jurisdiction. Scraping targets can change at any time; you may need to update wait times and parsing logic accordingly. Use responsibly for legitimate business purposes.
by Anchor
Enrich Profiles directly in Google Sheet ! This n8n template shows how to enrich Google spreadsheet with LinkedIn profiles automatically using the Apify LinkedIn Profile Enrichment actor from Anchor. It will create a new sheet with the enriched data. You can use it to build lead enrichment workflows, update your CRM records, or personalize outreach campaigns — all directly inside n8n. Who is this for Sales Teams: Build targeted B2B lead lists fast. Recruiters: Gather candidate data from LinkedIn profiles. Growth Marketers: Enrich outreach lists with LinkedIn info. Researchers: Analyze industries, roles, and company trends. CRM Builders: Auto-populate contact data from LinkedIn. Lead-Gen Agencies: Deliver qualified prospect lists at scale. How it works The workflow starts with a list of LinkedIn profile URLs (you need to set the Google sheet URL after you added the Google credentials from the n8n settings). The Apify node runs the LinkedIn Profile Enrichment actor to extract structured data such as name, title, company, location, and more. The results are then stored in a new Google Sheet How to use In Google Sheet: Create a Google sheet, rename the sheet "profiles" and add all the LinkedIn URLs you want to enrich (one url per row) In this Workflow: Open the "Set google sheet URL & orginial sheet name" and replace the example Google sheet URL, and the name of the sheet where your LinkedIn URLs are In the n8n credentials: Connect your Google Sheet account, with read and write privileges for google sheets Connect to your Apify account In Apify: Sign up for this Apify Actor Requirements Apify account with access to the LinkedIn Profile Enrichment actor LinkedIn profile URLs to process Need Help? Open an issue on directly on Apify! Avg answer in less than 24h Happy Enrichment!
by Harshil Agrawal
This workflow allows you to create a new list, add a new contact to that list, update the contact, and get all contacts in the list using the Autopilot node. Autopilot node: This node will create a new list called n8n-docs in Autopilot. Autopilot1 node: This node creates a new contact and adds it to the list created in the previous node. Autopilot2 node: This node updates the information of the contact that we created in the previous node. Autopilot3 node: This node returns all the contacts of the n8n-docs list that we created using the Autopilot node.
by AppUnits AI
This workflow streamlines your lead management process by automatically capturing form submissions from Jotform, updating Attio CRM, and notifying your team (sales team for example) via Slack — all without manual work. How it works Receive Lead: A new submission is captured from Jotform (name, email, message). Prepare CRM: Checks if the Pending and Urgent deal stages exist in Attio CRM and creates them if they don’t exist. Checks if the Message column exists in Attio CRM and creates it if it doesn't exist. Lead Handling: If the lead doesn't exist in Attio CRM, the contact is created, a new deal is added to the Pending stage, and a Slack notification is sent. If the lead exists but has no deal, a new deal is added to Pending, and Slack is notified. If the lead exists with a deal, the deal is moved to the Urgent stage, and Slack is notified. Slack Notification: Your team (sales team for example) receives an instant Slack message whenever a new or existing lead is processed, so they can act fast. Requirements Make sure to have Jotform, Attio CRM and Slack accounts, then follow this video guide on how to start using this template.
by Matthieu
🔒 N8N Security Audit Report - Automated Weekly Email 🎯 What does this workflow do? This workflow automatically generates and emails a comprehensive security audit report for your N8N instance every week. It identifies potential security risks related to: Credentials** 🔑 : Exposed or insecure credentials Nodes** 🧩 : Sensitive nodes (Code, HTTP Request, SSH, FTP, etc.) Instance settings** 🏢 : Global security configuration Community nodes** 📦 : Third-party nodes that may pose risks The report includes direct links to affected workflows, execution statuses, and actionable recommendations. ✨ Key Features 📊 Smart Risk Assessment Calculates overall risk level: 🟩 Low / 🟧 Moderate / 🟥 High Tracks unique credentials (not just total occurrences) Provides detailed breakdown by node type 🔗 Direct Workflow Links Clickable links to each workflow mentioned Shows last execution status (🟢 success / 🔴 failed) Displays execution timestamps 🌍 Bilingual Support Full support for French and English Switch language with a single variable 📧 Beautiful HTML Email Clean, professional formatting Color-coded risk levels Emoji icons for easy scanning 🚀 Quick Setup (5 minutes) 1️⃣ Configure Credentials N8N API**: Generate an API key in your N8N settings Gmail OAuth2**: Set up OAuth2 for Gmail sending 2️⃣ Set Your Variables Edit the "Set Config Variables" node: { "email_to": "your.email@domain.com", "project_name": "My-N8N-Project", "server_url": "https://n8n.yourdomain.com", // NO trailing slash! "Language": "EN" // or "FR" } 3️⃣ Test & Activate Click "Execute Workflow" to test Check your email inbox Activate for weekly automation 📧 Example Report Output Subject: 🔒 Audit Report My-Project – Risk 🟧 Moderate Content: 📊 Summary • Credentials involved: 8 (5 unique) • Nodes involved: 12 💻 code: 4 🌐 httpRequest: 3 🔐 ssh: 2 • Community nodes: 1 • Overall risk level: 🟧 Moderate 🔐 Credentials Risk Report 🔹 Credentials with full access 🔑 My AWS Credentials 🔑 Database Admin 📋 Workflow: Data Processing Pipeline 🟢 (25-10-2024 06:15 → 06:16) 💻 Process Data 🌐 API Call 🧩 Nodes Risk Report [...detailed node analysis...] 🎨 Customization Options Change Schedule Modify the "Schedule Trigger" node to run: Daily at 8 AM Monthly on the 1st Custom cron expression Add Recipients Add multiple emails in the Gmail node's toList parameter Adjust Risk Thresholds Edit the JavaScript in "Format Audit Report" nodes to customize when risk levels change Use Different Email Service Replace Gmail node with: SMTP Microsoft Outlook SendGrid Any email service N8N supports 💡 Use Cases ✅ Compliance Monitoring: Track security posture for audits ✅ Team Awareness: Keep your team informed of security status ✅ Change Detection: Notice when new risky nodes are added ✅ Best Practices: Get recommendations to improve security ✅ Multi-Environment: Run separate instances for dev/staging/prod 🔧 Technical Details Nodes Used: 8 Credentials Required: 2 (N8N API + Gmail OAuth2) External Dependencies: None N8N Version: Compatible with latest N8N versions Execution Time: ~10-20 seconds 📋 Requirements N8N instance with API access Gmail account (or other email service) N8N API key with audit permissions Valid SSL certificate for workflow links (recommended) 🐛 Troubleshooting Empty report? → Check your N8N API key has audit permissions Workflow links don't work? → Verify server_url is correct and has no trailing slash No execution status shown? → Workflows must have been executed at least once Wrong language displayed? → Set Language to exactly "FR" or "EN" (uppercase) 🌟 Why This Template? Unlike basic monitoring tools, this workflow: ✅ Provides context-aware security analysis ✅ Links directly to affected workflows ✅ Shows real execution data (not just theoretical risks) ✅ Calculates unique credential exposure (not just counts) ✅ Supports bilingual reports ✅ Delivers actionable recommendations 🤝 Feedback & Support Found this helpful? Please rate the template! Have suggestions? Drop a comment below. Pro tip: Combine this with N8N's native alerting for real-time incident response! Tags: #security #audit #monitoring #compliance #automation #email #reporting #credentials #governance 📜 License MIT - Feel free to modify and share!
by Tejasv Makkar
🚀 Overview Automatically monitors daily student attendance from CSV files, identifies absent students, sends parent email alerts via SMTP, calculates risk scores, and generates an interactive HTML dashboard — all on a weekday schedule with no manual work needed. ⚙️ How it works Schedule trigger — runs Monday–Friday at 17:30 Data ingestion — reads student_attendance.csv and filters to today's records only Absence check — splits students into Absent / Present branches Contact merge — matches absent students with parent data from student_contacts.csv Alert logic — calculates risk level, attendance %, consecutive streak, and trend (Improving / Stable / Worsening) Parent email — sends a colour-coded HTML alert via SMTP for each absent student Dashboard builder — generates dashboard.html with 5 tabs: Today, Weekly, Monthly, Full History, and At-Risk Report update — appends records to attendance_report.csv for historical tracking 🛠 Setup steps Upload student_attendance.csv to the n8n files folder Upload student_contacts.csv to the n8n files folder Create an empty attendance_report.csv in the n8n files folder Add smtp_user in Settings → Variables Configure SMTP credentials in the Send Email node Adjust the cron schedule if needed (default: 17:30 Mon–Fri) 🔧 Required CSV formats student_attendance.csv | StudentID | Date | Status | Class | Subject | Teacher | |-----------|------|--------|-------|---------|---------| | S101 | 12-01-2026 | Absent | Grade 6 | Math | Mr Singh | student_contacts.csv | StudentID | ParentName | Email | Phone | |-----------|------------|-------|-------| | S101 | Anita Kumar | parent@email.com | +919999999999 | 📊 Dashboard Preview