Як створити чат-бота із системою бронювання у Google Sheets

Ви можете інтегрувати чат-боти SendPulse з іншими сервісами для запиту та запису інформації через Integromat. У цій статті ми розглянемо як створити систему бронювання на прикладі чат-бота для СТО. Так ви зможете записати користувача на обслуговування машини на певний час, якщо потрібна клітинка таблиці порожня, або запропонувати інший час та день, якщо вона зайнята.

Ви зможете автоматизувати та оптимізувати процес бронювання та використовувати цю схему для запису користувачів на СТО для обслуговування автомобілів, для запису до лікаря, для бронювання столиків у ресторані тощо.

Як почати роботу

Увійдіть у свій обліковий запис Integromat, натисніть «+ Create a new scenario», щоб почати створювати сценарій.

Ви можете відразу вибрати, які сервіси підключити (в цьому випадку це Webhooks і Google Sheets), використовуючи пошук або знаходити та додавати їх безпосередньо в самому конструкторі. Натисніть «Continue» у верхньому правому кутку.

Як створити вебхук

Натисніть на блок із питанням по центру екрана і виберіть блок «Webhooks» це буде стартовий блок, який запустить ланцюжок.

Вам необхідно створити сам вебхук, на який будуть надсилатися дані з вашого ланцюжка по чат-боту. Зі списку виберіть блок «Custom webhook».

Натисніть «Add», щоб створити новий вебхук.

Введіть ім'я для вебхука і натисніть «Save».

Ваш вебхук створено. Скопіюйте посилання — його потрібно вставити в ланцюжок вашого чат-бота.

Тепер Integromat чекає на перший отриманий вебхук, щоб визначити структуру даних, з якими йому потрібно буде працювати.

Увійдіть до особистого кабінету SendPulse. Виберіть потрібний вам бот, відкрийте режим редагування створеного ланцюжка.

Створіть ланцюжок чат-бота, в якому ви вводитимете дані для перевірки та запису, наприклад, ім'я, контактні дані, день тижня та час.

Додайте та розмістіть блок «Запит API» відразу за блоком, після якого потрібно відправляти вебхук. Виберіть тип запиту «POST» та введіть URL-адресу, скопійовану з Integromat.

У тіло запиту вставте дані, що передаються. У запиті можете використовувати змінні вашого чат-бота з інформацією, яку запросили у користувача у попередніх блоках сценарію.

Натисніть «Перевірити запит», щоб запит відправився до Integromat і розпізнав отримані дані.

Коли Integromat отримає вебхук, у своєму обліковому записі Integromat ви побачите повідомлення «Successfully determined».

Як надіслати та отримати інформацію з Google таблиці

Тепер в Integromat нам потрібно побудувати сценарій, в якому ми перевірятимемо в нашій 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 — це номер блоку в Integromat, в якому ви отримали цю змінну), натисніть «Run once» і запустіть ланцюжок у чат-боті, в якому ви налаштували вебхук.

Те саме потрібно буде продублювати з усіма наступними гілками від першого роутера, вказуючи у другому полі ваші робочі дні: «Вівторок», «Середа» тощо.

Настроюємо фільтр по годинниках

Щоб з'явилася можливість встановлення цього фільтра, потрібно спочатку додати наступний блок Google Sheets.

Другий роутер (другий, якщо дивитися лінійний зв'язок від першого тригерного блоку «Вебхук») розгалужує сценарій за годинником. Значить другим роутером і наступним блоком з Google Sheets потрібно встановити фільтри з умовою відповідності значень щогодини.

Щоб налаштувати фільтр, натисніть значок гайкового ключа поруч із блоком роутера.

У першому полі оберіть отриману з вебхука змінну, яка позначає час. У другому полі напишіть годину. У першому фільтрі у нас «10». Після введення умови фільтрації натисніть кнопку «OK».

Якщо ви не маєте змінної 1. час звернення (де 1 — це номер блоку в Integromat, в якому ви отримали цю змінну), натисніть «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.

Додаємо фільтр по заповненості клітинки

Щоб з'явилася можливість настроїти фільтр, спочатку додайте наступні блоки.

Щоб перевірити, чи вільна клітинка, у параметрах фільтра порівняйте значення, отримане в елементі «Get a cell», з порожнім значенням.

Натисніть на лінію між «Router» та «Google Sheets» з дією «Update a cell» і виставте умову. У першому полі оберіть змінну 5. Value — отримане значення із запитуваної клітинки в блоці «Google sheets» з дією «Get a cell».

Якщо у вас немає змінної «5. Value» (де 5 — це номер блоку в Integromat, в якому ви отримали цю змінну), натисніть на потрібний блок Google sheets з дією Get a cell і виберіть Run this module only.

Додаємо гілку для порожньої клітинки

Ця гілка з блоками оновлення даних у Google таблиці та відповіддю про успішний запис запуститься, якщо після фільтра Integromat отримає відповідь, що клітинка порожня.

Натисніть «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.

Ви також можете у відповідь додавати змінні та відправляти будь-яке інше значення, яке запишіть у змінну до контакту і за яким зможете фільтрувати та розширювати відповіді.

Додаємо гілку для заповненої клітинки

Ця гілка з блоком відповіді про зайняту клітинку запуститься, якщо після фільтра Integromat отримає відповідь, що клітинка заповнена.

Натисніть «Add another module» біля «Router» і додайте «Webhook - Webhook response».

У тілі вебхука введіть повідомлення у форматі JSON.

Наприклад:

{"message": "Час, який ви вибрали, зайнятий. Будь ласка, виберіть інший час."}

Цей текст буде відправлено назад у чат-бот до блоку «Запит API», який ви можете записати в змінну або видати відразу у повідомлення через запис JSON Path.

Ви також можете у відповідь додавати змінні та відправляти будь-яке інше значення, яке запишіть у змінну до контакту і за яким зможете фільтрувати та розширювати відповіді.

Як надіслати повідомлення з відповіддю користувачу

Поверніться в редагування ланцюжка вашого чат-бота в SendPulse до блоку з вебхуком.

Ви можете записати отримане значення змінну, щоб використовувати фільтр і додавати його до повідомлення, як змінну. Або ви можете відобразити дані користувачу один раз без запису, використовуючи запис виду{{$['variable']}}. Читайте докладніше «Використання даних у вигляді виразу JSON Path».

Додайте та розмістіть блок «Повідомлення» відразу за блоком «Запит API» і додайте до нього змінну або вираз JSON path.

Рекомендуємо перед відповіддю додати блок «Фільтр», щоб перевіряти, яку відповідь ви отримали з Integromat. І якщо вибраний час зайнятий — повертати користувачеві до вибору часу знову.

Також ви можете ускладнити ланцюжок і поєднати його з іншим рішенням, де можна перевірити клітинки — які вільні, а які заповнені. Читайте «Як запросити вільні місця в Google Sheets».

Збереження та запуск

Перед збереженням та виходом необхідно перевірити, чи коректно все працює.

Натисніть Run once і запустіть ланцюжок, в якому ви налаштували сценарій. Якщо ви все налаштували правильно, під усіма доданими блоками з'являться зелені галочки.

Також задіяні фільтри підсвічуються блакитним, а тим фільтрам, якими контакт пройшов в «Так», додадуться значення +1.

Ви також можете натиснути на цифру над блоком, щоб переглянути отриману інформацію, яка передаватиметься до наступного блоку.

Операцій може бути кілька, і вони будуть виконуватися стільки разів, скільки дозволяє ваш тарифний план. Кожна операція матиме номер, під яким ви зможете відстежувати контакт в інших блоках.

При натисканні на фільтр ви можете перевірити, як контакт під певною операцією її пройшов.

Якщо контакт відповідав умові фільтра, з'явиться зелена галочка.

Якщо контакт не відповідав умові фільтра, з'явиться знак, що контакт не пройшов фільтр.

Щоб активувати сценарій, переведіть тумблер у положення «ON».

Як переглянути історію роботи сценарію

Перейдіть до потрібного сценарію. Вам буде доступна діаграма всіх блоків з історією виконання блоків. За кожною обраною операцією ви зможете простежити шлях користувача підсвіченими блоками.

Клацніть по потрібному блоку, щоб переглянути інформацію щодо нього. Вам буде доступна вся інформація щодо блоку: які значення набув і передав далі.

Якщо якийсь із блоків не виконався, він підсвітиться червоним і при натисканні відобразиться причина помилки та підказка, як її виправити. Зверніть увагу, що до усунення помилки весь сценарій може призупинитись і не виконуватись; операції ставатимуть у чергу.

Якщо виникають запитання щодо налаштування або збоїв сценарію, зверніться до служби підтримки Integromat.

Оцініть, наскільки стаття була корисною "Як створити чат-бота із системою бронювання у Google Sheets"

Оцінка: 4 / 5

    Спробуйте бота для розсилок в Facebook Messenger безкоштовно