How to build nice, informative messages that look like a human wrote them

31 Aug ‘16

We’d like to talk about our template engine: what it is, and how our clients use it.

What is our template engine

When you create a message, you want to make it as convenient and useful for your recipient as possible, as well as pleasant to read. You want to use their name, take their gender into account, and include the correct delivery phone number for each region. You can often solve this problem by creating several different templates. But that takes a lot of time, is inconvenient, and still won’t solve many use cases. You could create a template for each region, for example, but not for every name.

In order to write «Dear Svetlana» instead of «Dear Subscriber», we create one general template where the name is a variable. The tool that we use to create the template and variables is called a template engine.

Of course, you want to be able to do more than just input names. For example:

  • instead of writing «Your balance has changed, click the link to find out more…», you can immediately give the necessary information, like «You’ve earned 1,000 bonus points»
  • instead of the sometimes frightening «Your balance is RUB2,500 (as of», you can give the actual balance at the moment the message was sent
  • don’t send emails with typos like «Hi, recopintName!» or «Your balance is #error# points»
  • you can add product recommendations to an abandoned cart email, but exclude the items that were viewed in the last session

To do all this, the template engine needs to be tightly integrated with the database. We’ve created our own template engine that can take current data from the database and use it to calculate the correct variables, to apply «if…, then…, or…» logic, and to work with cycles. We’ve paid close attention to possible errors and typos, and have implemented a two-tier verification system that checks for typos in variables when creating the template and for the validity of inputs when sending emails.

So, what is our template engine?

  • personalised letters with one template and common statistics
  • personalisation can be simple (based on customer profiles) or complex (based on behaviour and preferences)
  • cut layout time at least in half
  • send current information – for example, balances
  • check for typos and variable errors

Personalisation case studies

Simaland: additional customer data

You can import any quantity of additional customer data into our system (or order and product data). You can populate this data into emails, view data history, and apply flexible filters. Simaland’s additional data includes a customer’s personal manager. A customer’s welcome letter has rather useful information: their personal manager’s name and contact info.

Here’s how the template and variables look, as well as the email for a specific customer.



Muztorg and publishing house MIF: different recommendations for different segments

Each region often has its own delivery terms, phone numbers and prices. Muztorg created customer segments based on their region and used variables to create one template for all regions.



Publishing house MIF uses unique segments based on what kind of books a customer prefers: hard copy or e-books. The segment determines whether the button in the email reads «buy hard copy» or «buy e-book».

2., MIF, and GNC: recommendations based on social data and behaviour adds recommendations tailored to each region in its reactivation emails. The template also uses different greetings for men, women, and people who didn’t provide their name.

GNC adds the «Next best offer» block to each email using their own algorithm. They’ve thought of every detail: they avoid repetition, products that have been viewed and bought, account for the purchase history and, if there are no purchases, they choose products from a particular price category.



Reduced layout cost case studies

These are really nice case studies. There are no big, complicated variables, but there is decent profit from reducing the amount of time it takes to prepare emails.

Sport Marathon sends emails with blog posts. They used to have to create a new email with new articles every time. Now they have one template that automatically pulls up blog posts.

Sport Marathon

Sport Marathon

Here’s another example of scheduled emails. Instead of laying out each group of products, one template with variables is created. Olant’s marketer sets up filters for which products to include in an email, and the products from the filter are populated into the email.



Current information case studies

When you register for OBI’s loyalty club, you get 200 points that expire in three months. They’ve set up a trigger that warns customers two weeks before the points expire. The email shows the current balance that can be spent.




Our clients are happy. Our template engine makes their lives much easier and creates new opportunities for them – there have been cases when they’ve been able to implement scenarios that they couldn’t before. For example, a cosmetics company includes a set of products in its email, some of which have prices, and some of which are free (testers). Each customer gets a unique set of products. With the help of cycles, they’ve been able to put products with prices in one block, and free products in a separate block in the email.

Tell us a little about yourself

We’ll respond within 24 hours

Partnership request

Typically we’re answering within 24 hours