Hunter · Arazzo Workflow

Hunter Find, Verify, and Create Lead

Version 1.0.0

Find a person's email, verify it, and only save a lead when it is valid.

1 workflow 1 source API 1 provider
View Spec View on GitHub Contact DiscoveryEmailEmail VerificationLead GenerationProspectingSales IntelligenceArazzoWorkflows

Provider

hunter

Workflows

find-verify-create-lead
Find and verify an email, then create a lead when verification passes.
Finds an email for a named person at a domain, verifies it, and creates a lead in the account only when the verification status is valid.
3 steps inputs: apiKey, company, domain, firstName, lastName, leadsListId outputs: email, leadId, verificationStatus
1
findEmail
emailFinder
Find the most likely email address for the named person at the domain along with a confidence score.
2
verifyEmail
emailVerifier
Verify the deliverability of the found email and branch on the result: create a lead when valid, otherwise end without saving.
3
createLeadStep
createLead
Create a lead in the account using the found and verified email address along with the person and company details.

Source API Descriptions

Arazzo Workflow Specification

hunter-find-verify-create-lead-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Hunter Find, Verify, and Create Lead
  summary: Find a person's email, verify it, and only save a lead when it is valid.
  description: >-
    Turns a name and company domain into a saved, verified Hunter lead. The
    flow finds the most likely email address for the person, verifies its
    deliverability, and branches: a valid status creates a lead while any other
    status ends the flow without saving. Each 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 description.
  version: 1.0.0
sourceDescriptions:
- name: hunterApi
  url: ../openapi/hunter-api-openapi.yml
  type: openapi
workflows:
- workflowId: find-verify-create-lead
  summary: Find and verify an email, then create a lead when verification passes.
  description: >-
    Finds an email for a named person at a domain, verifies it, and creates a
    lead in the account only when the verification status is valid.
  inputs:
    type: object
    required:
    - apiKey
    - domain
    - firstName
    - lastName
    properties:
      apiKey:
        type: string
        description: Hunter API key passed as the api_key query parameter.
      domain:
        type: string
        description: Domain name to find the person's email at.
      firstName:
        type: string
        description: First name of the person.
      lastName:
        type: string
        description: Last name of the person.
      company:
        type: string
        description: Optional company name to attach to the created lead.
      leadsListId:
        type: integer
        description: Optional leads list identifier to add the created lead to.
  steps:
  - stepId: findEmail
    description: >-
      Find the most likely email address for the named person at the domain
      along with a confidence score.
    operationId: emailFinder
    parameters:
    - name: api_key
      in: query
      value: $inputs.apiKey
    - name: domain
      in: query
      value: $inputs.domain
    - name: first_name
      in: query
      value: $inputs.firstName
    - name: last_name
      in: query
      value: $inputs.lastName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      email: $response.body#/data/email
      score: $response.body#/data/score
  - stepId: verifyEmail
    description: >-
      Verify the deliverability of the found email and branch on the result:
      create a lead when valid, otherwise end without saving.
    operationId: emailVerifier
    parameters:
    - name: api_key
      in: query
      value: $inputs.apiKey
    - name: email
      in: query
      value: $steps.findEmail.outputs.email
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/data/status
    onSuccess:
    - name: emailValid
      type: goto
      stepId: createLeadStep
      criteria:
      - context: $response.body
        condition: $.data.status == "valid"
        type: jsonpath
    - name: emailNotValid
      type: end
      criteria:
      - context: $response.body
        condition: $.data.status != "valid"
        type: jsonpath
  - stepId: createLeadStep
    description: >-
      Create a lead in the account using the found and verified email address
      along with the person and company details.
    operationId: createLead
    parameters:
    - name: api_key
      in: query
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        email: $steps.findEmail.outputs.email
        first_name: $inputs.firstName
        last_name: $inputs.lastName
        company: $inputs.company
        confidence_score: $steps.findEmail.outputs.score
        leads_list_id: $inputs.leadsListId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      leadId: $response.body#/data/id
      leadEmail: $response.body#/data/email
  outputs:
    email: $steps.findEmail.outputs.email
    verificationStatus: $steps.verifyEmail.outputs.status
    leadId: $steps.createLeadStep.outputs.leadId