← All Analytics

Segment email verification with BillionVerify

Segment is a leading customer data platform that collects, unifies, and routes user data across your marketing and analytics stack. By pairing Segment with BillionVerify, you can validate email addresses at the point of ingestion β€” ensuring clean, accurate contact data flows to every downstream tool.

Why verify before the send

Segment sits at the centre of your data pipeline; bad email addresses entered here propagate to every connected destination β€” your CRM, email platform, ad audiences, and data warehouse alike. BillionVerify intercepts invalid, disposable, and undeliverable addresses before they pollute your entire stack, saving cleanup costs downstream.

Ready-to-use n8n workflow

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

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

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

How it works

  1. 1

    Integrate BillionVerify with Segment using a Segment Function, the n8n community node, or the BillionVerify REST API.

  2. 2

    Intercept incoming identify or track events that contain an email property and submit the address to BillionVerify for verification.

  3. 3

    BillionVerify returns a result covering validity, SMTP reachability, disposable-domain status, and catch-all detection.

  4. 4

    Enrich the Segment profile with the verification result as a trait, or block forwarding to destinations if the address is invalid.

  5. 5

    Use verification traits in Segment Protocols or Personas to build audiences that exclude unverifiable addresses.

When to use this

Validate identify calls before they reach destinations

When Segment receives an identify call with an email trait, BillionVerify can verify the address in real time. Clean profiles are forwarded to destinations; profiles with invalid emails are flagged or held for review, preventing junk data from spreading across your stack.

Audit existing customer profiles for deliverability

Export email addresses from Segment's profile store and run a bulk verification through BillionVerify. Update profiles with verification status so downstream tools can suppress invalid addresses automatically.

Protect ad audiences from wasted spend

When Segment syncs email lists to advertising platforms, invalid addresses waste match-rate budget and skew lookalike audiences. BillionVerify ensures only verified emails enter those syncs.

FAQ

Can I add BillionVerify as a Segment destination function?

Yes. You can write a Segment Function that calls the BillionVerify REST API on each identify event, then updates the profile with the verification result as a custom trait.

Why should I verify emails at the CDP layer rather than at each destination?

Verifying once in Segment means clean data automatically flows to every connected destination. Without this, each tool accumulates its own set of invalid addresses, multiplying the cleanup effort.

How does BillionVerify handle high-volume event streams?

For high-throughput pipelines, use BillionVerify's bulk API asynchronously β€” batch addresses and retrieve results, then apply them back to Segment profiles rather than blocking each real-time event.

Will verifying emails at ingestion slow down my Segment pipeline?

Asynchronous verification adds no latency to your event stream. Real-time inline verification completes in under a second for single addresses, suitable for lower-volume identify flows.

Verify emails in Segment

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

Get started free