ZoomInfo · Arazzo Workflow

ZoomInfo Search and Enrich a Contact

Version 1.0.0

Authenticate, search contacts, then enrich the top match for phone and email.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub B2BB2B DataCompany DataContact DatabaseContactsDataLead GenerationMarketing IntelligenceSales IntelligenceIntent DataGo-To-MarketData EnrichmentAI AgentsMCPArazzoWorkflows

Provider

zoominfo

Workflows

search-and-enrich-contact
Search ZoomInfo for a contact and enrich the top-ranked match.
Authenticates, searches contacts by management level, company type, and location, then enriches the first returned contact by its ZoomInfo person id, requesting the supplied output fields.
3 steps inputs: companyType, locationSearchType, managementLevel, outputFields, password, requiredFields, techAttributeTagList, username, zipCode, zipCodeRadiusMiles outputs: enrichedContact, topCompanyId, topPersonId
1
authenticate
Exchange the ZoomInfo username and password for a JWT access token that is valid for 60 minutes.
2
searchContacts
Search ZoomInfo for contacts matching the supplied criteria, authenticating with the JWT.
3
enrichContact
Enrich the top contact from the search result by its ZoomInfo person id, requesting the supplied output fields such as phone and email.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: ZoomInfo Search and Enrich a Contact
  summary: Authenticate, search contacts, then enrich the top match for phone and email.
  description: >-
    A contact discovery-to-detail flow against ZoomInfo's B2B data. It
    authenticates for a JWT, runs a Contact Search scoped by management level,
    company type, and location, and then feeds the ZoomInfo person id of the top
    search result into the Contact Enrich endpoint to pull the requested output
    fields such as phone and email. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: authenticationApi
  url: ../openapi/zoominfo-authentication-api-openapi.yml
  type: openapi
- name: contactEnrichApi
  url: ../openapi/zoominfo-contact-enrich-api-openapi.yml
  type: openapi
- name: contactSearchApi
  url: ../openapi/zoominfo-contact-search-api-openapi.yml
  type: openapi
workflows:
- workflowId: search-and-enrich-contact
  summary: Search ZoomInfo for a contact and enrich the top-ranked match.
  description: >-
    Authenticates, searches contacts by management level, company type, and
    location, then enriches the first returned contact by its ZoomInfo person
    id, requesting the supplied output fields.
  inputs:
    type: object
    required:
    - username
    - password
    - managementLevel
    - companyType
    - zipCode
    - locationSearchType
    - zipCodeRadiusMiles
    - techAttributeTagList
    - requiredFields
    - outputFields
    properties:
      username:
        type: string
        description: The ZoomInfo API username.
      password:
        type: string
        description: The ZoomInfo API password.
      managementLevel:
        type: string
        description: Contact management level to filter by (e.g. "directors").
      companyType:
        type: string
        description: Company type to filter by (e.g. "public").
      zipCode:
        type: string
        description: Zip Code of the company's primary address.
      locationSearchType:
        type: string
        description: Location criteria for the search (e.g. "PersonAndHQ").
      zipCodeRadiusMiles:
        type: string
        description: Geographical radius in miles from the supplied zipCode.
      techAttributeTagList:
        type: string
        description: Technology product tags in dot notation (e.g. "333.202.*").
      requiredFields:
        type: string
        description: Comma-separated list of required fields (e.g. "directPhone").
      outputFields:
        type: array
        description: The list of contact output fields to return from enrichment.
        items:
          type: string
  steps:
  - stepId: authenticate
    description: >-
      Exchange the ZoomInfo username and password for a JWT access token that is
      valid for 60 minutes.
    operationId: Authenticate
    requestBody:
      contentType: application/json
      payload:
        username: $inputs.username
        password: $inputs.password
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jwt: $response.body#/jwt
  - stepId: searchContacts
    description: >-
      Search ZoomInfo for contacts matching the supplied criteria, authenticating
      with the JWT.
    operationId: ContactSearch
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.authenticate.outputs.jwt
    requestBody:
      contentType: application/json
      payload:
        managementLevel: $inputs.managementLevel
        companyType: $inputs.companyType
        zipCode: $inputs.zipCode
        locationSearchType: $inputs.locationSearchType
        zipCodeRadiusMiles: $inputs.zipCodeRadiusMiles
        techAttributeTagList: $inputs.techAttributeTagList
        requiredFields: $inputs.requiredFields
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      totalResults: $response.body#/totalResults
      topPersonId: $response.body#/data/0/id
      topCompanyId: $response.body#/data/0/company/id
  - stepId: enrichContact
    description: >-
      Enrich the top contact from the search result by its ZoomInfo person id,
      requesting the supplied output fields such as phone and email.
    operationId: ContactEnrich
    parameters:
    - name: Authorization
      in: header
      value: Bearer $steps.authenticate.outputs.jwt
    requestBody:
      contentType: application/json
      payload:
        outputFields: $inputs.outputFields
        matchPersonInput:
        - personId: $steps.searchContacts.outputs.topPersonId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/success
      enrichedContact: $response.body#/data
  outputs:
    topPersonId: $steps.searchContacts.outputs.topPersonId
    topCompanyId: $steps.searchContacts.outputs.topCompanyId
    enrichedContact: $steps.enrichContact.outputs.enrichedContact

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/zoominfo-contact-search-enrich-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.