Dedoles automates 60% of their email building using jinja
Discover how email marketers use Catalogs, Google Sheets and Jinja to make their life easier.
Building email newsletters campaigns requires careful work. Every email marketing team is familiar with the process. Set-up relevant audiences (with relevant consents), set-up the scenario then gather the content (images, copy, landing page links). Build the final email design that is sent to the customers. Once all the images, subject lines, text, colors, buttons, links and unsubscribe links are set - send yourself a test email and QA.
If an email marketing team has a lot of language variations, then this process can be very lengthy and tedious. This is often the case in EU e-commerce companies, where brands operate multiple domains each in a different language. Each additional variations adds another “email design” to build for the marketing team. In our experience that could be as low as 5x to as many as 20x. Each additional variation extends the time required for each campaign and increases scope for human error.
Dedoles, an EU fashion retailer, was experiencing this issue with 15+ language variations and asked us to examine their email building process and see if there is a way to reduce the manual input involved in each build.
In this blog post, we’d like to walk you through how we used catalogs, jinja and google sheets to automate 60% of the manual build time for newsletter campaign email content that have multiple language variations.
For an experienced email marketer, the average build time of a single newsletter campaign in 15 different language variations was 4 hours. After implementing the semi-automated method, the build takes on average only 1,5 hours per campaign. With 10-15 builds a month that’s 25-37,5 hours of manual labour saved each month.
Static Email Elements
To automate a newsletter campaign build with many language variations, it is first necessary to identify the static aspects of the email visuals. What parts of the design remains the same from campaign to campaign? Typical examples of these are the - header of the email, footer of the email and the unsubscribe copy.
Once these were identified, we created a table in Google Sheets, where each row represents a language variation of the static elements of the newsletter campaign and each column represented one of those elements. (screenshot of an example below) In this catalog the ID of the row would be the language acronym + ‘_STATIC’. This is necesssary to then be able to identify the content with jinja.
Then we populated each of the language variations text. Note that for the headers and footers a html code block is placed into those catalog values.
Dynamic Email Elements
As with the static elements of the email visuals, the same must be done for the dynamic elements. What aspects of the newsletter design is usually dynamic and change from campaign to campaign?
subject-line
pre-header
hero image
landing page link
CTA button + landing page link
main text
image2, image3, …
text2, text3, …
Once these were identified, we created a table in Google Sheets, where each row represents (screenshot of an example below) a language variation of the static elements of the newsletter campaign and each column represented one of those elements. In this catalog the ID of the row would be the language acronym + ‘_DD_MM_YYYY’ of when their launch date. This is necesssary to then be able to identify the content with jinja.
Instead of spending a lot more “clicks” and time copying and pasting the translated text for all the different elements of the email visual, the email marketer just needs to update the “dynamic_newsletter_catalog” google sheet.
Importing the “Email Catalogs”
We recommend to set up the Static and Dynamic parts of the “newsletter catalog” in Google Sheets. This is because it is easy to share, have multiple people work in it and it provides an easy way to import the data into your ESP / CDP. Google Sheets enables you to “publish” the contents of a sheet to a URL on the website. Additionally you can set the format (in this case we want to use the CSV format).
To access the above screenshot within Google Sheets, navigate to the top bar menu:
“File” > “Share” > “Publish to Web”.
That will open the “Publish to Web” menu. Select the sheet you would like to export, set up the formatting of your choice and then copy the link generated.
To access this data and import it into your ESP, paste the URL link generated by google sheets. The screenshot above is from Bloomreach Engagement Imports.
Google Sheet Template
The button below links to an empty google sheet template for building your own Static and Dynamic Newsletter catalogs.
Building the Email Visual with Jinja
Once both of the static and dynamic catalogs are imported into your ESP, it is time to build the emails! Now the biggest time sink in the manual build is the need to manually build 15 times the same email visual with different languages. This can be “solved” by using the personalization jinja code - that can retrieve the appropriate copy or version of the email depending on the customers’ language from the static and dynamic email catalogs we were setting up in the previous steps. Most ESPs have some form of jinja , for this example we will use the one in Bloomreach Engagement.
Consider the subject line. Instead of typing in the subject line text, the marketer would change the date (item_id in the dynamic catalog) in following jinja below
{% set item_id = (customer.language ~ '_03_01_2024') | upper %} {% set item = catalogs.newsletter_pilot.item_by_id(item_id) %} {{ item. subject_line }}
This jinja would retrieve the subject line value for the particular date, depending on the language value of the customer. If their language was “EN” the ~ symbol means “to concatenate” with value “_03_01_2024”. This is then the “item_id”, so it knows which subject line to retrieve. The same would be done for each other defined elements of the email. While there is only a “single” email design, when launched the design will render differently to each customer based on their customer.language value.
The very first time this template will be developed, it will take a lot longer and may need the involvement of chatGPT or a bit of help from your developer colleague. However, once developed - the marketer needs to only the following per campaign, entirely cutting out the 15x building of the same visual:
Ensure the new copy, links, images, are in the Google Sheets catalog tables
Re-run the import (in most ESPs the import settings can be saved, so this is just the click of a button)
Change the date in the jinja codes where necessary
QA and test the links
What is not Automated
This effort to automate as much of the manual labour from the process as possible also highlighted the importance of the areas that are difficult to automate for the moment. These are:
Generating the Creative - despite major leaps in AI generated visual image generation in the last year; we have not seen email creative teams adopt AI tools to help with this process yet. One big challenge remains the consistency of the image, specifically the product being sold in generated images in different contexts. A startup we have noticed in this space working on this challenge is ecomtent. Their platform enables you to upload an image and then generate new content using that image.
Writing the Copy of the Subject Lines / Texts / Banners, etc. - while ultimately the marketer must decide, platforms have been releasing “AI” co-pilot features that help marketers with idea generation such as:
Defining the objective and audience of the campaign - this is unlikely to be automated soon. The reason why the campaign is being sent and to whom, is what we would consider a “core” aspect of an Email Manager’s decision making responsibility,
Quality Assurance of final visual and link testing - it is best practice to send yourself the email campaign prior to the final launch; to check the whether the copy, subject lines, linked landing pages, etc. are correct
If you found this post valuable…
We hope you found value in this article. If you did, we'd appreciate it if you subscribed (at no cost!) to stay updated with our latest publications.