Messages in multiple languages
Customer.io supports multiple character sets out of the box. If your app/site has multiple languages, there are a few ways you can localize your messages. In every case, you'll need to assign people an attributes representing their language preference. In most of our examples, we refer to this attribute as language.
There are a few ways to localize your messages:
- (Recommended) Our new localization feature for one-time sends.
- Use action conditions and set up separate messages in your automation for each language.
- Use liquid conditions inside a message.
- Set up separate automations for each language with conditions determining who enters each automation.
The condition per-message method
Using this strategy, you only have one automation that includes separate messages for each language.
Advantages:
- fewer automations overall
- open, click, and conversion stats are partially separate (you can view the stats per message, but you’ll need to export data from multiple automations if you want to see the overall stats for a particular language)
- you can easily make changes to messages sent in different languages
Disadvantages:
- grouping messages sent in series (a few days from one another) can get messy because of the large number of messages included in the workflow
- you can’t easily find or export data for all the messages sent in a particular language
Sample Setup
Your automation has messages separated by language using an action condition. This way, only those people whose language attribute/value is set as “fr” will receive the French email. Others who do not have the attribute/value set to “fr” will skip this message. The same applies to all the messages in the workflow as long as they have a condition filter added.
Once you add the condition filter to all your messages, the Workflow page will look something like this:
Note: If you’re using this strategy for a Welcome automation and you notice delays in sending attribute updates sent to Customer.io, you can add a 2-3 minutes delay before the first message to give your app enough time to send us the correct information.
The per-message method (using liquid)
Using this strategy, you only have one automation and one message per marketing scenario, but each user will see the content in its own language.
Advantages:
- fewer automations overall
- making changes to messages sent in multiple languages is easier (you only need to edit one message)
Disadvantages:
- open, click, and conversion stats are mixed together, so running reports per language is more difficult
Sample Setup
In this example, we’ll create a test within a message (in the editor) using conditional (if/else) statements in a message body. If the user’s set language is French or Italian we’ll present localized greetings; if neither, we can fall back to English.
{% if customer.language == "fr" %}
Bonjour!
{% elsif customer.language == "it" %}
Ciao!
{% else %}
Hello!
{% endif %}Note: Most people using this strategy have 2-5 languages they are managing messaging for. Also watch out for character limits in subject lines and body copy.
The per-automation method
Using this strategy, each language has its own automation.
Advantages:
- you can easily group messages sent in series (a few days from one another)
- open, click, and conversion stats are separate
- by adding a tag like [FR] in the automation name you can easily find all the automations targeted at a specific audience
Disadvantages:
- it increases the number of automations in your account
- if you need to make changes for multiple languages, this needs to be done automation-by-automation
Sample Setup
If your app is available in 3 languages (English, French and Italian), you might have 3 automations for each of the three languages:
- Welcome email - fr
- Welcome email - it
- Welcome email - en
Then you’d have 3 segments:
- “Language is French”
- “Language is Italian”
- “Language is English”
Those segments are then applied as Filters on the automations.
You might have the same trigger conditions for your automations, but the filters for language restrict who should get the message to French, Italian, or English speakers.