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
by BHSoft
Email Contacts Sync from Sent Mailbox to Odoo This workflow automatically extracts recipient email addresses from previously sent emails, validates and cleans the data, and synchronizes only deliverable contacts into the internal Odoo Mailing List. It also monitors replies and bounce signals to support follow-up and engagement tracking. 📌Who is this for? Marketing team (Email campaigns) CRM / Odoo administrators Sales team (follow-up & customer engagement) Operations / Automation engineers (n8n workflows) 📌The problem Customer emails are scattered across sent mail history instead of a centralized list. Manually copying recipients into Odoo is slow and error-prone. Sent emails may include invalid or bounced addresses. Duplicate contacts appear frequently. Hard to know which recipients have replied or not for follow-up. This leads to: messy contact database high bounce rate missed follow-ups inefficient manual work 📌How it works The system calculates the target date and queries the Gmail API to retrieve emails sent within the last X days. For each sent email: Extract recipients from the To/Cc fields Normalize data (trim, lowercase, remove duplicates) Check the email thread to detect replies or bounce/system responses Each recipient is then classified into one of the following lists: deliverableEmails repliedEmails bounceEmails autoReplies noResponse Push the list of deliverable emails to the internal Odoo system as Mailing List Contacts. Add emails from the bounce list to Blacklisted Email Addresses in Odoo to prevent future sending. (Optional) Log all processing results into Google Sheets for tracking and auditing. 📌Quick setup Required information: N8n Version 2.4.6 Gmail OAuth2 API Odoo API-KEY Google Sheets will be used to log all notified events. 📌Results Automatically build contact list from real sent emails No manual data entry Only valid emails stored in Odoo Reduced bounce rate No duplicates Easy follow-up tracking Better CRM hygiene and campaign performance 📌Take it further Auto follow-up if no reply after X days Auto-remove hard bounces Engagement scoring Reply analytics dashboard Sync with Loyalty/CRM systems Scheduled daily sync 📌Need help customizing? Contact me for consulting and support: Linkedin / Website
by Exploding Topics
Quick overview This workflow runs monthly to fetch trending topics from the Exploding Topics API, formats key fields like keyword, categories, growth, and URL, and upserts the results into an n8n Data Table so repeated runs update existing topics instead of creating duplicates. How it works Runs once per month on a schedule trigger. Sets the Exploding Topics API request parameters such as API key, category, timeframe, sort order, and result limit. Calls the Exploding Topics /topics endpoint via HTTP to retrieve the latest trending topics. Parses the API response and formats each trend into a normalized row with keyword, description, categories, search volume, 12-month growth, date added, and a topic URL. Upserts each formatted trend into an n8n Data Table, matching existing rows by the path field to avoid duplicates. Setup Get an Exploding Topics Pro API key and replace YOUR_EXPLODING_TOPICS_API_KEY in the API parameters. Review and adjust the API parameters (type, categories, sort, timeframe, limit) to match the trends you want to track. Select or create the target n8n Data Table and ensure its columns align with the stored fields (keyword, path, description, categories, search_volume, growth_12m, trend_url, date_added). Requirements Exploding Topics Pro API key n8n Data Table with columns: keyword, path, description, categories, search_volume, growth_12m, trend_url, date_added Customization Change the category, trend type, timeframe, sort order, and result limit in the Configure API Parameters node. Adjust the monthly schedule trigger to run weekly, daily, or at a custom interval. Additional info This workflow uses YOUR_EXPLODING_TOPICS_API_KEY as a placeholder. Replace it with your own Exploding Topics Pro API key before running the workflow. The workflow uses the topic path as the unique match key when upserting rows, so repeated runs update existing topics instead of creating duplicates.
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 khaled
What Problem Does It Solve? Keeping product data consistent between Shopify and Odoo is a major operational challenge. Manually creating new products in Odoo every time they are added to Shopify is slow and leads to Barcode errors. Prices and titles change frequently; failing to sync these updates results in pricing discrepancies and customer confusion. This workflow solves these issues by: Automatically creating a new product in Odoo as soon as it's added to Shopify. Ensuring Barcode uniqueness by checking for existing products before creation. Syncing product images directly from Shopify to Odoo. Real-time updating of product names and prices in Odoo whenever they change in Shopify. How to Configure It Shopify Setup Connect your Shopify account using OAuth2. The workflow uses two triggers: "products/create" and "products/update". Odoo Setup Connect your Odoo API credentials in n8n. Ensure your Shopify "Vendors" match the "Product Categories" names in Odoo for accurate automated mapping. Image Handling The workflow automatically downloads the first image from Shopify and converts it to the format required by Odoo's "image_1920" field. How It Works Product Creation Path: Shopify triggers the "Product Created" node. The workflow checks Odoo for an existing product with the same Barcode. If not found, it retrieves the Odoo Category ID based on the Shopify Vendor name. It downloads the product image, extracts the file content, and creates the item in Odoo. Product Update Path: Shopify triggers the "Product Updated" node. The workflow finds the corresponding product in Odoo by Barcode. It instantly updates the Odoo record with the new Title and List Price from Shopify. Customization Ideas Add logic to sync "Inventory Levels" so Shopify and Odoo share the same stock count. Map multiple variants (Sizes/Colors) from Shopify to Odoo Product Variants. Integrate with a notification system to alert you if a Shopify Vendor doesn't have a matching Category in Odoo. For more info Contact Me
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 Oneclick AI Squad
This automated n8n workflow enables intelligent auto-replies to LinkedIn comments by sending personalized direct messages (DMs) with relevant resources. When users comment on your posts, the workflow monitors engagement, filters valid interactions, analyzes comment content using keyword matching, and delivers tailored responses via LinkedIn messaging. It ensures duplicate prevention, tracks all message deliveries, and maintains logs for monitoring and compliance. Fundamental Aspects Monitor posts: Every 5 minutes, the workflow fetches your 10 most recent LinkedIn posts Collect comments: Retrieves all comments from each post (up to 20 per post) Filter engagement: Removes your own comments and tracks previously contacted users Smart matching: Analyzes comment text using keyword matching to determine the most relevant resource (eBook, webinar, template, tool, or checklist) Personalize message: Creates a custom DM with the commenter's name and selected resource Send and track: Delivers the message via LinkedIn and logs the interaction Setup steps Connect LinkedIn: Add your LinkedIn OAuth2 credentials to these nodes: Fetch Recent Posts Fetch Post Comments Send DM via LinkedIn Update resource URLs: Open the "Match Resource to Comment" node and replace all https://yourwebsite.com/... URLs with your actual resource links Customize message (optional): Edit the "Build Personalized Message" node to adjust the DM template and tone Test first: Click "Execute Workflow" to test before activating. Check the execution log to verify it works correctly Activate: Once tested, toggle the workflow to "Active" to run automatically every 5 minutes Technical Dependencies LinkedIn API**: For fetching recent posts, retrieving comments, and sending direct messages through OAuth2 authentication. n8n Platform**: For workflow orchestration, scheduled execution, conditional logic, data merging, and static data persistence. JavaScript Runtime**: For custom code execution in analysis, message generation, deduplication logic, and success logging nodes. Workflow Static Data**: For persistent storage of processed comment tracking across workflow executions without external databases. Customization Possibilities Adjust Monitoring Frequency**: Change the Schedule Trigger interval from 5 minutes to hourly, daily, or based on your posting frequency to optimize resource usage. Expand Resource Categories**: Add new resource types like case studies, white papers, free trials, or consultation bookings with corresponding keywords and URLs. Enhance Keyword Matching**: Implement weighted scoring, multi-word phrase matching, or semantic similarity analysis for more accurate resource selection. Add Sentiment Analysis**: Filter comments by sentiment to prioritize enthusiastic or question-asking commenters for resource delivery. Multi-Language Support**: Detect comment language and send localized resources and message templates for global audiences. A/B Test Messages**: Create multiple message variations and randomly assign them to track which messaging performs best. Integration with CRM**: Add nodes to log commenter information in your CRM (HubSpot, Salesforce) for lead tracking and follow-up. Advanced Analytics**: Connect to Google Sheets or databases to track delivery rates, response times, and resource click-through rates over time. Rate Limit Protection**: Add conditional logic to pause workflow if daily message limits are reached to prevent LinkedIn restrictions. Post-Specific Resources**: Map different resources to specific posts based on post topic or hashtags for more contextual recommendations. Explore More LinkedIn & Social Automation: Contact us to design AI-powered lead nurturing, content engagement, and multi-platform reply workflows tailored to your growth strategy.