Запись в группу(экскурсия, автобус, групповое занятие)

Данная статья опишет процесс создания бота от регистрации систематически повторяющееся событие с большим количеством участников.(экскурсия, тренинг, вебинар)

Инструкция по работе с функцией записи на экскурсию (событие)

Адрес функции: https://store.salebot.pro/function/unizapis

Пример схемы: 9110(мы можем ее вам скопировать в проект)

Пример используемой таблицы: https://docs.google.com/spreadsheets/d/1w3bUY6vry4dMNJYodTZDtKHkaQ84adUpACmhfg0M6GY/edit#gid=1305033855

Подготовка таблицы

Открываем вашу таблицу, справа вверху выбираем Настройки доступа и выставляем права доступа для редактирования по ссылке:

Копируем идентификатор:

Переходим на salebot в настройки проекта и в переменные проекта добавляем переменную sheet_id:

Примерная схема может выглядеть так

Работает следующим образом в первой части до блоков "Успешная запись" и "Уже существует", вы собираете необходимую информацию, дату поездки, направление, имя и телефон. Затем в блоке #{order} происходит вызов функции со следующими параметрами:

{ "id": "#{sheet_id}", "data_reisa": "#{data_reisa}", "name": "#{client_name}", "phone":"#{client_phone}", "group": "#{group}", "mesta": "#{mesta} }

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

Далее подробнее по схеме:

Первые два блока предназначены для входа в тестовую схему из них идет переход с задержкой на блок ввода даты

Затем в стрелке сохраняем введенную дату в переменную data_reisa:

Далее идет блок выбора направления или группы из него выходят стрелки с условием

для выбора направления:

Следующий блок - блок запроса количества требуемых мест

В этих блоках мы запрашиваем количество требуемых мест. Также мы сохраняем присваиваем переменной group значение a или b соответственно.

Затем в стрелке сохраняем введенное количество мест в переменную mesta:

Затем в следующем блоке запрашиваем имя клиента и в стрелке сохраняем его в переменную client_name:

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

Далее в следующем блоке мы вызываем функцию со всеми собранными параметрами:

Параметры вызова:

{ "id": "#{sheet_id}", "data_reisa": "#{data_reisa}", "name": "#{client_name}", "phone":"#{client_phone}", "group": "#{group}", "mesta": "#{mesta}" }

id - это id вашей гугл таблицы.

Сохраняемые значения:

status -> status; client_row -> client_row

status - может быть success и client exist (клиент уже записан на этот день) client_row - номер строки в таблице

Далее от этого блока делаем разветвление в зависимости от статуса выводим сообщение.

Далее если вам необходимо получить подтверждение от клиента. вы в отдельном блоке вызываете данную функцию со следующими параметрами.

Для получения подтверждения вы можете направить клиента в блок стрелкой с указанием времени (например, поставить таймер в 2 дня), отправить в этот блок рассылкой (при клике на блок выбрать Создать рассылку) или перейти по ключевому слову (в шаблоне указано слово ЗАПРОС)

В случае успешного подтверждения:

{ "id": "#{sheet_id}", "data_reisa": "#{data_reisa}", "name": "#{client_name}", "phone":"#{client_phone}", "group": "#{group}", "mesta": "#{mesta}", "accept": "Да" }

в случае отказа:

{ "id": "#{sheet_id}", "data_reisa": "#{data_reisa}", "name": "#{client_name}", "phone":"#{client_phone}", "group": "#{group}", "mesta": "#{mesta}", "accept": "Нет" }

При этом функция осуществляет поиск клиента в таблице по номеру телефона и проставляет в столбец подтверждения данные из переданного параметра accept.