Free template · Agencies, real estate, professional services

Stop chasing the same lead three times.

Pulls leads from web, ads, referrals, every source you have. Detects duplicates by name, email, phone, or company. Merges into one CRM record so your team isn't calling someone three times from three different lists.

Setup time ~30 minutes
Run cost ~$0/mo (API calls only)
Validation Tested + ready to run
License Free, yours forever

SDRs stop chasing the same person twice.

  1. 1
    Schedule Trigger — every 30 minutes
    Runs the deduplication every 30 minutes, which is fast enough to feed an SDR queue without hammering source APIs. Adjust to 5 minutes if you're running paid traffic at scale.
  2. 2
    Fetch Facebook Leads — HTTP Request
    Pulls new leads from Meta Lead Ads via the Graph API. Uses an OAuth2 credential. Map the response to {email, phone, company, name, source: 'facebook'}.
  3. 3
    Fetch Typeform Leads — HTTP Request
    Pulls form responses from Typeform's responses endpoint. Same field mapping. Substitute Google Forms, Jotform, or your in-house form if Typeform isn't your tool.
  4. 4
    Fetch Calendly Bookings — HTTP Request
    Pulls scheduled events from Calendly. Counts as a lead source because anyone booking time is a lead. Swap for Cal.com or HubSpot Meetings if you use those.
  5. 5
    Combine Sources — Merge node
    Combines the three streams into one item array so the dedupe step has everything. Uses the combineAll mode.
  6. 6
    Dedupe Leads — Code node
    A 25-line JavaScript block that normalizes email, phone, and company, then uses a Map keyed by the strongest available identifier. Tracks every source a lead came from in a sources array and counts duplicates.
  7. 7
    Upsert to CRM — HTTP Request
    POSTs each unique lead to your CRM with a comma-separated list of sources and a duplicate count. Use HubSpot's batch upsert with idProperty=email so existing contacts get updated instead of duplicated.

Vertical-specific framing

Marketing agency
Clients run Facebook Lead Ads, Google Forms, and a Calendly demo flow. Same prospect fills out two of them. Without dedup, the SDR calls them twice and looks careless.
Real estate brokerage
Buyers come in from Zillow, the team website, and Open House sign-in sheets. Dedup by phone catches the buyer who gave a different email on each form.
B2B SaaS or agency
Demo requests come from Typeform, the website, and Calendly direct booking. Dedup by company catches different people from the same account hitting your funnel.
Professional services
Lawyers, accountants, consultants run referral forms, paid ads, and intake calls. Dedup keeps your case management system clean and stops two paralegals from intaking the same client.
Get the template
Three quick questions, then we send the JSON. We use the answers to recommend templates that fit your business.

No spam. Unsubscribe anytime. The JSON link arrives instantly after submit.

A handful of API tokens. That's it.

n8n Free self-hosted, or n8n Cloud starting $20/mo
3 source API tokens Meta Lead Ads, Typeform, Calendly (or whichever 3 sources you use)
Your CRM HubSpot, Salesforce, Pipedrive, Zoho — anything with a batch upsert API
30 minutes To map source field names to email/phone/company/name

What this is worth, conservatively

Reported duplicate rate across marketing channels 12 to 18%
On a 200-leads/mo pipeline, that's ~30 duplicates ~30 dupes/mo
SDR time saved at $40 per wasted touch ~$1,200/mo
Annualized ~$14,400/yr
Cost to run this template forever ~$0/year

Numbers based on Validity and ZoomInfo studies of CRM duplicate rates. Your actual results vary with channel mix and how strict your CRM's existing dedup rules are.

Related

Want this customized to your stack?

If you'd rather have us connect this to your real lead sources, set up CRM upserts, write the dedup rules for your data shape, and hand it back working — that's our $9,000 lead capture build. 2 to 4 weeks.

Book a 15-min walkthrough