Переменные и развилки «а|б»
Воронка отправляет один и тот же блок сотне людей. Переменные делают сообщение адресным — подставляют имя, город, ответ клиента. Развилки {{а|б}} делают его непохожим на соседнее, и это уже не про вежливость: Telegram считает одинаковый текст на десятки адресов рассылкой.
Как работает подстановка
Всё, что стоит в фигурных скобках, CRM заменяет значением в момент отправки блока, а не при запуске воронки: дожим, ушедший через сутки, подставит ответ, который клиент дал за эти сутки.
Имена не нужно помнить наизусть: рядом с полем текста стоит кнопка «{…}» — «Вставить переменную». Она открывает окно с поиском и тремя группами: «Системные», «Переменные школы» (всё, что есть в карточках клиентов и в воронках школы, включая ещё не сохранённую схему) и «Дата и время». Выбранное имя встаёт туда, где стоял курсор. Переменную, которой у школы ещё нет нигде, — например, поле из ответа вебхука, который ни разу не приходил, — набирайте руками, без опечаток.
123- Ряд над полем текста — форматирование. Кнопка «а|б» ставит развилку вокруг выделенного куска
- Под полем — счётчик «осталось … символов». Развилки он считает по самому длинному варианту: в поле лежат все, а уедет один
- Переменные вставляются кнопкой «{…}» у поля: окно с поиском, системными именами, переменными школы (здесь {опыт}), датой и временем
- В «Старте» на схеме видно развилку {Привет|Здравствуйте} в готовом тексте приветствия
В том же ряду форматирования — кнопка со смайликом и искрой: премиум-эмодзи Telegram. Чтобы они появились в списке, пришлите нужные эмодзи боту школы с аккаунта с Telegram Premium. Анимированными их увидит только клиент бота Telegram, и только если Premium есть у владельца бота; в личке с рабочего номера, MAX, ВКонтакте и других каналах придёт обычный смайл.
Имя, ник, телефон и два разных id
| Переменная | Что подставится | Где ошибаются |
|---|---|---|
{name} | только имя — первое слово из Telegram или из карточки | ждут полное ФИО — оно в {client} и {fio} |
{username}, {тег} | обращение: есть публичный ник — @ник, нет — имя клиента, кликабельное и с уведомлением | думают, что без ника обращение пропадёт. Не пропадёт |
{phone} | телефон из карточки лида | Telegram телефон не отдаёт: пусто, пока номер не собран воронкой или анкетой |
{tg_id} | id самого человека в Telegram | путают с местом разговора; для ВКонтакте и MAX есть {messenger_id}, а номер клиента в CRM — {tervio_id} |
{chat_id} | id разговора: в личке равен {tg_id}, в чате тест-драйва это id группы | отдают вебхуку как «кого искать» — тот найдёт группу, а не человека |
Название чата тест-драйва — служебная строка вроде «Тест-драйв. Здравствуйте! …», первое слово в ней «Тест-драйв.». Поэтому в группе {name} берётся из карточки лида или из подписи его сообщений: пусто в карточке — пусто в сообщении.
Свои переменные: то, что сказал клиент
- Ответ клиента — «Сохранить ответ в переменную» на стрелке «Ждать ответа»: «Стрелки: ожидание, время, дожимы».
- «Вычислить» в блоке «Действия» — значение из других переменных: «Блок «Действия»: этапы, вебхук, событие, команда, переходы, A/B». Формула бывает многострочной: каждая строка вида
имя = выражениесама становится переменной. - Ответ вебхука — «Сохранить ответ / поля JSON» в действии «Вебхук».
- Данные события — поля
varsиз вебхука или «Передать переменные» у действия «Событие». - Ссылки, которые выдаёт воронка — «Создать чат», «Доступ к курсу», «Ссылка на оплату» кладут ссылку в переменную с именем, которое вы зададите.
- Руками в карточке — раздел «Переменные клиента» в правой колонке диалога: «Карточка клиента: ответственный, этапы, воронка».
Часть переменных CRM кладёт сама: {codeword} — кодовое слово, которым запустили воронку; {start_payload} — метка из ссылки запуска бота; {тип_ответа} — чем ответил клиент; {мессенджер} (telegram, max или vk), {id_подключения} и {тип_подключения} — откуда он пишет; {вошёл_в_чат} и {время_входа_в_чат} — вошёл ли он в созданный воронкой чат; {перешёл_по_ссылке} и {время_перехода} — клик по отслеживаемой ссылке. А в карточку клиента, пришедшего в бота по ссылке с меткой, CRM один раз записывает тег_запуска — первую метку, с которой он пришёл («Воронка в боте: кнопки, ссылки запуска, тег запуска, передача в личку»).
Запомните приём с fio: спросили «как вас зовут?», сохранили ответ в fio — и дальше {name} подставляет то, что человек написал сам, а не его подпись в Telegram.
Что будет, если значения нет
- Имя, телефон, ник и оба id есть у каждого прогона всегда, иногда пустые. Пустое значение оставляет пустое место: «Привет, {name}!» превращается в «Привет, !». Фразу с переменной читают дважды — с ней и без неё.
- Своя переменная, которой у клиента нет (не дошёл до вопроса), или имя с опечаткой — CRM вырежет скобки целиком и подчистит знаки вокруг: «Привет, {фио}!» уйдёт как «Привет!». Так же в подписи к медиа, в подписи кнопки и в названии чата. Клиент скобок не увидит, но и вы не увидите ошибки: опечатку выдаёт только пропавшее слово.
- В адресе и теле вебхука незаполненная переменная остаётся как есть, со скобками: так ошибка настройки видна по ответу сервиса, а не теряется.
Имена, которые уже заняты
Часть имён CRM подставляет сама, что бы вы в них ни положили, — занять их нельзя:
- Везде — в блоках и на стрелках:
tg_id,chat_id,client,client_username,client_tg_id,lead_key,тег,codeword,start_payload,тег_запуска,тип_ответа,мессенджер,id_подключения,тип_подключения,адрес_подключения,tervio_id,messenger_id,баланс_баллов,подпись_ссылки. Лист с такой переменной не сохранится — редактор скажет, что имя занято. Читать их в условиях можно. - Дополнительно в панели «Переменные клиента»:
name,username,phone. Эти значения CRM берёт из Telegram и карточки, и запись под тем же именем не подставится. - Имена с подчёркивания в начале — служебные ключи прогона, CRM их тоже не примет.
Нужна своя переменная про id — назовите её так, чтобы не спутать с системной: tg_id_лички.
Дата и время со смещением
Даты не хранятся, а вычисляются при отправке — в часовом поясе листа (шестерёнка в шапке). Формат: ДД.ММ.ГГГГ и ЧЧ:ММ.
{дата}— сегодня,{дата+1}— завтра,{дата-1}— вчера.{дата+2нед},{дата+1мес}— недели и месяцы (месяц считается как 30 дней); без единицы считаются дни.{время}— сейчас,{время+3ч},{время+30м}; без единицы считаются часы.
Единицы, которой CRM не знает, нет и в тексте: {дата+1год} вырежется, как незнакомая переменная. В дожиме, который сработает через сутки, {дата+1} — это завтра от дня отправки, а не от дня входа в воронку.
Когда дату нужно сохранить или сравнить — срок доступа, день оплаты, — считайте её в «Вычислить»: today(), date_after(365), days_until({доступ_до}), date_rus({доступ_до}) — последняя даёт «5 октября 2027» для текста клиенту. Имена функций пишутся латиницей: на прежнее русское имя редактор подскажет новое.
Развилки: почему сотня одинаковых сообщений — это рассылка
Telegram смотрит не только на количество сообщений, но и на их похожесть. Сотня людей получила текст, совпадающий до буквы, — аккаунт уезжает в спам-фильтр: сообщения либо перестают уходить, либо вычищаются задним числом, и в переписке появляется «удалено Telegram». Живой случай: один текст со ссылкой ушёл за день 96 людям — Telegram убрал его из чатов, у клиентов не осталось ничего, а в CRM сообщения лежали как отправленные.
Лечится это прямо в тексте блока. Варианты пишутся в двойных фигурных скобках через вертикальную черту — двойных потому, что одинарные заняты переменными:
{{Привет|Здравствуйте|Добрый день}}, {name}!
{{Есть минутка?|Удобно сейчас говорить?|}}
Каждому клиенту уходит по одному варианту из каждой развилки. Скобки можно не ставить руками: кнопка «а|б» — крайняя в ряду над полем текста. Выделили кусок фразы — она обернёт его; ничего не выделено — вставит заготовку «вариант 1|вариант 2». Под полем появится строка предпросмотра: сколько получается вариантов и пример одного из них, кнопка ↻ показывает следующий.
- Пустой вариант разрешён —
{{Ждём вас!|}}: иногда фраза есть, иногда нет. Разная длина снижает похожесть не меньше разных слов. - Переменные внутри вариантов работают:
{{Привет, {name}|Рады видеть, {name}}}. - Развилки вкладываются:
{{Привет{{!|, друг!}}|Здравствуйте}}— это три варианта, а не четыре. - Работает в тексте сообщения, в подписи к медиа и в тексте «Голосового». У дожимов вариант свой на каждой ступени.
- Скобки без черты — не развилка:
{{Привет}}уйдёт как «Привет». Незакрытая развилка уедет как написана.
В подписи кнопки переменные подставляются («Да, {name}» работает), а двойные скобки останутся видимым текстом. Варианты пишите в тексте блока, а подписи кнопок держите одинаковыми.
Вариант выбирается по паре «прогон и блок», а не заново на каждую попытку: повторная отправка после обрыва связи пришлёт тот же текст, в историю диалога пишется то, что реально ушло, а новый проход воронки — новый прогон, и вариант выберется заново.
Для первого касания делайте от трёх вариантов и меняйте не одно слово, а структуру фразы: фильтр сравнивает сообщения целиком, поэтому «Привет / Здравствуйте» при одинаковом остатке текста почти ничего не даёт. Работает другое: другой порядок мыслей, другая длина, вопрос в конце или его отсутствие.
Вариативность снижает похожесть, но не отменяет пределов нагрузки на номер. Сотня сообщений с одного номера за короткое время закончится ограничением при любых развилках — «Прогрев и нагрузка: как не сжечь номер».
- Знаете, чем
{name}отличается от{client}и почему в чате тест-драйва имя берётся из карточки. - Можете сказать, чем
{tg_id}отличается от{chat_id}и какой из них отдавать вебхуку. - Помните, что пустая системная переменная оставляет пустое место, несуществующая своя вырезается из текста, а в вебхуке остаётся со скобками.
- Назовёте хотя бы три занятых имени и скажете, что будет при попытке их занять.
- Поставили развилку кнопкой «а|б», увидели под полем число вариантов и пролистали примеры кнопкой ↻.
Дальше — «Блок «Действия»: этапы, вебхук, событие, команда, переходы, A/B»: что воронка умеет кроме отправки сообщений.
Справочник по этому разделуДокументация TERVIO: что делает каждая кнопка на экране.