← All Email Marketing

Sendy email verification with BillionVerify

Sendy is a self-hosted email newsletter application that sends campaigns through Amazon SES at a fraction of the cost of traditional ESPs. Because your sender reputation on SES is entirely your own responsibility, verifying subscriber email addresses with BillionVerify before importing or sending is essential to keeping bounce rates below Amazon's strict thresholds.

Why verify before the send

Amazon SES will suspend your account if bounce or complaint rates exceed its limits. Unlike managed ESPs that absorb some of this risk, Sendy's self-hosted model means every bad address you send to directly impacts your SES account health. BillionVerify removes invalid, disposable, and catch-all addresses before they can damage your sending ability.

Ready-to-use n8n workflow

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

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

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

How it works

  1. 1

    A new subscriber submits their email via a sign-up form, or a list is prepared for import into Sendy.

  2. 2

    The email address is sent to BillionVerify via the n8n community node, Integrately, or a REST API call.

  3. 3

    BillionVerify validates syntax, checks DNS MX records, performs an SMTP probe, and screens for disposable and catch-all domains.

  4. 4

    Addresses that pass verification are added to the appropriate Sendy list; those that fail are rejected or logged for review.

  5. 5

    Campaigns sent from your clean Sendy lists maintain SES bounce and complaint rates well within safe limits.

When to use this

Scrub subscriber lists before importing into Sendy

Before importing a new subscriber CSV into Sendy, run the list through BillionVerify's bulk API. Remove or quarantine addresses flagged as invalid or disposable, so only clean contacts enter your Sendy lists and your SES bounce rate stays low.

Verify new opt-ins in real time via n8n

Connect your sign-up form to an n8n workflow that verifies each new email with BillionVerify before the subscriber is added to Sendy. Disposable addresses and obvious invalids are rejected at the point of collection, protecting your list quality from day one.

FAQ

Why is email verification especially important for Sendy users?

Sendy sends via Amazon SES, which enforces strict bounce and complaint rate limits. Unlike hosted ESPs that manage reputation on your behalf, Sendy users bear full responsibility β€” making pre-send verification critical to staying within SES thresholds.

How do I connect BillionVerify to Sendy?

The most common approach is an n8n workflow that catches new subscriber data (via webhook or form), verifies the email with BillionVerify, then uses Sendy's API to add only verified contacts to your list.

Can BillionVerify help with an existing Sendy list that has high bounce rates?

Yes. Export your Sendy subscriber list, submit it to BillionVerify's bulk verification API, and reimport only the valid addresses. This can rapidly bring a degraded list back to a healthy state before your next campaign.

What is the difference between an invalid and a catch-all address?

An invalid address will definitely bounce. A catch-all address belongs to a server that accepts all mail, so deliverability is uncertain. BillionVerify reports both statuses separately so you can apply different handling strategies for each.

Verify emails in Sendy

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

Get started free