Skip to main content

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

Workflow preview

Workflow preview
100%
Build targeted prospect lists: find & enrich leads with Surfe to HubSpot preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

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 comp...

Best for

  • Lead Generation automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.httprequest, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.wait, n8n-nodes-base.filter, n8n-nodes-base.hubspot, n8n-nodes-base.gmail, n8n-nodes-base.manualtrigger

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by go-surfe.

Original n8n.io source

1.1 Workflow description

Title
Build targeted prospect lists: find & enrich leads with Surfe to HubSpot
Workflow name
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

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


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


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

✅ 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

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

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.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Search ICP Companies

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 2 - Search People in Companies

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 3 - Prepare JSON Payload Enrichment Request

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - Surfe Bulk Enrichments API

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 5 - Surfe check enrichement status

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 6 - Is enrichment complete ?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 7 - Wait 3 secondes

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 8 - Extract list of peoples from Surfe API response

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - Filter: phone AND email

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.2

Block 10 - HubSpot: Create or Update

Type / Role
n8n-nodes-base.hubspot - hubspot
Config choices
Version 2.1

Block 11 - Gmail

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 12 - When clicking ‘Execute workflow’

Type / Role
n8n-nodes-base.manualTrigger - manualTrigger
Config choices
Version 1

Block 13 - prepare JSON PAYLOAD WITH Company Domains

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

3. Summary Table

Workflow Build targeted prospect lists: find & enrich leads with Surfe to HubSpot
Complexity intermediate
Nodes 13
Categories Lead Generation
Author go-surfe
Published 07 Aug 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/7130/7130.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Build targeted prospect lists: find & enrich leads with Surfe to HubSpot do?

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 comp...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Generation use case.