Back to Templates

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

Created by

Created by: go-surfe || go-surfe

go-surfe

Last update

Last update 2 months ago

Categories

Share


🚀 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 withGmail account
  • Hubspot NodeCredentials to connect withGmail 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.