Enrich-CRM × n8n

Enrich any record.Any workflow.

Drop an HTTP Request node into any n8n workflow. Pass what you have — email, LinkedIn URL, domain, name. Get 250+ enriched fields back in real time.

HTTP Request nodeSelf-hosted & cloudBYOK — no markup10 enrichment actionsOpen-source friendly

Example workflow — Enrich inbound webhook leads

Trigger

Webhook — POST /inbound-lead

email, first_name, last_name, company

HTTP Request

GET /api/ingress/v4/contact

jobTitle, seniority, linkedinUrl, headcount…

IF node

seniority = "C-Level" OR "VP"

route to priority branch

Action

Salesforce — Create contact

enriched contact + ICP tag

250+
fields returned
per enrichment call
10
enrichment actions
contact · company · SIREN · tech…
<1s
average response
real-time, no cached profiles
1
credit = 1 row
from €3.5 / $3.9 · BYOK

Setup

One node.
Any workflow.

Works in n8n Cloud, self-hosted, and n8n desktop. No custom node to install — just the built-in HTTP Request node.

1

Get your free API key

Sign up — no credit card. 500 free credits to run on real contacts in your workflow.

Get API key
2

Add an HTTP Request node

In your workflow, add an “HTTP Request” node. Method: GET. URL: the endpoint. Authentication: None (pass apiId as query param).

3

Map inputs, use outputs

Pass identifiers from upstream nodes as query params. The returned JSON is immediately available for filtering, branching, or writing to your destination.

HTTP Request node configuration — n8n

Method:           GET
URL:              https://gateway.enrich-crm.com/api/ingress/v4/contact
Send Query Params: ON

Query Parameters:
apiId                {{ $env.ENRICH_CRM_API_KEY }}   ← store in n8n credentials/env
email                {{ $json.email }}               ← from previous node
firstName            {{ $json.first_name }}
lastName             {{ $json.last_name }}
companyName          {{ $json.company }}

Response Format: JSON (auto-parsed)
→ Access fields via: {{ $json.jobTitle }}, {{ $json.companyHeadcount }}, etc.

💡 Tip: store your API key in n8n’s built-in credential store or as an environment variable — never hardcode it in the node.

Endpoints

10 enrichment actions.
One API key.

All REST endpoints. GET method. API key as query param. Works from any n8n node that can make HTTP requests.

Enrich Contact

250+ fields: email, title, seniority, company data

/api/ingress/v4/contact

Reverse Email

Contact + company profile from any email address

/api/ingress/v4/reverse-email

Find Email

Professional email from name + domain or LinkedIn

/api/ingress/v4/find-email

Firmographic

Headcount, industry, founded, HQ, tech stack

/api/ingress/v4/firmographic

Financial Data

Revenue, funding rounds, investors, ARR estimates

/api/ingress/v4/funding

SIREN Finder

French SIREN number from company name or domain

/api/ingress/v4/siren-company-finder

SIRENE Data

Official French registry: NAF, legal form, address

/api/ingress/v4/french-siren

Tech Stack

Technologies detected on any company website

/api/ingress/v4/tech-stack

Website Traffic

Monthly visits, top countries, traffic sources

/api/ingress/v4/website-traffic

Homepage Content

Scraped homepage: tagline, description, keywords

/api/ingress/v4/homepage-content

Use cases

Workflows engineers actually ship.

1Real-time enrichment + routing on inbound webhook leads

Workflow structure

Webhook trigger — POST body: email, firstName, lastName, company
HTTP Request GET /contact · params: {{$json.email}}, {{$json.firstName}}
IF node: seniority IN [C-Level, VP, Director] AND companyHeadcount > 100
Branch A: Salesforce — Create contact in HOT pipeline · Branch B: Add to Lemlist nurture sequence

Fields used for routing

seniorityjobTitlecompanyHeadcountfundingStageindustryhqCountryconfidenceScore

Why it matters

Enrich and route inbound leads in under a second — before the CRM even creates the record. No SDR time wasted on manual qualification.

n8n node config (HTTP Request)

Method: GET
URL: https://gateway.enrich-crm.com
  /api/ingress/v4/contact
Params:
apiId:     {{ $env.ENRICH_API_KEY }}
email:     {{ $json.email }}
firstName: {{ $json.firstName }}
lastName:  {{ $json.lastName }}
2Scheduled bulk enrichment from Postgres or Airtable

Workflow structure

Schedule trigger — every night at 2am
Postgres nodeSELECT * FROM contacts WHERE enriched_at IS NULL LIMIT 200
SplitInBatches node — batch size 10 (respect rate limits)
HTTP Request GET /contact · param: {{$json.email}} or {{$json.linkedin_url}}
Postgres — UPDATE enriched fields + set enriched_at = NOW()

Fields written to DB

job_titlesenioritydepartmentlinkedin_urlcompany_headcountindustryhq_countryfunding_stageconfidence_score

Why it matters

No ETL tool needed. n8n reads directly from your database, enriches each row, and writes back — fully idempotent with the enriched_at guard.

SQL query example

SELECT id, email, linkedin_url
FROM contacts
WHERE enriched_at IS NULL
AND email IS NOT NULL
ORDER BY created_at DESC
LIMIT 200;
3ICP scoring pipeline: tech stack + firmographic + headcount

Workflow structure

Trigger: Postgres — new row OR Webhook POST
HTTP Request GET /tech-stack · param: domain
HTTP Request GET /firmographic · param: domain
Code node (JS) — compute ICP score from returned fields
IF score > 60 → Create deal in CRM · else → update record only

Fields used for scoring

technologies[]crmcompanyHeadcountindustryfundingStagehqCountryyearFoundedannualRevenueEstimate

Why it matters

Build your own ICP scoring engine — not a black-box vendor score. Full control over the logic, and real-time data on every company in your pipeline.

Code node — scoring logic (JS)

const tech = $('HTTP tech-stack').item.json;
const firm = $('HTTP firmographic').item.json;
let score = 0;

if (tech.crm === 'HubSpot') score += 20;
if (firm.companyHeadcount > 50)  score += 15;
if (firm.companyHeadcount > 200) score += 10;
if (firm.fundingStage === 'Series B'
|| firm.fundingStage === 'Series C') score += 15;
if (firm.industry === 'SaaS') score += 10;

return [{ json: { icp_score: score } }];
4French KYB — SIREN + SIRENE data for every new client

Workflow structure

Trigger: Pipedrive — Deal moved to “Closed Won”
HTTP Request GET /siren-company-finder · param: companyName
HTTP Request GET /french-siren · param: {{$json.sirenNumber}}
CRM Update — write legal fields + Pennylane/Sellsy — create client profile
Slack notify finance team with SIREN + legal form + address

Fields returned

sirenNumbersiretNumbernafCodenafLabellegalFormregisteredAddressheadcountCategoryvatNumbercreationDate

Why it matters

When a French deal closes, legal + finance data flows automatically — no back-and-forth with the client, no manual INPI search. KYB done in seconds.

Example output

sirenNumber:       "812345678"
siretNumber:       "81234567800012"
nafCode:           "6201Z"
legalForm:         "SAS"
registeredAddress: "12 rue de Rivoli, 75001 Paris"
vatNumber:         "FR12812345678"
headcountCategory: "20 à 49 salariés"
creationDate:      "2016-03-14"
5Reverse email — identify and enrich every inbound sender

Workflow structure

Trigger: Gmail node — New email received (filter: not newsletter, not internal)
HTTP Request GET /reverse-email · param: {{$json.from}} (sender address)
IF node: if seniority IN [C-Level, VP, Director] → priority branch
Intercom — Create or update contact · Slack — Alert AE with full profile brief

Fields returned

firstNamelastNamejobTitlesenioritydepartmentlinkedinUrlcompanyNamecompanyDomaincompanyHeadcountindustryfundingStage

Why it matters

An unknown address emails your sales alias. In milliseconds: you know their title, company size, LinkedIn, and funding stage — and your AE gets a Slack alert with the full context.

n8n node + example output

HTTP Request:
GET /api/ingress/v4/reverse-email
email: {{ $json.from }}  → "ceo@newstartup.io"

Returns:
firstName:       "Alexandre"
lastName:        "Moreau"
jobTitle:        "Chief Executive Officer"
seniority:       "C-Level"
companyHeadcount: 45
fundingStage:    "Seed"
linkedinUrl:     "linkedin.com/in/alexandre-moreau"
6Tech stack monitoring on a target account list

Workflow structure

Schedule trigger — every Monday morning
Postgres/Airtable — fetch target account list (domain + last_tech_check)
HTTP Request GET /tech-stack · param: {{$json.domain}}
Code node — compare new tech list with previous snapshot stored in DB
IF tech changed → Slack alert “Acme just added Salesforce — outreach trigger”

Fields returned

technologies[]crmmarketingAutomationecommerceanalyticshostingcmsmainLanguage

Why it matters

A company switching CRM or adopting a new tool is a buying signal. This workflow catches it the week it happens — before your competitor does.

Code node — change detection (JS)

const prev = $('DB lookup').item.json.technologies;
const curr = $('HTTP tech-stack').item.json.technologies;

const added   = curr.filter(t => !prev.includes(t));
const removed = prev.filter(t => !curr.includes(t));

if (added.length > 0 || removed.length > 0) {
return [{ json: {
  changed: true,
  added,
  removed,
  domain: $json.domain
}}];
}
return [{ json: { changed: false } }];
7Pre-call research automation — financial + firmographic brief

Workflow structure

Trigger: Calendly / Attio — Meeting scheduled (1h before)
HTTP Request GET /funding · param: companyName
HTTP Request GET /firmographic · param: domain
HTTP Request GET /tech-stack · param: domain
Slack / Email — Send formatted brief to AE 1h before call

Fields used in brief

fundingStagetotalFundingAmountinvestors[]companyHeadcountindustryyearFoundedcrmtechnologies[]annualRevenueEstimate

Why it matters

Every AE gets a structured brief 1 hour before their discovery call — funding, headcount, tech stack, revenue estimate. No more last-minute Crunchbase scramble.

Slack brief example

📋 Pre-call brief — Acme Corp (acme.io)
⏰ Call in 1 hour with Julie Martin, VP Sales

🏦 Series B · €8M raised (Jan 2024)
 Investors: Kima, Alven
💰 Revenue estimate: €2–5M ARR
👥 85 employees · Paris, France
🛠 Stack: HubSpot · Intercom · Segment
 → No enrichment tool detected yet ✅

Ready to enrich your n8n workflows?

Start free — 500 credits, no credit card. Your first enriched workflow in under 5 minutes.

Also available in Clay · HubSpot · Zapier · Make