Заказ и договор

ТЗ на чат-бота: девять разделов, без которых смета поедет

ТЗ на чат-бота держится на девяти разделах: задача и критерий приёмки, точки входа, карта диалога, развилки и тупики, собираемые поля, адрес заявки, интеграции, приём оплаты, права на бота и переписку. Без любого из них смета считается дважды — до сборки и после. Разработка в агентстве ЭТОБОТ — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц.

14 мин чтения Дмитрий Киселев, основатель ЭТОБОТ и ЭТОЧАТБОТ

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

Короткий ответ

  • Девять разделов. Задача и критерий, точки входа, карта диалога, развилки и тупики, собираемые поля, адрес заявки, интеграции, приём оплаты, права на бота и переписку.
  • Пропускают чаще всего три: что бот делает при молчании, кто дежурит на адресе заявки, на чьём аккаунте живёт бот.
  • Цены: разработка от 20 000 ₽, поддержка от 5 000 ₽ в месяц. Точная цифра — после разбора задачи и до начала работ. Сроков не обещаем.
  • Невыполнимые пункты вычёркиваются на входе: рассылки по базе телефонов в Telegram не существует, холодного директа в Instagram* официальный API не даёт, «окна 24 часа» во ВКонтакте нет вовсе.

Что должно быть в ТЗ на чат-бота: девять разделов

Таблица ниже — каркас задания. Порядок в ней не случайный: каждый следующий раздел опирается на предыдущий, и если первый пустой, остальные пишутся наугад.

Раздел заданияЧто написатьЧто будет, если раздела нет
1. Задача и критерийзачем бот и по какому измеримому признаку видно, что он сработалработу нечем принимать
2. Точки входаоткуда человек попадает: ссылка, QR-код, кнопка на сайте, комментарий, кодовое словобота включают, и в него никто не приходит
3. Карта диалогаэкран за экраном: текст, кнопки, что дальшесценарий собирают по переписке, правки идут после сборки
4. Развилки и тупикинепонятный ответ, молчание, «хочу человека», отказ системыбот отвечает «не понял» и теряет человека
5. Собираемые полячто бот спрашивает, что обязательно, в каком форматетелефон приходит в шести видах, в CRM дубли
6. Адрес заявкикуда падает и кто дежурит: чат, группа, CRM, таблицазаявки есть, ответов нет
7. Интеграциикакие системы, у кого доступы, что делать при их отказеинтеграцию проектируют дважды
8. Приём оплатыпровайдер, что выдаётся после оплаты, отказ, возврат, двойной платёжкнопка «оплатить» есть, выдача руками
9. Правана чьём аккаунте бот, кому принадлежат сценарии и переписка, в каком виде выгрузкасмена подрядчика равна новой разработке

Разделы 4, 6 и 9 пропускают чаще прочих, и как раз они дороже всего достаются потом: поведение при сбое — не приложение к сценарию, а часть его логики. Во что каждая строка превращается в деньгах, разобрано отдельно: из чего складывается смета на чат-бота.

Точки входа: откуда человек попадает в бота

Точка входа — это не «разместим ссылку». В задании стоит, какой канал, что человек делает первым и по какому праву бот отвечает: право написать первым даёт мессенджер, а не бот. Полный разбор — в статье про то, кто может написать клиенту первым.

КаналТочка входаКто пишет первымЧего в задании быть не может
Telegramссылка, QR-код, кнопка на сайте, ссылка с параметромбот — только тому, кто нажал «Запустить»рассылка по базе телефонов: по номеру бот не найдёт человека
ВКонтактесообщение в сообщество, кнопка в записи, виджетсообщество пишет первым тому, кто разрешил ему сообщения, и бессрочно«окно 24 часа»: такого ограничения у ВК нет
МАКСчеловек сам начинает диалогтолько после начала диалога человекомбот на частное лицо: вход — организация, ИП или самозанятый, резидент РФ
Instagram*комментарий под постом, реакция на сторис, кодовое слово в личных сообщенияхнаписать первым нельзяхолодный директ: официальный API его не даёт

Instagram* требует двух отдельных строк. Первый директ после комментария уходит как Private Reply, и попытка одна: отказ сжигает слот, повтор не спасает. Спасает публичная подсказка в комментариях, и её текст пишут заранее, отдельным экраном сценария.

МАКС добавляет строку про доступ: кабинет business.max.ru, верификация профиля (несколько рабочих дней, и от подрядчика этот срок не зависит), ограниченное число ботов на профиль — полный список смотрите в требованиях МАКС к боту и профилю. Обращения к API требуют доверенного российского корневого сертификата: без него запросы не проходят, и со стороны это выглядит как «бот молчит, ошибок нет».

Карта диалога и сценарий для чат-бота: пример по шагам

Пример ниже — не схема для копирования, а форма записи: шаг, что бот говорит, что записывает и что делает, когда шаг не удался. Такой таблицы уже достаточно, чтобы посчитать работу.

ШагЧто делает ботЧто записываетЧто при неудаче
1. Приветствиеназывает, что умеет, и даёт три-четыре кнопкиканал и точку входачеловек пишет текстом вместо кнопки — бот принимает текст
2. Уточнение задачиодин вопрос с вариантамивыбранный вариантвариант не подошёл — кнопка «другое» и передача человеку
3. Ответы на вопросыотвечает на два-три частых: цена, часы работы, адрескакой вопрос задаливопроса нет в списке — зовёт человека, не придумывает
4. Контактпросит телефон или согласие писать в этот же чатимя, телефон, факт согласияформат не тот — просит повторить один раз
5. Заявкаподтверждает приём и говорит, что будет дальшеномер заявки, время, ответственногоадрес не ответил — уведомление второму получателю
6. Передача человекуставит диалог в ожидание оператора и молчитметку «ждёт человека»никто не взял — напоминание ответственному

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

Что делать при молчании: раздел, который пропускают

Человек уходит из диалога молча — это норма, и поведение бота в такую минуту описывают в задании, а не в «доработках после запуска». Раздел сводится к трём числам и одному тексту.

  1. Сколько ждать до напоминания: ожидание выбора в меню и ожидание телефона — разные паузы.
  2. Сколько раз напомнить. Здесь решает заказчик, но запас короткий: после второго напоминания разговор читается как назойливость, а жалобы бьют по аккаунту, а не по сценарию.
  3. Когда закрыть диалог и что при этом произойдёт: заявка уходит неполной, уходит без телефона или не уходит вовсе — выбор за заказчиком, потому что дальше по ней работают его люди.
  4. Текст напоминания. Одно предложение с пользой: «остался один шаг — телефон, и заявка уйдёт мастеру».

Без канальной оговорки пункт превращается в фикцию. В Telegram и МАКС догоняющее сообщение уходит только тому, кто сам начал разговор. Во ВКонтакте сообщество пишет первым каждому, кто разрешил ему сообщения, и делает это бессрочно — там напоминания планируются свободнее всего. В Instagram* писать первым нельзя, и правил для напоминания через несколько дней после разговора официальный API не даёт: задание ведёт человека в другой канал, а не обещает догоняющие сообщения.

Второй случай того же рода — непонятный ответ. Ответ на «не понял» должен быть ровно один: показать меню и предложить человека. Три попытки угадать хуже одной честной передачи.

Куда уходит заявка и кто её берёт

Раздел на пять строк, который решает больше, чем весь сценарий.

  • Адрес. Чат ответственного, группа, CRM, таблица: одно место главное, одно резервное.
  • Состав. Какие поля в заявке и в каком порядке: читают её в телефоне и за несколько секунд.
  • Дежурный. Имя и часы. Бот работает круглосуточно, человек — нет, и в задании написано, что происходит с ночным обращением.
  • Поведение при отказе системы. Если CRM не ответила, заявка не исчезает, а уходит человеку другим путём.
  • Что видит клиент. Подтверждение с номером заявки и тем, что будет дальше.

Пункт про дежурного не формальность: бот ускоряет момент, когда обращение попадает к человеку, а если человека нет — ускоряет разочарование.

Персональные данные: какие поля и на каком основании

Как только бот спрашивает имя и телефон, начинаются персональные данные. Юридическую часть проверяет ваш юрист, в задании нужны четыре вещи:

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

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

Права на бота, сценарии и переписку

Четыре вопроса, ответы на которые дешевле получить до договора.

  1. На чьём аккаунте создан бот и кто владелец приложения на стороне канала.
  2. Кому принадлежат сценарии и в каком виде их отдают при расставании.
  3. Кому принадлежит переписка и как её выгрузить.
  4. Что происходит с ботом, если подрядчик перестал отвечать.

Ответа «всё ваше» хватает в разговоре и не хватает в задании: напишите, что именно передаётся — доступ к аккаунту, сценарии, выгрузка диалогов.

ИИ-агент в задании: чем он отличается от сценария

Сценарий описывают экранами, ИИ-агента — материалами и границами: список материалов, по которым он отвечает, темы, которые он не берёт, правило «не знаю — зову человека», что происходит после передачи. Как эти границы формулируют, чтобы ИИ-агент не придумывал, разобрано отдельно. Без материалов агент честно скажет, что не знает, — это не поломка, а следствие пустого раздела.

Деньги считаются иначе. Работа агента стоит столько, сколько он потратил токенов; фиксированной ставки за месяц нет, поэтому в задании полезно указать ожидаемый поток обращений и желаемую длину ответов — расход зависит от них. Часть зарубежных ИИ-сервисов из России картой не оплачивается: помогаем оплатить их иностранными картами, но это отдельные деньги, а не часть разработки.

Чего в ТЗ писать не надо

  • «Бот должен общаться как живой человек». Требование без критерия: принять по нему работу нельзя.
  • «Интеграция со всеми нашими системами». Каждая система — отдельная работа со своим поведением при отказе. Перечислите их и скажите, какая главная.
  • Срок без второй половины. Дату назвать можно, но рядом должен стоять ответ, кто и когда даёт доступы, тексты и правки. Сроков мы не обещаем именно поэтому.
  • «Как у конкурента». Со стороны видны меню и тексты; логика, интеграции и поведение при сбоях по чужому боту не восстанавливаются.
  • Готовые тексты всех экранов до карты диалога. Они переписываются после первой же проверки путей: сначала карта, потом слова.
  • Пункты, которых канал не даёт. Рассылка по номерам в Telegram, холодный директ в Instagram*, «окно 24 часа» во ВКонтакте. Такие строки вычёркиваются, а не оцениваются.

Когда задание можно не писать

Иногда правильный ответ — не заказывать бота, и честнее сказать это до договора.

  • Обращений единицы в неделю, оплат в переписке нет. Разработка окупается на потоке; при малом потоке дешевле конструктор с месячным тарифом.
  • Никто не будет отвечать, когда бот передал разговор. Тогда задание на бота — задание на более быструю тишину.
  • Нужна рассылка по базе телефонов. В Telegram бот пишет только тому, кто нажал «Запустить», и по номеру человека не находит; бюджет этого не меняет.
  • Нет материалов, а ИИ-агент «сам разберётся». Агент отвечает по вашим документам, и пустой раздел не заменяется словом «искусственный интеллект».
  • Бот нужен «как у всех». Нет критерия — нет приёмки, и работа заканчивается спором о вкусах.

Задание из одного абзаца — нормальное начало, если в нём есть задача, точка входа и адрес заявки.

Как составить ТЗ на бота вместе с подрядчиком

Порядок такой.

  1. Разбираем задачу: какие обращения приходят, сколько их, где теряются, кто отвечает людям сейчас.
  2. Присылаем карту диалога — экран за экраном, с развилками и тупиками. Менять схему дешевле, чем собранный сценарий.
  3. К карте прикладываем смету построчно, до начала работ. «Уточним в процессе» — не метод оценки.
  4. После запуска остаётся поддержка от 5 000 ₽ в месяц: наблюдение, мелкие правки, реакция на изменения в мессенджерах.

Разбор задачи и карта диалога — первая строка сметы, а не приложение к разговору: по ним и считается остальное. Опубликованные цены на разработку и поддержку лежат на главной, а задачу можно описать словами нашему боту в Telegram — для начала разговора этого достаточно.

Что запомнить

  1. Точку входа задаёт канал: во ВКонтакте сообщество пишет первым тому, кто разрешил ему сообщения, и бессрочно; в Telegram и МАКС бот отвечает только начавшему диалог; в Instagram* писать первым нельзя.
  2. Поведение при молчании — три числа и один текст: сколько ждать, сколько раз напомнить, когда закрыть диалог, что сказать.
  3. Адрес заявки без дежурного не работает: бот сокращает путь до человека, а не заменяет его.
  4. Права на аккаунт, сценарии и переписку описывают до договора.
  5. Смету считают по карте диалога и построчно: сначала разбор задачи, потом сценарий, интеграции и каналы. Сроков не обещаем; единственный известный срок в проекте — верификация профиля в МАКС, и он не наш.

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

Что должно быть в ТЗ на чат-бота?

Девять разделов: задача и критерий приёмки, точки входа, карта диалога экран за экраном, развилки и тупики, собираемые поля, адрес заявки с дежурным, интеграции, приём оплаты и права на бота, сценарии и переписку. Разработка в агентстве ЭТОБОТ — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц.

Как составить ТЗ на бота, если нет технического специалиста?

Начните с трёх вещей: выпишите реальные обращения за последний месяц, назовите точку входа (ссылка, QR-код, комментарий под постом, кодовое слово) и адрес, куда должна падать заявка. Остальное подрядчик превращает в карту диалога. Технические разделы заказчик писать не обязан: например, доверенный российский корневой сертификат для API МАКС — забота исполнителя.

Где взять пример сценария для чат-бота?

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

Можно ли заказать бота без ТЗ?

Да, задание чаще собирают вместе с подрядчиком. Минимум от заказчика — задача, точка входа и адрес заявки; остальное появляется в карте диалога, которую присылают до сборки. Без карты смета считается дважды: сначала по словам, потом по факту. Разработка начинается от 20 000 ₽, точную цифру называем после разбора задачи и до начала работ.

Кто должен писать ТЗ на чат-бота — заказчик или подрядчик?

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

Что написать в ТЗ про рассылки и напоминания?

Напоминания описывают по каналам, потому что право написать первым даёт мессенджер, а не бот. Во ВКонтакте сообщество пишет первым тому, кто разрешил ему сообщения, и бессрочно: окна 24 часа у ВК нет. В Telegram и МАКС сообщение уходит только начавшему диалог, в Instagram* писать первым нельзя. Рассылки по базе телефонов в Telegram не существует.

Сколько стоит составить ТЗ на чат-бота?

Задание собирается на разборе задачи, и разбор с картой диалога — первая строка сметы: по ним считаются сценарий, интеграции и подключение канала. Смета приходит построчно и до начала работ, разработка начинается от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Сроков не обещаем: единственный известный срок — верификация профиля в МАКС, несколько рабочих дней.

Как прописать в ТЗ ИИ-агента?

Через материалы и границы, а не через экраны: список документов, по которым агент отвечает, темы, которые он не берёт, правило «не знаю — зову человека» и что происходит после передачи. Работа агента считается по расходу токенов, фиксированной ставки за месяц нет, поэтому в задании указывают ожидаемый поток обращений.

Нужен бот, который делает это у вас?

Читать дальше