Як автоматизувати мультимовні email-розсилки з Google Sheets | Блог eSputnik

Ксенія Петріна

Email-маркетолог

Автоматизація мультимовних email-розсилок з Google Sheets

Як автоматизувати мультимовні email-розсилки з Google Sheets

62% маркетингових команд витрачають понад два тижні, щоб підготувати один промолист. Час потрібен на створення дизайну, написання контенту, тестування тощо. Значно складніше маркетологам у компаніях, які працюють на іноземних ринках або в країнах із декількома основними мовами спілкування. Тоді доводиться створювати копії одного повідомлення, але різними мовами. У такому разі без автоматизації не обійтися.

CDP eSputnik має функціональність, що дозволяє компаніям прискорити до 5 разів мультимовну комунікацію з клієнтами. Одним із методів автоматизації процесу на нашій платформі є підстановка даних із зовнішнього джерела. Для цього використовується інтеграція з Google Sheets.

Важливо

Щоб використовувати Google Sheets як зовнішнє джерело даних для розсилки мультимовних повідомлень, зверніться для активації цієї функціональності до служби підтримки eSputnik і надішліть листа на support@esputnik.com.

У eSputnik можна в одному повідомленні використовувати динамічні дані з кількох таблиць одночасно. У такий спосіб автоматично підтягується основний контент розсилки, а також ціни та валюти, актуальні для кожної з локалей, з якими працює ваша компанія. Про те, як це робиться на практиці, читайте у статті.

Автоматизуйте рутинні завдання для омніканальних розсилок

Як настроїти підстановку динамічного контенту в лист у eSputnik

Розглянемо автоматизацію багатомовних розсилок за допомогою Google Таблиць. Процес налаштування складається з кількох етапів.

1. Підготовка макета email-повідомлення будь-якою зручною мовою. Текст листа потрібно розбити на умовні фрази, наприклад:

  • заголовок,
  • основний текст 1,
  • кнопка,
  • основний текст 2 тощо.

В окрему фразу необхідно виділити тему листа.

Приклад розбивки тексту листа на окремі фрази

2. Створення джерела з даними — таблиці в Google Sheets. Кожен рядок відповідає мові, а кожен стовпчик — умовним фразам, на які розділено лист:

Таблиця в Google Sheets

Найменування локалей у файлі має відповідати значенням, які передаються в додатковому полі.

3. Підключення таблиці як зовнішнього джерела даних у налаштуваннях акаунта eSputnik.

Підключення джерела даних

4. Налаштування підстановки динамічного контенту в лист за допомогою бібліотеки Apache Velocity. Відкриваємо редактор коду та обираємо елемент , до якого треба додати цикл #foreach.

  1. Оголошуємо змінну, яка містить параметр мови. У нашому прикладі це поле Locale. Її код виглядає так: %DATA.LOCALE%


Значення цієї змінної можна дізнатися в системі у вкладці Налаштування → Додаткові поля:

Налаштування підстановки динамічного контенту до листа

Для оголошення змінної потрібно зробити такий запис:

<!--%DATA.LOCALE%-->
  1. Створюємо конструкцію, яка виконує такі функції:
  • перевіряє, що в полі DATA.LOCALE є значення, і воно не порожнє;
  • використовує знайдене значення мови в полі DATA.LOCALE для пошуку відповідного значення у Google-таблиці.
<!--#set($filtered=[])
#if($!data.get('DATA.LOCALE') and $!data.get('DATA.LOCALE')!='') — перевіряємо на наявність додаткового поля та непорожнього значення.
#set($local=$!item.get('DATA.LOCALE')) — якщо поле існує та його значення не порожнє, створюємо змінну local та отримуємо значення мови з додаткового поля.
#else
#set($local='en') — якщо поле існує, але воно порожнє, задаємо дефолтне значення мови.
#end
#foreach($!item in $!data.get('table_name')) — створюємо цикл, який вичитує вміст Google-таблиці.
#if($!item.get('local')==$local) — вказуємо, що потрібно знайти лише вміст, який включає значення мови додаткового поля.
$!filtered.add($!item) — отримуємо підсумковий відфільтрований масив з даними певної мови.
#end
#end-->

У коді листа пункти 1 і 2 виглядатимуть так:

Відфільтрований масив з даними певної мови

Розкриємо докладніше значення деяких змінних з описаного коду:

#foreach($!item in $!data.get('table_name')) — звертаємося до Google Sheets, де table_name — це назва джерела, створеного з таблиці:

Дані для шаблону April promo global

#if($!item.get('local')==$local) — шукаємо в Google-таблиці змінну local, де вказана локаль, та зіставляємо її зі значенням змінної $local (там, де ми отримали значення з додаткового поля #set($local=$!item.get('DATA.LOCALE'))):

Змінна local в Google-таблиці

  1. Створюємо фінальну конструкцію, яка виведе контент до листа:
!--#foreach($!i in [0..$!mathTool.sub($!filtered.size(),1)]) #if($!i%3==0) #if($!filtered.size()-$i==1) — запускаємо цикл за раніше відфільтрованим масивом.
#set($phrase1=$!filtered.get($!i).get('Phrase1')) — витягуємо значення для першої змінної, наприклад, заголовка.
#set($phrase2=$!filtered.get($!i).get('Phrase2')) — витягуємо значення для другої змінної, наприклад, тексту.
#set($phrase3=$!filtered.get($!i).get('Phrase3')) — витягуємо значення для третьої змінної, наприклад, кнопки.
-->
<!--#end#end#end--> — закриваємо цикл у кінці листа.

Зверніть увагу, що цикл повинен відкриватися на початку листа, а закриватися у кінці листа. Відкриття та закриття циклу має відбуватися на одному рівні ієрархії коду html.

Створюємо фінальну конструкцію, яка виведе контент до листа

Закриваємо цикл унизу листа

Розкриємо докладніше значення деяких змінних із коду вище:

#set($phrase1=$!filtered.get($!i).get('Phrase1')) — створюємо змінну $phrase1.

$!filtered.get($!i).get('Phrase1') — підставляємо змінну з таблиці, де міститься перша потрібна нам фраза:

Підстановка змінної з таблиці

Після цього $phrase1 вставляємо у потрібне місце у листі, де треба вивести вміст із таблиці.

Щоб візуально не нагромаджувати макет листа великою кількістю коду, можна в html-редакторі прописати необхідні значення за допомогою синтаксису присвоєння:

Прописуємо необхідні значення за допомогою синтаксису присвоєння

Якщо до версії листа треба додати різні зображення, у редакторі коду необхідно вставити Velocity-вираз у атрибут src.

Додавання зображення

Замість посилання на зображення слід зазначити:

$!filtered.get($!i).get('img'),

де 'Img' — назва стовпця, який містить посилання на певне зображення.

За допомогою синтаксису можна встановити різні умови виведення контенту. У нашому випадку відбувається перевірка атрибуту в полі “Локаль”, залежно від якого підставляється текст потрібною мовою:

Умови виведення контенту у листі

Такий email повністю складатиметься з динамічного контенту, тому макети для інших мов вам не знадобляться.

Висновок

За цією інструкцією маркетолог зміг самостійно налаштувати мультимовну розсилку з глобальною акцією на пів мільйона підписників із 23 країн. Для неї підготували 2 таблиці: одна для мов із написанням тексту зліва направо, друга — справа наліво.

Завдяки такому методу час підготовки розсилки скоротився з 24 до 12 годин. Також уникаються типові помилки, які трапляються під час ручної роботи з великою кількістю копій email і численними сегментами аудиторії.

Ви також хочете автоматизувати частину процесів, щоб працювати ефективніше? Тоді пишіть на info@esputnik.com, і наші фахівці з радістю підкажуть вам, які інструменти CDP eSputnik найкраще підійдуть для вашого бізнесу.

Special Request Inline

5.0 з 5 на основі 3 оцінок

Ксенія Петріна

Email-маркетолог

Коментарі 1

Александр 7 місяців тому

Дуже цекаво