hyreflow
Integrations

BetterContact

Waterfall email enrichment with multi-provider verification, async (start + poll); contact-focused, billed on result retrieval.

Reach for BetterContact on a work-email (BD / selling-to-companies) run when single-provider finders (Prospeo, Lusha) miss and you want multi-provider waterfall email enrichment with triple verification.

Work email only. start_enrichment returns a corporate address at the person's current employer, never a personal one. It must not be used on a candidate / personal_email pipeline, including as a fallback when that waterfall returns fewer hits than hoped (a spending_cap_reached or still_enriching shortfall means retry later, not switch provider). Every start_enrichment / get_enrichment response carries _meta.channel: "work_email" and a work_email_only warning, and a call that declares "channel": "personal" (or personal_email / candidate) in the request body is refused with 400 work_email_only before any credit is spent.

Managed credits or BYOK, billing is deferred: the launcher is free and you're charged once on result retrieval, when the result carries data, 0.5 credits for an email reveal, 4.8 for a phone reveal (email included).

Capabilities

ToolDoesCost
start_enrichmentLaunch an enrichment job (up to 100 contacts), returns a request idDeferred
get_enrichmentFetch terminal results by request_id (reports credits_consumed)Free retrieval

Guidance

  • Enrichment is async: start_enrichment returns a request id immediately, use it as the request_id for get_enrichment to poll for terminal results. The payload key is exactly request_id; any other key is refused with 400 invalid_payload naming the expected one.
  • A job belongs to the workspace that started it. get_enrichment with an id another workspace launched (or one Hyreflow never issued) reads the same as one that doesn't exist: 404. On your own BetterContact key the vendor account is the boundary instead.
  • Email status hierarchy: deliverable > catch_all_safe > catch_all_not_safe > undeliverable. Only trust deliverable and catch_all_safe for outreach.
  • Only reveal what you need: set enrich_phone_number: true only when the play actually needs a phone number: it raises the charge from 0.5 to 4.8 credits (billed once, on retrieval, when the result carries data).
  • Batch up to 100 contacts per job. Rate limit is 60 req/min/key, shared across endpoints.
  • Don't use it for email validation only (use a dedicated validator) or for company/org enrichment (it's contact-focused).
hyreflow tools execute bettercontact start_enrichment \
  --payload '{"data":[{"first_name":"Ada","last_name":"Lovelace","company_domain":"example.com"}]}'

Call it directly with hyreflow tools execute bettercontact start_enrichment, it isn't part of the default email_enrichment waterfall (see Integrations Overview). Note it is an async provider, it uses a start/poll cycle.

On this page