Leadfeeder + Google Sheets: qualified leads logged
Your website is getting visits, but your “lead list” still looks thin. The problem usually isn’t traffic. It’s that the best accounts are hidden inside a messy pile of anonymous sessions, half-baked intent signals, and tabs you meant to check “later.”
This is where Leadfeeder Sheets logging helps. Marketing managers trying to feed sales, founders doing their own outreach, and agency teams running campaigns for clients all run into the same wall: you can’t follow up on what you never captured.
This workflow pulls daily Leadfeeder visits, filters for real engagement, enriches companies with Clearbit, then writes only the best matches to one Google Sheet. You’ll see how it works, what you need, and what results to expect.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Leadfeeder + Google Sheets: qualified leads logged
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Leads"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Leads by company crit..", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clearbit.svg' width='40' height='40' /></div><br/>Enrich company"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Setup", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get all Leedfeeder accounts"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Only for wanted accounts", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split out accounts", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Leads", pos: "b", h: 48 }
n8@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter leads by engagement", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Save leads to Google Sheets", pos: "b", h: 48 }
n3 --> n4
n0 --> n7
n2 --> n1
n7 --> n9
n8 --> n3
n6 --> n5
n5 --> n0
n9 --> n2
n4 --> n6
n1 --> n10
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n8 trigger
class n1,n5,n9 decision
class n10 database
class n0,n4 api
classDef customIcon fill:none,stroke:none
class n0,n2,n4 customIcon
The Problem: High-intent visits get ignored
Leadfeeder can show you which companies visited your site, but “knowing” and “acting” are two different things. Someone still has to open Leadfeeder, scan visits, guess intent from pageviews, check company size, and then paste details into a sheet or CRM. It’s tedious, so it gets skipped. And when it’s skipped, the hottest accounts cool off while you chase colder leads from list purchases, old webinars, or random inbound forms that aren’t a fit.
It adds up fast. Here’s where it breaks down in real life:
- You end up checking Leadfeeder “when you remember,” which means you miss the 24–48 hour window when outreach is most relevant.
- Engagement signals are hard to standardize, so one person’s “good lead” is another person’s “maybe.”
- Company research becomes a mini project, especially when you need employee count, industry, and domain details.
- Copy-paste into a sheet invites mistakes, duplicates, and messy formatting that makes reporting painful.
The Solution: Daily intent filtering + enrichment into one sheet
This automation runs on a daily schedule, pulls your most recent Leadfeeder leads, and immediately narrows them down using engagement criteria you define (for example, companies that visited at least 3 times). From there, it enriches those companies through Clearbit so you are not guessing basic fit signals like employee count. Then it applies a second filter based on company attributes, such as a minimum team size, and writes only the matches into a Google Sheets template you control. No digging, no manual research, and no “I’ll do it later.”
The workflow starts with a scheduled trigger and loads your settings (including the Leadfeeder accounts you care about and the target Google Sheet). It fetches leads, checks engagement, enriches qualified companies with Clearbit, and filters again for fit. Finally, it updates your Google Sheet so the best accounts are sitting in one place when you start your day.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 3 Leadfeeder accounts and you typically review 25 new visiting companies per day. Manually, it’s easy to spend about 5 minutes per company checking visits, looking up employee count, and logging details, which is roughly 2 hours a day. With this workflow, the “work” becomes a quick daily scan of the sheet, maybe 10 minutes total, because only companies that hit your engagement threshold and your size criteria get written. That’s around 90 minutes back per day, and you’re looking at better leads.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Leadfeeder to fetch company visit data
- Clearbit for company enrichment and firmographics
- Google Sheets to store and review qualified accounts
- Leadfeeder API token (Settings → Personal → API-Token)
Skill level: Beginner. You’ll mostly paste API credentials, copy a template sheet, and adjust a couple of filters.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A daily schedule kicks it off. n8n runs once per day, so you wake up to an updated lead review sheet instead of another task on your list.
Your Leadfeeder accounts are loaded first. The workflow pulls the account list, filters to the specific Leadfeeder accounts you care about (set in the “Initialize Settings” node), then fetches recent leads only for those targets.
Engagement is checked before enrichment. It splits lead records into batches, applies your engagement threshold (for example, “visited 3 times”), and ignores the rest. This is important because enriching everything gets expensive and noisy.
Clearbit adds the missing context. Qualified companies are enriched, then filtered again by company size so you’re left with accounts that show intent and fit your ICP.
Google Sheets becomes your daily queue. The workflow updates your sheet with consistent fields, which means sorting, assigning owners, and tracking follow-up is finally straightforward.
You can easily modify the engagement threshold to match your sales cycle, or swap the company size filter for something else (like industry) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
Set the workflow schedule so the automation starts daily at the desired hour.
- Add the Scheduled Automation Start node as your trigger.
- In Scheduled Automation Start, set the rule interval to run at Trigger At Hour
7. - Connect Scheduled Automation Start to Initialize Settings.
Step 2: Connect Leadfeeder API Requests
Retrieve Leadfeeder accounts and their recent leads with authenticated HTTP requests.
- Open Retrieve Leadfeeder Accounts and set URL to
https://api.leadfeeder.com/accounts. - Credential Required: Connect your
httpHeaderAuthcredentials in Retrieve Leadfeeder Accounts. - Open Fetch Recent Leads and set URL to
=https://api.leadfeeder.com/accounts/{{ $json.id }}/leads. - In Fetch Recent Leads enable Send Query and set query parameters: start_date to
{{ $now.minus(1, 'day').toFormat('yyyy-MM-dd') }}and end_date to{{ $now.toFormat('yyyy-MM-dd') }}. - Credential Required: Connect your
httpHeaderAuthcredentials in Fetch Recent Leads. - Ensure the flow is Initialize Settings → Retrieve Leadfeeder Accounts → Divide Account List → Filter Target Accounts → Fetch Recent Leads.
Step 3: Set Up Filtering and Enrichment
Split account and lead lists, then filter by engagement and company size while enriching with Clearbit.
- In Initialize Settings, set Leadfeeder Accounts to
["n8n","someOtherAccount"]and Google Sheets URL to[YOUR_SHEET_URL]. - In Divide Account List set Field To Split Out to
data. - In Filter Target Accounts, set the condition Left Value to
{{ $('Initialize Settings').first().json["Leadfeeder Accounts"].includes($json.attributes.name) }}so only selected accounts are processed. - In Divide Lead Records set Field To Split Out to
data. - In Engagement Threshold Check, set the condition Left Value to
{{ $json.attributes.visits }}and Right Value to3. - In Augment Company Profile, set Domain to
{{ $json.attributes.website_url }}. - Credential Required: Connect your
clearbitApicredentials in Augment Company Profile. - In Company Size Filter, set the condition Left Value to
{{ $json.metrics.employees }}and Right Value to100.
Step 4: Configure Output to Google Sheets
Append or update enriched lead data into your Google Sheet.
- Open Update Google Sheet Records and set Operation to
appendOrUpdate. - Set Document ID to
{{ $('Initialize Settings').first().json["Google Sheets URL"] }}. - Set Sheet Name to
Visitors(list valuegid=0). - Map columns using these expressions: name
{{ $json.name }}, domain{{ $json.domain }}, visits{{ $('Divide Lead Records').item.json.attributes.visits }}, quality{{ $('Divide Lead Records').item.json.attributes.quality }}, twitter{{ $json.twitter.handle ? $json.twitter.handle : $('Divide Lead Records').item.json.attributes.twitter_handle }}, linkedin{{ $json.linkedin.handle ? $json.linkedin.handle : $('Divide Lead Records').item.json.attributes.linkedin_handle }}, employees{{ $json.metrics.employees ? $json.metrics.employees : $('Divide Lead Records').item.json.attributes.employee_count }}, description{{ $json.description }}. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials in Update Google Sheet Records.
domain to prevent duplicate rows when using appendOrUpdate.Step 5: Test and Activate Your Workflow
Verify the workflow runs end-to-end and then enable it for daily execution.
- Click Execute Workflow to run a manual test from Scheduled Automation Start.
- Confirm that Retrieve Leadfeeder Accounts returns data, Fetch Recent Leads returns leads, and Update Google Sheet Records appends/updates rows.
- If any node returns no items, check filters in Filter Target Accounts, Engagement Threshold Check, and Company Size Filter for overly strict conditions.
- When results look correct, toggle the workflow to Active to run automatically on schedule.
Common Gotchas
- Leadfeeder credentials can expire or be formatted wrong. If things break, check the HTTP Request header first (it should look like Token token=yourapitoken).
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Clearbit can return partial data for some domains. If your “Company Size Filter” suddenly rejects everything, inspect a few enrichment responses and adjust the filter to handle blanks.
Frequently Asked Questions
About 30 minutes if you already have the API keys.
No. You’ll paste credentials and edit a couple of filter rules.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Clearbit costs based on how many companies you enrich.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Change the “Engagement Threshold Check” filter to match what intent looks like for your business (repeat visits, specific page paths, or a minimum number of pageviews). Then adjust the “Company Size Filter” to your ICP, or replace it with an industry check if employee count isn’t your best signal.
Usually it’s the authorization header format. In the HTTP Request node, the header name should be Authorization and the value should look like Token token=YOUR_API_TOKEN. If you recently rotated your token in Leadfeeder (Settings → Personal → API-Token), update it in n8n too. Also confirm you’re pulling the right Leadfeeder accounts in the setup node, because an empty account list can look like a failed fetch.
Plenty for most small teams. On n8n Cloud, the limit is mainly your monthly executions, and on self-hosted n8n it mostly depends on your server and the Leadfeeder/Clearbit rate limits. Practically, the bigger constraint is enrichment cost, so most people keep the engagement filter strict and only enrich the best visits.
Often, yes, because this workflow benefits from branching, batching, and multi-step filtering before enrichment and logging. Zapier and Make can do it, but costs can climb when every filter and loop becomes another paid step, and daily processing adds up. n8n also gives you a self-host option, which is handy if you want higher volume without worrying about task limits. If you only need something tiny (like “new Leadfeeder lead → add row”), those tools can be quicker. If you’re unsure, Talk to an automation expert and get a straight recommendation.
Once this is running, your best website accounts stop slipping through the cracks. You open one sheet, pick the strongest leads, and move.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.