# Автоматическая подстановка персонального кода из Telegram-ссылки

Source: https://docs.botman.pro/a/109-avtomaticheskaya-podstanovka-personalnogo-koda-iz-telegram-ssylk

**🧩 Где применяется**

**Такой механизм используется в ситуациях, когда:**

- пользователь проходит тест на сайте;
- регистрируется в сервисе;
- получает персональный доступ;
- открывает индивидуальный отчёт;
- переходит в Telegram-бота из внешней системы

**Пример использования:**

**Пользователь проходит тест на сайте и получает ссылку на Telegram-бота:**

`https://t.me/example_test_bot?start=a7x92kd1`

**После запуска бота:**

BotMan автоматически получает код:

`a7x92kd1`

- сохраняет его за пользователем;
- затем формирует персональную ссылку:

`https://example-site.com/report/a7x92kd1`

**В результате каждый пользователь получает доступ только к своему отчёту.**

**❗ Важное условие**

Для корректной работы код в Telegram-ссылке и в ссылке на отчёт должен быть одинаковым.

Правильный формат:

**Ссылка на бота**

`https://t.me/example_test_bot?start=a7x92kd1`

**Ссылка на отчёт**

`https://example-site.com/report/a7x92kd1`

**Неправильный формат**

Если в стартовой ссылке есть дополнительные приставки, BotMan не сможет корректно подставить код.

Например:

`https://t.me/example_test_bot?start=report_a7x92kd1`

**В таком случае приставку report\_ необходимо убрать на стороне сайта.**

**⚙️ Как настроить в BotMan**

**Шаг 1. Создать поле подписчика**

**Перейдите в раздел:**

**`Настройки - Пользовательские поля`**

**Создайте новое поле со следующими параметрами:**

**Параметр Значение**

| Название | Код отчёта |
| --- | --- |
| Тип | Текст |
| Код поля | report\_id |

**Это поле будет хранить уникальный код пользователя.**

**Шаг 2. Создать сценарий**

Создайте новый сценарий.

**Например:**

**`Получение отчёта`**

Триггер сценария

**Выберите запуск по команде:**

`/start`

**Telegram автоматически передаёт параметр из ссылки именно через команду /start.**

**Шаг 3. Добавить блок «Условие»**

Первым блоком в сценарии добавьте:

**`Условие - Проверка поля`**

**Настройте проверку:**

Параметр Значение

| Поле | report\_id |
| --- | --- |
| Проверка | Неизвестно |

**Зачем нужен этот блок**

Он проверяет:

- сохранён ли уже код у пользователя;
- или пользователь запускает бота впервые.

Это защищает данные от случайной перезаписи.

**Шаг 4. Сохранить код из ссылки**

В ветке:

**`Соответствует условиям`**

добавьте блок:

**`Действие`**

**Настройте его следующим образом:**

Параметр Значение

| Действие | Действие с полями/переменными |
| --- | --- |
| Поле | report\_id |
| Значение | {{start\_command}} |

**Как это работает**

Переменная:

`{{start_command}}`

автоматически получает всё, что находится после ?start= в Telegram-ссылке.

**Например:**

`https://t.me/example_test_bot?start=a7x92kd1`

BotMan сохранит:

`a7x92kd1`

в поле:

`report_id`

**Шаг 5. Отправить кнопку с персональной ссылкой**

После блока «Действие» добавьте блок:

`Сообщение`

**Пример текста:**

`Ваш персональный отчёт готов.`\
`Нажмите кнопку ниже, чтобы открыть его.`

**Добавьте кнопку**\
Параметр Значение

| Текст кнопки | Открыть отчёт |
| --- | --- |
| Тип кнопки | Ссылка |
| Ссылка | https://example-site.com/report/{{report\_id}} |

**Что получится**

Если у пользователя сохранён код:

`a7x92kd1`

то BotMan автоматически сформирует ссылку:

`https://example-site.com/report/a7x92kd1`

**Шаг 6. Настроить повторный вход пользователя**

В ветке:

**`Условие - Не соответствует условиям`**

добавьте такое же сообщение с той же кнопкой.

Зачем это нужно

Если пользователь повторно откроет бота:

- код уже будет сохранён;
- бот не станет его перезаписывать;
- пользователь снова получит доступ к своему отчёту.

**👀 Как протестировать настройку**

**1. Создайте тестовую ссылку**

**Пример:**

`https://t.me/example_test_bot?start=a7x92kd1`

**2. Откройте ссылку в Telegram**

Используйте аккаунт, который ещё не запускал бота.\
\
**3. Запустите бота**

Нажмите:

`Start`

**4. Проверьте карточку подписчика**

В BotMan откройте пользователя и убедитесь, что в поле:

`report_id`

сохранилось значение:

`a7x92kd1`

**5. Проверьте кнопку**

Нажмите:

`Открыть отчёт`

**6. Убедитесь, что открывается персональная ссылка**

Должна открыться ссылка вида:

`https://example-site.com/report/a7x92kd1`

## ✅Итог

**После настройки сценария:**

1. Пользователь переходит в Telegram-бота по персональной ссылке.
2. BotMan автоматически получает уникальный код.
3. Код сохраняется в поле подписчика.
4. Бот автоматически формирует персональную ссылку.
5. Пользователь получает доступ к своему отчёту без ручных настроек и подстановок.

