How to automatically enrich new Salesforce contacts with Apollo
Enrich new Salesforce contacts and leads with Apollo firmographic data. Step-by-step with n8n and Claude Code approaches compared.

This recipe includes a downloadable n8n template and Claude Code skill.
Workflow
Why enrich contacts automatically?
When a new lead enters Salesforce — from a web form, list import, or marketing automation — you typically get a name and email address. That's not enough for routing, scoring, or personalized outreach. Reps spend 3-5 minutes per contact manually looking up job titles on LinkedIn, checking company size on Crunchbase, and searching for phone numbers. At 50-200 new leads per week, that's 2.5-16 hours of research time that should go toward selling.
Automatic enrichment with Apollo fills in the gaps the moment a contact or lead is created:
- Job title, seniority level, and department
- Company name, employee count, revenue, and industry
- LinkedIn profile URL and direct phone number
- Verified work email (if the original is a personal address)
Native integration vs. workflow-based enrichment
Apollo offers a native Salesforce integration that syncs contacts bi-directionally on a 30-minute cadence with automatic deduplication. If you want broad, always-on enrichment with minimal setup, that's the simplest path.
Use the workflow-based approaches in this recipe when you need more control — filtering by ICP criteria before spending Apollo credits, mapping to custom Salesforce fields, or chaining enrichment with other tools like Slack notifications or lead routing logic.
What you'll need
- Salesforce account with API access (a Connected App configured for OAuth or a session token)
- Apollo account with API access (available on Basic plan and above)
- Apollo API key from Settings → Integrations → API
How it works
- Detect new records — trigger on new Lead/Contact creation in Salesforce, or search for existing records missing key fields
- Enrich via Apollo — send each record's email to Apollo's People Enrichment API to retrieve title, phone, department, company, LinkedIn URL, and firmographic data
- Write back to Salesforce — update the Lead or Contact record with enriched fields, plus optionally update the parent Account with organization data (industry, employee count)
Which approach should I use?
- n8n — best for real-time enrichment on new record creation. The Salesforce Trigger polls for new Leads, and the workflow enriches and updates each one within minutes. Self-hosted n8n is free with unlimited executions. Requires configuring a Salesforce Connected App for OAuth.
- Claude Code — best for batch backfill of existing records or ad-hoc enrichment. Tell the agent "enrich the 50 most recent leads missing a title" and it handles the SOQL query, Apollo calls, and Salesforce updates. No Connected App or OAuth setup needed — uses a Salesforce session token directly.
Choose your approach
Select an approach below to see the full step-by-step guide.
Compare approaches
| Approach | Complexity | Cost | Latency | Code | Reliability |
|---|---|---|---|---|---|
n8n | medium | $0-24/mo | polling | low | 24/7 cloud |
Claude Code | low | Usage-based | on-demand | none | On demand |
n8n
mediumClaude Code
lown8n
mediumSalesforce Lead Trigger → Apollo HTTP enrichment → Salesforce Update with enriched fields
Claude Code
lowGuided Claude Code skill with API references — batch-enrich Salesforce contacts conversationally, on a schedule, or via Cowork
Related Recipes
How to automatically enrich new HubSpot contacts with Apollo
HubSpot + Apollo
How to batch enrich HubSpot contacts missing job title or company size
HubSpot + Apollo
How to waterfall enrich HubSpot contacts across Apollo, Clearbit, and People Data Labs
HubSpot + Apollo + Clearbit + People Data Labs
How to find and verify work emails for a HubSpot prospect list using Apollo and Hunter
HubSpot + Apollo + Hunter
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.