by Christopher Nelson
Quick overview This workflow runs daily and pulls top trending fantasy football player adds and drops from Sleeper, enriches player IDs with the active player map, and posts a two-embed digest to a Discord channel via a webhook. How it works Runs on a daily schedule at 9:00 AM (or can be started manually for testing). Fetches the top 10 trending player adds from the Sleeper API. Fetches the top 10 trending player drops from the Sleeper API. Retrieves Sleeper’s active player map to convert player IDs into readable names and details. Builds a Discord-ready digest with ranked add/drop lists, safe formatting to avoid accidental @mentions, and a generated timestamp. Sends one Discord webhook message containing two embeds (Trending Adds and Trending Drops) with notifications suppressed. Setup Install the community node package n8n-nodes-sleeper in your n8n instance. Create a Discord incoming webhook for your target channel and add a Discord Webhook API credential in n8n using that webhook URL. Select that Discord webhook credential in the Discord send step and adjust the schedule time/cron expression if needed for your timezone.
by Dami's studio
Quick overview This workflow runs every weekday morning to scrape new Remotive remote job listings via Apify, deduplicates jobs already shared in previous runs, and posts a single trimmed daily digest message to a selected Slack channel. How it works Runs on a cron schedule every weekday at 08:00. Sets the Remotive search term, optional category slug, and the maximum number of jobs to fetch. Uses Apify (dami_studio/remotive-jobs-scraper actor) to retrieve matching job listings from Remotive. Filters out non-result/diagnostic items by keeping only responses marked as OK. Removes any jobs whose IDs have already been posted in previous executions. Builds one Slack-formatted digest message (newest first) and trims it to the first 25 jobs to keep it readable. Posts the digest message to the chosen Slack channel. Setup Add an Apify credential (API token) and ensure the Apify actor call is enabled for your account. Add a Slack OAuth2 credential and select the channel where the digest should be posted. Update the search term, category, and maxItems values to match the roles you want to track. Adjust the schedule cron expression if you want a different posting time or days of the week. Requirements An Apify account and API token. The scrape runs on the dami_studio/remotive-jobs-scraper actor. A Slack workspace where you can add an OAuth2 credential and post to a channel. Customization Change the search term and category in Search to run. Duplicate that node to track several roles at once. The digest is trimmed to 25 jobs so Slack does not cut the message off. Raise it if your channel tolerates longer posts. Weekdays at 08:00 is a default, not a constraint. Remotive posts through the day, so a second run after lunch catches more.
by Julian Kaiser
Automatically detect when your scheduled or polling-trigger workflows stop running. Unlike error handlers that catch failures when workflows execute, this catches the silent killer: workflows that simply never trigger at all — broken schedules, accidental deactivation, or trigger node bugs. No hardcoded workflow list needed. It auto-discovers every active scheduled workflow and infers the expected run frequency from their trigger configuration. How it works Fetches all active workflows via the n8n API Filters to those with a Schedule Trigger or polling trigger (Outlook, Gmail, Google Sheets, IMAP, etc.) Parses cron expressions and interval settings to calculate the maximum allowed time since last execution Fetches the latest execution for each discovered workflow Raises an error listing any workflows that are overdue — pair with an Error Workflow for Slack, email, or other alerts The max age calculation adds safety margins automatically: daily workflows get 48 hours (to survive weekends), weekly gets 8 days, monthly gets 35 days, and so on. Setup Import the workflow and add your n8n API credential to the two n8n nodes ("Fetch All Active Workflows" and "Get Latest Execution") Tag this workflow with skip-monitoring so it doesn't try to monitor itself Optionally set PROJECT_ID in the "Discover Scheduled Workflows" code node to limit monitoring to a specific n8n project Set an Error Workflow in the workflow settings to receive alerts (e.g. a workflow that sends Slack messages or emails on error) Activate the workflow Customization Schedule**: Default is daily at 9am. Adjust the Schedule Trigger to your preference. Project scope**: Set PROJECT_ID to monitor only one project, or leave empty to monitor all. Exclude workflows**: Tag any workflow with skip-monitoring to opt it out. Sensitivity**: The cron parser handles minutes, hours, days, weeks, months, weekday-only schedules, and every-N-day patterns. Adjust the parseCronMaxAge function if you need different thresholds.
by Entech Solutions
Short Description Automatically exports inventory items records from NetSuite and syncs them into Salesforce — creating or updating Products. 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 products data 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 Salesforce Pricebook values data. Initialize pagination offset. Fetch NetSuite list of Inventory Items. Split the retrieved array into individual items. Get details for each Inventory Item from NetSuite. Find certain price value fetched from NetSuite Upserts Product into Salesforce 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 Rivers Colyer
Who’s it for: SALES teams and AGENCIES that want to automatically send call summaries to their CRM. This flow is best suited for agencies and businesses that use ZoomInfo Chorus AI to capture and analyze calls, and HubSpot as their main CRM system for managing client data. How it works / What it does: The flow runs every hour and checks Chorus for new call summaries. If new summaries are found, they are added as notes to the corresponding HubSpot company record. If the company does not exist in HubSpot, the summary will be skipped. If the engagement already exists as a note in HubSpot, it will also be skipped. In short: every hour, Chorus → HubSpot notes sync (only when unique & matched). Workflow Overview Here’s how the logic works, step by step: Triggers Run every hour (scheduled) or When clicking Execute workflow (manual testing). Fetch from Chorus.AI Get Chorus Engagement per last day: requests new engagements from the last 24h. Pagination is handled automatically (up to 15 requests). Merge paginated engagements: combines all pages into a single list. Filter items with empty meeting_summary: removes calls without summaries. Loop through engagements Loop Over Engagements: processes each engagement one by one. Find matching HubSpot company Search Company In HubSpot By Name: looks for an exact match with account_name. If company exists: continues only if a match is found. Otherwise → Skip, if company not found. Check for existing notes Search notes: searches HubSpot for a note containing the engagement_id. If note not exist: continues only if no duplicate is found. Otherwise → Skip, if note already exists. Create a new HubSpot note Create Note Payload: builds a formatted note body with: Call date/time Summary text Link to call recording Engagement ID Create Note: inserts the note into HubSpot, associated with the matched company. Loop continues After processing, the flow moves back to Loop Over Engagements until all are handled. Requirements Chorus AI account or an existing API Token. HubSpot account with the ability to create applications OR an existing App Token. How to set up: Generate a Chorus.AI API Token: Go to Settings → Personal Settings → API Access → Generate API Token. Save this token in a secure place. In your N8N instance, create new credentials with any name you prefer (e.g., Chorus.AI - API Token). Type: Header Auth Header Name: Authorization Header Value: your generated Chorus API Token Save the credentials. Create a HubSpot Application with the following access scopes: crm.objects.contacts.write crm.objects.companies.read Save the Access Token and Client Secret securely. The Access Token will be used in this flow. In your N8N instance, create new credentials with any name you prefer (e.g., HubSpot App Token). Type: HubSpot App Token App Token: paste the token from step 3 Save the credentials. Install this flow in your N8N instance (cloud or self-hosted). After installation, some nodes—Get Chorus Engagement per last day, Search Company In HubSpot By Name, Search notes, Create Note—will show errors. This is expected, as they need to be linked to your new credentials. Open the node Get Chorus Engagement per last day and update the credentials: Authentication: Generic Credential Type Generic Auth Type: Header Auth Header Auth: select the Chorus credentials you created in step 2. Open the node Search Company In HubSpot By Name and update the credentials: Authentication: Predefined Credential Type Credential Type: HubSpot App Token HubSpot App Token: select the credentials from step 4. Repeat step 8 for the node Search notes. Repeat step 8 for the node Create Note. Save your updated flow by clicking Save in the top-right corner. Run the workflow by clicking Execute Workflow to test if all credentials work correctly. Once confirmed, activate your flow by toggling the switch in the top-right corner. That’s it! 🎉 Your flow will now run every hour, syncing new Chorus call summaries to HubSpot—only when the company names match and the engagement isn’t already logged.
by Razvan Bara
WhatsApp number checker Verify phone numbers from Google Sheets and check whether they are registered on WhatsApp using WasenderAPI. This workflow is useful for lead validation, contact cleanup, and pre-qualification before outreach. It uses the Wasender community node instead of a generic HTTP Request flow It includes basic phone-format validation before lookup Who is this for This workflow is useful for marketers, sales teams, freelancers, and small businesses that manage lead lists and want to validate WhatsApp availability before sending messages. It also fits broader lead-cleaning or contact-verification workflows in n8n. How it works Loads phone numbers from Google Sheets. Processes the list one row at a time to avoid sending all requests at once. Normalizes each phone number and performs basic international format validation before lookup. Checks valid numbers with WasenderAPI to see whether they are registered on WhatsApp. Writes the result back to Google Sheets for each row. Why use this workflow Uses the WasenderAPI community node instead of building the request manually with HTTP Request. Filters out obviously invalid phone numbers before calling the verification step. Can be used as a standalone checker or reused as a module inside a larger lead validation workflow. Requirements Google Sheets access and OAuth2 credentials in n8n. A WasenderAPI account and the n8n-nodes-wasenderapi community node installed. A Google Sheet containing phone numbers in the Mobile Number column. Setup Duplicate the sample Google Sheet and fill in your phone numbers under Mobile Number. Install the n8n‑nodes‑wasenderapi community nodes. Configure your Google Sheets OAuth2 and WasenderAPI credentials. Adjust the Wait node delay if needed to avoid rate limits.
by Artur Mulagalijev
Quick overview This workflow runs weekly, searches Coresignal job ads for recent roles matching your keywords and country, enriches each posting with the hiring company and a likely HR contact, and sends a single Slack digest with the job details and contact information. How it works Runs every Monday at 08:00 based on a schedule. Reads the job title keywords, country, lookback window, maximum results, and Slack channel from a configuration step. Searches the Coresignal Jobs index for active job ads created within the lookback window and limits the run to the first N job IDs. For each job ID, fetches the full job record and attempts to match the hiring company by enriching the company domain in Coresignal. If a company is matched, searches the Coresignal Employees index for a currently employed HR/Talent/People contact at that company and fetches the top-ranked profile. Builds one Slack Block Kit digest containing each job and either the enriched HR contact details or a “not found” marker. Posts the digest to the configured Slack channel. Setup Add a Coresignal API credential and select it for the Coresignal Job Search, Job Collect, Company Enrich, HR Search, and HR Collect steps. Add a Slack OAuth2 credential and set permission to post messages to your target workspace. Update the configuration values for job keywords, country, days_back, max_jobs, and the Slack channel ID where the digest should be posted.
by Nalin
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Qualify and enrich inbound leads with contextual insights and Slack alerts Who is this for? Sales teams, account executives, and RevOps professionals who need more than just basic lead scoring. Built for teams that want deep contextual insights about qualified prospects to enable truly relevant conversations from the first touchpoint. What problem does this solve? Most qualification stops at "good fit" or "bad fit" - but that leaves sales teams flying blind when it comes to actually engaging the prospect. You know they're qualified, but what are their specific pain points? What value propositions resonate? Which reference customers should you mention? This workflow uses Octave's context engine to not only qualify leads but enrich them with actionable insights that turn cold outreach into warm, contextualized conversations. What this workflow does Inbound Lead Processing: Receives lead information via webhook (firstName, companyName, companyDomain, profileURL, jobTitle) Processes leads from website forms, demo requests, content downloads, or trial signups Validates and structures lead data for intelligent qualification and enrichment Contextualized Lead Qualification: Leverages Octave's context engine to score leads against your specific ICP Analyzes company fit, role relevance, and timing indicators Generates qualification scores (1-10) with detailed rationale Filters out low-scoring leads (configurable threshold - default >5) Deep Lead Enrichment: Uses Octave's enrichment engine to generate contextual insights about qualified leads Identifies primary responsibilities, pain points, and relevant value propositions Suggests appropriate reference customers and use cases to mention Provides sales teams with conversation starters grounded in your business context Enhanced Sales Alerts: Sends enriched Slack alerts with qualification score plus actionable insights Includes suggested talking points, pain points, and reference customers Enables sales teams to have contextualized conversations from first contact Setup Required Credentials: Octave API key and workspace access Slack OAuth credentials with channel access Access to your lead source system (website forms, CRM, etc.) Step-by-Step Configuration: Set up Octave Qualification Agent: Add your Octave API credentials in n8n Replace your-octave-qualification-agent-id with your actual qualification agent ID Configure your qualification agent with your ICP criteria and business context Set up Octave Enrichment Agent: Replace your-octave-enrichment-agent-id with your actual enrichment agent ID Configure enrichment outputs based on the insights most valuable to your sales process Test enrichment quality with sample leads from your target market Configure Slack Integration: Add your Slack OAuth credentials to n8n Replace your-slack-channel-id with the channel for enriched lead alerts Customize the Slack message template with the enrichment fields most useful for your sales team Set up Lead Source: Replace your-webhook-path-here with a unique, secure path Configure your website forms, CRM, or lead source to send data to the webhook Ensure consistent data formatting across lead sources Customize Qualification Filter: Adjust the Filter node threshold (default: score > 5) Modify based on your lead volume and qualification standards Test with sample leads to calibrate scoring Required Webhook Payload Format: { "body": { "firstName": "Sarah", "lastName": "Johnson", "companyName": "ScaleUp Technologies", "companyDomain": "scaleuptech.com", "profileURL": "https://linkedin.com/in/sarahjohnson", "jobTitle": "VP of Engineering" } } How to customize Qualification Criteria: Customize scoring in your Octave qualification agent: Product Level:** Define "good fit" and "bad fit" questions that determine if someone needs your core offering Persona Level:** Set criteria for specific buyer personas and their unique qualification factors Segment Level:** Configure qualification logic for different market segments or use cases Multi-Level Qualification:** Qualify against Product + Persona, Product + Segment, or all three levels combined Enrichment Insights: Configure your Octave enrichment agent to surface the most valuable insights: Primary Responsibilities:** What this person actually does day-to-day Pain Points:** Specific challenges they face that your solution addresses Value Propositions:** Which benefits resonate most with their role and situation Reference Customers:** Similar companies/roles that have succeeded with your solution Conversation Starters:** Contextual talking points for outreach Slack Alert Format: Customize the enrichment data included in alerts: Add or remove enrichment fields based on sales team preferences Modify message formatting for better readability Include additional webhook data if needed Scoring Threshold: Adjust the Filter node to match your qualification standards Integration Channels: Replace Slack with email, CRM updates, or other notification systems Use Cases High-value enterprise lead qualification and research automation Demo request enrichment for contextual sales conversations Event lead processing with immediate actionable insights Website visitor qualification and conversation preparation Trial signup enrichment for targeted sales outreach Content download lead scoring with context-aware follow-up preparation
by Max Mitcham
An intelligent automation workflow that monitors thought leader activity via social listening, tracks high-value prospects who engage with industry content, and systematically builds a qualified lead database through social intelligence gathering. Overview This workflow transforms passive social listening into proactive lead generation by identifying prospects who demonstrate genuine interest in industry topics through their engagement with thought leader content. It creates a continuous pipeline of warm prospects with enriched data for personalized outreach. 🔄 Workflow Process 1. Social Intelligence Webhook Real-time engagement monitoring Integrated with Trigify.io social listening platform Monitors thought leader posts and their engagers Captures detailed prospect and company enrichment data Processes LinkedIn engagement activities in real-time Includes enriched contact information (email, phone, LinkedIn URLs) 2. Data Processing & Extraction Structured data organization Post Data Extraction**: Isolates LinkedIn post URLs, content, and posting dates Prospect Data Extraction**: Captures first/last names, job titles, LinkedIn profiles, and locations Company Data Extraction**: Gathers company names, domains, sizes, industries, and LinkedIn pages Prepares data for duplicate detection and storage systems 3. Duplicate Detection System Data quality maintenance Queries existing Google Sheets database by post URL Identifies previously tracked thought leader content Filters out duplicate posts to maintain data quality Only processes genuinely new thought leader activities Maintains clean, unique post tracking records 4. New Content Validation Gate Quality control checkpoint Validates that post URLs are not empty (indicating new content) Prevents processing of duplicate or invalid data Ensures only fresh thought leader content triggers downstream actions Maintains database integrity and notification relevance 5. Thought Leader Post Tracking Systematic content monitoring Appends new thought leader posts to "Social Warming" Google Sheets Records post URLs, content text, and publication dates Creates searchable database of industry thought leadership content Enables trend analysis and content performance tracking 6. Real-Time Slack Notifications Immediate team alerts Sends formatted alerts to #comment-strategy channel Includes post content, publication date, and direct links Provides action buttons (View Post, Engage Now, Save for Later) Enables rapid response to thought leader activity Facilitates team coordination on engagement opportunities 7. ICP Qualification Filter Smart prospect identification Filters engagers by job title keywords (currently: "marketing") Customizable ICP criteria for targeted lead generation Focuses on high-value prospects matching ideal customer profiles Prevents database pollution with irrelevant contacts 8. Qualified Lead Database Systematic prospect capture Appends qualified engagers to "Engagers" Google Sheets Records comprehensive prospect and company data Includes contact enrichment (emails, phone numbers) Creates actionable lead database for sales outreach Maintains detailed company intelligence for personalization 🛠️ Technology Stack n8n**: Workflow orchestration and webhook management Trigify.io**: Social listening and engagement monitoring platform Google Sheets**: Lead database and content tracking system Slack API**: Real-time team notifications and collaboration Data Enrichment**: Automated contact and company information gathering ✨ Key Features Real-time thought leader content monitoring Automated prospect discovery through social engagement ICP-based lead qualification and filtering Duplicate content detection and prevention Comprehensive prospect and company data enrichment Integrated CRM-ready lead database creation Team collaboration through Slack notifications Customizable qualification criteria for targeted lead generation 🎯 Ideal Use Cases Perfect for sales and marketing teams seeking warm prospects: B2B Sales Teams** seeking warm prospects through social engagement Marketing Professionals** building targeted lead databases Business Development Teams** identifying engaged prospects Account-Based Marketing Campaigns** requiring social intelligence Sales Professionals** needing conversation starters with warm leads Companies** wanting to identify prospects already engaged with industry content Teams** requiring systematic lead qualification through social activity Organizations** seeking to leverage thought leadership for lead generation 📈 Business Impact Transform social listening into strategic lead generation: Warm Lead Generation**: Identifies prospects already engaged with industry content Social Selling Intelligence**: Provides conversation starters through engagement history ICP Qualification**: Focuses efforts on prospects matching ideal customer profiles Relationship Building**: Enables outreach based on genuine interest demonstration Market Intelligence**: Tracks industry engagement patterns and trending content Sales Efficiency**: Prioritizes prospects who show active industry engagement Personalization Data**: Provides context for highly personalized outreach campaigns 💡 Strategic Advantage This workflow creates a fundamental shift from cold outreach to warm, contextual conversations. By identifying prospects who have already demonstrated interest in industry topics through their engagement behavior, sales teams can approach leads with genuine relevance and shared context. The system delivers: Continuous Pipeline**: Automated flow of warm prospects showing industry engagement Social Context**: Rich background data for meaningful, personalized conversations Quality Focus**: ICP-filtered prospects matching ideal customer profiles Engagement History**: Conversation starters based on actual prospect interests Competitive Advantage**: Proactive lead identification before competitors Rather than interrupting prospects with cold messages, this workflow enables sales teams to join conversations prospects are already having, dramatically increasing response rates and relationship-building success.
by Asraful Attare
Who’s it for This workflow is built for sales and marketing teams who collect Facebook Lead Ads into Google Sheets and want to automatically sync those leads into Perfex CRM without manual data entry or duplicate records. What it does The workflow checks Google Sheets for new rows where lead_status is marked as CREATED. For each lead, it searches Perfex CRM using the email address via the Rest API module for the Perfex CRM plugin. If the lead already exists, the workflow updates the sheet with a clickable CRM link and marks the row as ADDED. If the lead does not exist, it creates a new lead in Perfex CRM through the REST API and then updates the sheet accordingly. This ensures your CRM stays up to date while preventing duplicate lead creation. How it works A scheduled trigger runs the workflow. Google Sheets retrieves leads with status CREATED. The workflow searches Perfex CRM using the REST API. If found → update Sheet. If not found → create lead in CRM. The sheet is updated with the CRM record link. Requirements Google Sheets account Perfex CRM Rest API module for the Perfex CRM plugin enabled API token configured in n8n credentials (do not hardcode it) How to customize You can modify the lead field mappings, assign leads to different staff members, add tags, or adjust the schedule interval and batch size depending on your lead volume. Support / Contact If you need help setting up or customizing this workflow, feel free to reach out: Email: asrafulattare@aftie.eu WhatsApp: +1 (760) 933-7005 (WhatsApp only)
by Ventsislav Minev
Who is this for This workflow is designed for sales teams, marketing professionals, and business developers who want to automate lead generation. It is ideal for budget-conscious individuals or small businesses looking to collect structured contact information from Google Maps without manual searching or relying on third-party middleware providers. How it works The workflow operates in two modes: Manual and Automated. Manual Mode:** Submit a search query via an n8n Form node to trigger the workflow instantly. Automated Mode:** A Schedule trigger processes pending queries from a Google Sheets spreadsheet. Once triggered, the workflow uses the Places API (New) to find businesses matching the query. It then maps the data into structured fields (name, address, phone, and website) and saves them as leads in a separate sheet. If triggered automatically, it marks the original query as "scraped" to prevent reprocessing. Duplicate leads are prevented via a deduplication mechanism based on the Google Place ID. Requirements To use this workflow, you will need: Google Cloud Project:* A project with billing enabled and the *Places API (New)** activated. Google Places API Key:** A valid API key from your Google Cloud Console. Google Sheets Account:** Access to Google Sheets with OAuth2 credentials configured in n8n. n8n Instance:** A running n8n instance (self-hosted or Cloud). Setup instructions Enable the API: In the Google Cloud Console, enable the Places API (New) and generate an API key. Prepare Google Sheets: * Open this spreadsheet template and click Make a copy. Alternatively, create a spreadsheet with two tabs named SEARCH QUERIES and LEADS. Ensure the queries tab has a Scraped column set to FALSE for new entries. Configure Credentials: Set up your Google Sheets OAuth2 credentials in n8n. Import Workflow: Upload the JSON file to your n8n instance. Add API Key: In the Google Places Search HTTP Request node, replace the placeholder with your Places API (New) key. Link Spreadsheets: Update the Google Sheets nodes (Get rows in QUERIES, Append or update lead row) with your specific Spreadsheet ID and sheet names. Test and Activate: Submit a test query via the form or run the schedule trigger manually, then toggle the workflow to Active. Customization ideas Expand Data Points:* In the *Map Places Fields** node, include additional fields from the API response, such as business hours, ratings, or price levels. Switch Destinations:** Replace the Google Sheets "Append" node with a CRM node (e.g., HubSpot, Pipedrive, or Salesforce). Add Notifications:** Connect an Email or Slack node to get notified the moment a high-value lead is found. Refine Search:* Modify the HTTP Request node to include specific location biases or language preferences supported by the *Places API (New)**.
by Salman Mehboob
Quick overview Automatically search LinkedIn for prospects using Unipile's API, enrich each profile with full details, and sync leads into a Google Sheet CRM — runs daily on a schedule with rate limiting, deduplication, and error logging built in. How it works A daily Schedule Trigger fires at 08:00 and loads your search config — Unipile DSN, LinkedIn account ID, target keywords, and daily safety limits — into all downstream nodes. Unipile's Search API (POST /api/v1/linkedin/search) runs a keyword search across Classic, Sales Navigator, or Recruiter LinkedIn and auto-paginates via cursor up to a configurable page limit. Search results are split into individual profile items, de-duplicated by LinkedIn profile ID to prevent processing the same person twice across pages. A Limit node caps total profiles per run to protect your daily LinkedIn quota — Unipile recommends staying under 100 profile look-ups per account per day. Each profile is enriched with full details via GET /api/v1/users/{id}?linkedin_sections=*, processed in batches of 5 with a 3-second pause between calls to respect rate limits. A Set node maps the Unipile response to 12 clean CRM columns — name, headline, title, company, location, email, summary, profile URL, connection degree, keywords, and enrichment timestamp. Each lead is upserted into a Google Sheet matched on public_identifier so re-runs update existing rows instead of creating duplicates. Search and enrichment errors are logged to a separate Errors tab without stopping the run. Setup Sign up for a Unipile account and connect your LinkedIn account from the Unipile Dashboard. Copy your DSN (e.g. https://api1.unipile.com:13111) and your LinkedIn account_id from the Accounts tab. In n8n, create a Header Auth credential — name it Unipile API Key, set header name to X-API-KEY, and paste your Unipile access token as the value. Attach this credential to both HTTP Request nodes (Search and Get Profile). Open the Search Criteria & Unipile Config node and fill in your unipile_dsn, unipile_account_id, and search_keywords (e.g. "Head of Growth"). Adjust max_profiles_to_enrich to set your daily cap. Create a Google Sheet named LinkedIn Lead Finder - CRM with two tabs: Leads (columns: full_name, headline, location, current_title, current_company, profile_url, public_identifier, connection_degree, email, summary, search_keywords, enriched_at) and Errors (columns: when, stage, profile_id, error_message). Connect your Google Sheets OAuth2 credential to all three Google Sheets nodes and select your spreadsheet in each node's Document field. Activate the workflow. Requirements Unipile account with a connected LinkedIn account (paid plan required for Search API access) Google account with Google Sheets access n8n instance (cloud or self-hosted) Customization Change search_api in the Config node to sales_navigator or recruiter if your Unipile plan includes those tiers Increase max_pages (default: 3) and results_per_page (default: 25) to pull larger result sets Add extra fields to the Map to CRM Row node — Unipile returns skills, education, work_experience, websites, and more when linkedin_sections=* is set Swap Google Sheets for Airtable, Notion, or a database node to fit your existing CRM stack Change the Schedule Trigger time or frequency to run more or less often Additional info This workflow uses Unipile as a LinkedIn API middleware — it authenticates as your connected LinkedIn account and makes requests on your behalf. Always respect LinkedIn's Terms of Service and Unipile's provider limits. The workflow is read-only (no messages sent, no connection requests made). All errors are caught and logged gracefully so the run never fails silently. CONTACT Email: salmanmehboob1947@gmail.com Linkedin: https://www.linkedin.com/in/salman-mehboob-pro/