Имя меняется, а ссылка нет? Персонализация сообщений в Telegram
В пробном сообщении появилось «Здравствуйте, %FIRST_NAME%!», а кнопка у двух получателей открыла одну страницу? Сначала проверьте две независимые настройки: обработку шаблона и назначение адреса. Подстановка имени сама по себе не меняет ссылку, а случайный выбор приветствия не создаёт отдельного предложения для каждого клиента.
Разберём учебное приглашение на семинар для Анны и Ивана: как получить законченный текст, что подготовить при пустом имени и когда нужен отдельный URL. Все имена и адреса ниже условные. Настройки отправки относятся к выбранному вами инструменту; PSYKE проверяет предоставленные номера, а не формирует и не отправляет эти сообщения.
1. Сначала определите, откуда берётся имя
В Telegram Prime документация описывает переменные %FIRST_NAME%, %LAST_NAME% и %USERNAME% для имени, фамилии и имени пользователя. Пример именно для Prime: «Здравствуйте, %FIRST_NAME%! Расписание семинара готово». При доступном имени Анна ожидаемый текст — «Здравствуйте, Анна! Расписание семинара готово». Эти обозначения нельзя автоматически переносить в другой сервис.
Найдите в своём редакторе раздел переменных и выберите нужное поле: First name, Last name или User name, если такие пункты предусмотрены. Сохраните шаблон и откройте результат подстановки для тестового получателя. Если редактор показывает проценты и название поля буквально, сначала выясните его синтаксис. В обычном тексте Bot API эти символы сами имя не подставляют.
Проверьте также источник данных: отображаемое имя профиля, имя из вашей клиентской таблицы и username могут отличаться. Зафиксируйте, какое поле вы используете и кто исправляет ошибку. Сегментация базы клиентов помогает выбрать содержательное предложение до добавления обращения по имени.
2. Спинтакс меняет фразу, но не назначение сообщения
Для Prime можно подготовить вариант «{Здравствуйте|Добрый день}, %FIRST_NAME%! Расписание семинара готово». Конструкция с фигурными скобками и вертикальной чертой задаёт альтернативы. После обработки скобки и разделитель должны исчезнуть. Это пример синтаксиса конкретного продукта; наличие похожего поля в другом редакторе ещё не подтверждает совместимость.
Перед сохранением прочитайте каждую альтернативу вместе с продолжением. «Здравствуйте, Анна!» и «Добрый день, Анна!» грамматически согласованы; варианты с разным управлением могут потребовать разных окончаний следующего слова. Случайный выбор допускает повторы: два человека вполне могут получить одинаковое приветствие. Поэтому оценивайте понятность вариантов, а не количество внешне разных строк.
| Вход | Один допустимый результат |
|---|---|
| Имя: Анна; шаблон с двумя приветствиями | Здравствуйте, Анна! Расписание семинара готово. |
| Имя: Иван; тот же шаблон | Добрый день, Иван! Расписание семинара готово. |
3. Для пустого имени подготовьте отдельный текст
Не рассчитывайте, что редактор сам уберёт запятую, заменит обращение или выберет вежливую форму. Для нашего примера заранее зададим собственное правило подготовки: если после удаления пробелов имя пустое, используем отдельный шаблон «Здравствуйте! Расписание семинара готово». Это правило оператора или вашего обработчика, а не обещанная функция Prime.
Если условных шаблонов в сервисе нет, разделите тестовые записи на две группы и назначьте каждой готовый текст. Получатель без имени должен увидеть полноценное приветствие без пустого обращения. Фамилию и username также проверьте отдельно: отсутствующее поле не должно оставлять «уважаемый null», лишние пробелы или одинокий знак @. Имя со смайлом или длинной строкой стоит просмотреть вручную.

4. Разделите текст кнопки, URL и готовый пост
В Bot API у InlineKeyboardButton поле text определяет надпись, а url — адрес перехода. Например, объект кнопки выглядит так: {"text": "Посмотреть расписание", "url": "https://example.com/seminar"}. Для обычной URL-кнопки выбирают действие url; callback_data служит другому сценарию — обработке нажатия ботом. Не добавляйте оба действия в одну кнопку.
Надпись «Посмотреть расписание» может оставаться одинаковой, даже если Анне и Ивану назначены разные адреса. Если редактор поддерживает обработку альтернатив именно в поле кнопки, испытайте «{Посмотреть расписание|Открыть программу}» отдельно: поддержка спинтакса в основном тексте не доказывает его поддержку здесь. Для сборки самой публикации пригодится инструкция про кнопку-ссылку к посту.
Если ваша схема использует идентификатор подготовленного поста Postbot, это ссылка на заготовку внутри соответствующего процесса, а не персональный URL посетителя. Проверьте содержимое заготовки и готовую публикацию. Повторное использование одного идентификатора не даёт оснований считать, что адрес или надпись будут заново подбираться для каждого получателя.
5. Назначьте общую, сегментную или личную ссылку
Сначала выберите смысл адреса. Общая страница программы подходит всем; сегментная ведёт на подходящий формат семинара; личная требует явной связи между получателем и выданной ссылкой. В учебной таблице ниже домен для всех путей — example.com. Разные окончания адресов ещё не доказывают, что сервер открывает разные страницы или проверяет получателя.
Для личного назначения сохраните пары «получатель → URL» до формирования сообщений. В нашем примере Анне выдаётся /a7, Ивану — /b8. При повторной подготовке сверяйте сохранённую пару. Если ссылок не хватает, выбранное здесь правило — остановить оставшиеся записи и пополнить список. Повторно выдать /a7 Ивану означает отказаться от уникального распределения.
| Режим | Анна | Иван |
|---|---|---|
| Общий | /seminar | /seminar |
| По сегменту | /online | /offline |
| Личный | /a7 | /b8 |
6. Проверьте готовую пару перед запуском
Создайте тестовые записи с именем Анна, именем Иван и пустым именем. Получите итоговый текст и итоговую кнопку для каждой записи. Сверьте обращение, отсутствие необработанных переменных, читаемость альтернатив и полный адрес перехода. Затем испытайте нехватку личных ссылок: третья запись должна остановиться согласно выбранному правилу, а не получить уже выданный адрес.
Нажмите тестовые кнопки и проверьте страницу назначения. Для одноразовых или рабочих персональных ссылок используйте специально выпущенные тестовые экземпляры. Сохраните утверждённые примеры вместе с версией шаблона: изменение кнопки после проверки требует повторного просмотра результата. Рабочий процесс сообщений клиентам поможет назначить ответственного за подготовку, проверку и ответы.
Частые вопросы
Спинтакс гарантирует отсутствие повторов и ограничений?
Нет. Случайный выбор может повторить вариант. Персонализация и разные адреса не устанавливают безопасный объём отправки и не гарантируют отсутствие ограничений Telegram.
Меняется ли ссылка при повторном использовании готового поста?
Само повторное использование этого не гарантирует. Проверьте итоговый URL. Для разных адресов нужна явная настройка назначения или отдельные подготовленные публикации, если так устроен выбранный инструмент.