← All Productivity

Discourse email verification with BillionVerify

Discourse is an open-source community forum platform used by developer communities, support teams, and brand communities worldwide. Members register with email addresses to join discussions, receive digests, and post replies. Verifying those emails with BillionVerify before they enter your community keeps your member base clean and your notification deliverability high.

Why verify before the send

Forum invitations, digest emails, and notification alerts all depend on valid inboxes. Invalid or disposable addresses inflate your member count, cause bounce spikes, and can flag your sending domain with email providers. BillionVerify catches invalid, role-based, catch-all, and disposable addresses so every member slot in Discourse is occupied by a real, reachable person.

Ready-to-use n8n workflow

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

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

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

How it works

  1. 1

    Connect BillionVerify to Discourse via the n8n community node, Integrately's 1-click setup, or direct REST API calls.

  2. 2

    Trigger verification on the new-user registration event or on a scheduled batch export of your member email list.

  3. 3

    BillionVerify checks each address for syntax, DNS, SMTP reachability, disposable domain detection, and catch-all status.

  4. 4

    Addresses that fail validation are flagged so your automation can suspend the account, block registration, or remove the member from digest sends.

  5. 5

    Monitor verification results over time to keep your active member list healthy and your notification bounce rate low.

When to use this

Clean up new member registrations

Each time someone registers on your Discourse forum, trigger a BillionVerify check via n8n or Integrately. Block or quarantine accounts with disposable or invalid email addresses before they can post or receive notifications.

Protect digest and notification deliverability

Discourse sends regular digests and reply notifications. A high bounce rate from stale member emails harms your sender reputation. Periodically verify your member list through the REST API and suppress addresses that no longer pass validation.

Gate invitation-only communities

When moderators send batch invites, route the invite list through BillionVerify first. Invitations that would bounce to invalid or catch-all addresses are filtered out, saving quota and protecting your domain reputation.

FAQ

Can I verify emails at the point of registration without slowing down sign-up?

Yes. BillionVerify's REST API typically responds in under a second, so you can run a real-time check during registration and block invalid addresses before the account is created.

What types of addresses does BillionVerify detect?

BillionVerify identifies invalid, disposable, role-based (e.g. info@, support@), and catch-all addresses, as well as addresses with DNS or SMTP issues that would cause a bounce.

Does this work with self-hosted Discourse installations?

Yes. Integration is done through n8n, Integrately, or the BillionVerify REST API β€” all of which work regardless of whether your Discourse instance is hosted or self-managed.

How often should I re-verify my existing member list?

Quarterly re-verification is a reasonable baseline. Addresses decay over time, so running a batch check every few months helps catch inboxes that have become invalid since registration.

Verify emails in Discourse

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

Get started free