Hunter · Arazzo Workflow

Hunter Domain To Verified Email

Version 1.0.0

Discover a domain's email pattern, find a specific person's email, then verify its deliverability.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub Email FinderEmail VerifierLead GenerationOutreachProspectingEnrichmentSalesMarketingArazzoWorkflows

Provider

hunter-io

Workflows

domain-to-verified-email
Resolve and verify one person's email at a company from the company domain.
Searches the domain for its email pattern and coverage, finds the named person's most likely email at that domain, and verifies the result, branching on whether the verification status is valid.
3 steps inputs: apiKey, domain, firstName, lastName outputs: email, findScore, pattern, verificationStatus
1
searchDomain
domainSearch
Run a Domain Search to confirm Hunter has coverage for the domain and to retrieve the organization's discovered email pattern.
2
findEmail
emailFinder
Find the most likely email address for the named person at the domain, returning a confidence score and verification metadata.
3
verifyEmail
emailVerifier
Verify the deliverability of the found email and branch on whether the returned status is valid.

Source API Descriptions

Arazzo Workflow Specification

hunter-io-domain-to-verified-email-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Hunter Domain To Verified Email
  summary: Discover a domain's email pattern, find a specific person's email, then verify its deliverability.
  description: >-
    The flagship Hunter prospecting chain. It first runs a Domain Search to learn
    the organization's email pattern and confirm Hunter has coverage for the
    domain, then uses the Email Finder to resolve the most likely address for a
    named person at that domain, and finally runs the Email Verifier to confirm
    deliverability. The flow branches on the verifier's status so a valid address
    ends the workflow cleanly while a non-valid address is surfaced for review.
    Every step spells out its request inline, including the api_key query
    parameter, so the flow can be read and executed without opening the
    underlying OpenAPI descriptions.
  version: 1.0.0
sourceDescriptions:
- name: domainSearchApi
  url: ../openapi/hunter-domain-search-api-openapi.yml
  type: openapi
- name: emailFinderApi
  url: ../openapi/hunter-email-finder-api-openapi.yml
  type: openapi
- name: emailVerifierApi
  url: ../openapi/hunter-email-verifier-api-openapi.yml
  type: openapi
workflows:
- workflowId: domain-to-verified-email
  summary: Resolve and verify one person's email at a company from the company domain.
  description: >-
    Searches the domain for its email pattern and coverage, finds the named
    person's most likely email at that domain, and verifies the result, branching
    on whether the verification status is valid.
  inputs:
    type: object
    required:
    - apiKey
    - domain
    - firstName
    - lastName
    properties:
      apiKey:
        type: string
        description: Your Hunter API key, passed as the api_key query parameter.
      domain:
        type: string
        description: The company domain to search and find an email at (e.g. stripe.com).
      firstName:
        type: string
        description: The first name of the person whose email you want to find.
      lastName:
        type: string
        description: The last name of the person whose email you want to find.
  steps:
  - stepId: searchDomain
    description: >-
      Run a Domain Search to confirm Hunter has coverage for the domain and to
      retrieve the organization's discovered email pattern.
    operationId: domainSearch
    parameters:
    - name: domain
      in: query
      value: $inputs.domain
    - name: limit
      in: query
      value: 10
    - name: api_key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pattern: $response.body#/data/pattern
      organization: $response.body#/data/organization
      acceptAll: $response.body#/data/accept_all
  - stepId: findEmail
    description: >-
      Find the most likely email address for the named person at the domain,
      returning a confidence score and verification metadata.
    operationId: emailFinder
    parameters:
    - name: domain
      in: query
      value: $inputs.domain
    - name: first_name
      in: query
      value: $inputs.firstName
    - name: last_name
      in: query
      value: $inputs.lastName
    - name: api_key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      email: $response.body#/data/email
      score: $response.body#/data/score
      position: $response.body#/data/position
  - stepId: verifyEmail
    description: >-
      Verify the deliverability of the found email and branch on whether the
      returned status is valid.
    operationId: emailVerifier
    parameters:
    - name: email
      in: query
      value: $steps.findEmail.outputs.email
    - name: api_key
      in: query
      value: $inputs.apiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/data/status
      verifyScore: $response.body#/data/score
    onSuccess:
    - name: emailValid
      type: end
      criteria:
      - context: $response.body
        condition: $.data.status == "valid"
        type: jsonpath
    - name: emailNotValid
      type: end
      criteria:
      - context: $response.body
        condition: $.data.status != "valid"
        type: jsonpath
  outputs:
    pattern: $steps.searchDomain.outputs.pattern
    email: $steps.findEmail.outputs.email
    findScore: $steps.findEmail.outputs.score
    verificationStatus: $steps.verifyEmail.outputs.status