Skip to main content
When a CRM creates a lead, use the work email to retrieve the associated Brand profile and fill missing company fields before the first sales touch. You’ll need a server-side API key from the Quickstart and a CRM webhook or background job. Each successful Brand lookup costs 10 credits.
This workflow enriches the company associated with an email. It does not verify the person’s identity, role, seniority, or employment. Use the People API when you need person-level data.

How it works

Run enrichment in a queue or background worker. CRM webhooks are commonly retried, and a synchronous handler can time out while the Brand lookup is still running.

Choose CRM fields

Do not create required CRM fields from optional API fields. Decide which data is informational and which data your team must confirm.

Look up the company

Choose your client for the API request. The PHP tab uses the SDK’s low-level Brand method.

Normalize the lookup result

This TypeScript adapter keeps the rest of your CRM integration independent of upstream error shapes:
Free and disposable email addresses return 422; treat those as unmatched. Retry 408, 429, server errors, and network failures with a bounded policy. Authentication and input errors need correction before retrying. The worker should also catch fetch failures and record them as retryable.

Patch blank fields only

Make the mapping explicit and preserve anything a rep or another trusted system already entered:
Filter out undefined fields before sending the patch if your CRM interprets them as clears.

Handle duplicate events

Use the CRM event ID as an idempotency key. If the CRM does not provide one, derive a stable key from the object ID and event timestamp.
  1. Acknowledge the webhook quickly after validating its signature.
  2. Enqueue the CRM object ID, email, and event ID.
  3. Skip event IDs already processed.
  4. Cache matched profiles by normalized brand.domain, not by the full email address.
  5. Retry transient failures with a bounded exponential backoff and jitter.
  6. Send permanent misses to a completed state so the webhook is not retried forever.

Add person context when the workflow needs it

Use the People API for a person’s identity and profile, separately from the company Brand lookup. Send additive clues you actually have, such as a work email and a confirmed company domain:
People enrichment request body
Send this body to POST /people/enrich. Handle match.status as candidate or not_found, and review the returned identity match before writing person fields. The People identity match score is distinct from the Brand response, which has no public numeric match score. Neither a company email domain nor a marketing description establishes someone’s current role or employment. For a candidate, inspect match.person.current_role_status before using current_role. present means a role is populated, none means the available work history shows ended roles, and unknown means the current role could not be confirmed. Do not convert an unknown role into an unemployment claim. Keep your CRM contact ID and account ID as the durable identities. Domains can help deduplicate company candidates, but subsidiaries, rebrands, and shared domains may need separate account records.

Attach sourced account research

Use selected website pages or structured extraction for public product descriptions, announced updates, or hiring signals. With Extract, use nullable fields and factCheck: true; preserve the analyzed URLs and verify the supporting page before treating a signal as established. Keep the research layer separate from the fields your team maintains: A careers page can support a statement that a role was listed at an observation time. It does not establish a prospect’s budget, buying intent, or current headcount. Label inferences separately and keep failed checks distinct from a signal disappearing. The resulting account brief can power a personalized sales demo. Context.dev supplies source data; your application joins CRM history, computes an ICP score, and decides when to send outreach.

Keep records useful

  • Keep the API key in the worker’s server environment.
  • Verify the CRM webhook signature before accepting an event.
  • Minimize the email and company data written to logs.
  • Record the lookup time and source for fields that may become stale.
  • Give reps a way to correct enriched fields.
  • Re-enrich on an intentional schedule, not every time a lead record is read.

Retrieve a brand by email

Map work email addresses to company profiles.

Rate limits

Plan throughput and handle rate-limited requests.

API stability

Handle response changes and schema upgrades.

Personalized sales demos

Use reviewed account facts and branding in a prospect-specific preview.