hyreflow docshyreflow docsDocumentation
Integrations

ZoomInfo

Premium B2B data: enrich contacts/companies, search the database, and pull intent/scoop/news signals. BYOK-only on hyreflow. Key gotcha: enrich is capped at 25 records/call.

Reach for ZoomInfo when you need high-quality B2B enrichment at scale, net-new prospecting, or intent/scoop signals for prioritization, a premium alternative or complement to Apollo and the waterfall enrichers.

ZoomInfo is BYOK-only: it isn't resold on managed credits, and calls are free on hyreflow (you pay ZoomInfo per record on your own account: user_usage, lookup, and all search_* calls are free on the ZoomInfo side; enrich_* charges per matched record and failed/no-match lookups are NOT charged). user_usage reads your own account's usage/credit balance. Connecting your own key needs the Essential plan or above.

Connect

ZoomInfo uses OAuth Client Credentials — a Client ID + Client Secret pair from a ZoomInfo DevPortal app:

  1. Open the ZoomInfo DevPortal and create (or pick) an app of type Client Credentials.
  2. Grant the scopes your calls need — api:data:contact, api:data:company, api:insights:read, and so on. The token request sends no scope, so the app gets every scope it's granted.
  3. Copy the app's Client ID and Client Secret.
  4. In hyreflow → Integrations, paste them into the ZoomInfo card's Client ID and Client Secret fields and save. The key check runs a free user_usage probe against ZoomInfo.

Or from the CLI:

hyreflow byok set zoominfo --api-key <client-id> --field client_secret=<client-secret>

Once connected, ZoomInfo runs first in the people-search and email/phone-enrichment waterfalls — a key the client holds jumps to the front (it's free for you on the hyreflow side).

Capabilities

Cost below is on your own ZoomInfo account (BYOK-only), hyreflow charges 0 credits for every ZoomInfo call.

ToolDoesCost
zoominfo_search_contactsSearch the contact database (filters under data.attributes)Free
zoominfo_search_companiesSearch the company databaseFree
zoominfo_enrich_contactsEnrich ≤ 25 contacts (matchPersonInput + outputFields)1 credit / matched record
zoominfo_enrich_companiesEnrich ≤ 25 companies (matchCompanyInput + outputFields)1 credit / matched record
zoominfo_enrich_intentIntent signals for prioritizationPer returned signal
zoominfo_enrich_scoopsCompany scoops (signals)Per returned scoop
zoominfo_company_lookalikesSimilar companiesMetered
zoominfo_lookupValid values for a search/enrich fieldFree
zoominfo_user_usageAPI usage / credits balance on your own accountFree

Guidance

  • OAuth 2.0 client credentials: the adapter posts grant_type=client_credentials with HTTP Basic client_id:client_secret, caches/refreshes the ~1h Bearer, and re-auths once on a 401. No scope is sent.
  • JSON:API bodies: data calls send Content-Type/Accept: application/vnd.api+json with {"data":{"type":"ContactEnrich","attributes":{…}}} — page[number]/page[size] (1–100) and sort are query params on search.
  • Enrich is capped at 25 records/call and bills per matched record — pilot a 1-record enrich, then gate bulk behind approval. Run user_usage to check your own ZoomInfo account balance first.
  • Required filters on Copilot calls: contact_lookalikes needs filter[referencePersonId], company_lookalikes needs filter[companyId] or filter[companyName], and contact_recommendations needs filter[useCaseType] + filter[ziCompanyId]. lookup(field_name) resolves valid field values.
  • Anything not listed above isn't wired to a typed method.
hyreflow tools execute zoominfo enrich_contacts \
  --payload '{"payload":{"data":{"type":"ContactEnrich","attributes":{"matchPersonInput":[{"firstName":"Ada","lastName":"Lovelace","companyName":"Acme"}],"outputFields":["email","phone"]}}}}'

Use search to discover net-new, enrich to resolve emails/phones/firmographics, then intent/scoops to prioritize before handing to sequencers or the ATS.