Бот в блокноте
Бот в блокноте

Если вы когда-либо мечтали создать своего телеграм-бота, но вас пугали технические сложности и необходимость программирования или рисования блок-схем, то у меня для вас отличные новости. Представляю вам Бот в блокноте — конструктор телеграм-ботов, который я разработал специально для тех, кто далёк от мира IT, но хочет легко и быстро создать своего бота. В отличие от традиционных конструкторов с блок-схемами, я предлагаю более гибкий и удобный способ работы. Блок-схемы могут быть сложными и запутанными, особенно когда проект становится большим.

Диалог бота созданный в блокноте
Диалог бота созданный в блокноте


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

Идея
Год назад, работая над телеграм-ботом для клиента, я задался вопросом: "Можно ли упростить процесс сборки типовых диалогов в боте и записи результата?" Часто при работе над проектами я использую блокнот для набора текста и Excel для сортировки и визуализации. Опираясь на этот опыт, я решил, что списки — это вполне удобный вариант.

Немного истории
В 2017 году, увидев бота в Telegram, я проникся идеей чат-ботов. Казалось, что это возрождение старой технологии станет успешным и облегчит множество рутинных операций. Так родился прототип CMS с рабочим названием "Core4". Основная идея заключалась в том, чтобы собрать все интерфейсы ботов к одному ядру, независимо от источника сообщения. Ядро должно было принимать, понимать и обрабатывать сообщения, давая ответ в понятной мессенджерам форме.

Результатом стал MVP, работающий с ныне запрещенным Фейсбуком, ушедшим Slack, Skype, Telegram, Viber, ВКонтакте, Яндекс.Алисой и даже WeChat. Все функции бота были разделены на плагины с единым интерфейсом обмена данными, что позволило упростить разработку и код. Однако блокировка Telegram в РФ и рост рабочей нагрузки заставили отложить идею в долгий ящик.

Начало
Я написал плагин для Core4, который обрабатывает текстовые каркасы и выводит квизы в боте.

Начал с простого опроса:

Третья планета от Солнца?
> Земля
> Венера
> Луна
Вам понравился тест?
> Да
> нет
Как вас зовут?
Оцените сложность теста в баллах от 1 до 10?

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

— «B» - ожидается ответ кнопкой
— «P:» — ожидание телефона через кнопку «Поделиться телефоном»,
— «G:» — ожидание геопозиции через кнопку «Поделиться геопозицией»,
— «#:» — ожидание отправки контакта или ручного ввода телефона +7(495)123-45-67, + и не менее 8 цифр, допустимы скобки и разделители
— «T:» — ожидание текстового ввода,
— «D:» — ожидание целого или десятичного числа,
— «E:» — ожидание ввода электронной почты
— «U:» — ожидание URL-адреса
— «Y:» — ожидание ввода даты DD-MM-YYYY или даты времени DD-MM-YYYY HH:II
— «H:» — ожидание ввода времени (часы и минуты) HH:MM
— «F:» — ожидание отправки файла,
— «X:» — любой тип ответа (но не кнопка)

Добавил возможность задавать оценку кнопочного ответа (Верно/Нет) и начислять баллы за ответ. Для ветвления придумал простой вариант: «Если ответили так, задать вопрос». Планирую добавить сегментацию пользователей на основе ответов (она уже есть в конструкторе, пользователи сегментируются, но в каркасе пока не реализована) .

После доработок каркас опроса стал выглядеть так:

Третья планета от Солнца?
> Земля||Y10
> Венера
> Луна
Вам понравился тест?
> Да||Y50
> нет
X: Расскажу в сообщении|Опишите впечатление текстом, видео или голосовым
T: Как вас зовут?
D: Оцените сложность теста в баллах от 1 до 10?

Уровень ветвлений стал практически неограниченным, но появились сложности в обработке алгоритма. Решение этих вопросов заняло много времени, но в итоге всё получилось.

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

 Вид диалога в конструкторе
Вид диалога в конструкторе

Не текстом единым
К вопросам нужно добавлять картинки и мультимедиа, без этого красивый квиз не сделать. От идеи добавлять картинки в каркасе пришлось отказаться, т.к. любую реализацию будет не возможно объяснить не подготовленному пользователю. Перенес ее в веб-конструктор и квизы заиграли новыми красками.

Редактирование ответа и вопроса, если выбран этот ответ
Редактирование ответа и вопроса, если выбран этот ответ


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

Настройки квиза
Настройки квиза


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

Полноценная работа
В веб-интерфейсе есть пункт «Клавиатуры бота», где можно создать стандартные клавиатуры для навигации с подключением к ним квизов, в них же можно задать сообщения при выводе клавиатуры. Используя эту возможность можно создавать сложные переходы и вариации. Конструктор на данном этапе предназначен для работы с квизами, но в планах создание привычных блок-схем с более удобными возможностями.

Создаем клавиатуру и назначаем действие кнопок, в планах визуализировать все на блок-схемах. Не самая красивая реализация, но понятная и это MVP
Создаем клавиатуру и назначаем действие кнопок, в планах визуализировать все на блок-схемах. Не самая красивая реализация, но понятная и это MVP


Общаемся с пользователями
Отлично! Квиз работает, вопросы задаются, типы контролируются, кнопку другого ответа бот не примет, полный контроль! И как хранить результаты? В базе данных, но каждый квиз разный по содержанию и объему, поэтому храним в JSON. Отслеживать результаты в админке приятно, но не интересно. Вот бы была возможность сразу ответить пользователю. Например, мы создали квиз-диалог по вопросам поддержки продукта, пользователь выбрал свой продукт, ответил на некоторые вопросы, мы получили заявку и… как ему ответить? Как задать уточняющие вопросы не покидая телеграм? Создадим закрытый форум в телеграм, добавим туда бота, дадим ему права на чтение сообщений и у нас появляется возможность общения с пользователем, причем общаться может не один наш сотрудник, а все кто состоит в закрытой группе (пользователь ее не видит, он общается с ботом)

Так техподдержка или менеджеры видят заявки, отсюда они могут отвечать сразу в бота
Так техподдержка или менеджеры видят заявки, отсюда они могут отвечать сразу в бота

Сохраняем и анализируем
Общение через бота важный и нужный формат, но хочется иметь общую картину, сортировать и фильтровать результаты. Таблицы Гугл то, что нужно, но мы не создаем переменные и как тогда записывать результаты… Обойдемся без переменных! Немного магии и все работает с таблицами, при первом прохождении генерируется лист с максимальным количеством колонок (все варианты ответов), каждый отдельный квиз это отдельный лист и ничто не мешает создавать нам несколько квизов, всё будет ясно и понятно. Если пользователь дал правильный ответ, подсветим эту ячейку зеленым, а количество баллов за ответ покажем в примечании, это даст возможность оценивать результаты не отвлекаясь на описание квиза, не нужно помнить правильные ответы и сразу видно, где ошибка в ответах.

Интеграция с Гугл Таблицами
Интеграция с Гугл Таблицами

Интеграция с Гугл Таблицами позволяет создать аналогичный Гугл Формам сервис, но без настроек и выхода из Телеграм.


Передаем диалог в CRM
В работе я использую российский сервис YouGile https://ru.yougile.com/, в свое время я делал бота для публикации задач из Телеграм на доску, он общедоступный и бесплатный, называется «YouGile unofficial bot». Переслали ему сообщение, он опубликовал его на доске и при необходимости отправил дубль на ваш Email — удобно! А квизы могут быть задачами? Могут! Делаю интеграцию результатов квиза с YouGile и получается — простая и легкая CRM! Можно дать ссылку на квиз и его результаты сразу будут переданы менеджерам, после обработки они перенесут их в нужные колонки, добро пожаловать в Agile-style

Результаты диалога в CRM
Результаты диалога в CRM


Для тех кто не хочет ничего подключать
Просто укажите в настройках квиза свою почту или ID аккаунта в телеграм (должен быть подписан на бота), и получайте копии диалогов в почту или мессенджер. Ответить оттуда сложно, но не все задачи требуют ответа. Простая, полезная и удобная функция.

В таком виде результат приходит на email и в Телеграм
В таком виде результат приходит на email и в Телеграм


Для самых продвинутых
Мало возможностей? Укажите в настройках адрес своего сервера, на котором вы хотите самостоятельно обрабатывать результаты квизов и сразу после завершения диалога бот отправит вам все результаты в виде HTML и JSON, приготовьте их по своему или отправьте в другой сервис. Полезно!

Где использовать?
Основное преимущество метода очень быстрое и простое создание диалогов, соответственно их можно использовать в разных областях, прототипировать, экспериментировать. Вот несколько вариантов на вскидку:
— Создание квизов и опросов
— Техническая поддержка клиентов
— Дерево решений (вопросы приводят к выбору единственного результата)
— Сбор лидов в CRM
— Оценка качества услуг, в том числе использование для тайных покупателей с обработкой отчетов
— Тесты на знание предмета
— Чекапы
— Сбор анкет-заявок в HR и создание предварительных тестов
— Онбординг сотрудников
— Регистрация участников на мероприятия с возможностью обсуждения деталей и проведения по CRM
— Бронирование через квиз
— Составление портрета гостя
— Сбор показаний приборов учета
— Учет рабочего времени и отчеты о проделанной работе
— Сбор заявок на подбор
— Сбор вопросов перед/на мероприятии
— Заполнение анкет на франшизу и т.п.
— Оформление брифов и ТЗ с обсуждением и проводкой в CRM
— Заявки на подбор помещений
— Заявки на расчет стоимости кейтеринга
— Бриф на расчет стоимости материалов
— и много-много других вариантов…

? Недокументированная возможность!

Для каждого квиза есть стартовая ссылка и совершенно не обязательно прикреплять квиз к клавиатурам бота или ключевым словам, отправили ссылку выбранным адресатам, только они смогут пройти этот диалог, остальные пользователи бота его даже не увидят. Не рассказывайте никому ?

Ложка дёгтя
Проект находится в стадии финального тестирования, иногда вылезают баги, но в общем всё работает. Больше всего раздражает задержка на обработку результатов при прохождении квиза в боте. Это из-за того, что продукт молодой. Несколько секунд, но не приятно, но терпимо, это задержка из-за ответов внешних сервисов, без подключения интеграций она вообще не заметна. А в ближайшее время я переделаю обработчик и всё будет летать =)

После пополнения счета иногда выбивает из аккаунта и нужно входить повторно, это магическая ошибка, ищу причину. Ну и конечно, есть баги о которых я не знаю, но вы мне обязательно сообщите =)

Большие планы
Часть запланированного уже частично реализована, часть ещё только на бумаге. В планах:

— Редактор бота в виде блок-схем, в не совсем привычном виде, но будет удобно
— Использование переменных для записи ответов с последующим подключением калькулятора (реализовано на 50%)
— Рассылки по сегментированным группам пользователей с персонификацией
— Работа бота в группах и каналах, проверка подписки, модерация, публикация оформленных сообщений
— Поддержка досок объявлений в форумах (публикация только через бота)
— Сбор статистики бота (статистика уже собирается, но пока не выводится)
— Подключение плагинов Core4, даст возможность использовать готовые модули для типовых решений (уже работает, вывод квиза и общение в боте это часть из плагинов системы)
— Реферальная программа для пассивного заработка (70%)
— и многое-многое другое

Как попробовать
Рабочая версия доступна на сайте https://botpad.ru/landing/ На ней можно отредактировать или создать квиз.

Посмотреть на результат можно создав свой диалог по ссылке выше или на уже ранее заполненный на странице https://botpad.ru/landing/demo.php?q=11224

Вот так результаты выглядят в CRM YouGile https://yougile.com/board/sp2555muxtzu

Так менеджеры видят заявки в закрытом Телеграм форуме https://t.me/+NNLHtywAZWg3MzJi

Так результаты отображаются в Гугл.Таблицах https://docs.google.com/spreadsheets/d/1uvqPnbOdABLCEo-sOAPRoPZdcSNXTQE_uW8anJ8iHy8/edit?gid=227565645#gid=227565645

Начать работу в конструкторе можно на странице: https://botpad.ru/cp/

Сколько стоит
Все функции бесплатны на время разработки, но не более 3 пользователей в боте.

Платные тарифы от 480₽ в месяц при оплате за год, в зависимости от количества завершенных диалогов.

Бонусы и плюшки
В зависимости от суммы оплаты к сумме пополнения будет добавлено до 30% бонусов. А первые две недели, при пополнении от 30000₽ будет добавлено до 200% бонусов, каждый день бонусный процент этого предложения будет падать. Получите сегодня 200% бонусов, а использовать их сможете в любой момент.

Подписывайтесь на телеграм-канал «Бот в блокноте», чтобы узнавать о новостях и новинках проекта, смотреть кейсы и разборы https://t.me/BotNotePad

И конечно, первым клиентам особая любовь, уважение и поддержка!

Комментарии (7)


  1. nulovkin
    16.07.2024 16:39

    Ха. Очень круто.
    Я как раз занимаюсь схожей штукой, только у меня скорее конструктор витрин.
    Планирую интерфейс конструктора в телеграме и расположить.
    Интересно, что нужно изучить, чтобы узнать по больше об этих CMS? А то похоже я изобретаю велосипед.


    1. mrMazai Автор
      16.07.2024 16:39

      Спасибо! Конструктор в WebApp телеграма? Не понял про CMS, про что конкретно?


  1. Dennion
    16.07.2024 16:39
    +1

    Так так, что-то новенькое и интересное. Надо поизучать возможности. Молодцы!


    1. mrMazai Автор
      16.07.2024 16:39

      Спасибо! Стараемся! Интересно будет услышать впечатление


  1. mamonov97
    16.07.2024 16:39
    +1

    картиночки совсем не разглядеть...


    1. mrMazai Автор
      16.07.2024 16:39

      Накосячил! Исправил. Теперь вроде видно. Извиняюсь!


  1. DimaIgrotech
    16.07.2024 16:39

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