How to separate transactional templates from campaigns?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

Your password reset just landed in spam. Not because anything broke technically, but because your marketing campaigns triggered enough complaints to drag your sending reputation down, and your transactional emails were sharing the same domain. That's the whole problem in one sentence.

Here's how to actually separate the two so they can't hurt each other.

Step 1: Use different subdomains

Give transactional and marketing emails their own subdomains. Something like send.yourbrand.com for transactional (receipts, password resets, alerts) and news.yourbrand.com for campaigns. Each subdomain builds its own sender reputation independently. If a campaign triggers complaints, only the marketing subdomain takes the hit.

Step 2: Set up authentication on each subdomain separately

This matters more than most people realize. Each subdomain needs its own SPF record, DKIM key, and DMARC policy. Don't share a DKIM key across both. If you're on Postmark, this is built in (it literally refuses to mix transactional and marketing). On Twilio SendGrid or Mailgun, set up separate sending domains in your account settings and generate a new DKIM key for each.

Step 3: Consider separate IP pools if your volume is high enough

If you're sending more than roughly 50,000 marketing emails per month, it's worth putting your campaigns on a dedicated IP pool. Below that, a separate subdomain alone does most of the work. Your ESP may offer shared IP pools for transactional by default (which is fine) and dedicated IPs for marketing (which you pay for). Ask your ESP what their default is before assuming.

Step 4: Lock down your transactional templates

But the biggest sneaky risk is a well-meaning marketer adding a promo block to an order confirmation. A small cross-sell ("You might also like...") is generally fine. Half the email being promotional is not. That's the line where a transactional email becomes a marketing one legally and practically.

In your ESP or template system, keep transactional and campaign templates in completely different folders with clear naming. If your platform supports user roles, restrict who can edit transactional templates.

Step 5: Keep your suppression lists separate too

People who opted out of marketing email should never receive campaigns. But they can still receive receipts and account alerts. Make sure your unsubscribe list for marketing doesn't suppress transactional sends. Most ESPs handle this automatically when you use separate sending modes, but verify it. A suppression bleed in either direction causes real problems.

Quick verification checklist

  • Send a test transactional email and check the headers. The From domain should be your transactional subdomain, not your marketing subdomain.
  • Run both subdomains through our free DKIM checker to confirm separate keys are publishing correctly.
  • Trigger an unsubscribe from a campaign and confirm that person still receives a test transactional message.
  • Check your ESP's sending logs. Transactional and campaign sends should show different sending identities.

If something isn't adding up or your setup is more complex (multiple brands, multiple domains, a CRM in the mix), that's a good time to get a second pair of eyes. Our SOS hotline is free and we actually pick up.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get a custom separation plan for your setup

I read this on the Email Almanac about separating transactional and marketing email streams: "Give transactional and marketing emails their own subdomains. Each subdomain needs its own SPF record, DKIM key, and DMARC policy. Keep your suppression lists separate too." Help me apply this to my specific setup: 1. What exact subdomain names and DNS records do I need to create? 2. How do I configure this in my ESP? 3. How do I verify the separation is working? 4. What could go wrong and how do I catch it early? My setup details (fill in what applies): - ESP or sending platform: e.g. SendGrid, Postmark, Mailgun, HubSpot, custom SMTP - Current sending domain(s): your domain - Monthly sending volume (transactional): e.g. 2,000/month - Monthly sending volume (marketing): e.g. 20,000/month - Do you currently have SPF, DKIM, and DMARC set up? yes / no / partial - Are you using shared or dedicated IPs? shared / dedicated / unsure - CRM or automation tools involved: e.g. HubSpot, Salesforce, Klaviyo - Business type: B2B / B2C / both - Applicable laws: CAN-SPAM / GDPR / CASL / other / unsure

Edit the yellow boxes, then send to the AI of your choice.