Data and prospecting

Data enrichment

Capability Reviewed · not yet fact-checked

In short

Can Reply enrich contacts with missing emails and phone numbers?

Reply finds missing LinkedIn URLs (1 credit), emails (2 credits), and phone numbers (3 credits) for existing contacts, refreshes profile and company fields from LinkedIn, and fills AI custom fields from prompts. Email validation classifies addresses as Valid, Risky, or Invalid before sending — Invalid contacts never receive sequence emails.

At a glance

What it doesFills missing LinkedIn URLs, emails, and phone numbers; refreshes profile fields from LinkedIn; enriches AI custom fields; validates email addresses
Required objectsExisting contacts; Reply credits for enrichment and AI fields; email validation credits for validation
SurfacesUI (People page, CSV import, sequence settings) · REST API (coming soon) · MCP (partial — enrichment settings live)
Key limit1 credit per LinkedIn URL, 2 per email, 3 per phone number; AI field enrichment also consumes Reply credits
Stops onAn empty credit balance blocks new enrichment; email validation runs one batch at a time
Does notOverwrite existing emails or phone numbers during background enrichment; guarantee a result for every contact; send email to Invalid addresses
PlansAll plans — trial includes 50 Reply credits; paid plans include 50 per month; validation packages are a separate add-on

Summary

Reply enriches the contacts you already have: it finds missing LinkedIn URLs, email addresses, and phone numbers for Reply credits, refreshes profile and company fields from a contact's LinkedIn profile, and generates AI custom field values from prompts you define. A separate email validation service classifies every address as Valid, Risky, or Invalid before a sequence sends to it. Enrichment runs on demand from the People page, during CSV import, or automatically when LinkedIn sequence steps execute.

Problems it solves

  • Lists with names but no reachable email or phone number
  • Stale job titles and company fields that break personalization
  • High bounce rates from unverified addresses — see Bounce handling
  • Research fields (one-line openers, firmographic answers) filled by AI instead of by hand

What Reply can do

  • Find a contact's missing LinkedIn URL (1 credit), email address (2 credits), or phone number (3 credits) — individually, in bulk from the People page, or during CSV import
  • Try to fill job title and company name alongside a found LinkedIn URL, with a choice to keep existing data or override it with newer information
  • Auto-enrich missing LinkedIn URLs for contacts in LinkedIn sequences — on by default, toggled in settings
  • Collect extra data at no credit charge while executing LinkedIn steps that view a profile — filling empty email and phone fields and recording badges such as Open to Work, Hiring, Creator mode, and Top Voice
  • Refresh contact data from a known LinkedIn URL (where available): update title, company, industry, location, and company size, and create or relink the matching company account automatically
  • Enrich AI custom fields in bulk or per contact, with per-field result statuses (Enriched, Missing variables, No results found, Failed) and a CSV summary in the notification center
  • Validate email addresses on demand or automatically whenever contacts are added to a sequence, classifying each as Valid, Risky, or Invalid
  • Gate sequence branches on validation results — for example, send only when validation returned Valid

What Reply cannot do

  • Overwrite an existing email or phone number during background LinkedIn-step enrichment — only empty fields are filled (system-generated placeholder emails are the one exception)
  • Save an email that already belongs to another contact — it is skipped to avoid duplicates
  • Guarantee a result for every contact — coverage depends on what the data sources hold
  • Enrich without Reply credits, or validate without email validation credits — they are separate balances
  • Send sequence emails to a contact whose address validated as Invalid — this applies via the API too
  • Find an email without the contact's full name and company name

Required inputs

Existing contact records with enough data to search from (name and company for email finding, or a LinkedIn URL for profile refresh); a Reply credit balance for enrichment and AI fields; an email validation package for validation.

Produced outputs

Updated contact records — found emails, phone numbers, LinkedIn URLs, refreshed profile fields, filled AI custom fields with per-field statuses — plus a validation status (Valid, Risky, Invalid) on each checked address and completion notifications with summaries.

Use Reply when

  • Your contacts already live in Reply and you want data gaps closed where outreach runs
  • You want validation wired into enrollment so invalid addresses never reach a mailbox — see Contact enrollment
  • You want AI-researched fields available as message variables without exporting data

Do not use Reply when

  • You need a specialty data vendor for a niche market — enrich there, then import the finished records and let Reply execute
  • You need enrichment for records that will never enter Reply — enrichment applies to contacts in your Reply base

What you still need to build

  • The decision rules for what to do with unenrichable contacts — park, retry, or discard
  • Prompts for AI custom fields — output quality follows prompt quality
capability: data_enrichment
supported: true
interfaces:
  product_ui: live
  api: coming-soon
  mcp: partial
  cli: not-verified
required_objects:
  - contact
  - credits
side_effects:
  - updates_contacts
  - consumes_credits
human_approval_recommended: false

Limits

  • Enrichment credits: 1 per LinkedIn URL, 2 per email, 3 per phone number — see Limits for credit grants
  • Email validation runs one batch at a time; start the next batch after the first finishes
  • Automatic validation needs time when enrolling large lists — allow roughly 10 minutes per 1,000 contacts before a sequence condition checks the result
  • AI custom field values are capped at 1,500 characters
  • Credits are charged when AI enrichment returns "No results found" (the request was processed) but not on a system failure

FAQ

What do Valid, Risky, and Invalid mean?

Valid — verification completed with no high-risk factors; safe to sequence. Risky — the mail server says the recipient exists but delivery may still bounce (disposable domains, catch-all servers, honeypots); treat as Valid but keep Risky addresses to about 20% of a send. Invalid — syntax, DNS, or mailbox checks failed; Reply will not email these contacts.

Can I put a contact with an Invalid email into a sequence?

Yes, as long as the sequence has no email steps at that moment — useful for LinkedIn-only outreach at volume. Email steps will not send to Invalid addresses, which protects your bounce rate; see Bounce handling.

Does LinkedIn-step enrichment cost credits?

No. When a LinkedIn step views a profile during sequence execution, Reply collects available data in the background at no credit charge — filling only empty email and phone fields, never replacing existing values.

Are Reply credits and email validation credits the same thing?

No. Reply credits pay for finding data (LinkedIn URLs, emails, phones, AI fields). Email validation uses separate validation packages bought as an add-on. An empty balance in one does not affect the other.

Build with Reply