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 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 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 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 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 Trung Tran
Automated Slack Channel Audit Workflow with Chatbot and GPT-4.1 > Automatically scans all public Slack channels weekly to detect those with no activity in the past 30 days, then generates and sends a detailed inactivity report to admins for review and action. Helps keep your Slack workspace clean, relevant, and clutter-free. π§βπΌ Whoβs it for This workflow is built for: Slack Workspace Admins** IT or Ops Managers** HR/Compliance Teams** β¦who want to maintain a clean and active Slack workspace by regularly reviewing inactive channels. βοΈ How it works / What it does This automated n8n workflow: Runs weekly via a scheduled trigger. Fetches all public Slack channels in the workspace. Checks message history of each channel for activity. Filters channels that have had no discussion in the past 30 days. Generates a Slack-friendly report with key metadata (name, member count, purpose, etc.). Sends the report to a Slack channel for admin review and possible action (e.g., archive, engage, repurpose). π οΈ How to set up Configure your Slack App Go to https://api.slack.com/apps β Create App Add the following OAuth scopes to your Bot Token: channels:read β to get list of public channels channels:history β to fetch message history users:read β to personalize report (optional) chat:write β to post the report to a Slack channel Install the app in your workspace Copy the Bot User OAuth Token Add it to your n8n Slack credentials under "Slack API" Customize the schedule in the "Weekly Schedule Trigger" node to control report frequency. Connect your Slack workspace to the workflow using your credentials. β Requirements n8n (self-hosted or cloud) Slack App with: channels:read channels:history chat:write Active channels and member data A designated Slack channel to receive the report π§ How to customize the workflow | Component | Customization Options | |----------|------------------------| | β±οΈ Schedule Trigger | Change to daily, monthly, etc. | | π Inactivity Threshold | Modify Filter channel with last discussion 30 days ago to 60/90 days | | π Report Formatting | Tweak the Consume slack report node to change formatting or summary | | π¬ Output Channel | Change target channel in Send Channel Inactivity Report | | π« Auto-archiving | Add logic to archive channels with 0 members or activity (using Slack API) | π Slack Permissions Reference | Action | Slack Scope Required | |--------|-----------------------| | Get all public channels | channels:read | | Get message history of a channel | channels:history | | Post message to Slack | chat:write | | Get user info (optional) | users:read |
by Harshil Agrawal
This workflow allows you to create a quote and a transfer, execute the transfer and get the information of the transfer using the Wise node. Wise node: This node will create a new quote in Wise. Wise1 node: This node will create a new transfer for the quote that we created in the previous node. Wise2 node: This node will execute the transfer that we created in the previous node. Wise3 node: This node will return the information of the transfer that we executed in the previous node.
by Harshil Agrawal
This workflow allows you to create, update, and get an object from Bubble. Bubble node: This node will create a new object of the type Doc in Bubble. If you want to create an object with a different type, use that type instead. Bubble1 node: This node will update the object that we created using the previous node. Bubble2 node: This node will retrieve the information of the object that we created earlier.
by Gaurav
Automated Email Verification for Google Sheets This n8n template demonstrates how to automatically validate email addresses from your Google Sheets using a reliable email verification API. Perfect for cleaning contact lists, validating leads, and ensuring email deliverability before marketing campaigns. Use cases are many: Lead qualification for sales teams, contact list cleaning for marketing, subscriber validation for newsletters, or CRM data hygiene maintenance! Good to know The rapid-email-verifier API is free for up to 1,000 verifications per month Each email verification typically takes less than 500ms to complete The workflow runs automatically every hour, checking for new entries Only processes emails that haven't been verified yet, preventing duplicate API calls How it works Monitor Google Sheets: The trigger watches your spreadsheet for new email entries every hour Smart Filtering: Only emails with empty "Email Verified" columns are processed to avoid duplicates Batch Processing: Emails are processed one by one to respect API rate limits and ensure reliability API Verification: Each email is sent to the rapid-email-verifier service which returns validation status Results Update: The original sheet is updated with verification results (valid/invalid/unknown) using the Serial Number as a match key The verification accuracy is consistently above 95% and shows excellent detection of invalid, disposable, and risky email addresses! How to use The Google Sheets trigger monitors your spreadsheet automatically, but you can also test manually Simply add new rows with email addresses to your connected Google Sheet Leave the "Email Verified" column empty for new entries The workflow will automatically process and update the verification status Technically, you can process unlimited emails, but consider API rate limits and costs for large batches. Requirements Google Sheets account** with a spreadsheet containing columns: SrNo, Name, Email, Email Verified Google Sheets credentials** configured in n8n for both trigger and update operations Internet connection** for API access (no additional API key required for rapid-email-verifier) Customising this workflow Email verification can be enhanced for many use-cases: Add webhook trigger** for real-time verification when leads are captured Connect to CRM systems** like HubSpot or Salesforce for direct integration Add email categorization** to separate personal vs business emails Include bounce detection** by connecting to your email service provider Set up notifications** to alert when invalid emails are detected in important lists This template is perfect for marketing managers, sales professionals, data analysts, and anyone managing contact databases who needs reliable email validation!