Skip to content
← ALL WRITING

2026-04-23 / 8 MIN READ

Transactional email deliverability: the forgotten inbox tax

An incident postmortem on transactional email deliverability in DTC. Why the default Shopify sending domain costs reputation, and the fix that took a quarter.

This is the postmortem on a real incident I ran through with a DTC client I was working with. The headline: we found a 30 percent gap in Klaviyo open rates that turned out to be entirely driven by the transactional email stream, not the marketing stream. It took a full quarter to fully recover the reputation, and the fix itself took four hours.

The specific client, product category, and numbers are genericized here. The mechanism is real and the same pattern shows up in most of the DTC stacks I audit.

INCIDENT TIMELINE / MARKETING OPEN RATE
WK -1230% opens
Baseline. Transactional on default domain, not yet a problem.
Marketing open rate over 24 weeks. Transactional fix at week 0. Recovery took roughly the same duration as the damage.

What happened

A DTC brand with around 40K active subscribers reported to me that their Klaviyo open rates had been declining for three months. Campaigns that previously hit 28 to 32 percent opens were now landing at 19 to 22 percent. Nothing about the sending practices, the list, or the content had changed. Klaviyo's own deliverability dashboard showed "healthy" across the board.

The brand's marketing was authenticated correctly: SPF included Klaviyo's senders, DKIM was set up on a dedicated subdomain, DMARC was at p=quarantine. All the things covered in the DMARC, SPF, DKIM walkthrough were in place.

The problem was not in the marketing stream. It was in the transactional stream.

The discovery

Transactional email from Shopify (order confirmations, shipping confirmations, delivery notifications) was sending from the default Shopify domain: something like orders@shop.shopifyemail.com. The brand's actual domain was brand.com. The two were not associated.

From the customer's perspective:

  • Marketing email arrived from brand.com. Authenticated. Clean. Went to primary inbox.
  • Order confirmation arrived from shop.shopifyemail.com. Unrelated domain. Gmail's pattern-matching treated it as a third-party notification.

The customer was opening the order confirmation from shop.shopifyemail.com, then marketing from brand.com, then the shipping notification from shop.shopifyemail.com again. Gmail's reputation model was seeing two "domains" interacting with the customer: one they opened (transactional) and one they did not as often (marketing, because the content is less time-sensitive).

The marketing domain's reputation was not improving because Gmail was attributing the most engaged behavior (opens on shipping notifications) to a completely different domain.

The more quiet damage

Beyond the reputation effect, there was a direct deliverability cost. The default Shopify sending domain is shared across many stores. When any of those stores have a bad week, deliverability drops for all of them. The brand's transactional email was subject to the reputation of the worst-behaving Shopify merchants on the shared domain.

This produced intermittent transactional delivery failures. Customers not receiving order confirmations, shipping notifications landing in spam, delivery confirmations missed. The support team had been noticing an uptick in "where is my order" questions for two months but had not connected it to email delivery.

The intermittent failures did not show up in any Shopify or Klaviyo dashboard. Shopify's send logs showed the email as sent. Where it landed was not visible from the admin.

The fix

Three changes, none individually complicated, none of them done by default:

Change 1: Move transactional to a dedicated subdomain

Shopify has a documented flow for customizing the "from" domain on transactional email. The brand configured orders@mail.brand.com instead of the default Shopify sending address. Adding mail.brand.com as a subdomain on the DNS, configuring it in Shopify's notification settings, and verifying the handoff.

This alone took 30 minutes of work and about 2 hours of DNS propagation.

Change 2: Authenticate the transactional subdomain

Same pattern as the marketing domain, but for mail.brand.com. SPF record including Shopify's sending infrastructure. DKIM records from Shopify for message signing. DMARC policy that covers the subdomain.

This took an hour, mostly because Shopify's DKIM configuration documentation is less clear than Klaviyo's.

Change 3: Tighten up the email copy and templates

The default Shopify order confirmation template uses a layout that looks notably different from the brand's marketing email. Same sender domain was now not enough. We updated the transactional templates to match the marketing voice, brand colors, and layout. Same fonts, same header, same footer structure.

This took a day because the Liquid templates in Shopify notifications have constraints that the HTML email in Klaviyo does not. But it mattered because Gmail's reputation model cares about visual consistency as a signal of legitimacy.

The recovery

The fix went live on a Tuesday. The open rate on marketing campaigns did not change that week. It changed two weeks later.

  • Week 1 after fix: no change. Expected. Reputation takes time.
  • Week 2 after fix: marketing open rate moved from 21 percent to 24 percent.
  • Week 4 after fix: 26 percent.
  • Week 8 after fix: 28 percent.
  • Week 12 after fix: 29 to 31 percent (steady state).

Total recovery: about three months to fully regain the reputation that had been bleeding for the previous three. Roughly 1:1 recovery time to damage time, in this case. For worse incidents, the ratio can be steeper.

The lesson for DTC operators

Transactional email is not separate from marketing email for reputation purposes. Gmail and Yahoo see the domain. They do not see the distinction between "transactional" and "marketing" that the operator draws internally.

If your transactional sending domain is different from your marketing sending domain, you are splitting your reputation across two surfaces. The marketing reputation will lag because the most engaged sends (the ones the customer always opens) are happening elsewhere. The transactional reputation will be hostage to whatever shared infrastructure you are using.

The right architecture is a single brand-owned root domain with subdomains for each distinct sending stream: mail.brand.com for marketing (Klaviyo), orders.brand.com for transactional (Shopify), and any others aligned the same way. All authenticated under a single DMARC policy at the root. All producing reputation signals that compound rather than fragment.

The recovery timeline most brands underestimate

The fix itself is cheap. The recovery is not. If you have been leaking reputation for six months, assume six months to fully recover. Gmail's model does not forget fast, and the transition from "unknown sender" back to "trusted sender" takes deliberate warmup on top of the authentication.

During the recovery window:

  • Do not send to unengaged subscribers. The sunset rule from the win-back cadence piece applies doubly here.
  • Do not add volume. If you normally send three campaigns a week, keep sending three, not four.
  • Watch the complaint rate and unsubscribe rate more carefully than usual. A spike indicates the recovery has not started yet.

The broader pattern

Transactional email deliverability is the forgotten tax in most DTC stacks I audit. The marketing team owns Klaviyo. The ops team owns Shopify. Nobody owns the transactional stream, and nobody checks its authentication status, its sending domain, or its reputation.

This is the specific failure mode the Klaviyo lifecycle playbook calls out as flow 11 in the eleven-flow list. It is labeled "transactional companion" because, from a lifecycle perspective, every transactional send is a companion to the marketing program that Gmail is grading both against.

The post-purchase flow also depends on the transactional stream being clean, because the first touch (the order confirmation) sets the tone for every marketing email that follows.

Where this fits

This postmortem is the specific-incident version of the general deliverability story covered in the DMARC, SPF, DKIM piece. The authentication infrastructure covered there applies to both marketing and transactional streams, and the transactional stream is where most DTC brands quietly neglect it.

If you suspect you have a transactional deliverability issue but do not know how to diagnose it, the DTC stack audit includes a specific module for the transactional sending stream. This is often where the audit finds the largest recoverable value, because the fix is cheap and the opportunity cost of leaving it broken is large.

FAQ

Does my transactional email really affect my marketing deliverability?

Yes, if they share a sending domain. Gmail and Yahoo see domains, not stream labels. Reputation earned on transactional sends (which customers almost always open) benefits marketing sends from the same domain. Damage to transactional reputation hurts marketing too.

Should I move transactional email off Shopify's default domain?

For any brand over roughly $500K in annual revenue, yes. The default domain is shared with other stores and exposes you to reputation risk outside your control. A brand-owned subdomain with proper authentication is the right architecture.

How long does it take to recover from transactional deliverability damage?

Roughly as long as the damage accumulated. Three months of leaking reputation takes about three months of clean sending to recover. During the window, send carefully, avoid unengaged subscribers, and do not add volume.

What is the right subdomain structure for DTC email?

mail.brand.com for marketing (Klaviyo), orders.brand.com or similar for transactional (Shopify), and a root-level DMARC policy covering both. This gives each stream an independent sending reputation that compounds under a single DMARC record.

How do I even find out if my transactional email has a deliverability problem?

Check your support queue for "where is my order" questions and see if they have been trending up. Check whether your transactional emails are landing in Gmail primary, promotions, or spam by sending yourself test orders from fresh accounts. Check whether the transactional sending domain is your brand's or Shopify's default.

// related

Let us talk

If something in here connected, feel free to reach out. No pitch deck, no intake form. Just a direct conversation.

>Get in touch