Шаблоны
Содержание раздела
Раздел «Шаблоны» — библиотека заготовок сообщений для клиентских коммуникаций: писем, 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) | Раздел не виден |
Шаблоны — инструмент маркетинга, поэтому распределение ролей то же, что у «Кампаний» и «Цепочек»: тексты готовит маркетолог, оператору на кассе раздел не нужен.