Skip to main content

Enrich contacts in n8n: The right way

API - N8N

Updated over a week ago

Contact enrichment runs through multiple data providers in a cascading sequence. This takes time—sometimes seconds, sometimes minutes.

To prevent your workflow from timing out, you need two specific nodes: HTTP Request and Wait.

The setup

Your workflow must follow this exact order:

  1. HTTP Request node → Sends the profile to Zeliq

  2. Wait node → Pauses until Zeliq returns the data

Step 1: HTTP Request node

This node sends the enrichment request.

Configuration:

  • Method: POST

  • URL: https://api.zeliq.com/api/v1/enrich/phone

  • Authentication: Generic Credential Type → Header Auth
    (Authorization: Bearer YOUR_API_KEY)

Body (JSON format):

Include the LinkedIn profile URL and the n8n callback variable:

{   "linkedinProfileUrl": "{{ \$json.linkedinUrl }}",   "callback_url": "{{ \$execution.resumeUrl }}" }

⚠️ The callback_url is required. It tells Zeliq where to send the results.

Step 2: Wait node

Connect this node right after the HTTP Request.

Configuration:

  • Resume: On Webhook Call

  • Limit Wait Time: Enabled → 2 hours

Why 2 hours?
Enrichment can be instant or take longer, depending on data availability. A 2-hour buffer ensures n8n keeps the connection open, even if the lookup is slow.

When Zeliq finds the phone number or email, the Wait node resumes automatically and passes the enriched data to your next step.

One last thing

Check your workflow settings: make sure "Timeout Workflow" is either disabled or set to more than 2 hours.

That's it. Your workflow won't break, and you'll get clean, enriched data every time.

👩🏼‍💻 For further information, please do not hesitate to contact us:

Did this answer your question?