Automate Bulk Contact Enrichment with Dropcontact & n8n

This workflow automates the enrichment of business contacts by querying a Postgres database, batching requests to Dropcontact’s API, and updating profiles asynchronously. It saves hours of manual data entry and avoids costly errors for sales teams needing accurate contact data.
postgres
httpRequest
scheduleTrigger
+7
Workflow Identifier: 2057
NODES in Use: Schedule Trigger, Postgres, SplitInBatches, Aggregate, Code, HTTP Request, Wait, SplitOut, Slack, Sticky Note
Automate contact enrichment with Dropcontact and n8n

Press CTRL+F5 if the workflow didn't load.

Learn how to Build this Workflow with AI:

What This Automation Does

This workflow finds profiles missing emails in the Postgres database.

It groups profiles into batches of 250.

Each batch is sent asynchronously to Dropcontact API for enrichment.

After waiting 10 minutes for processing, enriched data is fetched.

The workflow updates the Postgres profiles with verified emails and phones.

This saves hours of manual work and improves contact accuracy for outreach.


Who Should Use This Workflow

This is for teams with lots of contacts missing emails or phones.

It fits companies using Postgres to store profiles and Dropcontact for data.

Users wanting to automate bulk contact cleaning and enrichments will benefit.


Tools and Services Used

  • Postgres: Stores company and profile data.
  • Dropcontact API: Enriches contacts asynchronously at scale.
  • n8n: Automation platform to orchestrate workflow steps.
  • Slack (optional): Sends error alerts to the team.

Input, Processing, and Output

Input

Profile records from Postgres missing email addresses.

Queries filter on title, domain, and enrichment status.

Processing Steps

  1. Query profiles with missing emails from database.
  2. Split the profiles into 250 record batches.
  3. Aggregate fields and transform for Dropcontact format using Python.
  4. Send each batch to Dropcontact API via HTTP POST.
  5. Wait 10 minutes for Dropcontact asynchronous processing.
  6. Download enriched results using request IDs.
  7. Split batch results into single profiles.
  8. Update Postgres profiles with new emails, phones, and status flags.
  9. Optionally notify Slack if errors occur.

Output

Profiles in Postgres updated with verified contact details.

Accurate data allows better outreach and sales efficiency.


Beginner Step-by-Step: How to Use This Workflow in n8n

Importing the Workflow

  1. Download the workflow file using the Download button on this page.
  2. Open your n8n editor where you want to run this automation.
  3. Click the menu, choose “Import from File”, and select the downloaded workflow file.

Configuring Credentials and IDs

  1. Add your Postgres database credentials in n8n under the Postgres node credentials.
  2. Enter your Dropcontact API Key in the HTTP Request node credentials for authorization.
  3. If using Slack notifications, add your Slack webhook or OAuth details to the Slack node.
  4. Update any table names, domain filters, or titles in the Postgres query node if needed.

Testing and Activating

  1. Run the workflow manually once to confirm it fetches, enriches, and updates data correctly.
  2. Check Postgres for updated emails and phone numbers.
  3. Enable the Schedule Trigger node to activate automated recurring runs.
  4. Monitor execution logs regularly and adjust batch sizes or wait times when scaling.

For users running n8n on their own servers, consider using self-host n8n for better control.


Troubleshooting Common Issues

  • Invalid API Key: Double-check Dropcontact API key entered in n8n credentials. Refresh if expired.
  • Too Many Requests: Reduce 250 batch size in SplitInBatches node. Increase Wait node duration.
  • No Profiles Returned: Check SQL query syntax and database connection. Run test queries manually.
  • Updates Not Saving: Verify Postgres update mapping uses correct full_name and fields.

Customizations for Different Needs

  • Change job title filter easily by editing the SQL query’s WHERE title = 'Bestuurder' condition.
  • Adjust batch size in the SplitInBatches node to fit different API limits.
  • Modify the Python code in the Code node to add extra fields or change output format.
  • Add or remove specific domain filters in SQL query to target best data.
  • Connect the Slack error notification node to other events to customize alerts.

Summary

✓ Automates bulk enrichment of profiles missing emails using Postgres and Dropcontact API.

✓ Saves manual searching time and reduces data errors for outreach teams.

✓ Works in batches of 250 profiles, handles asynchronous processing with waits.

✓ Updates contact info accurately back into Postgres, keeping data fresh.

→ Enables scaling enrichment from hundreds to thousands of contacts per run.


select first_name, last_name, domain, full_name
from accounts a 
left join profiles p on a.company_id = p.company_id 
where title = 'Bestuurder' and p.email is null and a.domain != ''
and domain NOT IN ('gmail.com', 'hotmail.com', 'hotmail.be', 'hotmail%','outlook.com','telenet.be', 'live.be', 'skynet.be','SKYNET%', 'yahoo.com' , 'yahoo%', 'msn%', 'hotmail', 'belgacom%') and dropcontact_found is null 
limit 1000

Use this SQL query in the Postgres node to find profiles needing emails.

import json

for item in _input.all():
  data = item.json 

  output_data = {"data": [], "siren": True}

  first_names = data["first_name"]
  last_names = data["last_name"]
  domain = data["domain"]
  full_name = data["full_name"]

  transformed_data = []
  for i, (first_name, last_name, domain_name, full_name_value) in enumerate(zip(first_names, last_names, domain, full_name)):
    transformed_data.append({
      "first_name": first_name,
      "last_name": last_name,
      "website": domain_name,
      "custom_fields": {"full_name": full_name_value}
    })

  output_data["data"] = transformed_data

  return output_data

This Python script in the Code node formats the batch data for Dropcontact API.

https://api.dropcontact.io/batch

Use this URL in the HTTP Request node for batch uploads.

https://api.dropcontact.io/batch/{{ $json.request_id }}

Use this URL to GET batch processing results based on returned request_id.

Automate contact enrichment with Dropcontact and n8n

Visit through Desktop to Interact with the Workflow.

Frequently Asked Questions

Check the SQL query filters in the Postgres node. Confirm the database connection is working and the tables contain data matching conditions.
Reduce batch size in the SplitInBatches node below 250 or increase wait time after sending batches.
Yes. The workflow works with any n8n instance. For self-hosted options and setups, see buldrr.com/hosting.
Profiles use the full_name field to match rows in Postgres to update email, phone, and enrichment status.
Author
Written By
Vikash Kumar
Building AI agents, n8n workflows and end-to-end automation for 30+ Brands across India, the US, Europe, Dubai & Australia. 7+ years of Experience saving founders real hours every week - no code required.

Related Workflows

Automate Twist Channel Creation and Messaging with n8n

This workflow automates creating and updating a channel in Twist and sending a personalized message to specific users. It eliminates manual setup errors and saves time managing Twist communications.

Automate Ideogram Image Generation with Google Sheets & Gmail

This workflow automates graphic design image generation via Ideogram AI, storing image data in Google Sheets and Google Drive, with email alerts via Gmail. It saves designers hours by automating image creation, remixing, review, and record-keeping.

Automate IT Support with Slack and OpenAI in n8n

Streamline IT support by automating Slack message handling using n8n and OpenAI. This workflow handles Slack DMs, filters bots, queries a Confluence knowledge base, and delivers AI-generated responses, improving support efficiency and response time.

Automate Crypto Analysis with CoinMarketCap & n8n AI Agent

Discover how this unique n8n workflow leverages CoinMarketCap’s multi-agent AI to deliver precise, real-time cryptocurrency insights directly via Telegram. Manage crypto data analysis efficiently with automated multi-source API integration.

Automate Gumroad to Beehiiv Subscriber Sync with n8n

Learn how to automatically add new Gumroad sales customers as Beehiiv newsletter subscribers using n8n automation. This workflow saves time by syncing sales data to Google Sheets CRM and notifying your Telegram channel instantly.

Generate On-Brand Blog Articles Using n8n and OpenAI

This workflow automates the creation of on-brand blog articles by analyzing existing company content using n8n and OpenAI. It extracts article structures and brand voice to produce consistent draft articles, saving significant content creation time.
1:1 Free Strategy Session
Your competitors are already automating. Are you still paying for it manually?

Do you want to adopt AI Automation?

Every hour your team does repetitive work, you're burning real money.
While you wait, faster businesses are cutting costs and moving quicker.
AI and automations aren't the future anymore — they're the present.

Book a live 1-on-1 session where we show you exactly which of your daily tasks can be automated — and what it’s costing you not to.