Legan Studio
Все статьи
~ 17 мин чтения

Telegram Business: что доступно ботам

Что такое Telegram Business для ботов: подключение к личному аккаунту, автоответы, расписание работы, бот вместо предпринимателя в личных диалогах.

  • Telegram
  • Business
  • тренды

Telegram Business — это набор функций для предпринимателей и микробизнесов внутри обычного аккаунта. Особенность для разработки: бот теперь может работать не от имени отдельного @username_bot, а внутри личных диалогов владельца Business-аккаунта. Это меняет подход к чат-ботам для услуг, где клиент ожидает писать живому мастеру, а не «компании».

Что такое Telegram Business

Telegram Business — это платная подписка стоимостью около $4–5 в месяц, входящая в состав Telegram Premium. Она открывает владельцу аккаунта набор инструментов для работы с клиентами прямо в личных диалогах:

  • Автоответы — текстовые шаблоны, которые отправляются автоматически при первом сообщении клиента или вне рабочих часов.
  • Рабочие часы — расписание, при котором аккаунт показывается клиентам как «онлайн» или «не на связи».
  • Быстрые ответы — заготовленные шаблоны, вставляемые по триггеру /.
  • Ссылка-приглашение — короткий персональный URL вида t.me/+abc123, который можно повесить в Instagram или на визитку.
  • Цветной аватар и стартовое сообщение — кастомизация первого касания.
  • Теги для чатов — систематизация диалогов: «лиды», «постоянные», «должники».
  • Подключение бота через механизм business_connection — главное, ради чего эта статья.

Подписка покупается самим владельцем аккаунта (мастером, репетитором, психологом) — студия-разработчик к этой оплате отношения не имеет. Без активной подписки business_connection не работает.

Чем Business отличается от обычного бота

Классический бот — отдельный аккаунт, у него свой chat.id, своя команда /start, свои сообщения. Business-бот подключается к личному аккаунту пользователя и читает входящие сообщения от его клиентов. Соответственно:

  • Клиент пишет напрямую владельцу аккаунта, а бот отвечает «от лица» владельца.
  • У бота есть доступ к настройкам автоответов, расписанию, быстрым ответам.
  • Бот может видеть и обрабатывать только сообщения, пришедшие после подключения, — старая переписка ему недоступна.

Как бот подключается к аккаунту Business-пользователя

Пошаговый флоу подключения:

  1. Владелец аккаунта (например, мастер маникюра) покупает Telegram Premium и активирует функции Business в настройках профиля.
  2. Разработчик включает в BotFather флаг Business Mode для своего бота: /mybots → выбрать бота → Bot Settings → Business Mode → Turn On.
  3. Владелец заходит в Settings → Telegram Business → Chatbots → Add Bot и вводит @username бота.
  4. Telegram показывает экран разрешений: читать сообщения, отвечать, доступ к контактам — владелец подтверждает.
  5. Бот моментально получает webhook-апдейт business_connection с уникальным connection_id и user.id владельца.
  6. С этого момента бот видит входящие в личных чатах владельца через апдейт business_message.

Если владелец отключает бота в настройках — приходит повторный business_connection с is_enabled=false.

Event business_connection: структура и обработка

Когда владелец подключает бота, прилетает такой апдейт:

{
  "update_id": 123,
  "business_connection": {
    "id": "conn_abc123",
    "user": {
      "id": 12345,
      "first_name": "Алексей",
      "username": "alex_master"
    },
    "user_chat_id": 12345,
    "date": 1717000000,
    "can_reply": true,
    "is_enabled": true
  }
}

Разбор полей:

  • idbusiness_connection_id, который потом нужно передавать в каждый sendMessage от имени владельца. Сохраняется на стороне бота в БД — без него ответить нельзя.
  • user — владелец Business-аккаунта (мастер). По его id бот узнаёт, кому принадлежит подключение.
  • user_chat_id — личный чат с владельцем (для системных уведомлений мастеру).
  • date — UNIX-timestamp подключения.
  • can_reply — может ли бот отправлять сообщения. Если false, бот только читает.
  • is_enabled — активно ли подключение прямо сейчас.

При получении этого апдейта бот должен:

  1. Сохранить connection_id в БД, привязав к user.id владельца.
  2. Записать состояние can_reply и is_enabled — на основе них активировать или приостановить функционал.
  3. Опционально отправить владельцу приветствие в его user_chat_id: «Я подключён, всё готово».

Event business_message: входящие сообщения от клиентов владельца

Когда клиент пишет мастеру, бот получает:

{
  "update_id": 124,
  "business_message": {
    "message_id": 9876,
    "business_connection_id": "conn_abc123",
    "from": {
      "id": 67890,
      "first_name": "Мария",
      "username": "maria_client"
    },
    "chat": {
      "id": 67890,
      "type": "private"
    },
    "date": 1717000300,
    "text": "Здравствуйте! Хочу записаться на четверг."
  }
}

Здесь важны два правила фильтрации:

  • Игнорировать сообщения от самого владельца. Если from.id == user.id из сохранённого business_connection, это мастер пишет клиенту вручную — бот не должен отвечать на свои собственные сообщения через зеркальный канал.
  • Группировать по chat.id. Внутри одного business_connection_id могут быть десятки параллельных диалогов — состояние FSM должно вестись по паре (connection_id, chat_id), не глобально.

Чтобы ответить от имени владельца, бот вызывает sendMessage с параметром business_connection_id:

POST /bot<token>/sendMessage
{
  "business_connection_id": "conn_abc123",
  "chat_id": 67890,
  "text": "Здравствуйте! На четверг свободно 14:00 и 17:00."
}

Сообщение появится в чате как обычное сообщение от мастера — клиент не видит, что отвечает бот.

Пример кода обработки на aiogram 3

from aiogram import Bot, Dispatcher, F
from aiogram.types import BusinessConnection, BusinessMessage
from sqlalchemy.ext.asyncio import AsyncSession

dp = Dispatcher()

@dp.business_connection()
async def on_connection(conn: BusinessConnection, session: AsyncSession):
    await session.merge(BusinessOwner(
        owner_id=conn.user.id,
        connection_id=conn.id,
        can_reply=conn.can_reply,
        is_enabled=conn.is_enabled,
    ))
    await session.commit()
    if conn.is_enabled:
        await bot.send_message(
            chat_id=conn.user_chat_id,
            text="Бот подключён. Буду отвечать вашим клиентам в нерабочее время.",
        )

@dp.business_message(F.text)
async def on_client_message(msg: BusinessMessage, bot: Bot, session: AsyncSession):
    owner = await session.get(BusinessOwner, msg.business_connection_id)
    if not owner or not owner.is_enabled or not owner.can_reply:
        return
    if msg.from_user.id == owner.owner_id:
        return  # сам мастер пишет клиенту, не вмешиваемся
    reply = await build_reply(owner, msg.chat.id, msg.text)
    if reply is None:
        return  # передаём диалог человеку молча
    await bot.send_message(
        business_connection_id=msg.business_connection_id,
        chat_id=msg.chat.id,
        text=reply,
    )

Таблица разрешений: что бот может в Business-режиме

ДействиеДоступно
Читать входящие сообщения чата владельцаДа
Отвечать от имени владельцаДа, если can_reply=true
Видеть историю до подключенияНет
Отправлять файлы и медиаДа
Удалять сообщения владельцаНет
Доступ к контактам владельцаНет
Доступ к группам и каналам владельцаНет, только 1:1 чаты
Видеть и инициировать звонкиНет
Менять аватар и имя владельцаНет
Получать edited_business_messageДа

Технический интерфейс

Bot API ввёл несколько обновлений и полей:

  • business_connection — апдейт о том, что владелец Business-аккаунта подключил вашего бота.
  • business_message, edited_business_message — апдейты о входящих и отредактированных сообщениях клиентов.
  • Новый параметр business_connection_id в методах отправки — указывает, в рамках какого подключения слать сообщение.

Чтобы бот стал доступен в Business, в BotFather нужно включить флаг бизнес-режима. Дальше владелец аккаунта в настройках Telegram Business → Chatbots добавляет бота и выбирает права: читать переписку, отправлять сообщения, видеть контакты.

Лимиты и ограничения

ЛимитЗначение
Сколько ботов может подключить один владелецОдин
Сколько Business-аккаунтов может обслуживать один ботНе ограничено (подходит для SaaS)
Условие активности подключенияАктивный Telegram Premium у владельца
Что происходит при истечении Premiumis_enabled=false, бот перестаёт получать апдейты
Доступ к секретным чатамНет
Доступ к группам и каналам владельцаНет, только приватные 1:1 чаты
Rate limit на отправкуСтандартный, как у обычного бота
Глубина истории до подключения0 сообщений

Что можно автоматизировать

Реалистичные сценарии для услуг и микробизнеса:

  • Автоответ ночью — бот отвечает клиентам, когда мастер спит.
  • Запись на услугу — клиент пишет «хочу маникюр на пятницу», бот предлагает свободные слоты.
  • FAQ — типовые вопросы про цены, адрес, парковку.
  • Префильтр — бот собирает у клиента имя, услугу, желаемое время, и только потом подсвечивает диалог владельцу.
  • Нотификации — за день до записи бот напоминает, спрашивает подтверждение.

Кейс: бот для мастера маникюра

Типичный флоу:

  1. Клиентка пишет мастеру в личку: «Хочу записаться на четверг, можно ближе к вечеру?»
  2. Бот видит сообщение через business_message, фильтр по from.id != owner.id пропускает его дальше.
  3. Лёгкая модель (правила или GPT-классификатор) определяет интент «запись».
  4. Бот идёт в YCLIENTS API за свободными слотами на четверг после 16:00.
  5. Отвечает от имени мастера: «Здравствуйте! На четверг свободно 16:00, 17:30 и 19:00. Какое подойдёт?»
  6. Клиентка выбирает «17:30». Бот фиксирует запись через YCLIENTS, тегирует чат меткой «booked».
  7. Мастер видит подтверждённую запись в дашборде студии и в своём календаре YCLIENTS.

Кейс: бот для репетитора

То же самое, но с уклоном в долгие отношения:

  • Расписание занятий по дням недели, перенос с уведомлением минимум за 24 часа.
  • Сбор и приём домашних заданий: бот ждёт фото или PDF, складывает в Google Drive по папке ученика.
  • Оплата пакетов уроков: бот формирует ссылку на YooKassa, отслеживает успешную оплату через webhook, продлевает абонемент.
  • Напоминания за 2 часа до занятия с проверочным вопросом «придёте?».

Кейс: бот для психолога

Здесь важна этическая грань. Бот никогда не отвечает по существу — это нарушает доверие и может навредить. Допустимая зона ответственности:

  • Запись на сессию, перенос, отмена.
  • Отправка ссылки на оплату.
  • Пересылка домашнего задания, выданного психологом, в назначенное время.
  • Уведомление клиента в первом контакте: «Здравствуйте, Анна. Расписание и оплата у меня автоматизированы — отвечает бот. Все терапевтические вопросы — только лично».
  • Согласие на обработку ПДн при первом сообщении (ссылка на политику).

Любые попытки клиента поговорить «о наболевшем» бот молча игнорирует — диалог остаётся психологу.

Кейс: SaaS-сервис для команд продаж

Один Business-бот подключается к аккаунтам N менеджеров одной компании:

  • Каждое утро бот шлёт руководителю дайджест: сколько диалогов вчера, сколько ответов «холодные», сколько горячих лидов.
  • AI-анализ настроения клиента в каждом диалоге — флаг «клиент злится» подсвечивается руководителю в реальном времени.
  • Авто-сохранение лидов в Bitrix24/amoCRM с источником «Telegram», автором (менеджер), стенограммой первых 10 сообщений.
  • Шаблоны быстрых ответов, унифицированные на всю команду.

Интеграция с YCLIENTS, DIKIDI, Telegram Calendar

Что дают эти системы Business-боту:

  • YCLIENTS / DIKIDI — REST API для проверки занятости мастера на дату, создания и отмены записи, получения списка услуг и цен. Подключение через OAuth: мастер (он же владелец Business-аккаунта) при онбординге в студийном дашборде даёт согласие, бот получает access-token конкретно его филиала.
  • Webhook'и обратно: YCLIENTS пушит событие record_created или record_changed — бот отправляет клиенту напоминание через business_connection_id за день и за два часа.
  • Telegram Calendar / Google Calendar — для репетиторов и психологов, где нет YCLIENTS, бот ведёт календарь напрямую через Google Calendar API на отдельном service account, шарит его с почтой владельца.

Цепочка авторизации: один онбординг в студийном дашборде → OAuth с YCLIENTS → подключение Business-бота через BotFather → готово, мастер ничего больше не настраивает.

Сценарий «передача живому»

Самое важное в Business-боте — корректная передача диалога человеку. Если клиент задаёт нестандартный вопрос, бот не должен зацикливаться на сценариях, а тихо «уйти», оставив диалог владельцу. Стандартный подход:

  1. Бот отвечает только в рабочее время или только на типовые сообщения.
  2. Если входящее не подходит ни под один сценарий — бот молчит и ждёт владельца.
  3. Если владелец сам отправил сообщение клиенту, бот «уступает» этот диалог на сутки.

Монетизация: модели для разработчиков Business-ботов

МодельСценарий и цена
SaaS-подписка599–1990₽/мес за бота-ассистента, тариф зависит от лимитов AI
Транзакционная3–10% от каждой записи, проведённой через бота
FreemiumБазовый бот бесплатно, AI-ответы и аналитика — платно
Whitelabel / лицензияБот под брендом сети салонов, фикс за филиал в месяц
Разовое внедрениеСтудия делает бота под мастера за 30–80 тыс. ₽, поддержка отдельно

Для микробизнеса лучше работает SaaS с понятным «199₽ за первого клиента, который пришёл через бота». Для сетей — whitelabel с CRM и аналитикой.

Ограничения

Что не умеет Business-бот:

  • Не видит сообщения, отправленные до подключения.
  • Не работает в супергруппах и каналах владельца.
  • Не подменяет аватар и имя владельца — клиенты пишут именно человеку, и интерфейс не показывает, что отвечает бот.
  • Платежи внутри Business-режима не обрабатываются ботом — для оплаты используют отдельный бот или платёжную ссылку.

UX-нюансы

Главный риск — клиент понимает, что общается с ботом, и обижается. Снимается это тремя приёмами:

  • Короткие, человеческие формулировки. Не «Здравствуйте! Я бот компании Х» — просто «Привет! Я отвечу через пару минут, если буду на связи; сейчас — автоответчик».
  • Не пытаться поддерживать длинный диалог в стиле AI. Лучше пара выверенных шагов: имя, услуга, время.
  • Чёткая граница: «Передам Анне, она подтвердит ближе к 10 утра». Никаких обещаний, которые бот не контролирует.

Безопасность

Business-бот видит личную переписку владельца с клиентами — это чувствительные данные. Минимальный набор мер:

  • Шифрование переписки в БД на стороне бота.
  • Доступ к админ-панели только по 2FA.
  • Хранение только нужных сущностей (имя, услуга, дата) — не всю историю.
  • Прозрачный отказ: «бот удаляет переписку через 30 дней» — и реально удаляет.

Юридические нюансы

Business-бот видит сообщения третьих лиц — клиентов мастера. Возникает развилка по 152-ФЗ:

  • Оператор ПДн — почти всегда сам владелец Business-аккаунта (мастер, репетитор), потому что именно он собирает данные клиентов для оказания услуги.
  • Обработчик ПДн — студия, разработавшая и хостящая бота, если бот сохраняет переписку, имена, телефоны на серверах студии. Тогда между мастером и студией нужен договор поручения обработки по ст. 6 ч.3 152-ФЗ с описанием цели, перечня действий, мер защиты и сроков.
  • Уведомление РКН о трансграничной передаче, если бот пересылает данные в Telegram (а он пересылает по определению).
  • Согласие клиента — мастер должен в первом сообщении или при онбординге уведомить клиента, что в диалоге участвует бот-ассистент, и дать ссылку на политику обработки ПДн.

Без этой обвязки Business-бот — юридическая мина для студии.

Типичные ошибки реализации

  • Бот отвечает на свои же сообщения. Если не отфильтровать from.id == owner.id, бот воспринимает реплики мастера как клиентские и зацикливается.
  • Не сохранён connection_id. Без него sendMessage упадёт с 400 — апдейт business_connection нужно записывать в БД сразу, в первой же строке хендлера.
  • Игнорируется is_enabled=false. Когда у мастера истекает Premium, подключение становится неактивным; попытки sendMessage возвращают 400, забивая логи.
  • Попытка прочитать историю до подключения. Бот пробует достать «контекст» предыдущих 50 сообщений — Telegram их не отдаёт, бот отвечает невпопад.
  • Нет rate-limit на ответы. При зависшей петле клиент получает десяток сообщений в секунду — Telegram затем временно банит бота за флуд.
  • Отсутствие per-(connection_id, chat_id) FSM. Состояние диалога ведётся глобально, и шаги одного клиента смешиваются с шагами другого.
  • Захардкоженный business_connection_id. В тестах оставили connection_id своего аккаунта — на проде бот пытается слать всем через чужое подключение и получает 400.

Когда Business не подходит

Business имеет смысл, когда у вас:

  • Один-два сотрудника, работающих с личным аккаунтом.
  • Высокая доля типовых вопросов.
  • Нет потребности в сложной воронке и платёжной интеграции.

Если у вас десятки операторов, нужна CRM, статистика по клиентам, передача между сменами — лучше делать классического бота @company_bot или Telegram-приложение поверх HelpDesk.

Итого

Telegram Business для ботов — это про автоматизацию микробизнеса и услуг, где клиент ожидает писать конкретному мастеру. Бот корректно работает как «второй пилот»: отвечает ночью, фильтрует входящие, напоминает о записи, но не лезет в живой диалог. Реализация на Bot API простая — отдельные апдейты business_connection и business_message, параметр business_connection_id в отправке. Главная сложность — UX, чтобы клиент не чувствовал, что общается с роботом.

Частые вопросы

Что такое Telegram Business и как он связан с ботами?

Telegram Business — набор функций для предпринимателей и микробизнесов внутри обычного аккаунта. Особенность для разработки: бот может работать не от имени отдельного @username_bot, а внутри личных диалогов владельца Business-аккаунта. Это меняет подход к чат-ботам для услуг, где клиент ожидает писать живому мастеру, а не «компании». Классический бот — отдельный аккаунт со своим chat.id и /start. Business-бот подключается к личному аккаунту и читает входящие от клиентов, отвечая «от лица» владельца, что воспринимается как живой диалог.

Как технически подключить бота к Telegram Business?

Bot API ввёл несколько обновлений и полей. business_connection — апдейт о том, что владелец Business-аккаунта подключил вашего бота. business_message, edited_business_message — апдейты о входящих и отредактированных сообщениях клиентов. Новый параметр business_connection_id в методах отправки — указывает, в рамках какого подключения слать сообщение. Чтобы бот стал доступен в Business, в BotFather нужно включить флаг бизнес-режима. Дальше владелец в настройках Telegram Business → Chatbots добавляет бота и выбирает права: читать переписку, отправлять, видеть контакты.

Какие сценарии можно автоматизировать в Telegram Business?

Реалистичные сценарии для услуг и микробизнеса. Автоответ ночью — бот отвечает клиентам, когда мастер спит. Запись на услугу — клиент пишет «хочу маникюр на пятницу», бот предлагает свободные слоты. FAQ — типовые вопросы про цены, адрес, парковку. Префильтр — бот собирает у клиента имя, услугу, желаемое время, и только потом подсвечивает диалог владельцу. Нотификации — за день до записи бот напоминает, спрашивает подтверждение. Это снимает с предпринимателя половину рутины и при этом не превращает диалог в общение с роботом.

Как корректно передать диалог из бота владельцу?

Самое важное в Business-боте — корректная передача диалога человеку. Если клиент задаёт нестандартный вопрос, бот не должен зацикливаться на сценариях, а тихо «уйти», оставив диалог владельцу. Стандартный подход. Бот отвечает только в рабочее время или только на типовые сообщения. Если входящее не подходит ни под один сценарий — бот молчит и ждёт владельца. Если владелец сам отправил сообщение клиенту, бот «уступает» этот диалог на сутки. Без этой логики бот может перебивать живой разговор, что раздражает клиента и владельца.

Какие ограничения у Telegram Business для ботов?

Что не умеет Business-бот. Не видит сообщения, отправленные до подключения — старая переписка ему недоступна. Не работает в супергруппах и каналах владельца. Не подменяет аватар и имя владельца — клиенты пишут именно человеку, и интерфейс не показывает, что отвечает бот. Платежи внутри Business-режима не обрабатываются ботом — для оплаты используют отдельный бот или платёжную ссылку. Это нормально для микробизнеса, но если нужны сложные воронки и оплаты, лучше делать классического бота @company_bot.

Когда Telegram Business не подходит и нужен классический бот?

Business имеет смысл, когда у вас один-два сотрудника, работающих с личным аккаунтом, высокая доля типовых вопросов, нет потребности в сложной воронке и платёжной интеграции. Если у вас десятки операторов, нужна CRM, статистика по клиентам, передача между сменами — лучше делать классического бота @company_bot или Telegram-приложение поверх HelpDesk. Также безопасность: Business-бот видит личную переписку владельца с клиентами — это чувствительные данные, требующие шифрования в БД, 2FA в админке и хранения только нужных сущностей.

Сколько ботов можно подключить к одному Business-аккаунту и наоборот?

Один владелец Business-аккаунта может подключить только одного бота — это ограничение Telegram. Зато один бот может обслуживать неограниченное количество Business-аккаунтов, что и делает возможной SaaS-модель: одна студия пишет бота, тысячи мастеров подключают его к своим аккаунтам, каждый получает свой business_connection_id. Условие активности — действующий Telegram Premium у владельца. Если подписка истекла, прилетает повторный business_connection с is_enabled=false, и бот перестаёт получать апдейты. Также бот работает только в приватных 1:1 чатах: группы, каналы, секретные чаты и звонки ему недоступны.

Кто оператор персональных данных, если бот видит переписку клиентов мастера?

По 152-ФЗ оператор персональных данных — почти всегда сам владелец Business-аккаунта (мастер, репетитор, психолог), потому что именно он собирает данные клиентов для оказания услуги. Студия, разработавшая и хостящая бота, становится обработчиком, если бот сохраняет переписку, имена, телефоны на серверах студии. В этом случае между мастером и студией нужен договор поручения обработки по ст. 6 ч.3 152-ФЗ с описанием цели, перечня действий, мер защиты и сроков хранения. Дополнительно требуется уведомление клиента в первом сообщении о наличии бота-ассистента и ссылка на политику обработки ПДн. Без этой обвязки Business-бот — юридическая мина.

Какие самые частые ошибки при разработке Business-бота?

Топ-5 ошибок. Первая — бот отвечает на свои же сообщения, потому что нет фильтра from.id равно owner.id. Вторая — не сохраняется connection_id из апдейта business_connection, и тогда sendMessage падает с 400. Третья — игнорируется is_enabled=false при истёкшем Premium, бот забивает логи ошибками. Четвёртая — попытки подтянуть историю до подключения, которая Telegram'ом не отдаётся в принципе. Пятая — отсутствие per-(connection_id, chat_id) FSM, из-за чего шаги одного клиента смешиваются с шагами другого. Все они дешёвые в исправлении и катастрофические по эффекту, если найдены уже на проде.