Transactional emails are one of the key touchpoints for anyone using your products or services. Welcome emails provide an opportunity to make a good first impression; digests and notification emails can help folks stay on top of their work; order confirmation and delivery update messages give customers peace of mind.
But designing and building transactional emails is a tricky process: they’re difficult to test, your team doesn’t see or interact with them regularly, and from a design standpoint, they can be limiting and somewhat boring work for most designers. The result is that transactional emails are frequently an afterthought, but they shouldn’t be.
Ideally, you should think of transactional email as just another interface to your product or service, which means it should receive all of the attention you’d give to designing any other customer interaction—and this is what this guide will help you do.
Editor's note: this page was originally published in 2016. In 2022, we over-hauled it to ensure our suggestions are as useful and up-to-date as they should 😉
Part 1: meta information
While the content of your emails is crucial, the meta information that accompanies it influences whether recipients will even open or read your messages. With the way email clients handle previews and display sender information, you want to make sure that you’re conveying the most useful information within the limited space available. You don’t want your emails to show up in inboxes with these problems:
These may all seem like minor details, but when you’re sending transactional emails hundreds or thousands of times, the inconvenience to customers begins to multiply. None of these mistakes are difficult to fix: they’re simply about making good conscious choices. Let’s dive deeper into the various ways you can avoid these mistakes and help your customers get more out of your emails.
When it comes to meta information, you want to:
1. Have a clear subject line and pre-header
2. Properly format your From and reply-to addresses
3. Use the To, Cc, and Bcc fields strategically
4. Consider email authentication and markup
5. Set up Gmail Inbox Actions
1. Have a clear subject line and pre-header #
Subject lines are one of the first things a recipient will see—but email clients will only display a limited number of characters. Here are some tips:
Your subject line should be useful, relevant, and not too wordy. Fifty characters or fewer is a good guideline for length.
Simple and direct wins over cute and catchy. That’s not to say your subject lines can’t have personality, but short and meaningful should always be the first priority (if you can add some personality without sacrificing the core of the subject, then feel free to have some fun! And if all else fails, and you must have a long subject line, try to include the most meaningful information at the beginning).
Convey all the relevant information in your subject line so the recipient doesn’t even need to open the email. For example, a shipping notification could say “Your order is shipping Tuesday, January 1st”: your customers could then open the email for more information if they need it, but they wouldn’t have to.
Note: the downside to this approach is that if users never open a specific type of email, it could lower the perceived engagement and affect deliverability. However, we think that if you’re putting the recipient’s needs first, this is still a good business decision.
Design subject lines that enable relevant filtering by customers. For example, if all of your emails come from “firstname.lastname@example.org,” then users can’t filter their emails based on the From address; instead, they’ll have to filter based on keywords in the subject line (or body).
Push some information to a pre-header if you can’t fit all of your key information in the subject. If you’re not familiar with a pre-header, it’s a way of conveying meaningful content at the beginning of an email so that the email client’s preview area includes useful content instead of generic content from the beginning of the email.
Due to the lack of a pre-header and clear subject line, all of Amazon’s order emails look the same. And to make it worse, the lack of a pre-header means that Gmail uses the alternate text for the logo image and writes “Amazon.com Logo” at the beginning of the email. This makes scanning emails impossible, and the recipient is forced to open each message individually.
The previews for these messages give a recipient no useful information.
2. Properly format your From & reply-to addresses #
One of the first things anybody sees with an email is who sent it. So making sure you use a nicely formatted “From” address is absolutely key.
Use the name of the application/company that sent the email. For example, we would use “Postmark” for most emails rather than “ActiveCampaign” (the parent company). In some cases, an email from us might say “Postmark Support” or “Postmark Billing,” but unless your company is big enough for those to all be different departments, “company name” is likely enough.
Avoid using the name of a specific person within the company if you can. Some might make a case that the From address should appear to be a person from the company to help make the message feel more personal, but with few exceptions, it’s unlikely that your customers will know who that person is. And unless the replies will be going directly to that individual, it’s disingenuous—and customers will pick up on that.
Avoid a noreply@ address if you can. A noreply email address is a quick way to signal to customers that you don’t want to hear from them—but they may need to, and you need to give them a way to do so. There are signs that replies to an email address can help improve aspects of its deliverability, since replies represent increased engagement (an increasingly important signal about the quality of emails). So discouraging replies can lower your overall engagement and potentially affect deliverability—it’s possible that the mere presence of a noreply address could affect deliverability.
Pro tip: make sure customers can reply to an email and that their reply will be sent to a monitored inbox. Alternatively, you could use something like Postmark’s inbound email parsing to automatically parse and handle replies to notifications, but we’ll talk more about that later.
Have a clear, unambiguous “From” address. Be mindful of your sender name and address and ensure that it’s conveying helpful information to your recipients.
Looking through my own inbox, here are a few non-examples I’ve found for names used by prominent companies with the exact capitalization and punctuation specified below. This is exactly what showed up in my inbox representing these companies:
- “email@example.com.” (Yes, with the trailing ‘.’)
- “firstname.lastname@example.org” and “email@example.com”
In some cases, these companies may be sending from legacy systems or tools that aren’t as easily configurable, but for most of these cases, it’s easily fixable once you see the problem. And for every terrible name like these, there are just as many that are poorly named and don’t represent the sender well.
Here are some example options we could use for Postmark account emails:
✅ “Postmark <firstname.lastname@example.org>” would be the best way to do things in most cases for account-related emails.
✅ “Rami from Postmark <email@example.com>” can be a good mix between personalization and keeping the product name in there if used judiciously.
⚠️ “John Doe <firstname.lastname@example.org>” would be good under limited circumstances if the replies are going straight to John Doe. In most cases, though, this makes it more difficult for the recipient to associate the email with the product.
❌ “ActiveCampaign <email@example.com>” wouldn’t be a good fit for Postmark since fewer people will be as familiar with our parent company.
Alternatively, for things like comment notifications or emails that aren’t account-related, the product name is almost always best:
✅ “Postmark <firstname.lastname@example.org>”
✅ “Postmark <email@example.com”>
- Remember that the “From” address can be used as a filter.The “From” address provides a great touchpoint for people to filter and organize their emails: by sending invoices or receipts from “firstname.lastname@example.org”, account notifications from “email@example.com”, and comment notifications from “firstname.lastname@example.org”, you can give customers built-in hooks for organizing their inbox.
If you need your “From” address to be different from the reply address, you can use the “reply-to” header value to route replies to a different location. This way you can be sure that replies will be delivered to a monitored inbox like your support email
- Implement BIMI. BIMI is an email specification that enables email inboxes to display a brand’s logo next to the brand’s authenticated email messages. The most obvious advantage for BIMI-compliant mail is the brand's logo in the inbox, which helps your messages stand out and adds a layer of trustworthiness. Check out the BIMI implementation steps here (spoiler alert: you will need to set up DMARC compliance, your logo, and update your DNS with the BIMI TXT record).
- Set up avatars for your generic email addresses. Depending on the service you use, if you cannot set up BIMI you can still set up default avatars for your application’s email addresses so that users of some applications will see application avatars instead of the generic default avatar for their mail client. In some cases, this means setting up a social profile, while in others it may simply be a matter of configuring your account or setting up a Gravatar account for the email addresses you use to send emails.
One thing to keep in mind here: even if you have an avatar set up, it could be outdated. So make sure to check up on it regularly to make sure that it’s still an accurate representation of you or your business.
3. Use the To, Cc, and Bcc fields strategically #
It may be tempting to simply include all recipients in the To field of your email, but depending on the context, it may make more sense to put the primary recipients in the To field and other recipients or followers in the Cc field. Just like the subject and from address, recipients can also use the To and Cc fields to filter and organize their emails as well.
For example, some users may want to emphasize emails when their address is in the To field, but they may want to consider emails where they’re CC’d to have lower priority. By being selective about whether users’ email addresses are in the To or CC field, you can proactively help them organize their email.
4. Consider email authentication and markup #
Since all transactional emails are important, you never want to skimp on anything that can improve your delivery rates or protect your brand from email security issues.
Set up your SPF, DKIM, and DMARC standards. By setting these up, you’re sending additional trust signals to email inbox providers, protecting your domain from being spoofed, and building a reputation for your domain to ensure high delivery in the future.
Note that Gmail is using SPF and DKIM to inform what kind of avatar to display for a given email address. If you haven’t set up SPF or DKIM for your domain, emails from that domain might show up with a question mark in place of a profile image. At Postmark we automatically take care of SPF, so no additional setup is required to start using it
Pay attention to your domain reputation. The domain you use to send your emails is almost as important as its authentication. As inbox providers become more sophisticated, they’re increasingly tying reputation to domains rather than just IP addresses, since it’s more difficult to replace your domain than an IP address. However, this can also mean that your transactional and marketing (or bulk - promotional) email can be sharing reputation if they’re both coming from the same domain.
Ideally, you’d have two separate sending infrastructures that include a unique IP address and subdomain. If you are using Postmark, you can ensure that broadcast and transactional traffic don’t mix by creating a Message Stream for each:
Postmark separates Message Streams so transactional and broadcast traffic don't mix
Learn more → we occasionally help customers who are seeing delivery issues with their transactional emails. When this happens, it's usually because they are using the same domain to send both transactional and marketing email, and the former are suffering from the lower quality reputation of the domain caused by latter.
5. Set up Gmail Inbox Actions
Some emails in your Gmail inbox will display button links or rich displays of metadata (like flight information or restaurant reservations), which make life easier for your recipients by making your emails even more useful. Gmail Inbox Actions are reserved for transactional emails, and they’re a great way to help your recipients get through their inbox faster.
Inbox Actions are based on open standards, but Gmail is the most well-known mail client to embrace them. Your application can set these up as well: all you have to do is set up SPF or DKIM (We recommend using both, along with a custom Return-Path and DMARC as well), add some meta data markup to the content of your emails, and get safelisted by Gmail, which takes about a week.
You can set up one-click RSVPs, simple direct links to more information, or one-click actions like adding an item to your wishlist as well as highlights that show orders, flights, and other reservations right in the recipient’s inbox.
→ If you need help, we’ve written a detailed guide to help with the process of setting up Inbox Actions for your transactional emails.
Part 2: design, content, and formatting #
Once your meta elements are in place, it's time to think about the larger context of design, content, and formatting. Here, you'll want to follow the best practices below:
6. Accept replies from customers
7. Ensure your transactional emails are mobile-friendly
8. Personalize your content
9. Know when NOT to send transactional email
10. Allow easy unsubscribing or notification management
11. Include well-formatted plain text versions
12. Be precise about dates and times
13. Clearly identify the source/reason the recipient is receiving the email
14. Adjust email design based on frequency and context
15. Monitor delivery and open rates
6. Accept replies from customers #
One of the best ways to make email first-class citizens in your application is to gracefully handle replies. In the case of account-related emails, this means routing customer replies to your support team; in the case of activity or event notifications like comments, this means setting up your application to accept inbound replies from customers and process them into your application.
7. Mobile, mobile, mobile #
While every application is different, and you should definitely review your stats, chances are a large number of customers is opening your emails on their mobile devices. With few exceptions, all of your transactional emails need to gracefully accommodate mobile email clients:
- Test extensively on the mobile devices used by your audience (e.g. with a device testing lab or a tool like Litmus)
- Use media queries to ensure your emails look great on smaller screens
8. Personalize all the things #
One of the greatest things about transactional email is that you should have a plethora of information about your recipients so you can customize your email messages just for them. On one level, this could be as simple as using their name where appropriate: it’s small, but a receipt with “Thanks, Farah!” (using the user’s name, of course) is the type of touch that makes a difference. For another example, if you know the recipient’s time zone, tweak the timestamps on notifications to ensure they’re displayed in that user’s time zone.
Read more → if you're looking for inspiration, here is a list of transactional email examples we send customers from Postmark using Postmark; if you just want to get started, we also have a set of ~10 transactional email templates you can grab and start using right now.
9. Know when NOT to send transactional email #
A lot of companies send daily activity digests, newsletters, or reports… but not all of them are useful. For example, if there haven’t been any changes to a project and you’re still sending out a blank activity summary, or if someone has yet to even log in or hasn’t actually done anything in the application, chances are this will annoy rather than impress them.
Make sure you’re not sending empty content—that the email is relevant and useful. For example, send a “Can we help?” email instead. If you take advantage of a deeper understanding of your recipients and their needs, emails can be smarter and more useful for them.
10. Allow easy unsubscribing or notification management #
Even though transactional emails are not required to have unsubscribe links, we think it’s always useful to enable recipients to manage their notification preferences, including unsubscribing from some (or all) of them.
This can be difficult when your product has multiple different categories of emails, such as onboarding emails, invoice receipts, and account notifications. You’d want one-click unsubscribe links with specific text like “Unsubscribe from onboarding emails” on the first type, but you probably don’t want people to unsubscribe from billing notifications.
In cases where you don’t need an unsubscribe link, you may still want to offer users a convenient link to manage their notification preferences. Ideally, they could have an option to unsubscribe from specific notifications with a single click without logging in, but that requires some additional engineering.
11. Include well-formatted plain text versions #
With transactional emails, you always want to include a plain text version, which is good for both accessibility and delivery.
Make sure the plain text content doesn’t vary too much from the HTML content. Including a plain text equivalent can help reduce false positives in spam filters, but if the content varies too much from the HTML version, that can be a red flag for some of them.
- Format for easy reading. Since you’re taking the time to create a plain text equivalent of your emails, you might as well spend a few moments ensuring that it’s formatted for easy reading:
- Keep important links short and on their own lines. When links are long enough to wrap to a new line, they can break and lead to unintended consequences.
- Use a series of hyphens or equal signs to create horizontal dividers to visually separate content like headings.
- Break content up into paragraphs to increase readability
12. Be precise about dates and times #
Many emails will include dates and times, and while it’s common to include shorthand versions for relative times in software, this doesn’t work well with less synchronous messages.
For example, saying “a few moments ago” or “today” in your web application will work—but with emails, there’s no guarantee about when someone will read something. So, if they read that email tomorrow, “a few moments ago” will no longer be accurate. Being extremely precise will work in your favour, especially when you are sending out a password reset email or a magic link with specific expiration dates and times:
13. Clearly identify the source/reason the recipient is receiving the email #
While the reason for most transactional emails is obvious, there are some gray areas where that may not be the case. This can be especially true if the recipient hasn’t received many emails from you. This can be doubly true when the name of the company on the invoice doesn’t match the product name.
Add relevant context. With key account emails, if there’s a chance that the recipient won’t immediately know the context around them, make sure to include any relevant information to help ensure the recipient isn’t confused by the email.
- Where did this email originate from?
- What product?
- What company?
- Why did I receive this email?
- Who signed up for this account?
Pay particular attention to application invitation emails. Application invitations are particularly tricky because they can be eerily similar to phishing scams: when a recipient receives an invitation to an application they aren’t familiar with, they might second-guess whether it’s legitimate. You can help avoid the situation by including information about who invited them, what the application does, and any other relevant information to help them understand why they were invited.
14. Adjust email design based on frequency and context
Include branding in account-related messages. You can also adjust the content in your footers based on the context of the email. For example, while a receipt may include corporate information, you might also want a space in your email footers for specifying the reason someone is receiving the email and including a link to manage their notification preferences.
Remove heavy branding from notifications and digests. If your users receive dozens of comment notifications every day, they don’t need heavy branding and additional links in a header or footer: recipients are significantly more interested in the content than in branding or copyright elements. By removing or downplaying unnecessary elements of the email, you can give them a more streamlined experience.
Design your more frequent notifications so they can be sent in batches. For example, instead of sending 10 emails in 5 minutes where each is notifying the user of a new comment, collect the notifications in 5-minute windows and send one email that references the 10 individual comments so users receive fewer emails.
15. Monitor delivery and open rates #
While it’s common to closely monitor results for email marketing campaigns, it’s less common for teams to monitor their numbers on transactional emails—but transactional emails are just as susceptible to problems. We’ve seen cases where simply including a company’s phone numbers led to any emails with that phone number going straight to the spam folder. Yikes.
So, it’s entirely possible that a subset of your emails contains content that may affect their delivery, and unless a customer notices the missing emails and lets you know, you could be quietly losing emails no matter how great your email service provider is. It’s important to frequently review your delivery statistics for each type of transactional email you send and ensure that none of them are encountering delivery issues.
For example, with Postmark, you can tag your emails. Then, you can review all of your password reset emails or your receipt emails to see their delivery and open rates right in Postmark. If you notice some unusual behavior in the graphs, you can dig deeper to see if you recently made changes that could be affecting delivery.
Transactional email is complex, and for most teams, it’s a tedious afterthought rather than a first-class citizen. By placing more importance on your transactional emails and taking care to ensure you’re giving your recipients the best possible experience, you have an opportunity to stand out from the crowd, build brand loyalty, and even improve email deliverability as more customers interact with your emails more frequently.
Choose the provider that specializes in transactional email
Switch to Postmark and get everything you’d want if you were building out your own email infrastructure.
Transactional email best practices checklist #
From and reply-to addresses #
- For the From name, use the product or company name that will be most familiar to the recipient
- Keep the names concise so they aren’t cutoff in previews
- Avoid using a ‘no-reply’ address for the From address
- Use human-friendly and readable names and email addresses for the “From” values
- Consider different addresses for different types of notifications to help recipients filter emails
- Implement BIMI
- Setup avatars with Google and Gravatar for the From addresses you use
- Double check that your avatars are still a good representation of you or your business.
Subject and pre-header #
- Communicate all of the key information in the subject.
- Keep subject length around 50 characters or fewer
- Avoid wasting space with redundant information like date or sender in the subject
- Try to avoid “[Product name]” or similar constructions in the subject. They waste space, and the “From” information should signal this. If you need to use these to help customers filter, include them at the end where they’re less likely to interfere.
- Design subjects for easy keyword filtering to help recipients organize their inbox
- Use a pre-header to convey useful information that won’t fit in the subject.
- Use To for primary recipients and Cc for secondary recipients to provider users more filtering options
Email authentication and domains #
- Set up SPF
- Set up DKIM
- Set up a custom Return-Path
- Set up DMARC
- Use separate domains or subdomains for transactional and marketing emails to isolate any negative reputation from one affecting the other
Setup Gmail Inbox Actions #
- Is the email for an event that could benefit from the RSVP Action?
- Is the email for a product service that could benefit from the Review Action?
- Is the email for a single interaction such that it could benefit from a One-Click Action?
- Does the primary content of the email relate to a single URL so that it could benefit from a Go-To Action?
Accepting replies from customers #
- Use a valid from or reply-to so that custom replies go to a monitored inbox
- Where relevant, setup inbound processing to automatically handle customer replies and process them into your application
Mobile. Mobile. Mobile. #
- Test extensively on the mobile devices used by your audience (e.g. with a device testing lab or a tool like Litmus)
- Use media queries to ensure your emails look great on smaller screens
Personalize all the things. #
- Use the recipient’s name when relevant
- Tweak emails to ensure they are relevant to the user’s context. ex. Skip sending an empty activity summary to someone or send something more useful in its place
- Customize the dates and times with the user’s time zone just like you would in the application
Include well-formatted plain text versions #
- Include a plain text equivalent
- Put links on their own line indented
- Use dividers with headers
- Break the text up with paragraphs
Be careful with dates and times #
- Use absolute dates and times
- If dates and times are redundant with the email timestamp consider whether they’re necessary
Clearly identify the source/reason the recipient is receiving the email #
- Include key contextual information around infrequent account-related emails
- Re-introduce your company or product if an email is going to someone who may have forgotten what your product or company does.
- If someone else initiated the action on behalf of the recipient, include information about the initiating individual.
Easy unsubscribing or notification management where relevant #
- Consider adding one-click unsubscribing to non-essential emails
- Consider adding a convenient link to manage notification preferences on other emails
Adjust email design based on frequency and context #
- Can the email design be streamlined to let the content standout if it’s a frequent notification and the recipient will recognize the brand?
- Could the footer or header of the email be adjusted to include additional information or links that would help the recipient specifically in the context of this email?
- Can your more frequent emails be designed to be sent as a batch?
Monitor delivery and open rates #
- Pay attention to delivery and open rates for groups of email
- Compare open and bounce rates over time to see if an update may have affected delivery or open rates
- Use open rates to iterate and improve your email subjects