← All AI

Nanonets Ocr email verification with BillionVerify

Nanonets OCR uses AI to extract structured data from documents, forms, and images. When extracted content includes email addresses β€” from scanned business cards, intake forms, or invoices β€” verifying those addresses with BillionVerify ensures extracted data is deliverable before it flows into downstream systems.

Why verify before the send

OCR extraction is powerful but imperfect: misread characters and low-quality scans produce malformed email addresses that look valid but will bounce. BillionVerify acts as a quality gate after extraction, confirming each address is syntactically correct, points to a real mail server, and is not a disposable or role-based inbox.

Ready-to-use n8n workflow

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

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

Ready-to-use workflows that verify emails before Nanonets Ocr sends.

How it works

  1. 1

    Configure a Nanonets OCR workflow to extract email fields from your target documents.

  2. 2

    Pass each extracted email address to BillionVerify via the REST API or an n8n workflow step.

  3. 3

    BillionVerify validates syntax, resolves MX records, performs SMTP reachability checks, and screens for disposable and catch-all domains.

  4. 4

    Receive a structured verdict for each address indicating whether it is valid, invalid, or risky.

  5. 5

    Write only verified addresses to your destination system β€” CRM, database, or mailing list β€” and flag rejected ones for manual review.

When to use this

Business Card and Contact Form Digitization

After Nanonets OCR extracts email addresses from scanned business cards or paper forms, BillionVerify verifies each one before importing it into your CRM, catching OCR misreads and invalid addresses that would otherwise cause bounce events.

Invoice and Document Processing

Invoices and procurement documents often contain vendor or client email addresses. Verifying these after extraction ensures your accounts-payable notifications and follow-up emails reach real inboxes rather than bouncing silently.

FAQ

Why verify email addresses that were extracted by an AI model?

OCR models can misread characters under poor scan conditions, producing addresses that appear well-formed but do not exist. BillionVerify catches these post-extraction before they reach your contact database.

How does BillionVerify handle partial or malformed addresses from OCR output?

BillionVerify returns a detailed syntax error status for malformed addresses, making it straightforward to route them to a manual-review queue rather than discarding them outright.

Can this integration run at document-processing scale?

Yes. BillionVerify's bulk API handles high-throughput batches and returns results asynchronously, keeping your document pipeline moving without bottlenecks.

Does verification store the email addresses we send?

BillionVerify processes addresses solely for verification purposes and does not retain or resell submitted data, keeping your extracted contact information private.

Verify emails in Nanonets Ocr

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

Get started free