Build Targeted Prospect Lists: Find & Enrich Leads with Surfe to HubSpot

πŸš€ 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:

  • A self-hosted or cloud instance of n8n

  • A Surfe API Key

  • A HubSpot Private App Token with contact read/write scopes

  • A Gmail account (OAuth2) for the completion notification

  • The workflow JSON file linked above

    N8N_FLOW_2__Building_Prospecting_Lists.json


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.

Filter JSON path What it does Example
industries filters.industries Narrow to specific verticals (case-sensitive strings) ["Software","Apps","SaaS"]
employeeCount.from / to filters.employeeCount from / to 1 / 35
countries filters.countries 2-letter ISO codes ["FR","DE"]
revenues filters.revenues Annual revenue brackets ["1-10M"]
limit limit Companies per run 20

3.2 Where to find allowed values

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

  • industries
  • employeeCounts
  • revenues
  • countries (always ISO-2 codes)

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

  • Import the provided JSON workflow into N8N
    • Create a New Blank Workflow
    • click the … on the top left
    • Import from File

Screenshot 20250807 at 12.16.02.png

Screenshot 20250807 at 12.16.17.png

4.2.1 πŸ”— Link Nodes to Your Credentials

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

  • Surfe HTTP nodes:
    • Authentication β†’ Generic Credential Type
    • Generic Auth Type β†’ Bearer Auth
    • Bearer Auth β†’ Select the credentials you created before
  • Gmail Node Credentials to connect with β†’ Gmail account
  • Hubspot Node β†’Credentials to connect with β†’ Gmail account

Screenshot 20250807 at 12.16.53.png

Surfe HTTP nodes

Surfe HTTP nodes

  • HubSpot node β†’ Credentials to connect with β†’ select your HubSpot credentials in the list

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

  • Weekly prospect list refresh – Generate 50 perfectly-matched prospects every Monday morning.
  • Territory expansion – Spin up a list of SMB software CEOs in a new country in minutes.
  • ABM prep – Build multi-stakeholder buying-group lists for target accounts.
  • Campaign-specific lists – Quickly assemble contacts for a limited-time product launch.

7. πŸ›  Customization Ideas

prepare

  • 🎯 Refine filters for people – Add seniorities or other filters in the node JSON PAYLOAD WITH Company Domains
  • ♻️ Deduplicate – Check HubSpot first to skip existing contacts.
  • 🟒 Slack alert – Replace Gmail with a Slack notification.
  • πŸ“Š Reporting – Append enriched contacts to a Google Sheet for analytics.

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.