← All Developer Tools

Async email verification with BillionVerify

Async is a developer tool for handling asynchronous operations and task queues. When Async workflows process jobs that involve sending emails or storing contact addresses, integrating BillionVerify ensures each address is validated before the job proceeds β€” preventing wasted processing on undeliverable destinations.

Why verify before the send

Asynchronous job queues that process email sends or contact imports can waste significant compute and API budget on invalid addresses if no validation gate exists. BillionVerify lets you verify addresses before a job is enqueued or before the send step executes, so bad addresses fail fast rather than burning through queue capacity.

Ready-to-use n8n workflow

Import this workflow into n8n β€” it verifies every address with BillionVerify before Async sends, so only deliverable contacts are emailed. Install the BillionVerify community node first, then add your API key.

verify-emails-in-async.json
{
  "name": "Verify emails before sending in Async + BillionVerify",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "name": "When clicking β€˜Test workflow’"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "email-field",
              "name": "email",
              "value": "jane@example.com",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        460,
        300
      ],
      "name": "Get contacts"
    },
    {
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "subject": "Message for Async contacts",
        "message": "Replace this Gmail send with your Async node β€” only deliverable, verified contacts reach it.",
        "options": {}
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        900,
        300
      ],
      "name": "Send email",
      "webhookId": "",
      "credentials": {
        "gmailOAuth2": {
          "id": "",
          "name": "Gmail account"
        }
      }
    },
    {
      "parameters": {
        "operation": "verify",
        "email": "={{ $json.email }}",
        "additionalOptions": {}
      },
      "type": "n8n-nodes-billionverify.billionVerify",
      "typeVersion": 1,
      "position": [
        540,
        300
      ],
      "name": "Verify Email (BillionVerify)",
      "credentials": {
        "billionVerifyApi": {
          "id": "",
          "name": "BillionVerify account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "is-deliverable",
              "leftValue": "={{ $json.is_deliverable }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ]
        }
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        720,
        300
      ],
      "name": "IF deliverable"
    }
  ],
  "connections": {
    "When clicking β€˜Test workflow’": {
      "main": [
        [
          {
            "node": "Get contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get contacts": {
      "main": [
        [
          {
            "node": "Verify Email (BillionVerify)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verify Email (BillionVerify)": {
      "main": [
        [
          {
            "node": "IF deliverable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF deliverable": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

Workflow templates with Async

Ready-to-use workflows that verify emails before Async sends.

How it works

  1. 1

    Integrate BillionVerify's REST API call into the pre-processing step of your Async workflow, before the email job is queued.

  2. 2

    Pass the destination email address to BillionVerify and receive a synchronous validation response.

  3. 3

    If the address is invalid, disposable, or flagged as high-risk, reject the job with an appropriate error code rather than enqueueing it.

  4. 4

    For valid addresses, proceed with normal job queuing and execution.

  5. 5

    Track verification outcomes alongside job metadata to identify patterns in invalid address sources over time.

When to use this

Pre-validate before enqueueing email jobs

Before an email-sending job is placed in the Async queue, call BillionVerify's API to confirm the destination address is valid. Invalid addresses are rejected immediately, keeping the queue clean and reducing failed-job noise.

Filter imported contact batches

When a batch import job runs through Async, verify each address in the dataset with BillionVerify before writing records to the database. This prevents invalid contacts from accumulating in storage and downstream tools.

FAQ

Does BillionVerify add latency to my Async job pipeline?

A single-address API call to BillionVerify typically completes in milliseconds, making it practical to run synchronously as a pre-queue validation step without meaningfully impacting throughput.

Can I use BillionVerify with Async via n8n?

Yes. n8n supports both BillionVerify and custom HTTP request nodes, so you can build a workflow that calls BillionVerify as part of any Async-connected automation pipeline.

What response does BillionVerify return for invalid addresses?

BillionVerify returns a structured JSON object with a status field (valid, invalid, disposable, catch-all, role), SMTP check results, and a risk score you can use to drive conditional logic in your pipeline.

Verify emails in Async

Create a free account, grab your API key, and stop bounces before they happen.

Get started free