Back to blog

5 Email Automation Mistakes That Kill Deliverability (and How to Fix Them)

When emails stop landing in inboxes, most people blame their sending platform. Usually the platform is fine — the setup is broken. Here are the five mistakes we find on almost every new client account, and exactly how to fix each one.


Email deliverability is one of those things that works invisibly until it doesn't. You set up your automation, emails go out, and you assume they're arriving. Then three months later someone asks why open rates dropped from 35% to 9% and you discover half your sends have been silently going to spam.

The fixes are almost never "switch to a different platform." They're almost always the same five configuration and list hygiene problems — the ones below.

Mistake 1 — Skipping email authentication (SPF, DKIM, DMARC)

// Most common, most impactful

Email authentication is how receiving mail servers verify that an email claiming to be from yourcompany.com actually came from a server you authorized to send on your behalf. Without it, your emails look suspicious to spam filters — because anyone could be sending them.

The three records you need set up in your domain's DNS:

  • SPF (Sender Policy Framework) — lists the mail servers authorized to send email from your domain
  • DKIM (DomainKeys Identified Mail) — adds a cryptographic signature to every email so recipients can verify it wasn't tampered with
  • DMARC (Domain-based Message Authentication) — tells receiving servers what to do if SPF or DKIM fails, and gives you reports on who's sending email from your domain

Every major sending platform (HubSpot, Mailchimp, Klaviyo, etc.) has documentation for setting these up. It requires adding a few records in your domain registrar's DNS settings. It takes about 30 minutes and is non-negotiable — Google and Yahoo now require DMARC for bulk senders.

Check this first: use a free tool like MXToolbox or mail-tester.com to see if your authentication records are configured correctly before sending another campaign.

Mistake 2 — Sending to a cold or unverified list

// Kills sender reputation fast

Purchased contact lists, old lists that haven't been emailed in 12+ months, or lists built from scraped data all have the same problem: a high percentage of the addresses either don't exist anymore, belong to people who never opted in, or are spam traps.

Spam traps are email addresses maintained by anti-spam organizations specifically to catch senders with poor list hygiene. There's no way to know you've emailed one until your sender reputation drops and your deliverability tanks. By then, damage is done.

The fix before sending to any cold or old list:

  • Run it through an email verification tool (ZeroBounce, NeverBounce, or Hunter) to remove invalid, risky, and catch-all addresses
  • Warm up the sending domain slowly — start with small batches to your most engaged contacts before scaling volume
  • Never send a large blast to a cold list as your first send from a new domain or subdomain

Mistake 3 — No suppression list management

// The one that sneaks up on you

When someone unsubscribes, marks your email as spam, or hard bounces, they need to be permanently suppressed from future sends — across every list and every campaign. Most platforms handle unsubscribes automatically within their own system, but problems appear when:

  • You're using multiple sending platforms (e.g. HubSpot for nurture, Mailchimp for newsletters) and suppressions aren't synced between them
  • You import a new list that contains contacts who previously unsubscribed
  • Hard bounces aren't being automatically removed and keep getting emailed
  • Someone unsubscribes from one campaign but gets re-enrolled via a different trigger

The fix is a global suppression list that lives in your CRM (HubSpot's contact properties or an Airtable table) and gets checked before any send. Any contact marked as unsubscribed, bounced, or spam-reported in any platform should be reflected across all of them. This is exactly the kind of cross-platform sync that Zapier or Make can automate.

Mistake 4 — Sending too much too fast to unengaged contacts

// The slow reputation killer

Inbox providers like Gmail and Outlook track engagement signals — opens, clicks, replies, moves to inbox — at the domain level. If a high percentage of your sends are being ignored or deleted without being opened, your sender reputation suffers and future emails are more likely to be filtered.

The mistake is treating all contacts the same regardless of engagement. Sending weekly emails to a segment that hasn't opened anything in six months is actively hurting your deliverability for the contacts who do engage.

What to do instead:

  • Segment by engagement — separate active (opened in last 90 days), at-risk (91–180 days), and inactive (180+ days)
  • Reduce send frequency for at-risk contacts, run a re-engagement sequence, then suppress anyone who still doesn't engage
  • Your send volume should be weighted toward engaged contacts, not spread evenly across your full list

A smaller, engaged list always outperforms a large, cold one. A 5,000-contact list with 40% open rates will do more for your business — and your sender reputation — than a 50,000-contact list at 3%.

Mistake 5 — Automation triggers that enroll the same contact multiple times

// The embarrassing one

This is the mistake that generates the most complaints and the most unsubscribes: a contact gets enrolled in the same sequence twice and receives duplicate emails. Or they fill out a form, get a welcome sequence, then update a field and get re-enrolled in the same welcome sequence a week later.

It happens because the workflow trigger conditions aren't tight enough. "Contact submits any form" is a looser trigger than "Contact submits the demo request form AND has not previously been enrolled in this workflow." The second version adds a guard condition.

Every automation you build should have explicit re-enrollment rules:

  • Can a contact be re-enrolled in this workflow, and if so, under what conditions?
  • Is there a suppression check that prevents enrollment if the contact is already active in a conflicting sequence?
  • What happens if a contact meets the trigger condition while already mid-sequence?

In HubSpot, this is handled through enrollment settings and active list suppression. In Mailchimp and Klaviyo, it's managed through flow filters and profile conditions. Whatever platform you're on, every workflow needs these guard rails before it goes live.

The pattern across all five

Notice what every mistake on this list has in common: none of them are about email copy, subject lines, or send times. Deliverability problems almost always come from infrastructure and list hygiene issues, not content. Fix the foundation first — authentication, list quality, suppression management, engagement segmentation, and enrollment controls — and the platform you're using almost doesn't matter.

Deliverability issues on your current setup?

We audit email automation setups and fix the infrastructure problems before they compound. If your open rates are declining or emails aren't landing in inboxes, let's look at what's actually going on.

Start a conversation