Verify and Clean an Email List
This tutorial walks through running an existing email list through validation and deliverability checking. Use this before importing contacts into an email sequence or CRM to remove invalid addresses that would hurt your sender reputation.
Before you begin
- Start with a CSV of email addresses. The file needs at least one column with email addresses.
- No external integrations are required. This workflow uses TexAu's built-in utility actions.
What you will build
A single table with these columns:
| Column | Type | What it does |
|---|---|---|
| Data | Your starting email list | |
| Email Type | Action | Identify Email Type (TexAu Utility) |
| Normalized Email | Formula | Cleans formatting issues |
| Verification Status | Action | Verify Email Address (BetterEnrich) |
| Catch-All Check | Action | Verify Catch-All Email (BetterEnrich) |
| Final Decision | Formula | Clean / Risky / Invalid label |
Step 1: Import your email list
- Click New Table and name it
Email Validation. - Click Import CSV.
- Upload your file and map the email column to the first column.
- Name the column
Email.
Step 2: Normalize email formatting
Before validating, clean the email addresses. Common issues include extra spaces and mixed-case addresses.
- Click Add Column and select Formula Column.
- Enter:
LOWER(TRIM(email_column)) - Name this column
Normalized Email.
Use Normalized Email as the input for all subsequent action columns.
Step 3: Identify email type
- Click Add Column.
- Select Action Column.
- Search for and select Identify Email Type (TexAu Utility).
- Map the Normalized Email column to the email input.
- Select Email Type as the output - this returns values like
work,personal,role-based,disposable. - Click Save.
This is a free TexAu utility action. It does not cost credits.
Step 4: Verify email deliverability
- Click Add Column.
- Select Action Column.
- Search for and select Verify Email Address (BetterEnrich).
- Map Normalized Email as input.
- Select Verification Status and Is Deliverable as outputs.
- Click Save.
This action costs 1 credit per row. Verification Status returns values like valid, invalid, catch_all, unknown.
Step 5: Check catch-all domains
Catch-all domains accept any email sent to them, making it impossible to verify individual addresses. Add this check to flag those addresses separately.
- Click Add Column.
- Select Action Column.
- Search for and select Verify Catch-All Email (BetterEnrich).
- Map Normalized Email as input.
- Select Is Catch All as the output - returns true/false.
- Click Save.
This action costs 1 credit per row.
Step 6: Build the Final Decision column
- Click Add Column and select Formula Column.
- Enter this formula:
IF(verification_status = "invalid", "Remove",
IF(is_catch_all = "true", "Risky",
IF(email_type = "disposable", "Remove",
IF(email_type = "role-based", "Risky",
"Clean"
)
)
)
)
- Name this column
Final Decision.
Step 7: Run the table
- Click Run All Rows.
- Wait for all columns to complete.
Step 8: Filter and export
- Filter the table to show only rows where Final Decision = "Clean".
- Click Export to download as CSV.
- Import the clean list into your email tool.
For the "Risky" rows, you can run a separate outreach campaign with adjusted messaging and monitor bounce rates closely.
Expected results
For a typical purchased or cold contact list of 1,000 emails:
- Clean: 40-60%
- Risky (catch-all domains): 15-25%
- Remove (invalid or disposable): 20-35%
Deliverability rates improve significantly when you only send to "Clean" addresses.
Troubleshooting
Verification Status shows "unknown" for many emails. "Unknown" means the verifier could not confirm the address one way or another. This commonly happens for strict corporate mail servers that do not respond to verification checks. Treat "unknown" as risky - do not send at full volume. Test with a small batch first.
Most addresses on a domain return "catch_all". The company's mail server accepts all addresses on their domain. You cannot verify individual addresses on that domain. Use a different channel or verify with a real send to a small test group.
The normalized email column is showing the same issues as the raw email column.
Check your formula. Make sure you are applying LOWER(TRIM(...)) to the column name that contains the raw email, not to a static text value.