Бот-опросник для организации сбора необходимых данных

Чтобы упростить сбор информации от клиентов вашего бизнеса, достаточно разделить этот процесс на простые задачи и делегировать их помощникам. Однако у обычных сотрудников анкетирование занимает 15-20 минут на одного клиента. Правильно составленная анкета для проведения опроса в Телеграм-боте будет выполнять эту повторяющуюся функцию и поможет сэкономить время на однотипных задачах. Люди с большей вероятностью будут давать конкретные ответы на вопросы при взаимодействии с таким ботом. 

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

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

Полностью исключает человеческие факторы со стороны администратора бота. Ведь администратор не может 24 часа в сутки отвечать на сообщения клиентов, быть активным и проявлять энтузиазм. Бот, общаясь настроенными вопросами, будет всегда вежлив, ничего не забудет и рад помочь 24/7.

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


Как это работает?


Ранее я упоминал о цепочке шагов. Спросите как это действует? На основании ответов, введенных пользователем ранее, бот опроса пропускает не относящиеся к делу вопросы и отображает только то, что относится к пользователю. Например, человек идентифицировал себя как вегетарианец. Разговаривать с ними о стейке и суши будет ошибкой. Условная логика ветвления поможет вам избежать именно этого!

Ниже представлен пример такого ветвления. В данном случае условная логика ветвления начинается с двух вариантов ответов на первый вопрос. 

1. У вас есть автомобиль? (вопрос)
    1.1 Да, есть автомобиль (ответ)
        1.1.1 Какого он цвета? (вопрос)
            1.1.1.1 Синего (ответ)
            1.1.1.2 Зеленого (ответ)
            1.1.1.3 Другого (ответ)
                1.1.1.3.1 Укажите этот другой цвет (вопрос)
    1.2 Нет автомобиля нет (ответ)
        1.2.1 На чем вы передвигаетесь по городу? (вопрос)
            1.2.1.1 На автобусе (ответ)
            1.2.1.2 На трамвае (ответ)
            1.2.1.3 Пешком (ответ)
            1.2.1.4 Иной способ (ответ)

Если простыми словами расписать то мы уточняем у пользователя есть ли у него автомобиль и предлагаем ему два варианта ответов это "Да, есть автомобиль" и "Нет, автомобиля нет". В случае если пользователь выбрал ответ с утверждение, что у него есть автомобиль, тогда мы уточняем у него какого он цвета, и предлагаем ему три возможных варианта ответа "Синего", "Зеленого" и "Другого", если был выбран ответ "Другого", то дополнительно просим указать текстовым сообщение какой же цвет у его автомобиля.

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


Уточнение при создании анкеты


  1. Вложенные в шаг сценарии возможны, если у шага есть 2 и более кнопки
  2. Вложенные сценарии прикрепляются к вариантам ответов на кнопках, то есть при нажатии на кнопку пользователь переходит или во вложенный сценарий или если на этом действии вложенности нет, тогда к следующему шагу по вертикали вниз.
  3. Шаги можно между собой по вертикали менять местами.
  4. Можно создать как одиночный шаг, так и группу шагов. Группа шагов позволяет собрать вместе одинаковые по смыслу вопросы, например вы собираете информацию об автомобиле пользователя:
1. Как вас зовут? (один шаг)
- ждем текстового сообщения от пользователя
2. У вас есть автомобиль? (один шаг)
- предлагаем нажать кнопки
  2.1 Да (здесь есть вложенный сценарий - группа шагов)
    2.1.1 Марка - модель (ждем текст)
    2.1.2 Цвет (ждем текст)
    2.1.3 VIN (ждем текст)
    2.1.4 Тип кузова (ждем текст)
    2.1.5 Любите свою машину (ждем нажатие кнопки)
      2.1.5.1 Да (здесь можно продолжить ветвление)
      2.1.5.2 Нет (здесь можно продолжить ветвление)
      - пользователя переадресует к пункту 3
  2.2 Нет (здесь привязки сценария нет, поэтому переход после нажатия к пункту 3)
3. Где с вами можно встретиться? (один шаг)
- ждем от пользователя геолокацию или текст
- Анкета закончена

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

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


Установка


Много было вопросов о том как оформить панель управления ботом, в этом примере вы можете посмотреть как один из готовых ее вариантов. Под данный бот я написал простенькую систему по типу MVC. Бот выкладываю в свободный доступ для ознакомления, установка его простая и все риски его использования вы берете на себя.

Для установки бота, необходима версия PHP >= 7.1, MySQL > 5.5, современная версия браузера. Скачайте архив бота, распакуйте на хостинге, настройте соединение с базой данных в файле Services/Config.php, в панеле управления в разделе "Общие настройки" укажите токен бота, его юзернейм, и ваш telegram_id, затем установите WebHook.

Например директорию установки вы определили как /opros в корне сайта, тогда:

  1. Распаковать архив надо в директорию /opros
  2. Ссылка на админ консоль https://ВАШ_ДОМЕН/opros/admin.php
  3. Cоединение с базой данных в файле /opros/Services/Config.php
  4. Создать таблицы в базе данных из файла /opros/sql.sql
  5. Токен, юзернейм бота и ваш telegram_id  https://ВАШ_ДОМЕН/opros/admin.php?a=settings::index
  6. WebHook https://api.telegram.org/botTOKEN_BOT/setwebhook?url=https://ВАШ_ДОМЕН/opros/index.php

Файлы index.php и admin.php можете переименовывать. Для удобства работы можете использовать визуальный редактор для составления размеченных текстов. Панель управления ботом в данном примере не защищена авторизацией.  

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


Комментарии

Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


  • классно! ток я не понял где просматривать то что заполнил пользователь?)
    Грачик Абдулошвили 10.04.2020 в 20:04
  • все разобрался- супер!
    Грачик Абдулошвили 10.04.2020 в 20:05
  • Решил запаролить по простому админский раздел, сделал по средствам 2 файлов
    .htaccess
    .htpasswd

        AuthType basic
    
        AuthName 'Authorization...'
    
        AuthUserFile '/var/www/user718/data/www/SITE.ml/opros/.htpasswd'
    
        Require valid-user
    
        DirectoryIndex admin.php
    

    НО при таком раскладе сам бот перестает отвечать)))
    Грачик Абдулошвили 10.04.2020 в 20:34
    • Вы паролите всю директорию в которой лежат админка и точка входа для вебхук.
      iMakeBots 11.04.2020 в 13:46
      • я вынес файл админ в отдельную директорию и слетел весь стиль. все css
        Грачик Абдулошвили 11.04.2020 в 13:51
        • Файл стилей подключался относительно файла admin.php, вы перенесли файл на уровень ниже, и нужно переопределить подключение стилей и js
          iMakeBots 11.04.2020 в 13:54
  • если будете дорабатывать этот софт то внесите хотя бы самую простую авторизацию, спасибо
    Грачик Абдулошвили 11.04.2020 в 13:39
    • Авторизацию, добавлять не буду. Это дело каждого, в данном контексте она не нужна. Есть статья про авторизацию через Телеграм вы можете ее самостоятельно прикрутить.
      iMakeBots 11.04.2020 в 13:45
      • как это обычно и бывает- Дело было не в бабине.....
        сегодня на хостинге когда что то случилось то откатилась версия РНР на 5.6 ))) заметил и переключил на 7.2 сразу все заработало))
        Грачик Абдулошвили 16.04.2020 в 01:06
  • А как заставит бота работать? Подскажите, пожалуйста, что я делаю не так?
    Вроде, залил на сервер, создал БД, прописал доступ км БД, установил панель, добавил username, id, и токен.
    При команде /start - Бот отвечает: Имя приветствую в инструменте по сбору информации.
    И на этом, все прекращается.
    Alex Crowley 28.04.2020 в 01:08
    • Вот доступ к панели - https://www.botforyou.online/pool/admin.php
      Alex Crowley 28.04.2020 в 02:18
    • У вас при создании анкеты - появляется ссылка на анкету - по ней проходите и заполняйте в бот анкету - ссылку распространяйте - получайте результаты заполнения анкет другими пользователями
      iMakeBots 28.04.2020 в 08:46
      • Создал анкету, добавил шаг - появилась ссылка, перехожу по ссылке - http://prntscr.com/s76d4t
        Alex Crowley 28.04.2020 в 09:20
        • Он у вас даже на старт не реагирует. Посмотрите настройку webhook. Проверьте логи.
          iMakeBots 28.04.2020 в 09:23
  • Добрый день.
    Есть вопросик, буду благодарна за ответ, не нашла в статье.
    Создали тестовую анкету из 3 вопросов.
    Вопрос 1 имеет положительный и отрицательный ответ.
    И в зависимости от выбора - должен запускаться по цепочке ответ №2 или №3.

    Сейчас же бот просто подряд их прогоняет.
    Не понятно как их связать между собой.

    Спасибо заранее.
    Валентина Юрченко 27.05.2020 в 13:44
    • Добрый день.

      Вопрос 1 имеет 2 кнопки - Да и Нет
      Заходите в Вопрос 1 - не редактирование вопроса а "проваливаетесь" в него - Название Вопрос 1 будет ссылкой
      В нем создаете шаг выбираете на какую кнопку он будет выводиться это или Да или Нет в вашем случае
      iMakeBots 27.05.2020 в 15:00
      • Спасибо большое. Получилось.
        А еще пару вопросов, уточняющих, если можно.

        1. Можно ли каким-то образом увидеть целиком дерево вопросов-ответов, чтоб проверть на предмет соблюдения логики взаимосвязей?
        2. Если мы с помощью бота-анкетирования задаем вопрос, и хотим , чтоб клиент вносил текст в поле с ответом, и получать его вариант ответа, есть возможность? Потому как при выборе "кнопка или текст" у меня не выходит сделать так, чтоб текст вводил клиент в поле пустое.
        3. Можно ли использовать этот бот для цепочки действий по типу: "подпишись на канал, чтоб скачать файл"?

        Спасибо большое.
        Валентина Юрченко 14.06.2020 в 20:13
      • 1. Если вы сможете дописать логику - то это не сложно.
        2. Не полностью понял, если у вас выбран вариант "Кнопка или Текст" - если в вопросе присутствует кнопка и на нее повешен вложенный шаг - то ответ обязателен по кнопке, в других случаях может быть выбор у пользователя или кнопка или текст.
        3. Такого функционала нет. В данном варианте ведь нужно еще проверить находиться ли пользователь в подписчиках - а это уже частный случай бота.
        iMakeBots 15.06.2020 в 15:24