🎣 Build targeted prospect lists: find & enrich leads with Surfe to HubSpot

⚑ 4,236 views · 🎣 Lead Generation & Enrichment

πŸ’‘ Pro Tip β€” For lead enrichment, ScraperNode can pull LinkedIn profiles, company data, and job listings directly into your pipeline β€” useful for building prospect lists without manual research.

View All Scrapers

Description

πŸš€ Build Hyper-Targeted Prospecting Lists with Surfe & HubSpot

This template automatically discovers companies that match your Ideal Customer Profile (ICP), finds the right people inside those companies and enriches them β€” ready to drop straight into HubSpot. Launch the workflow, sit back, and get a clean list of validated prospects in minutes.


1. ❓ What Problem Does This Solve?

Sourcing prospects that truly fit your ICP is slow and repetitive. You jump between databases, copy domains, hunt down decision-makers, and then still have to enrich emails and phone numbers one by one.

This workflow replaces all that manual effort:

  1. It queries Surfe’s database for companies that match your exact industry, size, revenue and geography filters.
  2. It pulls the best-fit people inside each company and enriches them in bulk.
  3. It keeps only records with both a direct email and mobile phone, then syncs them to HubSpot automatically.

No spreadsheets, no copy-paste β€” just a fresh, qualified prospect list ready for outreach.


2. 🧰 Prerequisites

You’ll need:


3. πŸ“Œ Search ICP Companies ConfigurationΒ β€” Fine-Tune Your Targeting

Screenshot 20250807 at 12.13.11.png

3.1 Editing the JSON

Every targeting rule lives inside the β€œπŸ” Search ICP Companies” HTTP node.

Open the node Search ICP Companies β†’ *Parameters* tab β†’ *JSON Body* to edit the filters.

FilterJSON pathWhat it doesExample
industriesfilters.industriesNarrow to specific verticals (case-sensitive strings)["Software","Apps","SaaS"]
employeeCount.from / tofilters.employeeCountfrom / to1 / 35
countriesfilters.countries2-letter ISO codes["FR","DE"]
revenuesfilters.revenuesAnnual revenue brackets["1-10M"]
limitlimitCompanies per run20

3.2 Where to find allowed values

Surfe exposes an β€œπŸ—‚ Get Filters” endpoint that returns every accepted value for:

You can hit it with a simple GET /v1/people/search/filters request or browse the interactive docs here:

https://developers.surfe.com/public-008-people-filters developers.surfe.com

For company-level searches, the same enumerations apply.


4. βš™οΈ Setup Instructions

4.1 πŸ” Create Your Credentials in n8n


4.1.1 πŸš€ Surfe API

  1. In your Surfe dashboard β†’ Use Surfe Api β†’ copy your API key
  2. Go to n8n β†’ Credentials β†’ Create Credential
    1. Choose Credential Type: Bearer Auth
    2. Name it something like SURFE API Key
    3. Paste your API key into the Bearer Token
    4. Save

Screenshot 20250807 at 12.13.38.png


4.1.2 πŸ“§ Gmail OAuth2 API

  1. Go to n8n β†’ Credentials
  2. Create new credentials:
    • Type: Gmail OAuth2 API
  3. A pop-up window will appear where you can log in with your Google account that is linked to Gmail
    • Make sure you grant email send permissions when prompted

Screenshot 20250807 at 12.14.26.png


4.1.3 🎯 HubSpot

πŸ”“ Private App Token

  1. Go to HubSpot β†’ Settings β†’ Integrations β†’ Private Apps
    1. Create an app with scopes:
      • crm.objects.contacts.read
      • crm.objects.contacts.write
      • crm.schemas.contacts.read
    2. Save the App token
  2. Go to n8n β†’ Credentials β†’ Create Credential β†’ HubSpot App Token
    1. Paste your App Token

Screenshot 20250807 at 12.14.52.png

Screenshot 20250807 at 12.15.12.png

Screenshot 20250807 at 12.15.28.png

βœ… You are now all set for the credentials


4.2 πŸ“₯ Import and Configure the N8N Workflow

Screenshot 20250807 at 12.16.02.png

Screenshot 20250807 at 12.16.17.png

In the workflow, link your newly created credentials to each node of this list :

Screenshot 20250807 at 12.16.53.png

Surfe HTTP nodes

Surfe HTTP nodes


5. πŸ”„ How This N8N Workflow Works

  1. Manual Trigger – Click Execute Workflow (or schedule it) to start.
  2. Search ICP Companies – Surfe returns company domains that match your filter set.
  3. Prepare JSON Payload with Company Domains – Formats the domain list for the next call.
  4. Search People in Companies – Finds people inside each company.
  5. Prepare JSON Payload Enrichment Request – Builds the bulk-enrichment request.
  6. Surfe Bulk Enrichments API – Launches one enrichment job for the whole batch.
  7. Wait + Polling loop – Checks job status every 3 seconds until it’s COMPLETED.
  8. Extract List of People – Pulls the enriched contacts from Surfe’s response.
  9. Filter: phone AND email – Keeps only fully reachable prospects (email and mobile).
  10. HubSpot: Create or Update – Inserts/updates each contact in HubSpot.
  11. Gmail – Sends you a β€œYour ICP prospecting enrichment is done” email.

6. 🧩 Use Cases


7. πŸ›  Customization Ideas

prepare


8. βœ… Summary

Fire off the workflow, and n8n will find ICP-fit companies, pull key people, enrich direct contact data and drop everything into HubSpot β€” all on autopilot.

Prospecting lists, done for you.

πŸ”— Nodes Used

HTTP Request, HubSpot, Gmail, Filter

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup