beginner30 minutes3 min read

How to automatically enrich new HubSpot contacts with Apollo

Enrich new HubSpot contacts with Apollo data automatically. Compare n8n, Zapier, Make, code, and Claude Code approaches side by side.

How to automatically enrich new HubSpot contacts with Apollo

This recipe includes a downloadable n8n template and Claude Code skill.

Workflow

New contact created
Apollo enrichment
Update HubSpot contact

Why enrich contacts automatically?

A typical web form captures a name and email. That's it. Without job title, company size, or phone number, your downstream workflows break down: lead scoring produces meaningless scores, routing rules can't segment by seniority, and reps spend their first 5 minutes on every call researching the prospect on LinkedIn instead of selling.

The cost of manual enrichment adds up fast. If a rep spends 3 minutes researching each contact and you create 200 leads per week, that's 10 hours of research per week -- more than a full day of selling time lost to data entry.

Automatic enrichment with Apollo fills in the gaps the moment a contact is created:

  • Job title, seniority level, and department — for lead scoring and routing
  • Company name, employee count, revenue, and industry — for firmographic segmentation
  • LinkedIn profile URL and direct phone number — for rep outreach
  • Verified work email — replaces personal addresses with business ones
What you'll get
HubSpot Contact
Job Title
(empty)VP of Engineering
Company
(empty)Acme Corp
Phone
(empty)+1 (415) 555-0142
LinkedIn URL
(empty)linkedin.com/in/jdoe
Industry
(empty)SaaS / B2B Software

What you'll need

Prerequisites
  • HubSpot account with API access (private app token with crm.objects.contacts.read and crm.objects.contacts.write scopes)
  • Apollo account with API access (available on all paid plans)
  • Apollo API key from Settings → Integrations → API

How it works

Every approach in this guide follows the same pattern:

  1. Detect — a new contact is created in HubSpot (from a form, import, API, or manual entry)
  2. Enrich — the contact's email is sent to Apollo's People Enrichment API, which returns job title, company, phone, LinkedIn URL, and industry
  3. Write back — only empty fields are updated on the HubSpot contact record, preserving any data reps entered manually

The approaches differ in how they trigger (real-time vs. polling vs. on-demand), how much setup they require, and what they cost at scale.

Which approach should I use?

  • n8n (recommended) — best balance of cost and capability. Visual workflow, polling-based trigger, and full control over field mapping. Self-hosted is free; cloud starts at $24/mo.
  • Zapier — fastest to set up if you're already on Zapier. No native Apollo integration means you'll use Webhooks by Zapier (requires Professional plan at $29.99/mo). Task costs add up at scale: 3-4 tasks per contact.
  • Make — lowest per-contact cost among the no-code tools. Free plan handles ~333 enrichments/month. Best if you need conditional routing (e.g., different enrichment logic for different lead sources).
  • Code + Cron — maximum control and zero platform cost. Best for teams with a developer who wants version-controlled logic, custom filtering (skip personal emails, batch with Apollo's bulk endpoint), and scheduling via GitHub Actions.
  • Claude Code — conversational enrichment with no fixed code. Ask "enrich the 50 contacts from today's event" or "enrich contacts missing job titles from this week" and the agent adapts. Best for ad-hoc enrichment, pipeline reviews, or teams already using Claude Code.

Choose your approach

Select an approach below to see the full step-by-step guide.

Compare approaches

n8n

medium
Cost: $0-24/mo
Latency: polling
Code: low
Reliability: 24/7 cloud

Zapier

low
Cost: $20-50/mo
Latency: real-time
Code: none
Reliability: 24/7 cloud

Make

medium
Cost: $10-29/mo
Latency: polling
Code: none
Reliability: 24/7 cloud

Code + Cron

high
Cost: $0
Latency: real-time
Code: high
Reliability: Self-hosted

Claude Code

low
Cost: Usage-based
Latency: on-demand
Code: none
Reliability: On demand

n8n

medium

HubSpot Trigger node → Apollo HTTP enrichment → HubSpot Update node

Downloadable templateView guide

Zapier

low

New Contact trigger → Webhooks to Apollo API → Update Contact action

Cost: $20-50/moView guide

Make

medium

Watch Contacts module → Apollo HTTP call → Update Contact module

Cost: $10-29/moView guide

Code + Cron

high

Python/Node script polling for new contacts, enriching via Apollo API

Cost: $0View guide

Claude Code

low

Guided Claude Code skill with API references — enrich contacts conversationally, on a schedule, or via Cowork

Downloadable skillView guide

Related Recipes

Frequently Asked Questions

Looking to scale your AI operations?

We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.