Home/Transactional Email/Transactional Email vs Marketing Email

Transactional email vs marketing email: the rules, the reputation, and the line an agent must not blur

Transactional email is triggered by one person's action and goes to that person. Marketing email goes to a list you chose. An agent that sends both has to keep the two apart.

VerifiedBy George Hartley, Co-founder·Updated

A transactional email is triggered by something a person did and goes to that one person. A marketing email is initiated by you and goes to a list. When an AI agent writes or sends both, the risk is that it blurs them: a promotion inside a receipt, a list send pushed through the transactional lane, or contacts it imported without consent.

A receipt, a password reset, a shipping notification: transactional. A newsletter, a promotion, a product announcement: marketing. The longer treatment of the first half of that pair is the transactional email guide.

Transactional email vs marketing email at a glance
AttributeTransactional emailMarketing email
TriggerSomething one person didThe sender decides to send
RecipientThat one personA list
ExamplesReceipt, password reset, shipping notificationNewsletter, promotion, product announcement
ConsentGenerally not requiredRequired where the law requires it
Unsubscribe linkNot strictly required, worth includingRequired in every message
Metric to watchDelivery speed and reliabilityClick-through, conversion and revenue
Sending subdomainmail.yourdomain.comnews.yourdomain.com
Path when an agent sendsTransactional API, one idempotency_key per messageCampaign or flow draft a person approves

What changes when an AI agent sends both

An agent in a coding assistant or an MCP client builds email features in code and runs them unattended. Asked to send email from an LLM, it reaches for whichever send path is closest, and the legal line above does not show up anywhere in the code. Three things go wrong most often.

  • It adds an upsell to a receipt. Asked to make a receipt earn more, a model adds an offer. The receipt's primary purpose can tip to commercial, which pulls in the unsubscribe rules and, where the law requires it, consent. The consent section above covers those rules.
  • It routes a list send through the transactional API. Nitrosend's transactional sends skip subscription checks, CAN-SPAM footers, warmup and List-Unsubscribe headers, while engagement tracking stays on. Those skips exist because the message goes to one person who asked for it. A newsletter pushed down that path keeps the skips and loses the reason for them, and unsolicited outreach sent through a transactional API breaks email compliance norms.
  • It imports contacts without consent. With nitro_import_contacts, a CSV import asserts consent, and inline records subscribe only with an explicit opt_in. An agent that sets opt_in to make an import pass has written a consent record nobody gave.

A useful rule of thumb works for agents too: every email is either "triggered 1-1" or "bulk". Triggered mail goes through the transactional lane, one message per event. Bulk mail is a campaign or a flow. Nitrosend's nitro_compose_flow creates or edits a flow draft and never activates it, so a marketing sequence an agent builds waits for a person to approve it.

Separate the two streams on different subdomains

Marketing email generates complaints. That's normal, even for good senders. Someone forgets they signed up, hits "spam" instead of unsubscribe, and your complaint rate ticks up. If your receipts and password resets are sending on the same domain and the same reputation, that marketing complaint rate now decides whether your password resets reach the inbox.

That's a terrible trade. A promotional email landing in spam costs you a click. A password reset landing in spam costs you a customer and a support ticket.

The email deliverability fix is stream separation: run marketing and transactional on different subdomains, so each carries its own reputation. news.yourdomain.com for campaigns, mail.yourdomain.com for the functional mail. Then a bad campaign week can't take your receipts down with it. Isolating reputation between mail types means one big promotional send cannot drag down the messages a customer is actively waiting for.

The related trap: never build a bulk outreach or mail-merge feature on top of the transactional sending path. It's a deliverability and compliance trap. The transactional path exists precisely because it's clean, and pushing list mail through it destroys the thing that made it valuable.

Cold outreach is neither stream. It needs different domains, mailboxes, volumes and deliverability rules, and belongs outside both.

Different metrics, different jobs

Transactional email is judged on delivery speed and reliability. People are waiting for these emails, so a high open rate reflects that rather than measuring performance. What matters is that it arrived, fast.

Marketing email is judged on click-through, conversion, and revenue. Opens are a weak signal. The email exists to cause an action further down.

Judging a receipt on click rate, or a campaign on delivery speed, is how teams end up optimizing the wrong thing.

Worked example: an agent asked to add a promotion to the receipt

The prompt: "Add a 10 percent off banner to our order receipt email."

Before. Left unguided, an agent edits the live receipt template and the banner ships in every receipt to every customer, including customers who never agreed to marketing. Nobody reads it before they do.

After. With the Nitrosend MCP tools, the agent works through a fixed sequence:

  1. nitro_get_status checks account readiness and the sender identity.
  2. nitro_manage_template with based_on clones the receipt into a copy and adds the banner there. The live receipt is not touched.
  3. nitro_review_delivery runs a read-only review of the copy, with validation, spam analysis, preflight and previews. It never sends.
  4. A person reads the review output and preview, sees a discount banner inside a receipt, and decides: the receipt stays transactional, and the offer moves to a marketing flow for contacts who consented to marketing.
  5. nitro_compose_flow drafts that flow. It never activates it.
  6. nitro_review_delivery reviews the flow draft the same way.
  7. nitro_send_test_message sends one real test of the clean receipt template to the test recipients set with nitro_configure_account. It never reaches an audience.
  8. nitro_send_test_message sends one real test of the flow draft to the same test recipients. It never reaches an audience.
  9. A person approves the flow with nitro_control_delivery, which approves or controls flow and campaign delivery after review.
  10. The app keeps sending receipts through the transactional email API, with one idempotency_key per order, so a retry of the same order never sends twice. The order event in the app is the trigger, and delivery events such as delivered, bounced and complained come back through email webhooks.
  11. nitro_get_insights then reports email analytics with trends, benchmarks and recommendations.

Where it goes wrong when an agent mixes the two streams

  • Promotional content inside a transactional template. A banner, a coupon or a product grid added to a receipt can change the message's primary purpose, and the receipt then falls under marketing rules while still being sent as transactional.
  • A list blast pushed through the transactional lane. A loop that calls the single-send path once per contact turns a newsletter into thousands of one-to-one messages with no unsubscribe. That is the mail-merge trap described above, run by a model.
  • Contacts imported without consent, or with a made-up opt_in. The import goes through, and the account now mails people who never agreed to hear from it.
  • Sends nobody reviewed. An agent that edits the live receipt template changes every receipt from the next order on. Clone with based_on, review with nitro_review_delivery, and have a person check the test first.
  • Retry double-sends. Without an idempotency_key, a retry after a timeout sends the same receipt twice.
  • A volume spike against plan limits. A list sent down the wrong lane counts against the account's daily allowance. On the Free plan, recipients per rolling 24 hours run from 100 to 5,000 by sender standing, and a new account starts at the low end. The tiers are on the pricing page.

Run both streams in one stack

The usual setup splits these across two vendors: a developer's transactional service and a marketer's campaign tool. Each team gets what it needs, and the customer gets two different-looking emails from what's supposed to be one company. Branding drifts. Data lives in two places. Nobody can answer which emails one person got this week.

The view here is that these should be two streams in one stack, not two products. Same brand, same contact record, same analytics, separated where separation actually matters, which is sending reputation, not tooling. Nitrosend splits the two streams so a password reset never competes with a newsletter.

That is how Nitrosend is built. Transactional messages go out through a dedicated send path, campaigns and flows run alongside them, and both share the same brand, contacts, and reporting. The developer gets a clean email API for receipts, and an agent gets the same tools through the Nitrosend MCP server. A team still sending from an older SMTP library can check the SMTP ports its current provider uses, then move the send to the API. The marketer gets campaigns and automation. The customer gets emails that look like they came from the same company, because they did.

FAQ

What is the difference between transactional and marketing email?

Two things separate them: who triggered the message and who receives it. Transactional email is triggered by something one person did and goes to that person, like a receipt, a password reset or a shipping notification. Marketing email is initiated by the sender and goes to a list, like a newsletter or a promotion.

Do transactional emails need an unsubscribe link?

Legally, usually not, because the recipient's own action makes the message expected. Nitrosend's transactional sends skip List-Unsubscribe headers and CAN-SPAM footers for that reason. In practice one link is worth including, since an email people can't escape generates spam complaints, and complaints damage the reputation your password resets depend on.

Can I put a promotion in a transactional email?

Be careful. A banner, a coupon or a product grid can change the message's primary purpose, and once that purpose is commercial the email can be treated as marketing, which pulls in the unsubscribe rules and, where the law requires it, consent. The safer pattern keeps the receipt clean and moves the offer into one marketing flow.

Should transactional and marketing email use different domains?

Yes, ideally two different subdomains, such as news.yourdomain.com for campaigns and mail.yourdomain.com for receipts and password resets. Each subdomain then carries its own reputation, so a marketing complaint spike in a bad campaign week cannot drag down the messages a customer is actively waiting for.

Can an AI agent send both transactional and marketing email?

Yes, as long as it keeps them apart. Triggered one-to-one messages go through the transactional API with one idempotency_key per message, so a retry never sends the same email twice. Marketing goes into a campaign or flow draft that a person reviews and approves before it reaches contacts who consented to marketing.

Go deeper

Send your first email free.

Simple pricing. Unlimited contacts.

Every plan includes full stack emailing: Flows, Newsletter Campaigns and Transactional Email, plus our NitroWheel LLM and all agent integrations (Claude, ChatGPT, Codex, Cursor and others). Pay for what you send, not who you store.

Choose your billing interval

Every paid plan includes 3 agent inboxes and no Nitrosend footer.

Starter

For your first email program.

$16USD / month

$192 billed yearly.

20,000 emails / month

Choose Starter
  • 5 brands · 3 seats
  • 5 custom sending domains
  • 500 email verifications/month
  • $1.50 / 1,000 extra emails

Pro

For a growing audience.

$40USD / month

$480 billed yearly.

60,000 emails / month

Choose Pro
  • 10 brands · 5 seats
  • 10 custom sending domains
  • 1,000 email verifications/month
  • $1.20 / 1,000 extra emails

Growth

For teams and agencies.

$120USD / month

$1,440 billed yearly.

200,000 emails / month

Choose Growth
  • Unlimited brands · 10 seats
  • 25 custom sending domains
  • 2,500 email verifications/month
  • $0.90 / 1,000 extra emails

Scale

For high-volume sending.

$240USD / month

$2,880 billed yearly.

500,000 emails / month

Choose Scale
  • Unlimited brands · 20 seats
  • 100 custom sending domains
  • 5,000 email verifications/month
  • $0.70 / 1,000 extra emails
Enterprise

Hey, big sender.

Sending 500,000+ emails a month? Get a custom plan designed for you, with volume email pricing and capacity that fits your business.

Start free. No card needed.

5,000 emails to start, then 500 emails every month. No expiry on your starter emails.

Start free

Daily allowances depend on your plan and sender standing. Strong list, domain and delivery evidence can raise standing, including on day one. Trusted receives the full plan allowance; available email credits, safety checks and delivery pacing still apply.

Free forever. No credit card required. See full comparison →