← All Developer Tools

Google Bigquery email verification with BillionVerify

Google BigQuery is a serverless cloud data warehouse for running large-scale analytics queries. Integrating BillionVerify via n8n, Integrately, or the REST API lets you validate email address columns stored in BigQuery, ensuring that data pipelines and campaigns built on your warehouse use clean, deliverable contact data.

Why verify before the send

Data warehouses like BigQuery aggregate emails from dozens of upstream sources β€” CRMs, event streams, product databases β€” without any quality gate. Role-based, disposable, and non-existent addresses accumulate silently and cause hard bounces the moment they are used in outreach. BillionVerify lets you verify at ingestion time or in scheduled batch jobs, maintaining email quality at warehouse scale.

Ready-to-use n8n workflow

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

verify-emails-in-google-bigquery.json
{
  "name": "Verify emails before sending in Google BigQuery + 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 Google BigQuery contacts",
        "message": "Replace this Gmail send with your Google BigQuery 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 Google Bigquery

Ready-to-use workflows that verify emails before Google Bigquery sends.

How it works

  1. 1

    Connect BillionVerify to your BigQuery workflows using the n8n community node, Integrately, or direct calls to the BillionVerify REST API from your data pipeline scripts.

  2. 2

    Identify the BigQuery table and email column you want to verify, either as rows arrive via streaming inserts or in scheduled batch exports.

  3. 3

    Send addresses to BillionVerify's bulk verification endpoint, which checks syntax, MX records, mailbox existence, disposable domain lists, role-based prefixes, and catch-all status.

  4. 4

    Receive structured results and write a verification_status field back to BigQuery using an INSERT or UPDATE operation, making quality data available to all downstream consumers.

  5. 5

    Use BigQuery's scheduling and partitioning features to automate recurring verification passes and track email quality trends over time.

When to use this

Batch-verify email columns during ETL pipelines

Incorporate BillionVerify into your BigQuery ETL workflow to validate email addresses as data is loaded from source systems, tagging each row with a verification status before it reaches downstream dashboards or campaign exports.

Schedule recurring verification of warehouse contact tables

Set up a periodic n8n or Integrately job that queries unverified email rows from BigQuery, runs them through BillionVerify in bulk, and writes results back as a verification_status column for use by marketing and data teams.

Enrich data exports before campaign activation

Before exporting a BigQuery audience segment to an email platform or ad tool, pipe the address list through BillionVerify to strip out invalid and catch-all entries, improving deliverability and audience match rates.

FAQ

How do I trigger BillionVerify from a BigQuery pipeline?

Export the email column from BigQuery to an n8n workflow or call the BillionVerify bulk REST API from a Cloud Function or Dataflow job, then write results back to BigQuery as a new column.

Can BillionVerify handle BigQuery-scale email volumes?

Yes. BillionVerify's bulk API accepts large batches and processes them asynchronously, making it practical for verifying millions of addresses stored across BigQuery tables.

What verification result fields should I store in BigQuery?

At minimum, store the status (valid, invalid, catch-all, disposable), the sub-status reason, and the verification timestamp so downstream queries and dashboards can filter by email quality.

Is it better to verify at ingestion or on a schedule?

Both are useful. Real-time verification at ingestion prevents bad data from entering the warehouse, while scheduled batch passes catch addresses that have degraded over time due to domain expiry or mailbox deletion.

Verify emails in Google Bigquery

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

Get started free