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 1 source API 1 provider
View Spec View on GitHub B2BB2B DataCompany DataContact DatabaseContactsDataLead GenerationMarketing IntelligenceSales IntelligenceArazzoWorkflows

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
Authenticate
Exchange the ZoomInfo username and password for a JWT access token that is valid for 60 minutes.
2
searchContacts
ContactSearch
Search ZoomInfo for contacts matching the supplied criteria, authenticating with the JWT.
3
enrichContact
ContactEnrich
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

zoominfo-contact-search-enrich-workflow.yml 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: zoominfoApi
  url: ../openapi/zoominfo-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