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.

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.

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:

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.