Для работы с онлайн-записью
Last updated
Last updated
Для создания воронки онлайн-записи и получения информации о филиалах проекта воспользуйтесь функцией get_companies_for_booking.
Функция вернёт список с данными по каждому филиалу (воронке), у которого в настройках активирована “Онлайн-запись”.
Данные представлены в виде пары “ключ: значение” и состоят из идентификатора филиала (id), его наименования (name) и адреса (address).
Функция не принимает параметров.
Вызов функции в блоке:
Пример возвращаемых данных:
Функция get_categories_for_booking дает возможность получить список данных о всех типах специалистов или о категориях услуг филиала.
Каждый элемент полученного списка состоит из идентификатора (id), наименования (name) и описания (description) должности или категории услуг. Данные представлены в виде пар “ключ: значение”.
Порядок следования параметров:
company_id -> job_titles
Вызов функции в блоке:
Пример возвращаемых данных:
Если вам необходимо предоставить информацию о сотрудниках филиала, воспользуйтесь функцией 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
Примечание:
Если вы хотите получить всех сотрудников филиала, оставьте значения 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
Параметры:
Если вы хотите получить все услуги филиала, оставьте значения 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
Вызов функции в блоке:
Пример возвращаемых данных:
Чтобы получить список доступных для записи слотов, необходимо воспользоваться функцией get_slots_for_booking.
Функция проверит наличие доступного времени в выбранную дату и вернёт список свободных слотов в формате “часы:минуты”, например [“09:00”, “11:00”, “14:30”, “16:00”].
company_id -> service_ids -> employee_id -> slot_interval
Вызов функции в блоке:
Пример возвращаемых данных:
Для создания онлайн записи используйте функцию 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
Параметры:
Вызов функции в блоке:
Пример ответа об успешной записи:
При создании записей и повторном запросе свободных слотов вы увидите, что списки сократились, например для 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).
Вызов функции в блоке:
Пример возвращаемых данных:
функция 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
Вызов функции в блоке:
Ответ бота при успешной операции:
Ранее занятый слот 16:00 теперь доступен для записи, а создать новую запись на аналогичные услуги теперь можно только с 11:00.
В информации о записях клиента вы также увидите измененное время записи:
Клиент может самостоятельно отменить существующую запись. Для этого ему необходимо попасть в блок, где происходит вызов функции cancel_booking.
Успешное удаление вернет информацию о статусе совершения операции (status) со значением True и сообщение (message) “Booking deleted” в формате “ключ: значение”.
Порядок следования параметров:
pipeline_id -> order_id
Параметры:
Вызов функции в блоке:
Ответ бота при успешной отмене:
После отмены слоты “09:00” и “10:00” снова доступны для записи:
get_info_for_booking() - функция без параметров, предназначена для чтения данных по услугам настроенной онлайн-записи.
Функция не принимает параметров.
Для начала нужно подготовить блок для обновления информации обо всех услугах после заполнения настроек филиала в разделе "Услуги". Данный блок необходимо объявить ДО начала работы ассистента, чтобы на вопрос об услугах ИИ не генерировала рандомные ответы:
Далее вызовите блок в окне тестирования бота, чтобы переменная перезаписалась:
После чего вы увидите в переменных проекта в разделе "Настройки проекта" указанную переменную со значением услуг для онлайн-записи.
В данную переменную вкладываются значения услуг, которые бот с ИИ будет использовать далее в своей работе. Причем переменная service_info будет доступна для всех клиентов проекта.
Далее переходим к настройке следующего блока:
Данный блок преследует следующие функции:
а) его вызывают в настройках ассистента для формирования записи с использованием переменных по услугам;
б) он создает запись клиента;
в) обновляет переменные проекта после записи: то есть убирает уже несвободные окошки в графике.
Если бот был настроен верно, после получения всех данных от клиента, ИИ направит информацию в указанный блок, в котором осуществляется запись клиента на услугу с помощью функции create_booking_by_name():
В параметры create_booking_by_name() записываются значения, собранные ботом.
Поскольку информация о доступных слотах уже будет неактуальна, с помощью той же переменной и вложенной в нее функции происходит обновление доступных дат и времени на запись:
Обращаем внимание!
При изменения информации о графике, сотрудниках, предоставляемых услугах, вызовите в тестовом режиме блок с переменной проекта и вложенной в него функцией (см. рис. Первый блок).
Функция create_booking_by_name(service_name, date, date_time) создает запись по передаваемым AI-ассистентом данным в систему.
Функция принимает три обязательных параметра для формирования записи:
Подробнее о том, как создавать чат-бота с ИИ для онлайн записи, читайте в одноименной статье
параметры | описание |
---|---|
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число;
job_titles (опциональный)
индикатор фильтрации должностей сотрудников. Ожидаемый формат - любое непустое, ненулевое значение (строка, напр. “yes”, или число, напр. 1 ) . Если не передать параметр, передать 0 (ноль) или пустую строку “”, функция вернет данные о категориях услуг;
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число;
service_ids (опциональный)
идентификатор или список идентификаторов услуг, ожидаемый формат - целое число или список целых чисел в квадратных скобках через запятую, напр [844, 845]
job_title_id (опциональный)
идентификатор должности, ожидаемый формат - целое число;
service_category_id (опциональный)
идентификатор категории услуг, ожидаемый формат - целое число;
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число
service_category_id (опциональный)
идентификатор категории услуг, ожидаемый формат - целое число;
employee_id (опциональный)
идентификатор сотрудника, ожидаемый формат - целое число;
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число;
service_ids (обязательный)
список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел в квадратных скобках через запятую (напр. 842 или [842, 843]);
employee_id (опциональный)
идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку “” - ищет свободные даты у всех сотрудников, оказывающих полный перечень услуг из списка service_ids;
days_limit (опциональный)
количество дней от текущей даты, в числе которых осуществляется поиск свободных дат, ожидаемый формат - целое число, значение по умолчанию - 14 (дней);
max_dates_count
Позволяет ограничить количество дат в результате работы функции, указывается числом
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число;
service_ids (обязательный) -
список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел (напр. 842 или [842, 843]);
date (обязательный) -
дата для проверки слотов, ожидаемый формат - строка в виде “число.месяц.год”, например “01.01.2024”;
employee_id (опциональный)
идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку - ищет свободные слоты в расписаниях всех сотрудников, работающих в выбранную дату и оказывающих полный перечень услуг из списка service_ids;
slot_interval (опциональный)
интервал в минутах между свободными слотами, ожидаемый формат - целое число, значение по умолчанию - 30 (минут);
company_id (обязательный)
идентификатор филиала, ожидаемый формат - целое число;
service_ids (обязательный)
список идентификаторов услуг для записи, ожидаемый формат - целое число или список целых чисел (напр. 5 или [5, 10, 15]);
booking_date (обязательный)
дата записи, ожидаемый формат - строка в виде “число.месяц.год”, например “15.01.2024”;
booking_time (обязательный)
время записи, ожидаемый формат - строка в виде “часы:минуты”, например “12:30”;
employee_id (опциональный)
идентификатор сотрудника, ожидаемый формат - целое число. Если оставить значение параметра пустым или передать пустую строку “” - записывает к случайному сотруднику, оказывающему полный перечень услуг из списка service_ids, если он свободен в указанное дату и время;
client_id (опциональный)
идентификатор клиента, ожидаемый формат - целое число. Данный параметр нужен, если вы хотите получить записи интересующего вас клиента, по умолчанию - идентификатор клиента в чате с ботом.
order_id (обязательный)
идентификатор записи, ожидаемое значение - целое число;
new_date (обязательный)
новая дата записи, ожидаемый формат - строка в виде “число.месяц.год”, например “16.01.2024”;
new_time (обязательный)
новое время записи, ожидаемый формат - строка в виде “часы:минуты”, например “14:30”;
pipeline_id (обязательный)
идентификатор филиала, ожидаемое значение - целое число;
order_id (обязательный)
идентификатор записи, ожидаемое значение - целое число; идентификатор записи, ожидаемое значение - целое число;
! service_name
обязательный параметр, название услуги
! date
дата в формате дд.мм.гггг
! date_time
время услуги в формате чч:мм