Как создать чат-бота с системой бронирования в Google Sheets
Вы можете интегрировать чат-боты SendPulse с другими сервисами для запроса и записи информации через Make. В этой статье мы рассмотрим, как создать систему бронирования на примере чат-бота для СТО. Так вы сможете записать пользователя на обслуживание машины на определенное время, если нужная ячейка пустая, или предложить другие время и день, если она занята.
Вы сможете автоматизировать и оптимизировать процесс бронирования и использовать эту схему для записи пользователей на СТО для обслуживания автомобилей, для записи к врачу, для бронирования столиков в ресторане и так далее.
В статье приведен пример интеграции Google Sheets с SendPulse через Make, где вместо Google Sheets вы можете выбрать любой другой сервис, доступный в Make. Дизайн сервиса может отличаться от скриншотов, приведенных в статье.
Также SendPulse выпустил прямую интеграцию с Google Sheets. Подробнее.
Как начать работу
Войдите в свою учетную запись в Make, нажмите + Create a new scenario, чтобы начать создавать сценарий.
Вы можете сразу выбрать, какие сервисы подключить (в данном случае это Webhooks и Google Sheets), используя поиск, или находить и добавлять их непосредственно в самом конструкторе. Нажмите Continue в правом верхнем углу.
Как создать вебхук
Нажмите на блок с вопросом по центру экрана и выберите блок Webhooks — это будет стартовый блок, который запустит цепочку.
Вам необходимо создать сам вебхук, на который будут отправляться данные с вашей цепочки по чат-боту. Из раскрывающегося списка выберите блок Custom webhook.
Нажмите Add, чтобы создать новый вебхук.
Введите имя для вебхука и нажмите Save.
Ваш вебхук создан. Скопируйте ссылку — ее нужно вставить в цепочку вашего чат-бота.
Теперь Make ожидает первого полученного вебхука, чтобы определить структуру данных, с которыми ему нужно будет работать.
Как добавить ссылку на вебхук в цепочку чат-бота
Войдите в личный кабинет SendPulse. Выберите нужного вам бота, откройте режим редактирования созданной цепочки.
Создайте цепочку чат-бота, в которой вы будете вводить данные для проверки и записи, например, имя, контактные данные, день недели и время.
Добавьте и разместите блок Запрос API сразу за блоком, после которого нужно отправлять вебхук. Выберите тип запроса POST и введите URL, скопированный из Make.
В тело запроса вставьте передаваемые данные. В запросе можете использовать переменные вашего чат-бота с информацией, которую запросили у пользователя в предыдущих блоках сценария.
Нажмите Проверить запрос, чтобы запрос отправился в Make и распознал полученные данные.
Когда Make получит вебхук, в своем аккаунте Make вы увидите сообщение Successfully determined.
Как отправить и получить информацию из Google таблицы
Теперь в Make нам нужно построить сценарий, в котором мы будем проверять в нашей Google Sheets запрошенный день и время записи. Если запрашиваемая ячейка свободна, мы в нее запишем пользователя, если занята — вернем ответ, что время занято и нужно выбрать другое время.
В сценарии будем использовать следующие блоки:
Router | Помогает разветвлять ветки сценариев; на каждую ветку будет применен свой Фильтр (по дням Понедельник, Вторник и так далее, затем по времени записи 10 , 11 и так далее, затем по заполненности ячейки). |
Google Sheets | Будем использовать действия Get a cell, чтобы получить информацию из ячейки по выбранному дню и времени и Update a cell, чтобы записать информацию в выбранную ячейку, если она будет пустая. |
Webhook | Будем использовать действие Webhook response, чтобы отправлять назад в чат-бот сообщение с ответом. |
Добавляем роутер для разделения по дням
Используя роутер, вы можете разделить свой сценарий на несколько маршрутов и по-разному обрабатывать данные, а также фильтровать данные, проходящие по маршруту.
Чтобы добавить роутер, нажмите Add another module возле стартового триггерного блока Webhook.
Введите Router и выберите Flow control.
Так мы добавили первый роутер, который будет делить сценарий на дни.
Добавляем роутер для деления по часам
Чтобы добавить разделение на часы, на каждый нужный час каждого дня недели нужно добавить еще роутеры.
Настраиваем фильтр по дням
Первый роутер разветвляет сценарий по дням — значит между первым и последующими от него роутером нужно установить фильтры с условием соответствия значений под дням.
Чтобы настроить фильтр, нажмите на значок гаечного ключа рядом с блоком роутера.
В первом поле выберите полученную из вебхука переменную, которая обозначает день. Во втором поле напишите день недели. В первом фильтре у нас Понедельник. После введения условия фильтрации нажмите Ok.
Обратите внимание: если у вас нет переменной 1.День недели
(где 1
— это номер блока в Make, в котором вы получили эту переменную), нажмите Run once и запустите цепочку в чат-боте, в котором вы настроили вебхук.
То же самое нужно будет продублировать со всеми последующими ветками от первого роутера, указывая во втором поле ваши рабочие дни: Вторник, Среда и так далее.
Настраиваем фильтр по часам
Чтобы появилась возможность установки этого фильтра, нужно сначала добавить последующий блок Google Sheets.
Второй роутер (второй, если смотреть линейную связь от первого триггерного блока Вебхук) разветвляет сценарий по часам. Значит вторым роутером и последующими от него блоком из Google Sheets нужно установить фильтры с условием соответствия значений по часам.
Чтобы настроить фильтр, нажмите на значок гаечного ключа рядом с блоком роутера.
В первом поле выберите полученную из вебхука переменную, которая обозначает время. Во втором поле напишите час. В первом фильтре у нас 10. После введения условия фильтрации нажмите Ok.
Если у вас нет переменной 1. время обращения
(где 1
— это номер блока в Make, в котором вы получили эту переменную), нажмите Run once и запустите цепочку в чат-боте, в котором вы настроили вебхук.
То же самое нужно будет продублировать со всеми последующими ветками от второго роутера, указывая во втором поле ваши рабочие часы: 10, 11 и так далее.
Добавляем просмотр ячейки в Google Sheets
Следующим блоком после двух роутеров с фильтрами по дням и часам нужно поставить Google Sheets. Каждый блок Google Sheets будет отвечать за определенную ячейку записи в вашем документе Google Sheets.
Нажмите на знак вопроса или Add another module возле текущего блока и выберите Google Sheets и действие Get a cell.
Подключите свой Google Account, выберите таблицу, лист и ячейку, с которой нужно сделать выборку, и нажмите Ok.
Перед закрытием проверяйте весь ваш сценарий, чтобы у каждого дня недели и времени была своя уникальная ячейка — они не должны повторятся.
Нашей первой ячейкой будет B2
— пересечение Понедельника и 10:00.
Пример ячейки, в которой будет проверятся запись (и записываться данные, если ячейка пустая) в Google Sheets:
Добавляем роутер для деления по результатам проверки ячейки
Теперь нам нужно разделить сценарий по веткам: ячейка заполнена или ячейка пустая.
Нажмите Add another module возле блока Google sheets с действием Get a cell и выберите Router.
Добавляем фильтр по заполненности ячейки
Чтобы проверить, свободна ли ячейка, в параметрах фильтра сравните значение (equal to), полученное в элементе Get a cell, с пустым значением.
Нажмите на линию между Router и Google Sheets с действием Update a cell и выставите условие. В первом поле выберите переменную 5. Value
— полученное значение из запрашиваемой ячейки в блоке Google sheets с действием Get a cell.
Обратите внимание: если у вас нет переменной 5. Value
(где 5
— это номер блока в Make, в котором вы получили эту переменную), нажмите на нужный блок Google sheets с действием Get a cell и выберите Run this module only.
Добавляем ветку для пустой ячейки
Эта ветка с блоками обновления данных в Google таблице и ответом про успешную запись запустится, если после фильтра Make получит ответ, что ячейка пустая.
Нажмите Add another module возле Router и выберите Google Sheets с действием Update a cell.
В поле Cell введите ту же ячейку, которую вводили по этой ветке в блоке Google Sheets с действием Get a cell.
В поле Value введите текст, который нужно записать в ячейку. Это может быть имя, контактные данные или любая другая информация, которая полезна при резервировании места. Вы можете также добавлять свой текст и форматировать текущий.
Далее после блока Google Sheets с действием Update a cell добавьте Webhook — Webhook response.
В теле вебхука введите сообщение в формате JSON.
К примеру:
{"message":"Вы успешно записались. Ждем вас!"}
Этот текст будет отправлен обратно в чат-бот в блок Запрос API, который вы можете записать в переменную или выдать сразу в сообщение через запись JSON Path.
Вы также можете в ответ добавлять переменные и отправлять любое другое значение, которое запишите в переменную к контакту и по которому сможете фильтровать и расширять ответы.
Добавляем ветку для заполненной ячейки
Эта ветка с блоком ответа про занятую ячейку запустится, если после фильтра Make получит ответ, что ячейка заполненная.
Нажмите Add another module возле Router и добавьте Webhook — Webhook response.
В теле вебхука введите сообщение в формате JSON.
К примеру:
{"message":"Время, которое вы выбрали, занято. Пожалуйста, выберите другое время."}
Этот текст будет отправлен обратно в чат-бот в блок Запрос API, который вы можете записать в переменную или выдать сразу в сообщение через запись JSON Path.
Вы также можете в ответ добавлять переменные и отправлять любое другое значение, которое запишите в переменную к контакту и по которому сможете фильтровать и расширять ответы.
Как отправить сообщение с ответом пользователю
Вернитесь в редактирование цепочки вашего чат-бота в SendPulse к блоку с вебхуком.
Вы можете записать полученное значение в переменную, чтобы использовать фильтр и добавлять его в сообщение, как переменную. Или вы можете отобразить данные пользователю один раз без записи, используя запись вида {{$[‘переменная’]}}
. Читайте подробнее Использование данных в виде выражения JSON Path.
Добавьте и разместите блок Сообщение сразу за блоком Запрос API и добавьте к нему переменную или выражение JSON path.
Рекомендуем перед ответом добавить блок Фильтр, чтобы проверять, какой ответ вы получили из Make. И если выбранное время занято — возвращать пользователю к выбору времени снова.
Также вы можете усложнить цепочку и совместить ее с другим решением, где можно проверить ячейки — какие свободные, а какие заполненные. Читайте Как запросить свободные места в Google Sheets.
Сохранение и запуск
Перед сохранением и выходом необходимо проверить, корректно ли все работает.
Нажмите Run once и запустите цепочку, в которой вы настроили сценарий. Если вы все настроили верно, под всеми добавленными блоками отобразятся зеленые галочки.
Также задействованные фильтры подсветятся голубым, а тем фильтрам, по которым контакт прошел в Да, добавятся значения +1.
Вы также можете нажать на цифру над блоком, чтобы посмотреть полученную информацию, которая будет передаваться в следующий блок.
Операций может быть несколько и они будут выполняться столько раз, сколько позволяет ваш тарифный план. У каждой операции будет номер, под которым вы сможете отслеживать контакт в других блоках.
При клике на фильтр вы можете проверить, как контакт под определенной операцией ее прошел.
Если контакт соответствовал условию фильтра, появится зеленая галочка.
Если контакт не соответствовал условию фильтра, появится знак, что контакт не прошел фильтр.
Чтобы активировать сценарий, переведите тумблер в положение ON.
Как просмотреть историю работы сценария
Перейдите в нужный вам сценарий. Вам будет доступна диаграмма всех блоков с историей выполнения блоков. По каждой выбранной операцией вы сможете проследить путь пользователя по подсвеченным блокам.
Кликните по нужному блоку, чтобы просмотреть информацию по нему. Вам будет доступна вся информация по блоку: какие значения принял и передал дальше.
Если какой-то из блоков не выполнился, он подсветится красным и при нажатии отобразится причина ошибки и подсказка, как ее исправить. Обратите внимание, что до устранения ошибки весь сценарий может приостановится и не выполнятся; операции будут становиться в очередь.
Если возникнут вопросы по настройке или сбоям сценария, можете обратиться в службу поддержки Make.
Обновлено: 12.07.2024
или