База знаний GetMyBot

Люди (CRM)

База подписчиков: метки, параметры, диалоги и вложения.

На этой странице

Раздел Люди служит CRM бота: каждый, кто написал боту, попадает в базу подписчиков. Здесь видно профиль пользователя, его метки и параметры, всю переписку и вложения. Запись о пользователе создаётся и обновляется автоматически на каждом событии.

Список пользователей

Таблица показывает имя, Telegram-ID, метки и активность (последнее появление или статус «заблокирован»). Доступны поиск по имени/ID и фильтр по меткам: быстрые чипы Все, VIP, Оплатил, Новый, Отписка: каждый со счётчиком. Клик по строке открывает диалог.

Чип Заблокировали показывает только тех, кто заблокировал бота (в карточке видна дата блокировки). Кнопка Выгрузить CSV скачивает текущий список с учётом поиска и фильтров (колонки tg_user_id, name, username, platform, is_blocked, blocked_at, first_seen, last_seen, labels; метки через ;, даты в формате RFC3339; не более 10 000 строк). Текстовые ячейки защищены от выполнения как формулы в табличном редакторе. Если список обрезан на лимите, API возвращает заголовок X-Export-Truncated: true. Через API: GET /api/bots/{botID}/users?is_blocked=true&format=csv, параметр is_blocked=true|false работает и для обычного JSON-списка, а в ответе у заблокировавших появляется поле blocked_at.

Что хранится о пользователе

Карточка пользователя содержит: аватар, имя, @username, ссылку «Открыть в Telegram», счётчики (сообщений, первый и последний диалог), метки и глобальные параметры. Также отмечается, если пользователь заблокировал бота или ожидает ответа оператора.

Источник подписчика. Если человек пришёл по ссылке вида t.me/<bot>?start=utm_source-vk__utm_medium-cpc__utm_campaign-spring (в Telegram в payload допустимы только буквы, цифры, _ и -, поэтому пары разделяются __, а ключ от значения – первым -) или vk.me/<group>?ref=utm_source=vk&utm_medium=post (VK), из payload разбираются поля utm_source, utm_medium, utm_campaign, utm_content, utm_term; для каждого ключа берётся первое непустое значение. ref=<ID> и ref_<ID> разбираются отдельно как реферальный идентификатор. Первый непустой payload занимает неизменяемый first-touch источник, даже если в нём нет UTM или реферального идентификатора. Поздний /start не заменяет этот источник и не записывает UTM-метки из нового payload. Пустой payload first-touch источник не занимает. Поэтому при первом произвольном или только реферальном payload UTM-поля остаются пустыми и позднее не заполняются. Они доступны в подстановках {{utm_source}}, {{utm_medium}}, {{utm_campaign}}, {{utm_content}}, {{utm_term}} и в сегментах (поля attribution.utm_source … utm_term). В сегментах метки из ссылки имеют приоритет над одноимёнными UTM веб-визитов того же человека, а ключи, которых в ссылке не было, берутся из веб-данных; ссылка без UTM (произвольная метка кампании) значений не добавляет и веб-данные не затирает. Источник привязан к каналу старта: в сегменты он попадает только у подписчика с тем же идентификатором в этом канале и появляется там после ближайшего пересчёта. Реферальная ссылка подписчика: t.me/<bot>?start=ref_<его ID>; в карточке и в подстановке {{referrals.count}} видно, сколько людей он привёл.

Метки

Метки служат тегами подписчиков (VIP, оплатил, новый, отписка и собственные). Они задаются вручную, действием «Изменить метки» или через API (POST /api/bots/{botID}/users/{tgUserID}/labels с каноническим UUID label_id и необязательным ttl_days от 0 до 106751) и используются в условиях («С метками») и для сегментации рассылок. Значение ttl_days: 0 означает постоянную метку. Временная метка по истечении срока снимается автоматически, а бот получает событие «Метка истекла». В списке людей срок временной метки приходит в поле label_expires_at. Цвет и набор меток настраиваются под бота.

Параметры

Параметры хранят произвольные значения, привязанные к пользователю (имя, email, сумма, статус заказа, баллы). Их наполняют действия «Изменить параметры», «Сохранить сообщение» и шаги диалога. Затем значения используют подстановки ({{param.ключ}}) и условия («С параметрами»). Так бот ведёт мини-профиль каждого клиента без внешней базы.

Диалоги

Окно диалога показывает всю переписку: текст, фото/видео, голосовые с волной, документы, превью inline-кнопок, отметки о доставке и «пилюли» отправленных реакций. Снизу: поле ввода: можно прикрепить файлы, написать сообщение или отправить реакцию пользователю через подбор реакции.

Вложения

Кнопка Вложения открывает галерею всех файлов диалога с фильтрами Фото, Файлы, Голосовые, Ссылки и кнопкой Скачать всё.

История диалога и импорт

Диалог хранит всю переписку с пользователем. Старые сообщения подгружаются порциями при прокрутке вверх (курсорная пагинация), поэтому даже длинная история открывается быстро. Новые сообщения приходят в открытый диалог в реальном времени: так же, как в инбоксе оператора.

Если вы переносите бота из sambot, история диалогов импортируется вместе с пользователями: после импорта в карточке сразу видна прошлая переписка и вложения. См. Импорт из sambot.

Карточка клиента и массовые действия

Карточка объединяет профиль, timeline, сегменты, диалог и заметки оператора. Timeline загружается порциями; его можно фильтровать по типу, источнику и периоду. Изменения свойств и меток требуют явного сохранения, попадают в аудит и запускают пересчёт сегментов.

В списке можно выбрать клиентов и применить свойство массово. Операция использует сохранённый снимок выбранной аудитории, ограничена 5 000 людьми и безопасна при повторной отправке. CSV-выгрузка создаёт отдельную сохранённую операцию; её можно отменить до скачивания. Уже применённое массовое изменение не откатывается частично.

Что дальше