«Здравствуйте, ! У вас 0 бонусов!» Как избежать досадных ошибок с динамическим контентом в рассылке
Пока все увлечены персонализацией в CRM-коммуникациях, в параллельной вселенной подписчикам прилетают пуши и письма с радостным уведомлением о нуле баллов на счёте, мужчины получают поздравления с 8 Марта, а счастливым обладателям iPhone 17 магазин на следующий день предлагает скидку на него.
Всё это результат невнимательной работы с сегментацией и с динамическим выводом данных в рассылках. Чтобы не терять доверие подписчиков на пустом месте, давайте разберём главные ошибки.
Бонусы Шрёдингера
Программы лояльности с бонусной системой — популярная вещь. Но если база не сегментирована или условия настроены некорректно, то сообщения о бонусах становятся источником головной боли, а не дополнительной выручки.
Емейл-рассылки и пуш-уведомления о нуле баллов на счёте стали уже классикой. Даже крупные бренды совершают эти ошибки.



По похожему принципу возникают и другие сообщения, которые вводят клиентов в ступор или даже демотивируют. Например, вот такими «успехами» ребёнка в учёбе, «доходом» или «возвратом» денег:



Как это исправить?
Такие проблемы возникают в двух случаях: выборка аудитории для рассылки настроена неправильно либо не настроена вовсе. Разберём обе ситуации.
1. Некорректные условия сегментации
Пример. Есть сегмент: пользователи, у которых заполнено поле «бонусы». Технически поле может быть заполнено нулём — это и приводит к отправке сообщения клиенту без бонусов.
Решение. Уточнить условие: пользователи, у которых поле «бонусы» заполнено и значение >0.
2. Отсутствие сегментации
Пример. Необходимо отправить рассылку по всей базе, используя динамический контент. Из-за отсутствия сегментации письмо получат и те клиенты, которым оно не предназначалось.
Решение. Добавить условия для динамического контента. Для пользователей с количеством бонусов, равным нулю (или ниже порогового значения), вместо текста с суммой вывести нейтральное или мотивационное сообщение.
Это можно сделать с помощью специальной разметки, которую использует для вывода динамического контента ваша платформа. Синтаксис у платформ разный.
Например, в Sendsay условное выражение будет выглядеть так:
[% IF anketa.custom.bonuses and anketa.custom.bonuses > 0 %]
Вы накопили [% anketa.custom.bonuses %]
[% ELSE %]
*Нейтральный или мотивационный текст
[% END %]В Mindbox — так:
@{if Recipient.CustomField.bonuses != null and Recipient.CustomField.bonuses > 0}
Вы накопили ${Recipient.CustomField.bonuses}
@{else}
*Нейтральный или мотивационный текст
@{end if}Необязательно, но лучше отследить
Если у вашей платформы есть возможность склонять числительные, то лучше делать это: у вас 1 бонус, 2 бонусА, 5 бонусОВ.
Пример из Mindbox:
${AppendForms(Recipient.CustomField.Bonuses, "бонус", "бонуса", "бонусов")}Если такой функции нет, то лучше составить текст так, чтобы он был грамматически правильным независимо от числа:
❌ У вас 21 бонусов
✔️ Ваш баланс бонусов: 21
Как выйти из неловкой ситуации с бонусами
Что делать, если ошибка уже случилась и сообщение с «нулевой радостью» ушло подписчикам? Первым делом — признать промах внутри команды и перепроверить все настройки на будущее:
Сорри-коммуникации в таких случаях обычно не делают. Да, это дезориентация клиента, которая может отразиться на его лояльности к бренду. Но какой-то грубой ошибки в такой коммуникации нет.
Валерия Семёнова
ведущий менеджер проектов EMAILMATRIX
А если бюджет позволяет, то стоит поработать с сегментом, получившим сообщение, и начислить им бонусы:
Как вариант — разово закинуть баллы с ограниченным сроком действия (сумма зависит от возможностей бюджета): «Заметили, что вашему счёту одиноко, — добавили туда Х баллов. Можете потратить до хх.хх» — и напомнить об условиях программы лояльности. Не все пойдут тратить, но кого-то это мотивирует попробовать.
Аделина Амирзянова
руководитель группы копирайтинга EMAILMATRIX
Где ещё могут быть ошибки
Ошибки с бонусами и другими числовыми значениями — лишь один из примеров. Вот ещё ситуации, где динамический контент ломается чаще всего.
Пустые значения
Распространённая ошибка — подстановка персональных данных без проверки на пустоту. Классический пример: «Здравствуйте, !» вместо «Здравствуйте, Анна!».

Подавляющее большинство платформ (Sendsay, Unisender, enKod и другие) умеют проверять, заполнено ли поле имени. Значительно реже встречается проверка на «стандартность» — то есть в поле указано реальное имя, а не пометки test, client или случайный набор символов.
Такая функция есть, к примеру, в Mindbox. Можно задать условие — если имя есть и оно стандартное, подставляем его, иначе просто пишем «Добрый день»:
@{if IsEmpty(Recipient.OnlyStandardFirstName)}Добрый день!
@{else} ${Recipient.OnlyStandardFirstName}, добрый день!
@{end if}
Если в вашей платформе проверки на «стандартность» нет, то рекомендую отказаться от имени в приветствии. Это самый безопасный способ. Лучше написать всем «Добрый день», чем рисковать и отправить «Добрый день, ?%#7» тому, кто ввёл случайные символы.
При этом пустыми могут быть не только имя или фамилия. В CRM-базах часто отсутствуют город, дата рождения, пол, любимая категория, модель устройства и другие параметры, которые используются в динамическом контенте. Для таких переменных также нужно заранее предусмотреть проверку и сценарий на случай, если значение отсутствует.
Рекомендации товаров
При отправке товарных подборок важно учитывать недавние покупки клиента. Иначе сообщение будет выглядеть формальным и потеряет ценность. Например, через месяц после приобретения ноутбука клиент получает письмо «Скидка 20% на гаджеты», среди которых есть купленная модель.
Как алгоритмы решают эту задачу:
В современных платформах (Mailganer, Mindbox, Sendsay, enKod, RetailCRM и другие) алгоритмы рекомендаций изначально умеют исключать из подборки товары, которые клиент недавно приобрёл. Это встроенная логика: система анализирует историю покупок и не предлагает то, что у пользователя уже есть.
Для вывода таких рекомендаций в письме используются циклы — конструкции, которые повторяют определённый блок кода несколько раз, перебирая элементы коллекции. Благодаря этому в письмо попадают только релевантные позиции.
В Mindbox это выглядит так:

А это в Sendsay:

Глубина настройки может различаться: одни системы позволяют исключать конкретный купленный товар, другие — только категорию.
Если алгоритмов в платформе нет, можно настроить фильтрацию вручную — через сегментацию. Например, исключить из рассылки всех, кто покупал товары из нужной категории за последние 30 дней.
Ещё один вариант — поменять логику предложения. Например, предложить аксессуары, сопутствующие товары или отправить призыв к повторной покупке через разумный интервал времени.
Сопутствующие товары также определяются алгоритмами и выводятся с помощью циклов.
Ниже — пример цикла в Mindbox с названием товара и ценой, без какой-либо стилизации:
@{for item in Recipient.Recommendations.Personalnierekomendatsii.Take(6)}
Название: ${item.Name}
Цена: ${item.Price}
@{end for}
Пол клиента
Пол клиента может быть не только мужским или женским, но и незаполненным. Не учитывать отсутствие данных — значит рисковать некорректно обратиться к клиенту.
Формат возможной ошибки зависит от того, как настроена проверка пола.
Например, при условии: если пол М, выводить «Имя, вы бог», иначе выводить «Имя, вы богиня» — для всех, у кого пол не указан, будет использоваться второй вариант. А получателем легко может оказаться мужчина.

Другая разновидность ошибки — вообще не учитывать отсутствие заполненного поля. В этом случае во фразе появится пропуск.
✔️ Наталья, мы рады, что ты довольна!
✔️ Андрей, мы рады, что ты доволен!
❌ Андрей, мы рады, что ты_____!
Что делать? При использовании гендерных формулировок лучше всегда добавлять нейтральный вариант — на случай, если данных о поле в базе нет.
В Mindbox это будет выглядеть так:
@{if IsEmpty(Recipient.OnlyStandardFirstName) or Recipient.Sex.Unknown}
Привет, участник!
@{else if Recipient.Sex.IsMale}
Привет, ${Recipient.OnlyStandardFirstName}, ты классный!
@{else if Recipient.Sex.IsFemale}
Привет, ${Recipient.OnlyStandardFirstName}, ты классная!
@{end if}
Сроки акции
Отдельный источник негатива — письма с истекшими акциями. Если распродажа длится один день, а отправка идёт ещё несколько суток, часть клиентов увидит предложение, которое уже недействительно.
Технически это происходит потому, что большинство платформ повторяют попытки доставить письма несколько дней и отменяют отправку конкретному получателю только спустя заданный срок.
Поэтому для краткосрочных акций важно:
ограничить окно отправки
Пример ограничения сценария в Mindbox (источник)настроить автоматическую отмену писем после окончания акции
Вывод
Динамический контент делает коммуникации точнее, но одновременно увеличивает вероятность и цену ошибки. Нулевые бонусы, пустые имена, запоздалые предложения — всё это возникает из-за невнимательной работы с данными и условиями сегментации.
Поэтому главный этап персонализации — проверка логики сценария. Если заранее продумать, какие значения могут попасть в поля и какой текст увидит пользователь, большинство неловких коммуникаций можно будет предотвратить.
Над материалом работала Дарья Головина













