Loyalty Platform — руководство пользователя

Шаблоны

Содержание раздела
  1. Зачем это бизнесу
  2. Список шаблонов
  3. Создание шаблона
  4. Email-шаблон: текст или HTML
  5. Push-шаблон
  6. SMS-шаблон
  7. Telegram-шаблон
  8. Редактирование и удаление
  9. Тексты, которые задаёт платформа
  10. Шаблоны уведомлений о бонусах
  11. Кто что может

← Оглавление

Раздел «Шаблоны» — библиотека заготовок сообщений для клиентских коммуникаций: писем, SMS, push-уведомлений и сообщений в мессенджеры. Шаблон пишется один раз, а дальше используется многократно — в массовых рассылках раздела «Кампании», в автоматических сценариях (узел «Отправить сообщение» в «Цепочках» берёт текст именно отсюда) и в «Уведомлениях о бонусах». Главная сила шаблонов — подстановки: в текст вставляются переменные вида {{customer.first_name}}, и каждый клиент получает персональное сообщение со своим именем, а не безликую массовую рассылку.

Письма, push-уведомления и SMS отправляются по-настоящему — после того как администратор организации подключит почтовый сервер, Firebase или аккаунт у SMS-провайдера в разделе «Каналы» (см. «Подключение email (SMTP)», «Подключение push-уведомлений» и «Подключение SMS»). Пока канал не подключён, сообщения завершаются ошибкой «Email не подключён» или «SMS не подключены». Если SMS-провайдер модерирует тексты (так у Eskiz.uz), текст каждого SMS-шаблона нужно утвердить у провайдера — неутверждённый текст он не отправит (см. «SMS-шаблон»).

Сообщения в Telegram уходят через ботов организации — после того как администратор организации подключит бота на странице «Каналы» (см. «Telegram»), и только клиентам, которые нажали в боте «Старт». У Telegram-шаблона своя разметка и предел 4096 символов (см. «Telegram-шаблон»).

Сообщения в Viber и WhatsApp завершаются ошибкой «Нет адреса получателя»: адреса этих мессенджеров ещё не собираются.

Зачем это бизнесу#

  • Пишем один раз — используем везде. Текст «Приглашение на дегустацию» готовится один раз и подключается и к разовой рассылке, и к автоматической цепочке. Правка текста в одном месте — и все сценарии используют свежую версию.
  • Персонализация без ручного труда. Переменные подставляют имя, фамилию и контакты клиента автоматически: «С днём рождения, Анна!» вместо «Уважаемый клиент». Персональные письма читают заметно охотнее.
  • Единый тон коммуникаций. Все сообщения компании хранятся в одном разделе — легко следить, чтобы клиент получал выверенные тексты, а не импровизацию каждого сотрудника.
  • Разделение труда. Маркетолог готовит и вычитывает тексты заранее, а запуск рассылки потом занимает минуты: шаблон уже готов и проверен.

Список шаблонов#

Список шаблонов сообщений
Список шаблонов сообщений

Заголовок страницы — «Шаблоны сообщений», подзаголовок — «Управление шаблонами для email, SMS и push-уведомлений». Справа — кнопка «Создать шаблон», над таблицей — фильтр по каналу и поле поиска по названию (без учёта регистра).

В таблице — колонки Название, Канал (Email, SMS, Push, Viber, Telegram, WhatsApp), Статус (Активен / Неактивен), Обновлено и действия: карандаш — редактировать, корзина — удалить. Фильтр по каналу предлагает те же шесть каналов. На скриншоте три шаблона демо-организации: неактивный черновик «Черновик: акция ко Дню кофе» и два активных — email «Приглашение VIP на дегустацию» и «SMS: напоминание о дегустации».

Создание шаблона#

Форма создания шаблона
Форма создания шаблона

Форма проста: Название (для себя, клиент его не увидит), Канал (Email, SMS, Push, Viber, Telegram или WhatsApp; при выборе Email появляются обязательная «Тема» письма и переключатель «Текст | HTML», см. «Email-шаблон: текст или HTML», при выборе Push — поля уведомления и превью, см. «Push-шаблон»; у SMS — текст со счётчиком частей и текстом для модерации, см. «SMS-шаблон»; у Telegram — текст с разметкой, счётчиком 4096 и превью, см. «Telegram-шаблон»; у Viber и WhatsApp — только текст) и Содержимое — сам текст сообщения.

Переменные: сообщение подстраивается под клиента#

В текст можно вставлять подстановки вида {{переменная}} — при отправке они заменяются на данные конкретного получателя. Под полем содержимого расположен блок «Доступные переменные» с тегами системных переменных: клик по тегу (или Enter либо пробел, если тег выбран клавишей Tab) вставляет переменную туда, где стоит курсор, набирать её вручную не нужно. При наведении на тег — подсказка: что это за переменная и где платформа её заполняет.

Пример со скриншота: текст «С днём рождения, {{customer.first_name}}! Дарим вам двойные бонусы на все покупки сегодня» превратится для клиентки Анны в «С днём рождения, Анна! Дарим вам двойные бонусы на все покупки сегодня».

Переменные бывают двух видов:

  • Системные переменные — их значения платформа подставляет сама. Но не каждую и не везде: это зависит от того, откуда уходит сообщение. Подсказка над тегами напоминает: «Сервер заполняет не каждую переменную везде: где подставляется переменная, сказано в её подсказке».
  • Собственные переменные — любые придуманные вами, например {{event_date}} или {{event_place}}. Их значения вы зададите позже — в форме кампании или в узле цепочки: «12 сентября, 19:00», «ул. Кофейная, 1». Один шаблон приглашения — сколько угодно мероприятий.
Системная переменная Что подставится Цепочки Кампании Уведомления о бонусах
customer.first_name, customer.last_name, customer.email, customer.phone Имя, фамилия, email, телефон клиента всегда да все виды
customer.card_number Номер карты лояльности всегда да все виды
tier.name Уровень лояльности всегда да все виды
bonus.balance Баланс бонусов: после операции, если сообщение о ней, иначе текущий всегда да все виды
bonus.amount Сумма бонусной операции «Бонусы начислены», «Бонусы списаны» — все виды
bonus.accrued Начислено бонусов «Бонусы начислены» — все виды
bonus.spent Списано бонусов «Бонусы списаны» — все виды
bonus.expired Сгорело бонусов — — сгорание
bonus.cancelled, bonus.returned Отменено начисленных и возвращено списанных при возврате заказа — — возврат заказа
order.number, order.total Номер и сумма заказа — только если операция связана с заказом «Заказ подтверждён», «Заказ возвращён», «Бонусы начислены», «Бонусы списаны» — начисление, списание, возврат заказа
promo.code Промокод, выданный цепочкой всегда (после действия «Выдать промокод») — —
tenant.name Название организации всегда да все виды
unsubscribe.url Ссылка для отписки от писем — только в email-шаблонах всегда да все виды
telegram.link Персональная ссылка на Telegram-бот: открыв её, клиент подключит Telegram к своему профилю. Пусто, если у организации нет бота в режиме перехвата обновлений всегда да все виды

В колонке «Цепочки» — события триггера цепочки, при которых переменная заполняется. telegram.link нужна в SMS, письмах и push — в самом Telegram она бессмысленна: клиент уже подключён. Ссылка у каждого сообщения своя, действует 30 дней и в журнале сообщений не показывается (см. «Как клиенты подключаются»). unsubscribe.url справочник предлагает только у email-шаблона, с подсказкой «Если не вставить, подвал со ссылкой добавится автоматически» (см. «Ссылка отписки»). Суммы приходят в формате организации: «1 250», «12,50»; целые — без дробной части («500», а не «500.0»). В SMS суммы пишутся без пробела между разрядами — «1250», «12,50»: так текст совпадает с образцом, утверждённым у SMS-провайдера, а пробел в сумме мешает пройти модерацию. Правило одно для всех SMS-провайдеров.

«Название организации» ({{tenant.name}}) платформа подставляет сама — в рассылки, цепочки, уведомления о бонусах и SMS с кодом входа в приложение. В текст попадает название из карточки организации: без фигурных скобок и невидимых символов, не длиннее 30 символов (длинное название обрезается). Название организации меняет Администратор платформы; новое название появляется в сообщениях в течение минуты. Переименование меняет текст каждого SMS с этой переменной: если SMS-провайдер модерирует тексты (так у Eskiz.uz), такие тексты нужно утвердить у него заново — до этого SMS не уходят, в том числе коды входа в приложение.

Если для переменной не нашлось значения, вместо неё подставится пустота — без ошибки и предупреждения. Совет: проверяйте имена переменных внимательно, опечатка {{custmer.first_name}} молча оставит в письме дырку на месте имени. Так же пустым останется место системной переменной там, где платформа её не заполняет, — например, {{order.number}} в кампании по сегменту. В форме кампании и в узле цепочки такая переменная получает поле для ввода с подсказкой «Здесь сервер её не заполняет — задайте значение».

Email-шаблон: текст или HTML#

У письма три части: тема, формат и содержимое.

Тема обязательна. Это одна строка: переводы строк превращаются в пробел. После подстановки переменных тема не длиннее 255 символов — при проверке каждая переменная считается одним символом, эмодзи и буква с ударением — тоже одним; вместе с фигурными скобками переменных тема не длиннее 500 символов. Если после подстановки тема окажется пустой, письмо не отправится — в журнале будет «Письмо не собралось: пустая тема или ошибка шаблона».

Формат — переключатель «Текст | HTML»:

Формат Что вводится Ограничения
Текст Обычный текст, как у SMS. HTML-версию письма сервис соберёт сам: пустая строка — новый абзац, ссылки https://… становятся кликабельными До 50 000 символов
HTML Готовая вёрстка письма в поле «HTML-код письма» — моноширинным шрифтом, без проверки орфографии. Визуального редактора нет: сверстайте письмо в редакторе писем или у дизайнера и вставьте код целиком До 100 КБ: Gmail обрезает письма больше 102 КБ. Нельзя script, noscript, iframe, object, embed, form, base, SVG-анимации animate и set, <meta http-equiv>, атрибуты-обработчики on… (onclick, onload), ссылки javascript: и vbscript:; вложенность тегов — не глубже 100 уровней

В HTML переменные ставятся в текст или в значения атрибутов в кавычках: <p>Здравствуйте, {{customer.first_name}}!</p>, <a href="https://acme.uz/promo?code={{promo.code}}">. Переменная внутри тега или в атрибуте без кавычек (<a href={{link}}>) не сохранится. Значения переменных в HTML экранируются: имя клиента со знаками < или & не сломает вёрстку.

Текстовая версия — свёрнутый блок под HTML-кодом. Письмо уходит в двух вариантах, HTML и текст: почтовые программы без HTML и спам-фильтры смотрят на текстовую версию. Если блок пуст, текстовая версия соберётся из HTML — подсказка так и говорит: «Если пусто — соберётся из HTML». Абзацы и списки станут строками, ссылки — «текст (адрес)». До 50 000 символов, переменные можно.

Переменная из «Доступных переменных» вставляется туда, где стоит курсор: в тему, текст или текстовую версию.

Ссылка отписки#

В каждом письме кампании, цепочки и уведомления о бонусах есть ссылка, по которой клиент отказывается от писем организации. Её адрес — переменная {{unsubscribe.url}}, она есть только у email-шаблонов. Если её нет в шаблоне, подвал добавится сам — «Вы получили это письмо от «Acme». Отписаться» на языке организации (русский, узбекский или английский). Своя ссылка в вёрстке, например <a href="{{unsubscribe.url}}">Отказаться от рассылки</a>, заменяет подвал в HTML-версии; в текстовой версии подвал появится, если ссылки нет и в ней. Кто отписался, писем организации больше не получает. Реквизиты организации (юрлицо, адрес) подвал не содержит — при необходимости напишите их в шаблоне.

Превью письма#

На странице редактирования email-шаблона под формой — блок «Превью письма»: письмо так, как его получит клиент, — с подставленными значениями, на языке организации и с подвалом отписки (ссылка в превью — образец, она ничего не меняет).

  • Значения переменных — поле на каждую переменную шаблона. Системные заполнены примерами («Анна», «1 500»), собственные пустые — впишите значения и нажмите «Обновить превью». У названия организации поля нет: в превью подставляется настоящее название.
  • Над письмом — тема одной строкой, вкладки «Письмо» и «Текстовая версия» и ширина письма: 600 px (компьютер) или 360 px (телефон).
  • Письмо показывается в изолированной рамке: скрипты в нём не выполняются, формы не отправляются, вёрстка не может повлиять на админку.
  • Превью строится по сохранённому шаблону. Если в форме есть несохранённые изменения, над превью появляется подсказка «Превью и тестовое письмо строятся по сохранённому шаблону. Сохраните изменения, чтобы проверить их».
  • Если письмо не собирается, вместо него — причина, например «Тема письма пустая после подстановки переменных — заполните тему или значения переменных».

При создании шаблона превью нет — оно появится на странице редактирования после сохранения.

Тестовое письмо#

Кнопка «Отправить тест на почту» рядом с «Обновить превью» отправляет сохранённый шаблон со значениями переменных превью — на ваш адрес или любой другой. Открывается то же окно «Тестовое письмо», что в карточке email на странице «Каналы» (см. «Тестовое письмо»). Кнопка активна, только когда в форме нет несохранённых изменений: иначе ушло бы не то, что на экране. Тестовые письма уходят сразу, мимо очереди, и не попадают в журнал сообщений; отправлять можно не больше 5 в минуту на организацию. Кнопку видят Администратор организации и Администратор платформы, Маркетолог — нет.

Ошибки при сохранении#

Тему, размер текста и вёрстки форма проверяет сразу. Запрещённую разметку и место переменных в HTML проверяет сервер при сохранении — ошибка появляется под полем: «Нельзя script, noscript, iframe, object, embed, form, base, animate и set», «Нельзя атрибуты-обработчики on* (onclick, onload и т. п.)», «Переменные можно ставить только в текст или в значения атрибутов в кавычках (href="…")», «Слишком глубокая вложенность тегов — не больше 100 уровней», «HTML больше 100 КБ — Gmail обрежет такое письмо». Ошибка текстовой версии сама раскрывает её блок.

Email-шаблоны, сохранённые раньше без темы, при следующем сохранении попросят тему.

Push-шаблон#

При выборе канала Push форма меняется: слева — поля уведомления, справа — превью «Как увидит клиент».

Поле Что это Ограничения
Заголовок Жирная первая строка уведомления Рекомендуется до 50 символов, счётчик под полем. Длиннее 100 после подстановки переменных — обрежется с «…»; переводы строк заменяются пробелом
Текст Основной текст Обязателен. Рекомендуется до 150 символов — столько обычно видно на экране блокировки; длиннее 1 000 — обрежется
Картинка Ссылка на картинку в уведомлении Ссылка https:// на JPEG или PNG до 1 МБ, без переменных
Ссылка при нажатии Куда приложение откроет клиента по нажатию, например acme://bonuses Адрес со схемой приложения, до 1 024 символов. Переменные можно: acme://promo/{{promo.code}} — значения кодируются для адреса

Свёрнутый блок «Дополнительно»:

Поле Что это
Канал Android Канал уведомлений Android, заданный в приложении (латиница, цифры, _, ., -, до 64 символов). Пусто — канал по умолчанию из приложения
Звук Включён по умолчанию
Приоритет «Высокий — сразу» (по умолчанию) или «Обычный — с учётом энергосбережения»
Время жизни 1 час, 6 часов, 24 часа (по умолчанию), 3 дня или 7 дней: если телефон был недоступен дольше, уведомление не придёт
Ключ схлопывания Новое уведомление с тем же ключом заменит прежнее на экране, а не добавится к нему — удобно для «ваш баланс изменился». До 64 символов, переменные можно
Дополнительные данные До 10 пар «ключ — значение», которые приложение получит вместе с уведомлением, например screen = promo. Ключ — латиница в нижнем регистре, цифры и _, начинается с буквы, до 40 символов; нельзя from, notification, message_type, collapse_key и ключи, начинающиеся с loyalty_, google, gcm. Значение — до 256 символов, переменные можно

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

Превью показывает уведомление на Android и на iPhone с примерами вместо системных переменных («Анна» вместо имени клиента, «1 500» вместо баланса, «Acme» вместо названия организации); собственные переменные остаются как есть, в фигурных скобках. Картинка в превью показывается, если ссылка начинается с https://.

Ошибки в полях подсвечиваются ещё до сохранения. Уведомление целиком (заголовок, текст и дополнительные данные после подстановки переменных) должно укладываться в 4 КБ — иначе сообщение не отправится, а в журнале будет причина «Уведомление после подстановки переменных больше 4 КБ».

Как приложение показывает push и открывает ссылку, решают разработчики приложения (см. «Мобильное приложение и SDK»). Подставить переменную в шаблон и посмотреть результат на телефоне можно тестовым push из карточки клиента (см. «Клиенты»).

SMS-шаблон#

У SMS только текст: до 1 000 символов вместе с переменными и не больше 6 частей (у SMS-провайдера предел бывает меньше). SMS уходят через аккаунт организации у SMS-провайдера (см. «Подключение SMS»), и каждая часть длинного SMS оплачивается отдельно, поэтому под полем текста — счётчик.

Длина, части и кодировка#

Сколько символов помещается в одну часть, зависит от кодировки:

Кодировка Когда Одна часть Часть длинного SMS
Латиница (GSM-7) Все символы — латинские буквы, цифры, основная пунктуация, пробел, перевод строки и ещё несколько знаков; ^ { } \ [ ~ ] | € считаются за два до 160 знаков 153 знака
Юникод (UCS-2) Есть хотя бы один другой символ: кириллица, типографские кавычки «», тире —, узбекские oʻ и gʻ с типографским апострофом (ʻ, ‘, ’), эмодзи (за два) до 70 знаков 67 знаков

Один «неудобный» символ переводит весь текст в Юникод: узбекский текст на латинице с ‘ вместо обычного апострофа ' получается вдвое-втрое дороже. Суммы в SMS приходят без пробела между разрядами («1250») и кодировку не меняют; неразрывные пробелы из других значений переменных платформа заменяет обычным пробелом, так что текст из-за них в Юникод не переходит.

Счётчик под полем:

  • «64 символа · латиница, до 160 знаков в SMS · 1 SMS из 6» — число частей по правилу сервера: каждая переменная считается одним символом;
  • «С примерами значений: 2 SMS» — если в тексте есть переменные: сколько частей выйдет с типичными значениями («Анна», «1500» — суммы в SMS без пробела между разрядами; название организации — «Acme»). Реальное число частей зависит от данных клиента и длины названия организации;
  • «Юникод из-за символов: ‘ « »» — какие символы перевели текст в Юникод, через пробел; у кириллицы — «Юникод из-за букв вне латиницы», у кириллицы вместе с такими символами — «Юникод из-за букв вне латиницы и символов: …»;
  • «Заменить типографские символы» — появляется, если замена переведёт текст в латиницу: ‘ ’ ʻ ʼ и подобные апострофы → ', кавычки « » „ “ ” → ", тире — – → -, … → ..., особые пробелы → обычный пробел. Текст в поле меняется — сохраните шаблон;
  • «Длинное SMS уходит частями по 153 знака, каждая часть оплачивается» (67 — у Юникода);
  • красным — «Больше 6 SMS — сократите текст», «Длиннее 1 000 символов — сократите текст»;
  • если у подключённого SMS-провайдера предел частей меньше 6 — строка «У … предел — N SMS: длиннее не уйдёт», и счётчик считает «из N» (у Eskiz.uz предел — 6, строки нет).

Счётчик — оценка: число частей и стоимость считает SMS-провайдер. При сохранении шаблон длиннее 1 000 символов или длиннее 6 частей не сохранится: «Текст длиннее 1 000 символов», «Больше 6 SMS, даже если каждая переменная — один символ». SMS, которое после подстановки значений клиента вышло длиннее 6 частей (или длиннее предела провайдера), не отправляется — ошибка «SMS после подстановки переменных длиннее 6 частей».

Текст для модерации#

Если подключённый SMS-провайдер модерирует тексты (так у Eskiz.uz, см. «Eskiz.uz: модерация текстов»), он отправляет только утверждённые тексты. Тогда под счётчиком — свёрнутый блок «Текст для модерации»: подсказка провайдера (у Eskiz — «Eskiz.uz отправляет только утверждённые тексты. Отправьте этот текст на модерацию в кабинете my.eskiz.uz («Смс» → «Мои тексты»). Любое изменение текста — новая модерация»), текст шаблона с примерами вместо переменных («Переменные заменены примерами значений»; код входа {{auth.code}} — «123456»), кнопка «Скопировать» и ссылка «Как пройти модерацию». Переменные без примера перечислены строкой «Нет примеров для переменных … — замените их вручную». Блок работает и до сохранения шаблона. Если SMS не подключены или провайдер тексты не модерирует, блока нет.

Название организации в тексте для модерации — настоящее. Выдуманное название провайдеру отправлять нельзя, поэтому {{tenant.name}} блок примером не заменяет. У сохранённого шаблона, пока текст в форме не изменён, раскрытый блок загружает текст с настоящим названием организации — его и копируйте. Пока шаблон не сохранён, текст в форме изменён или текст с названием не загрузился, {{tenant.name}} остаётся в тексте как есть, а под ним — пояснение «Название организации подставится при отправке. Сохраните шаблон — здесь появится текст с названием».

Любая правка текста — даже одного символа — требует новой модерации: правьте утверждённый шаблон, только когда новый текст уже утверждён у провайдера.

Превью SMS#

На странице редактирования SMS-шаблона под формой — блок «Превью SMS»: текст так, как его получит клиент, с подставленными значениями.

  • Значения переменных — поле на каждую переменную шаблона. Системные заполнены примерами («Анна», «1500» — суммы без пробела между разрядами, как в SMS; код входа — «123456»), собственные пустые — впишите значения и нажмите «Обновить превью». У названия организации поля нет: в превью подставляется настоящее название, как при отправке.
  • Под текстом — «1 SMS · Юникод (UCS-2) · длина 51»: число частей и кодировка, как их посчитает платформа при отправке.
  • Если SMS не собирается, вместо него — причина: «Текст SMS пустой после подстановки переменных — заполните значения переменных» или «С этими значениями переменных SMS длиннее 6 частей — SMS не уйдёт».
  • Превью строится по сохранённому шаблону: при несохранённых изменениях над ним — «Превью и тестовое SMS строятся по сохранённому шаблону. Сохраните изменения, чтобы проверить их».

Тестовое SMS по шаблону#

Кнопка «Отправить тест на телефон» рядом с «Обновить превью» отправляет сохранённый шаблон со значениями переменных превью на номер, который вы введёте (по правилам SMS-провайдера, у Eskiz — номер Узбекистана). Открывается окно «Тестовое SMS» — то же, что в карточке SMS на странице «Каналы» (см. «Тестовое SMS»). Так до рассылки проверяется модерация: неутверждённый текст вернётся с причиной «Текст не прошёл модерацию Eskiz.uz» (с названием подключённого провайдера).

Кнопка неактивна с подсказкой, пока в форме есть несохранённые изменения («Сначала сохраните изменения: отправляется сохранённый шаблон») или SMS не подключены («Подключите SMS на странице «Каналы»»). Тестовое SMS платное, уходит сразу, мимо очереди, и не попадает в журнал сообщений; не больше 5 в минуту на организацию. Кнопку видят Администратор организации и Администратор платформы, Маркетолог — нет.

Telegram-шаблон#

У Telegram только текст — темы нет. Сообщение уходит через бота организации (см. «Telegram»); в тексте можно использовать разметку Telegram — часть тегов HTML. Подсказка в поле: <b>{{customer.first_name}}</b>, начислено {{bonus.accrued}} бонусов. Баланс: {{bonus.balance}}.

Разметка#

Свёрнутый блок «Разметка Telegram» под полем текста напоминает: «Telegram поддерживает часть тегов HTML. Другие теги форма не примет».

Тег Что даёт
<b>…</b> (или <strong>) Жирный
<i>…</i> (или <em>) Курсив
<u>…</u> (или <ins>) Подчёркнутый
<s>…</s> (или <strike>, <del>) Зачёркнутый
<tg-spoiler>…</tg-spoiler> (или <span class="tg-spoiler">) Скрытый текст: клиент открывает его нажатием
<a href="https://…">…</a> Ссылка: адрес начинается с http://, https:// или tg://; в адресе можно использовать переменные — https://acme.uz/p/{{promo.code}}
<code>…</code> Моноширинный текст в строке — удобно для промокода: в Telegram он копируется нажатием
<pre>…</pre> Блок моноширинного текста; внутри — только текст
<blockquote>…</blockquote> Цитата
<blockquote expandable>…</blockquote> Свёрнутая цитата: клиент разворачивает её сам
  • Новая строка — переводом строки, без тегов: <br>, <p>, <div> Telegram не знает.
  • «Символы < > & писать можно — платформа сама их экранирует»: «Скидка 10% & подарок» и «< 5 минут» уйдут как есть.
  • «Значения переменных не ломают разметку: их символы < > & тоже экранируются» — имя клиента со знаком < не испортит сообщение.
  • Переменные — только в тексте и в адресе ссылки. В имени тега и в других атрибутах переменная не сохранится.
  • Если адрес ссылки целиком взят из переменной и при отправке не начинается с http://, https:// или tg://, ссылка уйдёт обычным текстом.

Ошибки разметки#

Форма разбирает текст на ходу и показывает под полем первую ошибку — с тегом и номером символа, где она: «Telegram не поддерживает тег <div> (символ 15)», «Тег <b> не закрыт», «Закрывающий тег </i> (символ 40) не совпадает с открытым», «Telegram не поддерживает атрибут style в этом теге (символ 3)», «Тег <b> (символ 12) внутри <code> или <pre> не допускается», «У ссылки (символ 1) нет адреса или он начинается не с http://, https://, tg://», «Переменная в теге (символ 10): переменные допустимы только в адресе ссылки», «Тег записан неверно (символ 5): значения атрибутов — в двойных кавычках, тег заканчивается на >». До нажатия «Сохранить» это подсказка, после — ошибка: шаблон с ошибкой разметки не сохраняется. Те же правила сервер проверяет при сохранении.

Длина: 4096 символов#

Telegram принимает сообщение не длиннее 4096 символов видимого текста — без тегов, с раскрытыми переменными. Эмодзи и некоторые редкие символы Telegram считает за два. Под полем — счётчик:

  • «312 из 4096 символов без переменных» — по этому числу шаблон сохраняется: текст без переменных длиннее 4096 символов не сохранится («Текст без переменных длиннее 4096 символов»). Вместе с разметкой шаблон — не длиннее 10 000 символов;
  • «≈ 340 из 4096 с примерами значений переменных» — если в тексте есть переменные: длина с типичными значениями («Анна», «1 500»);
  • «С такими значениями сообщение длиннее 4096 символов и не уйдёт: сократите текст» — сохранить можно, но сообщение, которое у клиента выйдет длиннее, не отправится: ошибка «Текст длиннее 4096 символов».

Превью Telegram#

На странице редактирования Telegram-шаблона под формой — блок «Превью Telegram»: сообщение «пузырём», как его увидит клиент, с разметкой и подставленными значениями.

  • Значения переменных — поле на каждую переменную шаблона; системные заполнены примерами. Поменяйте значения и нажмите «Обновить превью». У названия организации поля нет — подставляется настоящее.
  • Ссылки http:// и https:// в превью открываются в новой вкладке, tg:// показываются текстом; скрытый текст открывается щелчком («Скрытый текст — нажмите, чтобы показать»), свёрнутая цитата — кнопкой «Развернуть».
  • Под пузырём — «Длина текста: N из 4096».
  • Если сообщение не собирается, вместо пузыря — причина: «С этими значениями переменных текст длиннее 4096 символов — сообщение не уйдёт» или «С этими значениями переменных в сообщении нет видимого текста — Telegram его не примет».
  • Превью строится по сохранённому шаблону: при несохранённых изменениях над ним — «Превью строится по сохранённому шаблону. Сохраните изменения, чтобы проверить их».

Кнопки тестовой отправки на странице шаблона нет: сообщение в Telegram уходит конкретному клиенту, у которого есть чат с ботом. Проверить шаблон в Telegram можно кнопкой «Отправить тест» в разделе «Telegram» карточки клиента — например, своей карточки (см. «Тестовое сообщение»).

Редактирование и удаление#

Редактирование открывается карандашом в списке: можно менять название, тему и текст, у email-шаблона — формат и текстовую версию, у push-шаблона — все его поля. Канал сменить нельзя — если email-шаблон нужно превратить в SMS, создайте новый шаблон. Изменения push-шаблона действуют на сообщения, которые встанут в очередь после сохранения. Email-, SMS- и Telegram-шаблоны, наоборот, собираются в момент отправки: правка действует и на сообщения, которые уже стоят в очереди, — например, на ещё не отправленную часть идущей рассылки (не позже чем через 30 секунд после сохранения). Не меняйте смысл письма посреди большой рассылки, а текст SMS — пока новый текст не утверждён у SMS-провайдера, если он модерирует тексты: неутверждённый текст провайдер не отправит.

Удаление — мягкое: по клику на корзину шаблон не исчезает, а переходит в статус «Неактивен» и остаётся в списке. Данные не теряются, историю всегда можно поднять.

Шаблон включённого уведомления удалить нельзя. Если шаблон выбран в канале включённого уведомления о бонусах, удаление не выполняется, а над таблицей появляется предупреждение: «Шаблон «…» используется в уведомлении «Начисление бонусов»» и «Чтобы удалить шаблон, выберите в уведомлении другой шаблон или выключите уведомление» со ссылкой «Открыть уведомления» (у тех, кому доступен раздел «Уведомления»). Предупреждение закрывается крестиком. Выключенное уведомление шаблон не держит.

Тексты, которые задаёт платформа#

Два вида шаблонов появляются у организации с готовым текстом: шаблон SMS с кодом входа в приложение и шаблоны уведомлений о бонусах, созданные кнопкой «Создать шаблон». Этот текст — копия текста по умолчанию, который ведёт Администратор платформы, на языке организации (настройка «Язык», см. «Основные настройки»; текста на этом языке нет — русский). После создания это обычный шаблон организации: его можно править, и правка платформой текста по умолчанию его не перепишет. Исключение — администратор платформы может отдельно обновить текст у организаций, которые свою копию не меняли; ваши правки при этом не трогаются.

Шаблон кода входа — system.app-login-code, канал SMS. Он появляется сам при первом запросе кода из мобильного приложения или сайта организации (см. «Мобильное приложение и SDK»), его текст — то, что получает клиент с кодом: Код для входа в приложение {{tenant.name}}: {{auth.code}}. Никому не сообщайте.. Текст можно менять — не убирайте только {{auth.code}}: без неё клиент получит SMS без кода. Шаблон можно и переименовать: платформа находит его не по названию. Не удаляйте его: удалённый (неактивный) шаблон останавливает вход по SMS-коду — приложение получает ошибку «доставка SMS недоступна», а вернуть шаблон в работу из админки нельзя (только через поддержку платформы).

Шаблоны уведомлений о бонусах#

Шаблоны для «Уведомлений о бонусах» — обычные шаблоны этого раздела. Проще всего создать их кнопкой «Создать шаблон» в карточке уведомления: появится шаблон нужного канала с текстом платформы, например «Уведомление: начисление бонусов (PUSH)» с заголовком «Бонусы начислены» и текстом «Начислено бонусов: {{bonus.accrued}}. Баланс: {{bonus.balance}}». Его можно открыть здесь и поправить текст — например, написать «баллы» вместо «бонусов». Шаблоны для уведомлений можно писать и с нуля: в карточке уведомления в выборе шаблона видны все активные шаблоны канала. В SMS-шаблоне по умолчанию узбекский текст написан с обычным апострофом (bo'yicha, o'tgan), чтобы SMS оставалось латиницей и укладывалось в одну часть; текст SMS-шаблона уведомления, как любой другой, нужно утвердить у SMS-провайдера, если он модерирует тексты.

Для уведомлений пригодятся и Telegram-шаблоны: «Создать шаблон» у строки Telegram копирует текст платформы без разметки — добавьте разметку сами, если нужно (см. «Telegram-шаблон»). Шаблоны Viber и WhatsApp создать можно, но отправлять их пока некуда (адреса этих мессенджеров не собираются), и в узле цепочки «Отправить сообщение» они не предлагаются.

Кто что может#

Роль Доступ к разделу
Администратор платформы, Администратор организации, Маркетолог (MANAGER) Создание, редактирование, удаление, превью письма, SMS и Telegram. «Отправить тест на почту» и «Отправить тест на телефон» — только администраторам: тестовое письмо тратит лимиты почтового сервера организации, тестовое SMS — платное
Поддержка, Наблюдатель Только просмотр
Оператор (OPERATOR) Раздел не виден

Шаблоны — инструмент маркетинга, поэтому распределение ролей то же, что у «Кампаний» и «Цепочек»: тексты готовит маркетолог, оператору на кассе раздел не нужен.


← Оглавление

Loyalty Platform — руководство пользователя