A few months ago we started a journey to improve everything about Postmark’s email templates. We did a bunch of calls with customers to understand exactly how templates are being used, and what your biggest pain points are. We started our improvements with some quick wins: a better page layout, the ability to manage template aliases from the UI, and an easy way to find the template you’re looking for.
Those improvements all laid the groundwork for our first major change to templates, which we’re happy to announce today.
One of the biggest frustrations we keep hearing about templates is how difficult it is to manage changes across your servers/environments.
Many teams have 3-4 servers/environments, and it’s not easy to keep track of what has changed where (development, testing, production, etc.). The workflow to make changes to templates, and then move them from one server to the next, is time-consuming and error-prone.
So today we are addressing that pain point by introducing the ability to push template changes from one server to the next. You can do this via the UI, or a new
/templates/push API endpoint. Here’s how it works.
Pushing templates via the UI #
When you view your templates in a server, you’ll now see a new button labeled Push to another server:
Let’s say you just added a new template called “Trial expiring”, and you also made some changes to your welcome email. You tested those changes on your
staging server, and you’re ready to push the changes to your
production server. When you click the button to do that, you’ll see a screen that shows you what is about to change:
In this case you’ll see that you’re adding a new template with the alias
trial-expiring, and you made some changes to the template with alias
welcome. From this screen you can also click Preview to look at the changes side by side if you’d like to make sure everything is correct:
Once you click Push now, those changes will appear in your
production server, ready to use.
Pushing templates via the API #
You can also perform this action by using the new
/templates/push API endpoint. For details on how the new endpoint works, and sample JSON responses, head over to the developer docs
As you start working with template pushing, there are a couple things to keep in mind:
- When you push from one server to the next, all templates with changes will be pushed together. That way you don’t have to worry about pushing each template individually when you make changes. As developers, this is a workflow you’ll already be familiar with. Think of it like pushing all your code changes to a git branch.
- You need to have template aliases defined for the templates that you’d like to push from one server to the next. For more information on how aliases work, have a look at our help doc. If some of your templates don't have aliases when you push to another server, you will see a "Add aliases" button that lets you easily add aliases via the UI:
For a bit more detail on how all of this works, you can view our help doc about template pushing
This is a big change that our customers have asked us to address for a while, and we’re really happy that we get to release this today. But we know we’re not done… The next biggest pain point when it comes to templates is the current inability to define reusable components. We are currently working on a solution that will make it easy to reuse common elements in your templates.
As always, we’d love to hear your feedback on these changes. Just send us an email with any feedback, and we’ll get back to you.