«Нужен бот с кнопками и CRM» — понятное начало разговора, но недостаточное описание для фиксированной сметы. Два бота с одинаковым меню могут сильно отличаться: один передаёт сообщение менеджеру, другой проверяет свободное время, резервирует запись и восстанавливает заявку после сбоя.

Хорошее техническое задание описывает действия клиента, правила бизнеса и проверяемый результат. Ниже — структура, которую можно заполнить до обращения к разработчику. Она подойдёт компании из России или Беларуси: особенности филиалов, валют и рабочего времени нужно указать отдельно.

Начните с одного результата

Запишите, какую задачу должен завершить пользователь. Например: выбрать услугу и оставить заявку на согласование времени. Не объединяйте в первую версию запись, программу лояльности, оплату и внутренний учёт, если для проверки идеи достаточно одного сценария.

Укажите, что происходит сейчас: клиент звонит, администратор уточняет детали и переносит их в таблицу. Затем опишите ожидаемое изменение: бот собирает данные, сотрудник получает полную заявку, клиент видит подтверждение получения. Это пример проектирования, а не результат внедрения у конкретного заказчика.

Опишите диалог и исключения

Для каждого шага нужны сообщение, варианты ответа и следующее действие. В Telegram доступны команды, обычные и встроенные кнопки; отдельный интерфейс можно реализовать через Mini App. Выбор зависит от сценария, а не только от внешнего вида. Возможности перечислены в официальной документации Telegram.

  1. Старт: объяснить назначение бота и предложить выбор услуги.
  2. Данные: запросить только сведения, нужные для заявки.
  3. Проверка: показать пользователю введённое и дать исправить ошибку.
  4. Отправка: создать заявку и показать её номер.
  5. Завершение: объяснить, кто и когда свяжется с клиентом.

Рядом запишите исключения: пустой ответ, неподходящий файл, возврат назад, повторное нажатие, продолжение через сутки. Отдельно решите, сохраняется ли незаконченная заявка. Эти детали часто обнаруживаются только при тестировании, если их нет в ТЗ.

Разделите роли и данные

Клиент должен видеть свои заявки; менеджер — обращения своего направления; администратор — настройки, которые ему разрешено менять. Составьте список конкретных действий каждой роли: просмотр, изменение статуса, экспорт, редактирование справочника. Само наличие кнопки администратора не заменяет проверку доступа на сервере.

Для каждого поля укажите назначение, обязательность и получателя. Например: «город — нужен для выбора филиала; передаётся в карточку заявки». Не добавляйте паспортные данные или полную историю клиента «на будущее». Сроки хранения и правила доступа согласуйте с ответственным за данные в вашей компании.

Зафиксируйте интеграции

Названия CRM недостаточно. Нужны сущность, поля, направление обмена и источник истины. Где хранится актуальный список услуг? Кто меняет статус? Что делать, если CRM не отвечает? Можно ли принять заявку во внутреннюю очередь и передать позже?

Важное правило для ТЗ: повторная доставка одного события не должна создавать вторую заявку. Опишите, как сотрудник узнает о неудачной передаче и где найдёт обращения, требующие ручной обработки. Состав работ по обмену данными разобран в статье об интеграции Telegram-бота с CRM.

Согласуйте приёмку до начала работ

Критерий «всё работает» нельзя проверить однозначно. Вместо него запишите конкретные проверки:

  • После подтверждения создаётся одна заявка с согласованными полями.
  • Двойное нажатие не создаёт дубль.
  • При недоступности CRM данные не теряются, пользователь получает понятный статус.
  • Клиент не может открыть чужую заявку по подставленному номеру.
  • Менеджер получает контекст обращения и может продолжить работу.
  • Заказчику переданы исходники, доступы и инструкция запуска.

Для производительности укажите ожидаемую нагрузку и согласуйте способ её проверки. Для уведомлений определите часовой пояс каждого филиала и поведение вне рабочего времени. Условия поддержки после запуска зафиксируйте отдельно от приёмки.

Короткий бриф, который можно отправить

Цель: собирать заявки на услугу. Пользователи: клиенты и менеджеры. Основной путь: выбор услуги → город → контакт → проверка → отправка. Результат: заявка в CRM и номер в чате. Исключения: повторная отправка и недоступность CRM. Администрирование: изменение списка услуг. Первая версия: без оплаты. Приёмка: успешный путь, ошибки и проверка прав доступа.

Дополните пример своими правилами и приложите обезличенный образец карточки заявки. Пароли и токены в документ включать не нужно. Если часть решений пока неизвестна, пометьте её вопросом для обсуждения: это полезнее случайно зафиксированного требования.

Такой бриф позволяет предметно обсудить разработку Telegram-бота. Ориентиры бюджета и факторы, которые меняют оценку, есть в материале о стоимости Telegram-бота.