← Back to blog
email deliverabilitycold emailreputation managementdomain separation

Cold Email Deliverability Reputation: Why It Kills Product Emails

Jasper Moes·May 4, 2026·5 min read

The silent reputation killer in your email stack

Your password resets are bouncing, but your cold outreach campaign shows decent open rates. Your transactional notifications land in spam while your marketing emails reach the inbox just fine. If this sounds familiar, you're seeing the hidden cost of reputation entanglement — and it's more common than most engineering teams realise.

The mistake isn't sending cold email. It's sending cold email and transactional email through infrastructure that treats them as the same sender. Even with separate from domains, your cold campaign can quietly degrade the deliverability of every login link your product depends on.

How email reputation actually works

Mailbox providers like Gmail and Outlook don't just score individual domains in isolation. They build a multi-layer profile of every sender:

  • IP reputation — the history of the sending infrastructure
  • Domain reputation — your sending domain's track record
  • Account-level reputation — your overall sending behaviour across related domains and identities
  • Pattern recognition — volume spikes, recipient engagement, complaint rates, content fingerprints

When you send cold and transactional traffic through the same email platform, those signals blend. A spam complaint on your outreach campaign is a data point on the same sender profile that decides whether your password reset gets a green checkmark or the spam folder.

Why "use a different domain" isn't enough

The standard advice is "separate domains for different email types". It's necessary, but it's not sufficient.

Most email platforms route all of your traffic through shared IP pools and present a unified sender footprint to receiving providers. Your noreply@yourapp.com and outreach@yourcompany.com emails travel the same infrastructure. Receiving providers can — and do — learn the relationship.

The cascade looks like this:

Cold campaign → 1.5% complaint rate → IP-pool reputation drops

Same IP pool routes your transactional sends

Password resets start landing in spam

Domain separation alone doesn't break that chain. You need separation enforced lower in the stack — at the API and at the configuration that drives the underlying provider.

The complaint-rate math

The numbers make this stark.

Transactional traffic reliably sees complaint rates under 0.1%. Users want their order confirmations and login codes; they don't mark them as spam.

Cold outreach, even when it's well-targeted and well-written, typically sees complaint rates of 0.5–2%. Recipients who didn't explicitly opt in are far more likely to hit "report spam" than to unsubscribe.

A few hundred cold-email complaints can shift the reputation that decides delivery for tens of thousands of critical product emails. That asymmetry is the whole problem.

What stream isolation actually means

The infrastructure fix is stream isolation — keeping cold and transactional traffic on separate reputation surfaces enforced below the API.

In practice that means:

  • Per-domain SES configuration sets so the deliverability provider treats each stream as a distinct sender footprint, with its own event tracking, suppression list, and feedback loop.
  • Per-stream provider routing policies so a transactional send is allowed to fall back to a different provider that an outreach send wouldn't be allowed to use.
  • API-level enforcement that refuses to send outreach traffic on a domain you've designated transactional — before it ever reaches the queue, not after the damage is done.

Without enforcement at the API, "stream isolation" is a documentation suggestion that gets ignored under deadline pressure. The first cold-email blast from the wrong domain undoes everything.

How Truncus enforces it

Every domain you verify in Truncus carries a domainType of either transactional or outreach. Every send carries a traffic type, set explicitly via the x-truncus-traffic-type header (or a metadata field). At the send endpoint, the two are checked against each other before anything else happens. A mismatch returns 403 immediately.

POST /v1/emails/send

Authorization: Bearer tr_live_...

x-truncus-traffic-type: outreach

Content-Type: application/json

{

"from": "noreply@yourapp.com", // domainType: transactional

"to": "prospect@target.com",

"subject": "Quick partnership question",

"html": "..."

}

→ 403 Forbidden

{

"status": "blocked",

"error": "DOMAIN_TRAFFIC_MISMATCH",

"message": "outreach traffic is not allowed on a transactional domain",

"recommended_fix": "Send from a domain registered as outreach, or remove the x-truncus-traffic-type header."

}

The same check fires for the inverse case — transactional headers on an outreach domain. Cold-email senders can't accidentally win a transactional reputation that they'd then lose; transactional senders can't accidentally bleed into a list-blasting workload.

ColdCopy, our outreach product, sets x-truncus-traffic-type: outreach on every send. That isn't a courtesy — it's how it's allowed to send at all.

The recovery cost of getting it wrong

Reputation damage is asymmetric. It happens fast and recovers slowly:

  • 2–4 weeks minimum to rebuild meaningful trust with mailbox providers, assuming you fix the root cause and warm up cleanly
  • Auth flows breaking silently while reputation is degraded — users can't log in, they file support tickets, some never come back
  • Support overhead while your team triages "I never got the email"
  • Business impact in any product where the email step is on the critical path: signups, payments, magic links

Prevention is roughly an afternoon of integration. Recovery is a quarter.

Where to start

If you're sending cold and transactional traffic from the same provider today, you don't need to rebuild from scratch — but you do need to put separation in place before the next campaign:

1. Audit current senders. Map every email type you send to the domain and provider it goes through.

2. Classify by stream. Transactional, marketing, and cold outreach each need their own reputation surface.

3. Enforce at the API. Pick infrastructure that refuses cross-stream sends, so a junior engineer's ad-hoc script can't undo months of work.

4. Monitor independently. Track complaint rate, delivery rate, and inbox placement *per stream*, not as a single aggregate that hides the cross-contamination.

The best cold-email strategy in the world doesn't help if it kills your product emails on the way out. Stream isolation is what makes the rest of it safe to do.

See how Truncus does it for SaaS → | Start free

Your emails should always deliver.

Multi-provider failover, synchronous delivery confirmation, EU-first routing. Try Truncus free.

Cold Email Deliverability Reputation: Why It Kills Product Emails — Truncus Blog