Salebot.pro
Search
⌃K

Шаблон бота Клиентикс.CRM

Данная памятка описывает алгоритм работы бота-шаблона, который производит запись клиента в Клиентикс.crm.
Используемые в примере переменные могут быть дополнены\изменены по желанию пользователя.

Начало работы

Перед началом работы необходимо выполнить настройку подключения API Клиентикс к Salebot.
Инструкцию о том, как это сделать, а также краткое описание функций, можно найти в документе https://app.gitbook.com/s/-LxKl4rC_EcwBAz40Qn_/crm/biznes-platforma-klientiks.
После того, как все настроено, можно переходить к шаблону.
Зеленый блок на скриншоте — это главная точка входа. В нем пропишите условия (фразы) для запуска. От него идет раздвоение - проверка ответа пользователя на вопрос о старте записи на прием. В стрелках прописываются условия:
нет;0 - Если пользователь ответит на сообщение бота “нет” или “0”, бот перейдет в блок “отмена действия” и выдаст записанную там фразу, прекращающую обращение. да;1 - Если пользователь ответит на сообщение бота “да” или “1”, бот продолжит выполнение и перейдет к следующему блоку.
В блоке запроса имени в окошке “текст сообщения” введите фразу, запрашивающую имя пользователя(например, “введите ваше имя”), а затем создайте следующий блок, в стрелке к которому указав inp_name - имя переменной, в которую будет записан ответ пользователя(пример на скриншоте ниже). Аналогичным образом поступаем в следующем блоке, где происходит запрос телефона, и помещаем номер в переменную inp_phone, указав в тексте сообщения блока необходимый нам формат (7yyyxxxxxxx).
Далее стрелка с данными ведет нас в блок “запрос списка услуг”. В разделе калькулятор блока мы записываем следующие переменные:
status = ‘ ’ - обнуляет статус запроса на случай, если переменная уже была заполнена ранее. u = klientiks_get_services_list() - функция запроса списка услуг
status = get(u, 'status') -проверяет статус запроса. При возникновении ошибок статус принимает значение 0 и возвращает соответствующее сообщение.
От этого блока выполняем разветвление, указав в стрелка к блокам соответствующие условия: 1. Задержка перед ответом -1 секунда(укажите любое количество секунд в зависимости от желаемой задержки) Условие - 0 Переменная для сравнения - status
Эта стрелка ведет в блок с ошибкой - “список услуг не предоставлен”, от которого идет стрелка с условием “назад;0”, возвращающая пользователя на шаг назад.
2. Стрелка к блоку “поле выбора услуги” имеет те же настройки, что и стрелка к ошибке, за исключением ее условия, равного 1, а не 0. В блок “поле выбора услуги” отвечает за вывод списка доступных услуг пользователю и содержит в себе следующие параметры: Текст сообщения - “Выберите услугу: #{res_service_name}” - выведет пользователю список кнопок с названиями доступных услуг Калькулятор: result_service = get(u, 'result') - при успешном ответе запроса возвращает список с нужным результатом(список услуг, сотрудников, дат), где u - переменная, в которую помещена функция запроса( в нашем случае это klientiks_get_services_list()). res_service_name = tools_make_button_str_checker(result_service, 'name') - функция возвращает список с набором данных. Ф-ия использует переменную result_service, выбирая из него необходимые данные по параметру ‘name’(имя услуги). str_value_service = get(res_service_name, 'numbered_list') - cоздает пронумерованный список услуг service_buttons = get(res_service_name, 'buttons') -создает соответствующие кнопки (вызов в поле кнопок при помощи #{service_buttons}) service_checker = get(res_service_name, 'checker') - проверяет выбор пользователя в следующей стрелке к блоку.
От данного блока вниз опускается стрелка к блоку “проверка выбора”, который вызовется пользователю в случае, если тот неправильно введет данные по выбору услуг. К полю опускается обычная стрелка, от него стрелка с таймером в 1 секунду.
От блока “поле выбора услуги” ведет стрелка со следующими параметрами: условием стрелки является #{service_cheker}, указанный в блоке, а также стоит маркер сбора данных в переменную inp_service - в нее будет записана выбранная пользователем услуга.
Стрелка ведет в поле “подтверждение услуг”, имеющее следующие данные: текст - Выбранная Вами услуга - #{inp_service} - выводит пользователю название его услуги калькулятор - id_service = tools_check_user_input(result_service, inp_service, 'name', 'id') - функция, которая позволяет автоматически забрать из полученного списка идентификатор услуги, основываясь на ее названии. Идентификатор потребуется для завершения записи. Функция принимает на вход переменную result_service, содержащую список данных об услуге, inp_service - выбранную услугу пользователем, ‘name’ и ‘id' - параметры отбора данных из списка(отбирает ид услуги по названию)
После этого блока идет часть с получением данных о сотруднике, которая заполняется аналогичным образом. Немного иначе происходит сбор данных о дате и времени записи.
Сбор данных о времени начинается с блока “запрос списка дат”, который содержит в калькуляторе следующие переменные: status = ‘ ’ - обнуляет статус запроса на случай, если переменная уже была заполнена ранее. cdate = current_date + 2 - переменная, содержащая в себе дату, которая наступит через два дня от текущей t = klientiks_get_free_date_for_record(current_date, cdate, id_service, id_employee) - функция запроса списка свободного времени, которая принимает на вход параметры(current_date - текущая дата, дата начала отбора, cdate - дата окончания отбора, id_service - идентификатор услуги, id_employee - идентификатор сотрудника) status = get(t, 'status') - статус запроса result_date = get(t, 'result') - список с результатом
Данный блок разветвляется на два других. К одному идет стрелка с условием status = 0 и следующим за этим блоком с ошибкой, ко второму идет стрелка с условием status = 1, которая ведет пользователя в блок “поле выбора дат”. Блок заполняется аналогично с блоком “поле выбора услуг”, за исключением первой функции tools_make_button_str_checker(result_date) - в случае с датами функция работает только с входной переменной result_date.
После совершения проверки в блоке “Выберите из предложенных вариантов!”, аналогичному блоку “проверка выбора” в услугах, стрелка с условием #{cheker_date} и собранной переменной input_date переводит нас в блок форматирование даты. В этом блоке оставляем все, как есть, по необходимости меняя названия переменных - данный блок приводит дату к нужному виду.
Из этого блока стрелка приведет в блок “поле выбора времени”, в котором происходит запрос и формирование списка доступного времени на основе выбранной даты. #{user_date} - дата пользователя, приведенная к нужному формату #{numbered_list} - список времени
Из этого блока идет стрелка с условием #{cheker} и записью переменной input_time, в которую будет записано выбранное пользователем значение. Новый блок, “формат времени”, приводит выбор пользователя к нужному формату, отсылая в блок “сообщение об ошибке” в случае ошибки.
Один из последних блоков - блок “совершение записи” выполняется с уже собранными от пользователя данными. В случае получения статуса 0 он пройдет по соответствующей стрелке и выдаст ошибку, в случае получения статуса 1 он сообщит об успешном совершении записи.