Starter
For your first email program.
$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
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.
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.
| Attribute | Transactional email | Marketing email |
|---|---|---|
| Trigger | Something one person did | The sender decides to send |
| Recipient | That one person | A list |
| Examples | Receipt, password reset, shipping notification | Newsletter, promotion, product announcement |
| Consent | Generally not required | Required where the law requires it |
| Unsubscribe link | Not strictly required, worth including | Required in every message |
| Metric to watch | Delivery speed and reliability | Click-through, conversion and revenue |
| Sending subdomain | mail.yourdomain.com | news.yourdomain.com |
| Path when an agent sends | Transactional API, one idempotency_key per message | Campaign or flow draft a person approves |
Marketing email needs consent where the law requires it, and an unsubscribe link everywhere. Privacy laws in many countries require permission before you send promotional mail, and most anti-spam laws require a working unsubscribe link in every marketing message.
Transactional email generally does not require prior consent, because the recipient took an action that makes the message expected. A receipt for a purchase they just made doesn't need a marketing consent record, and it doesn't strictly need an unsubscribe link.
Two warnings on that, though.
First, the exemption is narrower than people assume. The moment you slide a promotion into a receipt, that email can lose its transactional status and fall under marketing rules. Regulators look at the primary purpose of the message, not the label you gave it in your sending tool.
Second, the position on this page is firmer than most: put a real unsubscribe link on transactional sends anyway. Not because the law demands it on every message, but because an email a person can't get out of is a complaint waiting to happen, and complaints are what actually damage you.
The transactional flag in Nitrosend has teeth. Mark a flow step transactional and it reaches contacts who unsubscribed from marketing. Event data such as {{ event.confirm_url }} still fills in. The setting exists for legally required authentication and recovery steps. It does not force delivery to addresses that hard-bounced or marked an earlier email as spam. Those stay suppressed by design.
Production transactional templates, such as welcome emails, password resets and invites, are run through a compliance check before they are used for real sends.
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.
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.
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.
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.
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:
nitro_get_status checks account readiness and the sender identity.nitro_manage_template with based_on clones the receipt into a copy and adds the banner there. The live receipt is not touched.nitro_review_delivery runs a read-only review of the copy, with validation, spam analysis, preflight and previews. It never sends.nitro_compose_flow drafts that flow. It never activates it.nitro_review_delivery reviews the flow draft the same way.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.nitro_send_test_message sends one real test of the flow draft to the same test recipients. It never reaches an audience.nitro_control_delivery, which approves or controls flow and campaign delivery after review.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.nitro_get_insights then reports email analytics with trends, benchmarks and recommendations.opt_in. The import goes through, and the account now mails people who never agreed to hear from it.based_on, review with nitro_review_delivery, and have a person check the test first.idempotency_key, a retry after a timeout sends the same receipt twice.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.
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.
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.
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.
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.
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.
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.
Every paid plan includes 3 agent inboxes and no Nitrosend footer.
For your first email program.
$192 billed yearly.
20,000 emails / month
Choose StarterFor a growing audience.
$480 billed yearly.
60,000 emails / month
Choose ProFor teams and agencies.
$1,440 billed yearly.
200,000 emails / month
Choose GrowthFor high-volume sending.
$2,880 billed yearly.
500,000 emails / month
Choose ScaleSending 500,000+ emails a month? Get a custom plan designed for you, with volume email pricing and capacity that fits your business.
5,000 emails to start, then 500 emails every month. No expiry on your starter emails.
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 →