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.
by David Olusola
๐๏ธ Auto-Create Airtable CRM Records for Zoom Attendees This workflow automatically logs every Zoom meeting attendee into an Airtable CRM โ capturing their details for sales follow-up, reporting, or onboarding. โ๏ธ How It Works Zoom Webhook โ Captures participant join event. Normalize Data โ Extracts attendee name, email, join/leave times. Airtable โ Saves/updates record with meeting + contact info. ๐ ๏ธ Setup Steps 1. Zoom Create a Zoom App with meeting.participant_joined event. Paste workflow webhook URL. 2. Airtable Create a base called CRM. Table: Attendees. Columns: Meeting ID Topic Name Email Join Time Leave Time Duration Tag 3. n8n Replace YOUR_AIRTABLE_BASE_ID + YOUR_AIRTABLE_TABLE_ID in the workflow. Connect Airtable API key. ๐ Example Airtable Row | Meeting ID | Topic | Name | Email | Join Time | Duration | Tag | |------------|--------------|----------|--------------------|----------------------|----------|----------| | 999-123-456 | Sales Demo | Sarah L. | sarah@email.com | 2025-08-30T10:02:00Z | 45 min | New Lead | โก With this workflow, every Zoom attendee becomes a structured CRM record automatically.
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!
by Entech Solutions
Short Description Automatically exports customer records from NetSuite and syncs them into Salesforce โ creating or updating Accounts and Contacts depending on whether the NetSuite record represents a company or an individual. Who is this for / Use case This template is designed for businesses and integration developers who: Use NetSuite as their ERP or CRM system. Need to automatically sync customer data (both companies and individuals) into Salesforce. Want a reliable, scalable solution that supports pagination and upserts. Prefer a ready-to-use, easily customizable workflow built on n8n. How it works Initialize pagination offset. Fetch customer records from NetSuite in batches via REST API. Split the retrieved array into individual items. Check record type โ company or individual. Upsert to Salesforce: For companies โ creates/updates Account records. For individuals โ creates/updates both Account and Contact (linked to the Account). Merge results from both branches. Update pagination offset for the next batch. Repeat until all records are processed, then end the workflow. Setup / Configuration Import the workflow into your n8n instance. Set your NetSuite and Salesforce credentials. Ensure your Salesforce Account/Contact objects have a matching External ID field. (Optional) Adjust mapping fields or filters to your data needs. Execute manually or trigger on a schedule (e.g., daily sync).
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 Moe Ahad
How it works: This flow checks the user's Google calender of events from Sunday to Saturday of current week, to determine how many hours have been booked each day. If a day has over 6 hours booked, it blocks out the remaining work hours for dedicated focus time. The flow assumes 8 work hours per day. For example, if the Monday of this week has 6.5 hours booked (for meetings, tasks etc.), it automatically blocks off the remaining 1.5 hours for dedicated focus time, so external users can see and not book new events for those hours. Benefit: Prevents users from being overloaded with meetings and gives time for dedicated deep work/focus time. Set up steps: Update start time of the "Schedule Trigger," this is the time the flow will run daily. Note: the workflow assumes a 9AM-5PM work schedule so it's recommended to schedule the flow to trigger before 9AM. Update the credentials for the "Get Full Weeks Events" and "Create Focus Time Event" nodes. Use your Google credentials so the workflow can connect to your Google calendar.
by Sam Gale
Quick Overview This workflow runs weekly to track your Google rankings for multiple keywords using SearchApi, compares current positions to the previous run stored in an n8n Data table, and posts a formatted movement report to Slack. How it works Runs every week on a schedule. Loads your target domain, comma-separated keyword list, and Google location, then fetches previously saved ranks from an n8n Data table. Splits the keyword list into individual keywords and queries Google via SearchApi for the first 5 pages of results per keyword. Scans the organic results to find your domainโs best position per keyword and calculates week-over-week movement (up, down, new, dropped out, or not ranking in the top 50). Formats the results into a Slack Block Kit message with a plain-text fallback. Posts the report to a Slack channel and upserts currently ranking keywords back into the Data table for the next comparison. Setup Add a SearchApi.io credential in the SearchApi node. Create or select an n8n Data table (for example, โRank Historyโ) with columns for keyword, position, url, and last_checked, and select it in both the read and upsert Data table nodes. Add a Slack OAuth2 credential, choose the destination channel in the Slack node, or remove Slack and use the formatted text output instead. Update the domain, keywords (comma-separated), and location values in the Settings node, then activate the workflow.
by Artur Mulagalijev
Quick Overview This workflow runs weekly (or manually) to pull HubSpot companies, search Coresignal job ads via Elasticsearch for customer support roles by company domain, maintain job snapshot and job tables in n8n Data Tables, and update HubSpot company properties with job-signal metrics. How it works Runs on a Monday 9am schedule (or manual start) and generates a unique run ID for the execution. Fetches all companies from HubSpot, removes duplicates, and keeps only companies that have a website domain. Batches company domains and queries Coresignalโs Elasticsearch job index for active customer-support-related job ads matching those domains. Stores the found job IDs as a โcurrent snapshotโ in an n8n Data Table and compares it to the previous snapshot to identify new and disappeared job ads. For newly found job IDs, fetches full job details from Coresignal and upserts them into a โjob_data_tableโ Data Table, while updating the โprevious snapshotโ with the active IDs. For job IDs no longer present, deletes them from the snapshot and removes the corresponding rows from the job table. Aggregates active jobs per company domain (counts, recent-posting metrics, and a โtop jobโ pick) into a โcompany_dataโ Data Table and compares it with the prior company list. Updates matching HubSpot company records to reflect new/updated/ended job-signal fields such as active listings, jobs in the last 7/30 days, and top job details. Setup Add HubSpot OAuth2 credentials and ensure your HubSpot companies have a populated website/domain property and the custom properties used for updates (for example job_active_listings_total, jobs_last_7_days, and top_job_url). Add Coresignal credentials and confirm your account supports the job Elasticsearch DSL search and job detail lookups. Create (or relink) the n8n Data Tables used by the workflow: previous snapshot, current snapshot, job_data_table, and company_data. Review and adjust the Coresignal Elasticsearch query terms (job titles and filters) to match the roles you want to track. Set the schedule trigger to your preferred cadence or use the manual trigger for ad-hoc runs.
by Rahul Joshi
Description Automatically track Stripe invoices and create Google Calendar reminders for upcoming due dates. This workflow ensures you never miss a payment deadline by running daily checks, filtering invoices due within the next 7 days, and adding them to your calendar with invoice details. โฐ๐ณ๐ What This Template Does Runs daily at 8:00 AM using a scheduled trigger. โฐ Fetches draft invoices from Stripe. ๐ณ Splits invoice data into individual records for processing. ๐ Filters invoices due within the next 7 days. ๐ Prevents duplicates by checking against existing calendar events. ๐ Creates Google Calendar events for valid invoices with details (ID, customer, amount). ๐ Key Benefits Automated invoice due date reminders with no manual effort. โก Avoids duplicate entries in Google Calendar. ๐ก๏ธ Provides a clear overview of pending payments. ๐ Saves time for freelancers, agencies, and finance teams. โฑ๏ธ Keeps all payment reminders in one central place. ๐ฒ Features Daily schedule with cron expression (0 8 * * *). Stripe API integration to fetch draft invoices. Smart filtering: only invoices with due dates within 7 days are selected. Google Calendar integration to check existing events and avoid duplicates. Detailed calendar events with invoice ID, amount due, and customer email. Customizable reminders โ add customer name, invoice link, or change times. Requirements n8n instance (cloud or self-hosted). Stripe API credentials with invoice read access. Google Calendar OAuth2 credentials with event write permissions. Access to the target Google Calendar (replace placeholder with your own). Target Audience Freelancers and solopreneurs managing invoices. ๐ฉโ๐ป Agencies tracking multiple client invoices. ๐ข Finance and accounting teams requiring automated reminders. ๐ Businesses wanting to automate payment follow-ups. ๐ผ Remote teams centralizing billing schedules. ๐ Step-by-Step Setup Instructions Configure Stripe API credentials in n8n. Add Google Calendar OAuth2 credentials with access to your target calendar. Replace the placeholder calendar ID (your-calendar@gmail.com) with your actual calendar. Import this workflow into n8n. Test the workflow by creating a test draft invoice in Stripe with a due date in the next 7 days. Verify the Google Calendar event is created with the invoice details. Enable the workflow to run daily and enjoy hands-free invoice tracking. โ
by Linkup API
Quick overview Automate B2B lead generation on autopilot: every weekday morning, DataForB2B finds fresh leads matching your ICP (800M+ profiles, 50+ filters), skips anyone already contacted, and sends up to 10 personalized LinkedIn connection requests per day via LinkUp API - with safe, human-like limits. How it works Runs every weekday at 9:00 AM using a schedule trigger. Searches for people matching your ICP in DataForB2B (for example, โHead of Salesโ in the United States) and returns up to 25 results. Normalizes the lead data into consistent fields such as LinkedIn profile URL, name, title, company, and location. Skips leads whose LinkedIn URLs were already processed in previous executions to avoid re-contacting the same profiles. Limits the list to a daily cap of 10 leads. Sends a personalized connection request for each remaining lead using the LinkUp API, continuing even if individual invites fail. Setup Create a DataForB2B API key at app.dataforb2b.ai and adjust the people filters to match your ICP. Get your LinkUp API key at app.linkupapi.com and connect your account in the LinkUp dashboard. Update the schedule (cron expression) if you want a different time or cadence. Customize the connection message template to match your outreach style and compliance requirements. Requirements A DataForB2B account and API key โ free credits to start (app.dataforb2b.ai) A LinkUp API key with your account connected (app.linkupapi.com) Self-hosted n8n with the verified community nodes "DataForB2B" and "Linkup API" installed Customization Adjust the ICP filters โ 50+ available (title, country, industry, company size, funding stage...) Edit the connection message template to match your voice Change the daily cap and schedule to fit your account's activity level Add a Google Sheets or CRM step after the send node to log contacted leads
by Robert Breen
Send a templated outreach email to new leads in a Google Sheet on a daily schedule, then mark each lead as contacted so they wonโt be emailed twice. Built with: Schedule Trigger โ Google Sheets โ Filter โ Outlook Send Email โ Google Sheets (append/update). Whoโs it for Teams that collect leads in Sheets and want automatic, once-per-lead outreach Solo founders/consultants running simple top-of-funnel follow-ups Anyone prototyping CRM-lite flows in n8n How it works / What it does Schedule Trigger runs daily (e.g., 09:00). Get rows (Google Sheets) pulls leads from your sheet. Filter keeps only rows where Contacted is empty. Outlook โ Send a message emails each remaining lead (to = {{$json.Email}}). Google Sheets (appendOrUpdate) writes back Contacted = Yes (match on Email) to prevent re-sending. How to set up 1) Google Sheets (OAuth2) In n8n โ Credentials โ New โ Google Sheets (OAuth2), sign in and grant access. In Get rows: select your Lead Source sheet (e.g., โNew Leadsโ). In Append/Update: select the sheet you want to mark as contacted (can be the same sheet or a CRM sheet). Make sure your sheet has at least: Email, Contacted (blank for new). 2) Outlook (Microsoft Graph) OAuth2 n8n Cloud (quick connect):** In Credentials โ New โ Microsoft Outlook OAuth2, choose Connect, sign in with your Microsoft account, and accept permissions. Self-hosted (Azure App Registration):** 1) Azure Portal โ App registrations โ New registration. 2) Add redirect URL: https://YOUR_N8N_URL/rest/oauth2-credential/callback. 3) API permissions (Delegated): offline_access, Mail.Send, User.Read. Grant admin consent if required. 4) Create a Client secret; copy Application (client) ID and Directory (tenant) ID. 5) In n8n, create Microsoft Outlook OAuth2 credential with those values and scopes: offline_access Mail.Send openid email profile. In the Send a message node, select that credential and keep To mapped to {{$json.Email}}. Customize Subject and Body to your brand (default provided). Requirements A Google Sheet of leads with an Email column (and an optional Contacted column). A Microsoft account with permission to send mail via Microsoft Graph (Outlook). How to customize the workflow Email content:** Edit subject/body (add variables like {{$json.FirstName}}). Send window:** Change Schedule Trigger time/interval. Idempotency:** Use the same sheet for read+write (match on Email) or separate source/CRM sheets. Logging:** Add a Sheet or Notion append step after send for an audit trail. Security & best practices No hardcoded secrets:* Always use *OAuth2 credentials** (Sheets & Outlook). Sanitize PII:* If publishing, *remove real spreadsheet IDs/URLs** and personal emails/phone numbers. Sticky notes are mandatory:* Add a *yellow sticky note** in the workflow with this description and a short setup checklist. Use neutral sticky notes for per-node tips. Troubleshooting No emails sent:** Ensure Contacted is blank for new rows and the Filter checks โis empty.โ Auth errors (Outlook):** Reconnect credential; confirm Graph scopes and tenant consent. Sheets errors:** Re-select spreadsheet/tab; verify headers (Email, Contacted). Duplicates:* Confirm *Append/Update* uses *matching column = Email**. Tags & category Category: Sales & CRM Tags: outreach, follow-up, google-sheets, outlook, schedule, dedupe, cold-email Changelog v1.0.0 โ Initial release: scheduled outreach, Outlook email, de-dupe via Contacted = Yes. Contact Need help customizing (personalization, rate-limits, CRM sync, bounce checks)? ๐ง rbreen@ynteractive.com ๐ Robert Breen โ https://www.linkedin.com/in/robert-breen-29429625/ ๐ ynteractive.com โ https://ynteractive.com