← All Forms

Form.io email verification with BillionVerify

Form.io is an enterprise form and data management platform used to build complex forms, workflows, and portals. Integrating BillionVerify ensures that every email address captured through Form.io is valid and deliverable, protecting the data quality of your enterprise workflows from the point of entry.

Why verify before the send

Enterprise form deployments often funnel data into critical systems β€” HR platforms, onboarding workflows, or customer portals β€” where a single bad email address can break automated processes. Catching invalid, disposable, or role-based addresses early prevents downstream failures and keeps communication channels reliable.

Ready-to-use n8n workflow

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

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

Ready-to-use workflows that verify emails before Form.io sends.

How it works

  1. 1

    Connect BillionVerify using the n8n community node, Integrately, or directly via the REST API.

  2. 2

    Add a server-side action or webhook to your Form.io form that fires on submission.

  3. 3

    Pass the submitted email address to BillionVerify, which checks syntax, domain validity, SMTP response, and disposable or catch-all status.

  4. 4

    Return the verification verdict to Form.io and conditionally approve, hold, or reject the submission.

  5. 5

    Log verification results alongside form data to support auditing and data quality reporting.

When to use this

Validate emails in onboarding and registration forms

When users register through a Form.io-powered portal, verify their email address in real time to ensure the account is tied to a real, deliverable mailbox before provisioning access or sending a welcome message.

Filter submissions before entering enterprise systems

Before Form.io data flows into an ERP, CRM, or HR system, pass email fields through BillionVerify to block invalid or risky addresses from polluting records that are expensive to clean later.

Audit form data for compliance and data quality initiatives

Use BillionVerify in bulk mode to audit email addresses already captured by Form.io forms, scoring them for deliverability and flagging records that need manual review or re-verification.

FAQ

Does BillionVerify integrate with Form.io's workflow engine?

Yes. You can call BillionVerify from a Form.io custom action or via a webhook, then use the returned result to branch the workflow β€” approving clean submissions and flagging or rejecting risky ones.

Can BillionVerify detect if an email domain accepts all addresses (catch-all)?

Yes. BillionVerify identifies catch-all domains and reports them separately so you can decide whether to accept, flag, or manually review those submissions depending on your use case.

How does BillionVerify handle role-based addresses like admin@ or support@?

BillionVerify flags role-based addresses because they typically reach a shared inbox rather than an individual, making them unsuitable for personal communications or account verification emails.

Is there a bulk API for verifying existing Form.io submissions?

Yes. BillionVerify's REST API supports batch verification, letting you export existing Form.io submission data, verify email addresses in bulk, and re-import quality scores.

Verify emails in Form.io

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

Get started free