Actions8
Start Contact Search
AI-generatedSummary
Starts an asynchronous DataMerge contact search for one or more company domains, with optional job title, location and enrichment filters. It returns the API's job response, which you poll or receive by webhook.
Inputs
- Domains (required) — Comma-separated list of company domains. Values are split on commas, trimmed, and empty entries dropped. The node throws an error if none remain.
- Max Results Per Company — Maximum contacts returned per company (minimum 1, default 5).
- Enrich Fields (required) — Data to enrich for each contact: Emails (contact.emails) and/or Phones (contact.phones). Default is Emails.
- Job Titles (Include) — JSON object of priority tiers, e.g. {"1": ["CEO","CTO"], "2": ["VP Engineering"]}. Tier 1 is matched before tier 2. Invalid JSON throws a parse error. Sent as job_titles.include.
- Job Titles (Exclude) — JSON array of job titles to exclude, e.g. ["Intern"]. Invalid JSON throws a parse error. Sent as job_titles.exclude.
- Location (Include) — JSON array of {type, value} objects, where type is country, region or city. Sent as location.include with an empty exclude list. Invalid JSON is silently ignored, so no location filter is applied.
- Webhook URL — URL the API calls with results when the job completes. Omitted from the request if empty.
Output shape
One output item per input item, containing the raw JSON response from POST https://api.datamerge.ai/v1/contact/search. It is expected to include the job ID, but the source doesn't show the exact fields.
The call is asynchronous, so no contacts are returned here. Pass the job ID to Get Contact Search Status to poll for record IDs, then use Get Contact for each record. The defaults for the job title and location JSON fields are non-empty, so those filters apply unless you clear them. If you clear Job Titles (Include) but keep Exclude, the include value is sent as {}. With Continue On Fail enabled, errors are returned as an item with an error message.
Examples
Example 1: Find C-level contacts with emails at two target companies
Domains: stripe.com, shopify.com; Enrich Fields: Emails; Job Titles (Include): {"1":["CEO","CTO"]}; Max Results Per Company: 3
Example 2: Search a list of domains from earlier nodes and receive results via webhook
Domains: expression joining incoming domain values with commas; Enrich Fields: Emails + Phones; Webhook URL: your n8n webhook URL