Боты без лишнего кода: Как создать чат-бота для бизнеса и личных задач

- -
- 100%
- +
Некоторые сбои требуют немедленно приостановить пилот: бот вводит пользователя в заблуждение, теряет заявки или выдаёт неподтверждённое время за свободный слот. Сначала устраните риск, а затем решайте, продолжать ли испытание. Это не то же самое, что завершить пилот из-за слабого результата: безопасность и точность важны на любом этапе.
Условия пересмотра должны быть конкретными. «Если что-то пойдёт не так» — не критерий. А вот «если более чем в 10 процентах заявок возникает ошибка передачи или администратор не видит заявку, приостанавливаем бота до исправления» — уже проверяемое правило. Порог выбирают с учётом допустимого риска; для серьёзной ошибки он может быть нулевым.
Не меняйте целевой показатель задним числом. Если первая версия не достигла порога, это не повод объявлять успехом любое улучшение. Зафиксируйте, что сработало, где возник сбой и к какому решению приводят данные. Если решите внести поправки, меняйте один ключевой элемент: иначе не получится понять, что именно повлияло на результат. После этого проведите один ограниченный повторный тест или закройте пилот.
Такой итог не обесценивает работу. Если бот не помог, вы выяснили это за ограниченное время и не стали расширять сценарий, который не решает нужную задачу. Если польза появилась, теперь есть основания развивать проект — опираясь на результаты, а не на список пожеланий.
Перед запуском проверьте границы
У пилота есть одна задача, одна аудитория и один основной путь от начала до результата.
Пользователь понимает, что бот может сделать сам, а что должен подтвердить сотрудник.
Каждая обязательная функция нужна для безопасного и понятного сценария или для проверки гипотезы.
Для основного показателя известны исходное значение, способ подсчёта, период наблюдения и минимальный объём данных.
Назначены ответственные за заявки, поддержку и оценку результата.
Установлены пределы времени и бюджета, а также дата принятия решения.
Определено, что делать в случае успеха, исправимого сбоя или отсутствия пользы.
Если хотя бы один пункт остался без ответа, пилот пока не готов. Не обязательно откладывать запуск на месяцы: иногда достаточно одного вечера, чтобы выбрать сценарий, написать честные тексты, заполнить карточку и решить, какие задачи останутся человеку. Но готовность к проверке — ещё не готовность продукта к любым ситуациям.
Первая версия нужна не для того, чтобы показать все возможности сервиса. Её задача — проверить одну полезную гипотезу в понятных границах. Когда они зафиксированы, следующий шаг — разложить выбранный путь на конкретные сообщения, варианты выбора, возможные ошибки и передачу заявки сотруднику. Так появляется сценарий разговора, который можно настроить и проверить.
Сценарий как карта разговора
В разгар сезона Марина пишет в мастерскую «Спица»: «Здравствуйте. Тормоза почти не работают. Можно сегодня посмотреть? Сколько это будет стоить?» Павел отвечает за будущего бота, но пока не настраивает его в сервисе: он набросал на бумаге нейтральное приветствие, список услуг и часы работы. Однако Марине от этого не легче: она не понимает, как оформить заявку, можно ли узнать цену и что делать, если свободного времени сегодня не окажется.
Команда уже определила задачу: бот должен разгрузить сотрудников от повторяющихся вопросов и собирать заявки на ремонт, не обещая того, чего пока не умеет проверять автоматически. Для первой версии этого достаточно. Теперь нужно превратить задачу в маршрут, который приведёт человека к понятному результату и позволит изменить решение по пути.
Список реплик ещё не сценарий
Павел начинает привычным способом: записывает фразы, которые должен произносить бот. «Добро пожаловать в “Спицу”». «У нас можно отремонтировать велосипед». «Мы работаем с десяти до восьми». «Оставьте номер телефона». Каждая фраза по отдельности уместна, но вместе они не отвечают на главный вопрос: что Марине делать дальше?
Сценарий — не набор заранее написанных реплик, а карта возможных путей пользователя. Она ведёт от первого сообщения к конкретному результату и предусматривает ответвления: вопрос, исправление, отмену, обращение к сотруднику. Реплики наполняют карту, но не заменяют её.
Представьте, что человек впервые вошёл в мастерскую. На стойке лежит список услуг, на стене висит расписание, рядом стоят визитки. Но никто не объясняет, куда обратиться, чтобы записаться. Информация есть, пути нет. В боте так бывает, когда после приветствия пользователь получает длинный перечень возможностей или должен угадать команду, которую предусмотрел автор.
Павел проверяет бумажный черновик простым вопросом: если Марина напишет обычными словами, не нажимая кнопки, поймёт ли бот, чего она хочет? В первоначальном варианте — нет. После приветствия черновик предлагает нажать кнопку, а фраза «Можно сегодня и сколько стоит?» не подходит ни к одному из предусмотренных вариантов. В таком разговоре человек застревает в самом начале.
Ирина, владелица мастерской, замечает ещё одну проблему. Бот предлагает записаться, но не объясняет, что именно считается записью. Заглянуть в расписание автоматически он не может: свободные окна Павел и механики отмечают вручную. Если бот напишет «Вы записаны на сегодня», клиент приедет, а мастерская может оказаться занята. Если же бот просто отправит заявку, Марина не поймёт, подтвердили ли ей время.
Поэтому сначала команда определяет, к какому результату должен привести разговор. Для Марины это не просто нажатие кнопки или отправка данных. Заявка должна попасть в мастерскую, клиентка — понять, что время ещё не подтверждено, и знать, где и когда ждать ответа. Если позже появится актуальный календарь, сценарий изменится: бот предложит свободные интервалы и подтвердит выбранный. Но это уже другая версия продукта, а не повод изображать возможность, которой пока нет.
В «Спице» очерчивают границы первой версии: бот отвечает на несколько проверенных вопросов, собирает запрос на ремонт и передаёт его сотруднику. Самостоятельно назначать время или рассчитывать стоимость ремонта по описанию неисправности он не будет. В этом примере диагностика стоит 900 рублей, а цену работ механик называет после осмотра. До запуска Ирина должна подтвердить эту сумму. Если реальные условия другие, изменится и сообщение: в сценарии нельзя оставлять цифру, за которую команда не готова отвечать.
Маршрут начинается с намерения
Первое сообщение бота должно не только приветствовать, но и подсказывать, куда можно обратиться. Если Марина уже написала, что хочет узнать цену, приветствие не должно заставлять её повторять вопрос. Бот может сразу ответить на ту его часть, для которой у него есть проверенная информация, и предложить следующий шаг.
Например, начать можно так:
«Здравствуйте! Помогу оставить заявку на ремонт, отвечу на частые вопросы или передам разговор сотруднику. Что вам нужно?»
Кнопки: «Записаться на ремонт», «Задать вопрос», «Изменить или отменить заявку», «Связаться с сотрудником».
Четыре варианта на первом экране — не самоцель. Здесь они обозначают четыре причины, по которым человек начинает разговор. Если кнопок становится слишком много, варианты стоит сгруппировать. А если нужного действия среди них нет, пользователь должен иметь возможность написать своими словами.
В сообщении Марины уже есть два намерения: узнать цену и попробовать записаться на сегодня. Бот может обработать их по очереди. Сначала ответить на известный вопрос, затем предложить оставить заявку:
«Диагностика стоит 900 рублей. Стоимость ремонта мастер назовёт после осмотра. Если тормоза не удерживают велосипед, не выезжайте на нём до проверки. Хотите оставить заявку на сегодня? Мастерская сверит расписание и сообщит, есть ли свободное время».
Кнопки: «Оставить заявку», «Ещё вопрос», «Позвать сотрудника».
Бот не обещает, что Марина точно попадёт сегодня. Он сообщает лишь то, что мастерская действительно может сделать: принять запрос и проверить расписание. Если сотрудник найдёт свободное время, он подтвердит его отдельно. Такая формулировка не звучит так эффектно, как мгновенная запись, зато не создаёт ложных ожиданий.
На бумаге маршрут выглядит так.
Вход — приветствие и распознавание или выбор намерения.
Запись на ремонт — тип велосипеда, описание проблемы, желаемый день или интервал и способ связи.
Проверка — сводка введённых данных с возможностью подтвердить их, изменить или прекратить заполнение.
Передача — заявка уходит в мастерскую; бот сообщает, что время пока не подтверждено, и объясняет, что будет дальше.
Вопрос — бот отвечает на проверенный вопрос или передаёт его сотруднику, а затем предлагает продолжить, вернуться в меню или закончить разговор.
Изменение или отмена существующей заявки — бот уточняет, какую именно заявку нужно изменить или отменить, либо направляет клиента к сотруднику.
Выход — бот подводит итог и оставляет возможность начать заново или обратиться за помощью.
Это пока не техническая схема: здесь нет названий блоков конструктора, интеграций и сложных условий. Зато уже видны главное — действия человека, реакция бота и понятный результат каждого пути. К переносу маршрута в конструктор Павел вернётся позже, когда команда выберет подходящий инструмент и проверит, что не пропустила важные развилки.
Как устроена ветка записи
Марина нажимает «Оставить заявку». Теперь бот должен собрать сведения, которые понадобятся сотруднику для первого контакта. Если спросить слишком мало, администратору придётся заново выяснять самое важное. Если спрашивать обо всём подряд, клиент может бросить заполнение, а часть данных так и не пригодится.
В «Спице» выбирают четыре пункта: тип велосипеда, описание неисправности, желаемое время и способ связи. Тип поможет механику понять, с каким заказом он столкнётся. Описание неисправности даст представление о срочности и поможет подготовиться к разговору. Желаемый интервал позволит сотруднику сверить расписание, а способ связи — сообщить результат.
Первый вопрос: «Какой у вас велосипед?»
Кнопки предлагают обычные варианты: «Городской», «Горный», «Детский», «Другой». Если ни один не подходит, Марина может написать ответ сама. Не стоит требовать от клиента точной технической классификации, если мастерская всё равно сможет уточнить детали позже.
Следом бот спрашивает: «Что нужно проверить или починить? Можно выбрать вариант или написать своими словами».
Кнопки: «Тормоза», «Колёса», «Переключение передач», «Другое».
Свободный текст здесь особенно важен: поломку трудно полностью уложить в короткий список. Марина может написать: «Тормозная ручка проваливается, переднее колесо скрипит». Если бот не умеет надёжно разобрать такое описание, ему не нужно изображать специалиста. Достаточно сохранить текст для механика, не ставя диагноз.
Затем — вопрос о времени: «Когда вам удобно привезти велосипед? Выберите день или укажите подходящий интервал. Время подтвердит администратор».
В первой версии лучше не показывать список якобы свободных окон, если он не обновляется автоматически. Можно предложить варианты «Сегодня», «Завтра», «Другой день», а затем попросить уточнить интервал свободным текстом. Кнопка «Сегодня» означает только пожелание клиента, а не бронь — если мастерская не может подтвердить время сразу.
Последний вопрос — о связи: «Как вам удобнее получить ответ: здесь или по телефону?»
Если Марина выбирает звонок, бот просит номер и объясняет зачем: «Укажите номер, по которому администратор сможет связаться с вами и подтвердить время». Если она предпочитает продолжить в том же чате, дополнительный номер может не понадобиться. Не стоит собирать данные «на всякий случай»: каждое поле требует усилий от пользователя и обязывает мастерскую бережно обращаться с полученной информацией.
Когда всё готово, бот не отправляет заявку молча, а показывает её целиком:
«Проверьте, пожалуйста: горный велосипед; проблема с тормозами, ручка проваливается; удобно сегодня после 17:00; ответить здесь. Время пока не подтверждено. Всё верно?»
Кнопки: «Отправить заявку», «Изменить», «Не отправлять».
Такая проверка даёт Марине возможность заметить ошибку до того, как сведения уйдут в мастерскую. Она могла случайно выбрать «Завтра» вместо «Сегодня» или неверно указать время. На этом шаге можно исправить и то и другое.
После подтверждения бот отвечает:
«Заявка № 184 принята. Вы просили проверить, можно ли приехать сегодня после 17:00. Администратор сверит расписание и ответит здесь. Это сообщение ещё не подтверждает время».
Номер в примере условный. Если система не присваивает заявкам номера, бот не должен их выдумывать. Достаточно написать: «Заявка передана администратору». Номер полезен, только если по нему сотрудник сможет найти обращение, а клиент — сослаться на него при уточнении.
Кнопки, свободный текст и возврат
Кнопки удобны там, где набор вариантов известен: выбрать действие, подтвердить данные, перейти к сотруднику. Они помогают избежать ошибок и показывают, что бот умеет делать. Но если оставить человеку только кнопки, разговор начинает напоминать анкету с закрытыми дверями. Не получится описать необычную неисправность, сообщить, что планы изменились, или задать короткий вопрос.
Свободный текст нужен там, где человеку проще сформулировать ситуацию самому. При этом команда должна заранее решить, что бот будет делать с сообщением: сохранит его как описание, попробует найти ответ среди нескольких известных вопросов или передаст сотруднику. Если ответа нет, бот не должен угадывать.
Для первой версии «Спицы» выбирают простое правило. Кнопки ведут по основным маршрутам, а текст можно вводить в полях описания проблемы и уточнения времени. Если пользователь пишет что-то вне ожидаемого поля, бот распознаёт лишь несколько проверенных запросов — например, о цене диагностики и графике работы. Остальные вопросы он предлагает передать администратору.
Марина: «А сколько примерно займёт ремонт?»
Бот: «Срок зависит от неисправности и загрузки мастерской. После осмотра администратор или мастер сообщит, когда можно будет забрать велосипед. Продолжить оформление заявки?»
Кнопки: «Продолжить», «Спросить сотрудника», «Вернуться в меню».
Формулировка зависит от того, что мастерская может подтвердить. Ответ «обычно за час» не подойдёт, если в сезон ремонт часто занимает несколько дней. Бот должен опираться на проверенную информацию, а не на догадку, удобную для сценария.
Возможность вернуться на предыдущий шаг — не мелочь интерфейса, а способ снизить цену ошибки. Если на экране проверки Марина заметит, что выбрала не тот тип велосипеда, ей нужно изменить только этот пункт, а не проходить анкету заново. Если она ввела неверное время — вернуться к выбору времени. Если передумала на середине разговора — остановить заполнение.
В сценарии «Спицы» это предусмотрено заранее. Кнопка «Изменить» на экране проверки открывает выбор поля: тип велосипеда, описание, время или способ связи. После исправления бот снова показывает заявку целиком, чтобы Марина подтвердила обновлённые данные. Кнопка «Назад» на шаге описания неисправности возвращает к выбору типа велосипеда, сохраняя остальные ответы. А переход «В меню» возвращает к выбору действия. Если заявка ещё не отправлена, бот уточняет, хочет ли Марина прекратить заполнение.
Иногда вместо общей кнопки «Назад» полезнее дать конкретную: «Изменить день» или «Исправить описание». Название должно подсказывать, что произойдёт дальше. Кнопка «Далее» без пояснений заставляет гадать, особенно если перед пользователем несколько вариантов.
Свободный текст может прервать текущий шаг. Например, пока бот спрашивает, какой у Марины велосипед, она пишет: «Я передумала, не сегодня». Сценарий должен заметить намерение остановиться, а не принять эту фразу за ответ. Для первой версии не нужно обещать понимание любых формулировок. Достаточно распознавать несколько заранее проверенных команд, а в сомнительном случае уточнять:
«Вы хотите изменить день приезда или прекратить заполнение заявки?»
Кнопки: «Изменить день», «Прекратить заполнение», «Остаться на этом шаге».
Уточнение лучше неверного действия. Но если после каждого сообщения бот спрашивает «Что вы имели в виду?», он лишь перекладывает работу на клиента. Там, где варианты можно сформулировать ясно, нужно предложить их. Если намерение всё же неоднозначно — задать один вопрос и оставить возможность обратиться к сотруднику.
Вопрос и отмена — отдельные маршруты
У вопроса должен быть собственный путь и понятная точка возврата. Если Марина во время записи спрашивает о цене, бот отвечает проверенной информацией и предлагает продолжить с того места, где разговор прервался. Ему не следует забывать уже введённое описание неисправности и отправлять клиентку в начало.
«Диагностика стоит 900 рублей; стоимость ремонта мастер определит после осмотра. Продолжить заявку с выбора удобного времени?»
Такой переход показывает, что бот удерживает контекст разговора, а не перескакивает между несвязанными сообщениями. Если система не умеет сохранять текущий шаг, лучше честно предложить начать заново, чем создавать впечатление, будто данные остались в памяти.
Для незнакомого вопроса нужен другой ответ:
«Я пока не могу ответить на этот вопрос без уточнения. Передать его администратору?»
Кнопки: «Да, передать», «Вернуться к записи», «В меню».
Если сотрудник отвечает только в рабочее время, бот должен объяснить, когда ждать ответа. Не стоит обещать «сейчас подключим специалиста», если никто не дежурит. До запуска команде нужно определить срок обработки обращений или, если точный срок пока неизвестен, обойтись без конкретного обещания: «Администратор ответит после проверки сообщения в рабочее время».
С отменой тоже нужна ясность: пользователь может иметь в виду разные вещи. Марина может хотеть прекратить заполнение новой заявки, изменить уже отправленный запрос или отменить согласованный визит. Для каждого случая нужен свой маршрут.
Для незавершённой заявки бот пишет: «Заявка ещё не отправлена. Прекратить заполнение?»
Кнопки: «Да, прекратить», «Продолжить».
Если Марина подтверждает, бот отвечает: «Запрос не отправлен. Если захотите записаться позже, выберите “Записаться на ремонт”». Здесь нельзя писать «Ваша запись отменена»: записи ещё не было.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.



