← All CRM

Civicrm email verification with BillionVerify

CiviCRM is an open-source constituent relationship management platform designed for nonprofits, NGOs, and civic organizations. Integrating BillionVerify ensures the contact records and mailing lists your organization relies on contain only real, deliverable email addresses, protecting your outreach and donor communications.

Why verify before the send

Nonprofits depend on reliable email to reach donors, volunteers, and members. Invalid or outdated addresses inflate your CiviCRM contact database, waste campaign budget, and damage deliverability with email providers. BillionVerify filters out bad addresses—invalid, catch-all, disposable, and role-based—before they pollute your lists or trigger bounces that harm your sender reputation.

Ready-to-use n8n workflow

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

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

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

How it works

  1. 1

    Connect BillionVerify to CiviCRM using the n8n community node, Integrately, or the BillionVerify REST API.

  2. 2

    Set a trigger—new contact creation, membership signup, or a scheduled list export—to send addresses to BillionVerify.

  3. 3

    BillionVerify evaluates each address for syntax, domain health, disposable providers, role prefixes, and SMTP reachability.

  4. 4

    Contacts that fail verification are tagged or excluded from mailings in CiviCRM, keeping your segments clean.

  5. 5

    Valid contacts flow into campaigns and event invitations with confidence in their deliverability.

When to use this

Donor Database Hygiene

Run periodic bulk verification of CiviCRM donor contacts to remove addresses that have gone stale. Keeping your donor list clean means fundraising appeals reach real inboxes and your open rates reflect genuine engagement.

Membership Registration Validation

Verify email addresses at the point of membership signup. BillionVerify confirms each address is deliverable before it enters CiviCRM, preventing fake or mistyped contacts from accumulating in your database.

Event Invitation Deliverability

Before sending event invitations or reminders from CiviCRM, validate the target segment with BillionVerify to ensure invitations reach attendees and bounce rates stay within acceptable limits.

FAQ

Can BillionVerify handle the large contact lists common in nonprofit CRMs?

Yes. The REST API supports high-volume batch verification, making it practical to validate tens of thousands of CiviCRM contacts in a single pass.

How does catching catch-all addresses help CiviCRM users?

Catch-all domains accept any email at first but often silently discard messages. BillionVerify flags these so you can decide whether to include them in high-priority appeals or exclude them from deliverability-sensitive campaigns.

Is the integration suitable for small nonprofits without a developer?

Integrately's 1-click setup requires no coding, making it accessible for small teams. The n8n community node offers more flexibility for those comfortable with visual workflow builders.

Verify emails in Civicrm

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

Get started free