Для работы с онлайн-записью

Получение информации о филиалах

Для создания воронки онлайн-записи и получения информации о филиалах проекта воспользуйтесь функцией get_companies_for_booking.

Функция вернёт список с данными по каждому филиалу (воронке), у которого в настройках активирована “Онлайн-запись”.

Данные представлены в виде пары “ключ: значение” и состоят из идентификатора филиала (id), его наименования (name) и адреса (address).

Функция не принимает параметров.

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение информации о должностях или категориях услуг

Функция get_categories_for_booking дает возможность получить список данных о всех типах специалистов или о категориях услуг филиала.

Каждый элемент полученного списка состоит из идентификатора (id), наименования (name) и описания (description) должности или категории услуг. Данные представлены в виде пар “ключ: значение”.

Порядок следования параметров:

company_id -> job_titles

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число;

job_titles (опциональный)

индикатор фильтрации должностей сотрудников. Ожидаемый формат - любое непустое, ненулевое значение (строка, напр. “yes”, или число, напр. 1 ) . Если не передать параметр, передать 0 (ноль) или пустую строку “”, функция вернет данные о категориях услуг;

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение информации о сотрудниках

Если вам необходимо предоставить информацию о сотрудниках филиала, воспользуйтесь функцией get_employees_for_booking.

Вызов вернет список данных, содержащих идентификатор (id), имя (name), информацию (information) и должность (job_title) сотрудников филиала.

Вы также можете отфильтровать сотрудников по списку услуг, должности или категории оказываемых услуг. Для этого вам необходимо передать в вызов функции дополнительный параметр service_ids, job_title_id или service_category_id.

Порядок следования параметров:

company_id -> service_ids -> job_title_id -> service_category_id

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число;

service_ids (опциональный)

идентификатор или список идентификаторов услуг, ожидаемый формат - целое число или список целых чисел в квадратных скобках через запятую, напр [844, 845]

job_title_id (опциональный)

идентификатор должности, ожидаемый формат - целое число;

service_category_id (опциональный)

идентификатор категории услуг, ожидаемый формат - целое число;

Примечание:

Если вы хотите получить всех сотрудников филиала, оставьте значения service_ids, job_title_id и service_category_id пустыми.

  • Пример вызова: get_employees_for_booking(14275391)

Чтобы отфильтровать сотрудников по списку идентификаторов услуг, передайте его вторым параметром, а job_title_id и service_category_id оставьте пустыми.

  • Пример вызова: get_employees_for_booking(14275391, [844, 845])

Если вы хотите отфильтровать сотрудников по должности, передайте идентификатор в параметр job_title_id, а service_ids и service_category_id оставьте пустыми.

  • Пример вызова: get_employees_for_booking(14275391, “”, 1021)

Если вам нужно получить сотрудников, оказывающих услуги определенной категории, заполните параметры service_ids и job_title_id пустой строкой, а в параметр service_category_id передайте идентификатор выбранной категории услуг.

  • Пример вызова: get_employees_for_booking(14275391, “”, “”, 1019)

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение информации об услугах

Чтобы получить информацию о предоставляемых филиалом услугах, воспользуйтесь функцией get_services_for_booking.

В результате вызова бот вернёт список с данными об услугах. Данные по каждой услуге содержат идентификатор (id), наименование (title), описание (description), стоимость (price) и длительность услуги в минутах (duration).

Вы можете отфильтровать результирующий список по категории услуг, по сотруднику или по категории услуг и сотруднику одновременно. Для этого при вызове функции необходимо передать дополнительные параметры service_category_id и/или employee_id.

Порядок следования параметров:

company_id -> service_category_id -> employee_id

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число

service_category_id (опциональный)

идентификатор категории услуг, ожидаемый формат - целое число;

employee_id (опциональный)

идентификатор сотрудника, ожидаемый формат - целое число;

Примечание к разделу “Параметры”:

Если вы хотите получить все услуги филиала, оставьте значения service_category_id и employee_id пустыми.

  • Пример вызова: get_services_for_booking(14275391)

Если вы хотите отфильтровать услуги по категории и/или сотруднику, передайте соответствующий идентификаторы в параметры service_category_id и employee_id. Для фильтрации по одному параметру, заполните пустой строкой значение второго параметра.

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

  • get_services_for_booking(14275391, 1018) - фильтр по категории услуг;

  • get_services_for_booking(14275391, “”, 512978) - фильтр по сотруднику;

  • get_services_for_booking(14275391, 1018, 463665) - фильтрация по обоим параметрам;

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение доступных для записи дат

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

Чтобы сформировать данный список используйте функцию get_dates_for_booking.

Функция проверит наличие свободного для записи времени и вернёт перечень подходящих дат в формате “день.месяц.год”.

Порядок следования параметров:

company_id -> service_ids -> employee_id -> days_limit

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число;

service_ids (обязательный)

список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел в квадратных скобках через запятую (напр. 842 или [842, 843]);

employee_id (опциональный)

идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку “” - ищет свободные даты у всех сотрудников, оказывающих полный перечень услуг из списка service_ids;

days_limit (опциональный)

количество дней от текущей даты, в числе которых осуществляется поиск свободных дат, ожидаемый формат - целое число, значение по умолчанию - 14 (дней);

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение доступных для записи слотов

Чтобы получить список доступных для записи слотов, необходимо воспользоваться функцией get_slots_for_booking.

Функция проверит наличие доступного времени в выбранную дату и вернёт список свободных слотов в формате “часы:минуты”, например [“09:00”, “11:00”, “14:30”, “16:00”].

Порядок следования параметров:

company_id -> service_ids -> employee_id -> slot_interval

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число;

service_ids (обязательный) -

список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел (напр. 842 или [842, 843]);

date (обязательный) -

дата для проверки слотов, ожидаемый формат - строка в виде “число.месяц.год”, например “01.01.2024”;

employee_id (опциональный)

идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку - ищет свободные слоты в расписаниях всех сотрудников, работающих в выбранную дату и оказывающих полный перечень услуг из списка service_ids;

slot_interval (опциональный)

интервал в минутах между свободными слотами, ожидаемый формат - целое число, значение по умолчанию - 30 (минут);

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Создание записи

Для создания онлайн записи используйте функцию create_booking.

При успешной записи функция вернёт информацию о статусе совершения операции (status) со значением True и данными о записи (booking) в формате“ключ: значение”.

Данные о новой записи содержат:

  • идентификатор (id),

  • дату (booking_date),

  • время (booking_time),

  • наименования услуг (services),

  • длительность записи (service_duration),

  • общую стоимость (total_cost),

  • имя назначенного сотрудника (employee_name), его должность (job_title),

  • наименование филиала (company_name) и адрес филиала (company_address)

в формате “ключ: значение”.

Порядок следования параметров:

company_id -> service_ids -> booking_date -> booking_time -> employee_id

Параметры:

company_id (обязательный)

идентификатор филиала, ожидаемый формат - целое число;

service_ids (обязательный)

список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел (напр. 5 или [5, 10, 15]);

booking_date (обязательный)

дата записи, ожидаемый формат - строка в виде “число.месяц.год”, например “15.01.2024”;

booking_time (обязательный)

время записи, ожидаемый формат - строка в виде “часы:минуты”, например “12:30”;

employee_id (опциональный)

идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку “” - записывает к случайному сотруднику, оказывающему полный перечень услуг из списка service_ids, если он свободен в указанное дату и время;

Пример использования:

Вызов функции в блоке:

Пример ответа об успешной записи:

При создании записей и повторном запросе свободных слотов вы увидите, что списки сократились, например для 05.02.2024 больше нет слота на 18:00 (он был свободен только в расписании Виктории), а к Павлу Тихонову на мужскую стрижку и моделирование бороды теперь можно записаться с 9 до 14, так как общая длительность процедур равна 1 часу и 45 минутам, а в 16:00 у Павла уже есть другая запись.

Получение информации о предстоящих записях клиента

Актуальные записи клиента можно посмотреть, вызвав функцию get_bookings_info.

В ответ вернётся перечень активных записей, а также подробная информации о каждой записи.

Информация о записи представлена в формате “ключ: значение” и включает:

  • идентификатор записи (booking_id),

  • дату (booking_date),

  • время (booking_time),

  • идентификаторы (service_ids) и наименования (service_names) выбранных услуг,

  • длительность записи (booking_duration),

  • суммарная стоимость услуг (total_cost),

  • идентификатор (employee_id) и имя (employee_name) назначенного сотрудника, его должность (job_title),

  • идентификатор филиала (company_id)

  • наименование филиала (company_name) и адрес (company_address).

Параметры:

client_id (опциональный)

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

Пример использования:

Вызов функции в блоке:

Пример возвращаемых данных:

Получение информации об услуге, которая назначена в активной сделке

функция get_active_order_booking_info() - функция без параметров, возвращает информацию о записи клиента на услуги из активной сделки в виде словаря

Информация о записи представлена в формате “ключ: значение” и включает:

  • идентификатор записи (booking_id),

  • дату (booking_date),

  • время (booking_time),

  • идентификаторы (service_ids) и наименования (service_names) выбранных услуг,

  • длительность записи (booking_duration),

  • суммарная стоимость услуг (total_cost),

  • идентификатор (employee_id) и имя (employee_name) назначенного сотрудника, его должность (job_title),

  • идентификатор филиала (company_id)

  • наименование филиала (company_name) и адрес (company_address).

Изменение даты и времени записи

Клиент может самостоятельно изменить дату и время записи. Для этого ему необходимо попасть в блок воронки, где происходит вызов функции modify_booking_time.

При успешной операции, функция вернет информацию о статусе совершения операции (status) со значением True и сообщение (message) “Booking time modified” в формате “ключ: значение”.

Порядок следования параметров:

order_id -> new_date -> new_time

Параметры:

order_id (обязательный)

идентификатор записи, ожидаемое значение - целое число;

new_date (обязательный)

новая дата записи, ожидаемый формат - строка в виде “число.месяц.год”, например “16.01.2024”;

new_time (обязательный)

новое время записи, ожидаемый формат - строка в виде “часы:минуты”, например “14:30”;

Пример использования:

Вызов функции в блоке:

Ответ бота при успешной операции:

Ранее занятый слот 16:00 теперь доступен для записи, а создать новую запись на аналогичные услуги теперь можно только с 11:00.

В информации о записях клиента вы также увидите измененное время записи:

Отмена записи

Клиент может самостоятельно отменить существующую запись. Для этого ему необходимо попасть в блок, где происходит вызов функции cancel_booking.

Успешное удаление вернет информацию о статусе совершения операции (status) со значением True и сообщение (message) “Booking deleted” в формате “ключ: значение”.

Порядок следования параметров:

pipeline_id -> order_id

Параметры:

pipeline_id (обязательный)

идентификатор филиала, ожидаемое значение - целое число;

order_id (обязательный)

идентификатор записи, ожидаемое значение - целое число; идентификатор записи, ожидаемое значение - целое число;

Пример использования:

Вызов функции в блоке:

Ответ бота при успешной отмене:

После отмены слоты “09:00” и “10:00” снова доступны для записи:

Для работы онлайн-записи с AI-ассистентом

Для работы с переменной и знаниями бота

get_info_for_booking() - функция без параметров, предназначена для чтения данных по услугам настроенной онлайн-записи.

Функция не принимает параметров.

Пример использования:

Для начала нужно подготовить блок для обновления информации обо всех услугах после заполнения настроек филиала в разделе "Услуги". Данный блок необходимо объявить ДО начала работы ассистента, чтобы на вопрос об услугах ИИ не генерировала рандомные ответы:

Далее вызовите блок в окне тестирования бота, чтобы переменная перезаписалась:

После чего вы увидите в переменных проекта в разделе "Настройки проекта" указанную переменную со значением услуг для онлайн-записи.

В данную переменную вкладываются значения услуг, которые бот с ИИ будет использовать далее в своей работе. Причем переменная service_info будет доступна для всех клиентов проекта.

Далее переходим к настройке следующего блока:

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

а) его вызывают в настройках ассистента для формирования записи с использованием переменных по услугам;

б) он создает запись клиента;

в) обновляет переменные проекта после записи: то есть убирает уже несвободные окошки в графике.

Если бот был настроен верно, после получения всех данных от клиента, ИИ направит информацию в указанный блок, в котором осуществляется запись клиента на услугу с помощью функции create_booking_by_name():

В параметры create_booking_by_name() записываются значения, собранные ботом.

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

Обращаем внимание!

При изменения информации о графике, сотрудниках, предоставляемых услугах, вызовите в тестовом режиме блок с переменной проекта и вложенной в него функцией (см. рис. Первый блок).

Для создания записи в CRM

Функция create_booking_by_name(service_name, date, date_time) создает запись по передаваемым AI-ассистентом данным в систему.

Функция принимает три обязательных параметра для формирования записи:

параметрыописание

! service_name

обязательный параметр, название услуги

! date

дата в формате дд.мм.гггг

! date_time

время услуги в формате чч:мм

Подробнее о том, как создавать чат-бота с ИИ для онлайн записи, читайте в одноименной статье

Last updated