Validate Email
Validate email addresses to ensure they’re properly formatted and potentially deliverable. The action performs multiple independent validation checks and returns detailed results for each check, giving you complete visibility into email quality.
Overview
Section titled “Overview”The Validate Email action checks email addresses against multiple validation criteria and returns detailed results for each check. All checks are run independently, so you can see exactly which validation criteria passed and which failed. Use it to maintain data quality, prevent bounces, and segment contacts by email validity.
Configuration
Section titled “Configuration”Input Fields
Section titled “Input Fields”Email (Required)
Section titled “Email (Required)”The email address to validate. Select a contact’s email property or enter a static value.
Example:
contact.email (property token)john.doe@company.comOutput Fields
Section titled “Output Fields”All output fields return "TRUE" or "FALSE" as strings.
valid (String)
Section titled “valid (String)”Returns "TRUE" if the email passes all validation checks, "FALSE" if any check fails.
validFormat (String)
Section titled “validFormat (String)”Returns "TRUE" if the email has a valid format according to RFC standards (e.g., user@domain.tld).
validDomain (String)
Section titled “validDomain (String)”Returns "TRUE" if the email has a domain part after the @ symbol.
validDns (String)
Section titled “validDns (String)”Returns "TRUE" if the email domain has valid MX (mail exchange) DNS records, indicating it can receive email.
notDisposable (String)
Section titled “notDisposable (String)”Returns "TRUE" if the email does not use a known disposable/temporary email domain. Returns "FALSE" for disposable domains like mailinator.com, tempmail.com, etc.
Examples
Section titled “Examples”Example 1: Filter Invalid Emails
Section titled “Example 1: Filter Invalid Emails”Scenario: Only process contacts with fully valid email addresses.
Workflow Setup:
- Add Validate Email action with the contact’s email property
- Add If/Then branch:
validequals"TRUE" - Continue workflow for valid emails only
Example 2: Flag Disposable Emails
Section titled “Example 2: Flag Disposable Emails”Scenario: Mark contacts using disposable emails for review.
Workflow Setup:
- Validate the email
- If
notDisposableequals"FALSE":- Set contact property “Email Quality” to “Disposable”
- Add to “Review Needed” list
Example 3: Handle Format Issues Separately
Section titled “Example 3: Handle Format Issues Separately”Scenario: Take different actions based on what’s wrong with the email.
Workflow Setup:
- Validate the email
- If
validequals"FALSE":- If
validFormatequals"FALSE": Create task “Fix email format” - Else if
notDisposableequals"FALSE": Create task “Contact using disposable email” - Else if
validDnsequals"FALSE": Create task “Email domain has no mail server”
- If
Example 4: Email Deliverability Check
Section titled “Example 4: Email Deliverability Check”Scenario: Verify emails can actually receive messages before sending campaigns.
Workflow Setup:
- Validate the email
- Check both
validFormatandvalidDns:- If both are
"TRUE": Tag as “Deliverable” - Otherwise: Tag as “Undeliverable”
- If both are
Validation Checks
Section titled “Validation Checks”All checks are performed independently. If one check fails, the remaining checks still run and return their results.
| Check | Field | Description | Example Passes | Example Failures |
|---|---|---|---|---|
| Format | validFormat | Valid email syntax per RFC standards | user@domain.com | notanemail, @domain.com, user@ |
| Domain | validDomain | Has a domain after @ symbol | user@company.com | user@, useratcompany |
| DNS Records | validDns | Domain has valid MX records | user@gmail.com | user@fake-domain-xyz.com |
| Not Disposable | notDisposable | Not a temporary/disposable email | user@company.com | user@mailinator.com, user@tempmail.org |
Disposable Email Domains
Section titled “Disposable Email Domains”The action checks against hundreds of known disposable email domains using the mailchecker library, including:
- mailinator.com
- tempmail.com
- guerrillamail.com
- 10minutemail.com
- throwaway.email
- And hundreds more…
DNS Validation
Section titled “DNS Validation”The DNS check performs an MX (Mail Exchange) record lookup on the email domain with a 5-second timeout. This verifies that:
- The domain exists
- The domain is configured to receive email
- Mail servers are set up for the domain
Note: A passing DNS check doesn’t guarantee the specific email address exists, only that the domain can receive mail.
Understanding Check Results
Section titled “Understanding Check Results”Since all checks run independently, you can get granular insights:
| Scenario | validFormat | validDomain | validDns | notDisposable | valid | Meaning |
|---|---|---|---|---|---|---|
| Perfect email | TRUE | TRUE | TRUE | TRUE | TRUE | Email is fully valid |
| Disposable email | TRUE | TRUE | TRUE | FALSE | FALSE | Valid but temporary service |
| Typo in format | FALSE | FALSE | FALSE | FALSE | FALSE | Syntax error caught early |
| Non-existent domain | TRUE | TRUE | FALSE | TRUE | FALSE | Domain doesn’t receive mail |
| Missing @ symbol | FALSE | FALSE | FALSE | FALSE | FALSE | Basic format issue |
Best Practices
Section titled “Best Practices”- Validate on form submission — Catch bad emails before they enter your CRM
- Don’t delete contacts — Flag invalid emails for review instead of auto-deleting
- Use granular checks — Take different actions based on which specific check failed
- Handle disposables carefully — Disposable emails may still be useful for certain campaigns
- Consider DNS failures — Could be temporary or configuration issues
- Combine with other data — Use email validation alongside other quality signals
Use Cases
Section titled “Use Cases”Lead Quality Scoring
Section titled “Lead Quality Scoring”- Deduct points if
validequals"FALSE" - Deduct points if
notDisposableequals"FALSE" - Add points if
validDnsequals"TRUE"(domain has mail server)
Email Campaign Prep
Section titled “Email Campaign Prep”- Only send to contacts where
validFormatandvalidDnsboth equal"TRUE" - Reduce bounce rates and improve sender reputation
- Flag contacts with
notDisposable="FALSE"for exclusion
CRM Hygiene
Section titled “CRM Hygiene”- Periodic validation of existing contacts
- Identify records where
validFormat="FALSE"for cleanup - Create workflows to fix or remove invalid records
Smart Routing
Section titled “Smart Routing”- Route contacts with
validDns="FALSE"to data quality team - Route contacts with
notDisposable="FALSE"to review queue - Auto-approve contacts where
valid="TRUE"
Technical Details
Section titled “Technical Details”Validation Process
Section titled “Validation Process”- Format Check: Uses the
validatorlibrary’sisEmail()function with RFC standards - Disposable Check: Checks against the mailchecker database of known disposable domains
- Domain Check: Extracts and verifies the domain portion exists
- DNS Check: Performs MX record lookup with 5-second timeout
Performance
Section titled “Performance”- Format, disposable, and domain checks: < 1ms
- DNS check: 10-500ms (depends on network, cached after first lookup)
- Total execution time: Typically 10-500ms per email
Related Actions
Section titled “Related Actions”- Parse URL — Similar validation for URLs with DNS checks
- Match Regex — Custom pattern matching for emails
- Text Transform — Normalize email formatting