Comment on page
Бизнес-платформа КЛИЕНТИКС
CRM-система для гибкого управления компанией в сфере услуг
Для начала работы необходимо получить данные для авторизации API.
Для этого зайдите в меню в правом верхнем углу, раздел Настройки, подраздел API и нажмите галочку Включить
Получение данных для авторизации API доступно только для тарифов PRO+,API
После получения API переменных переходим в настройки проекта в Salebot -> Константы проекта и сохраняем его в переменные klientiks_account_id, klientiks_user_id и klientiks_access_token соответственно.
Каждая функция возвращает словарь, у которого есть параметр status, он может иметь два значения 0 и 1.
Если значение status=1, то запрос в Клиентикс прошел успешно и в параметре result будет результат запроса:
- Например: {'status': '1', 'result':{'2022-03-15': ['2022-03-15 12:00:00', '2022-03-15 13:00:00', '2022-03-15 15:00:00', '2022-03-15 16:00:00']}}
Или запрос в Клиентикс прошел успешно, но ничего не найдено: {'status': '1', 'result':[]}
Если status=0 - то есть какая-то проблема и описание будет находиться в error:
- Например: {'status': '0', 'error': 'Missing required variables - phone'}
Для получения списка сотруд ников используется функция klientiks_get_employees_list()
Функция возвращает словарь вида:
- в случае успеха: {'status': '1', 'result': [{'id': 121125, 'name': 'Алекс', 'phone': '+7 (900) 001-00-00', 'email': '[email protected]'}, {'id': 121126, 'name': 'Екатерина', 'phone': '+7 (900) 000-00-00', 'email': ''}]}
- в случае ошибки, например: {'status': '0', 'error': "No account_id/user_id/access_token in 'klientiks_api_key' variable in project settings"} – отсутствует необходимая API-переменная
Для получения доступного времени для записи необходимо наличие включенного виджета онлайн-записи. Включить его можно в klientiks меню -> возможности -> онлайн запись -> включить галочку “включить онлайн-запись с сайта”.
klientiks_get_free_date_for_record(start_day, finish_day, service_id, executor_id)
где:
Аргумент | Статус | Формат | Краткое описание |
---|---|---|---|
start_day | обязательный | дата в формате дд.мм.гггг | Начальная дата. Дата, за которую нужно показать свободное время. |
finish_day | необязательный | дата в формате дд.мм.гггг | Конечная дата. В этом случае будет показано свободное время от начальной даты. |
service_id | обязательный | число | ID услуги. Будет показано только время сотрудников, которые оказывают эту услугу. Услуги должны быть массивом |
executor_id | обязательный | число | ID сотрудника-исполнителя. Будет возвращено только свободное время выбранного сотрудника |
Внимание! Все переменные записываются в кавычках (' ' или " "). Например, 'Иван'.
Функция возвращает словарь вида:
- в случае успеха: {'status': '1', 'result': {'2021-11-25': '2021-11-25 00:00:00', '2021-11-25 01:00:00', '2021-11-25 02:00:00’}}
- В случае ошибки, например: {"status":"0","error":"Format not supported or date is not valid. Params must be dd.mm.yyyy"}
- В случае, если на сайте не включен онлайн-виджет, или не найдено свободное время функция вернет ответ: {'status': '1', 'result': []}.
Для добавления визита для нового клиента используется функция
klientiks_add_record_for_client(executor_id, service_id, start_datetime, name, phone, appointment_id, living_address, birth_date, subclient_name), где:
Аргумент | Статус | Формат | Краткое описание |
---|---|---|---|
executor_id | обязательный | число | Идентификатор сотрудника (исполнителя) |
service_id | обязательный | строка | Идентификатор услуги, массив (может быть несколько услуг в визите) |
start_datetime | обязательный | дата в формате дд.мм.гггг чч:мм | Дата и время начала визита |
name | обязательный | строка | Имя клиента |
phone | обязательный | строка | Телефон клиента |
appointment_id | необязательный | число | Идентификатор визита (актуально только при записи на групповое занятие) |
living_address | необязательный | строка | Адрес клиента |
birth_date | необязательный | дата в формате дд.мм.гггг | Дата рождения клиента |
subclient_name | необязательный | строка | Имя субклиента (только для версий с субклиентами) |
Функция возвращает словарь вида:
- в случае успеха: {'status': '1', 'result': [{'client': {'id': 7236168, 'name': 'Никола2', 'phone': '79114130045', 'created': '2022-03-12 16:13:41.573838', 'json_data': '{"appointment_confirmation_sms":false}', 'modified': '2022-03-12 16:14:42.149735', 'account_id': 24036, 'country_code': 'RU', 'client_groups': None, 'delay_stat': None, 'unparsed_name': True, 'first_name': 'Никола2', 'patron_name': None, 'second_name': None, 'loyalty_program_status': None, 'demo_entity': False, 'deleted': False, 'author_id': None, 'forbid_roistat_export': False, 'exclude_from_analytics': False, 'responsible_manager_id': None, 'last_appointment_id': None, 'helix_id': None, 'birth_date': '23.02.1993', 'promo_code': None, 'promo_code_activated': None, 'password': None, 'blocked': False, 'ios_last_active': None, 'android_last_active': None, 'failed_push': None, 'phone_operator': None, 'number': '2345678903457', 'external_id': None, 'instagram_name': None, 'telegram_name': None, 'vk_name': None, 'appointment_confirmation_sms': False}, 'appointment': {'id': 11767888, 'start_datetime': '2022-03-13 12:30:00', 'finish_datetime': '2022-03-13 13:30:00', 'appointed_services': [{'id': 17317251, 'appointed_services_executions': [{'name': 'Екатерина', 'id': 121126, 'position': '', 'is_cabinet': False}], 'name': 'Услуга тест', 'service_id': 1214453, 'price': 0, 'duration': 60, 'quantity': 1, 'service_groups': '', 'type': 'service', 'unit_of_measure': None, 'bind_data': '', 'evotor_uuid': None, 'force_certain_supply': None, 'json_data': None, 'mdlp_codes': None}], 'executor_name': 'Екатерина', 'executor_position': '', 'total_cost': '0', 'booked_till': False}]}
- в случае ошибки, например: {"status":"0","error":'Missing required variables - service_id'} – отсутствует обязательная переменная "service_id"
Внимание! Если нужно добавить и нового клиента, и его визит, можно воспользоваться предыдущей функцией.
Для добавления нового клиента используется функция klientiks_add_new_clients(phone,name,second_name,email,living_address,sex,appointment_confirmation_sms,patron_name,client_groups), где:
Аргумент | Статус | Формат | Краткое описание |
---|---|---|---|
name | обязательный | строка | Имя клиента |
phone | обязательный | строка | Телефон клиента |
second_name | необязательный | строка | Фамилия клиента |
email | необязательный | строка | email клиента |
living_address | необязательный | строка | Адрес клиента |
sex | необязательный | число | (1- male, 0 - female) - П ол клиента |
appointment_confirmation_sms | необязательный | число | Подтверждение на согласие получать SMS (1 - согласен, 0 - не согласен) |
patron_name | необязательный | строка | Отчество клиента |
client_groups | необязательный | строка | Группы клиента через запятую |
Внимание! Все переменные записываются в кавычках (' ' или " "). Например, 'Иван'.
Функция возвращает словарь вида:
- в случае успеха: {'status': '1', 'result': [{'id': 7236227, 'name': 'Иванов Иван Иванович', 'phone': '+7 (444) 555-00-11', 'created': '2022-03-12 20:19:08.261956', 'modified': '2022-03-12 20:19:08.261956', 'account_id': 24036, 'country_code': 'RU', 'client_groups': 'Новенький', 'delay_stat': None, 'unparsed_name': True, 'first_name': 'Иван', 'patron_name': 'Иванович', 'second_name': 'Иванов', 'loyalty_program_status': None, 'demo_entity': False, 'deleted': False, 'author_id': 121125, 'forbid_roistat_export': False, 'exclude_from_analytics': False, 'responsible_manager_id': None, 'last_appointment_id': None, 'helix_id': None, 'birth_date': None, 'promo_code': None, 'promo_code_activated': None, 'password': None, 'blocked': False, 'ios_last_active': None, 'android_last_active': None, 'failed_push': None, 'phone_operator': None, 'number': '2345678903458', 'external_id': None, 'instagram_name': None, 'telegram_name': None, 'vk_name': None, 'sub_clients': False, 'service_packs': [], 'lead_source': 'бот', 'email': '[email protected]', 'appointment_confirmation_sms': True, '_phone': '74445550011', 'ap_services': '', 'ap_executors_names': '', 'favourite_services': [], 'favourite_executors': [], 'total_spent': 0, 'appointments_count': 0, 'appointments_cancelled': 0, 'appointments_missed': 0, 'appointments': [], 'new_client': True, 'service_packs_not_active': [], '_modified': 1647116348, '_created': 1647116348, 'new_data': {'id': 7236227, 'name': 'Иванов Иван Иванович', 'phone': '+7 (444) 555-00-11', 'created': '2022-03-12 20:19:08.261956', 'modified': '2022-03-12 20:19:08.261956', 'account_id': 24036, 'country_code': 'RU', 'client_groups': 'Новенький', 'delay_stat': None, 'unparsed_name': True, 'first_name': 'Иван', 'patron_name': 'Иванович', 'second_name': 'Иванов', 'loyalty_program_status': None, 'demo_entity': False, 'deleted': False, 'author_id': 121125, 'forbid_roistat_export': False, 'exclude_from_analytics': False, 'responsible_manager_id': None, 'last_appointment_id': None, 'helix_id': None, 'birth_date': None, 'promo_code': None, 'promo_code_activated': None, 'password': None, 'blocked': False, 'ios_last_active': None, 'android_last_active': None, 'failed_push': None, 'phone_operator': None, 'number': '2345678903458', 'external_id': None, 'instagram_name': None, 'telegram_name': None, 'vk_name': None, 'sub_clients': False, 'service_packs': [], 'lead_source': 'бот', 'email': '[email protected]', 'appointment_confirmation_sms': True, '_phone': '74445550011', 'ap_services': '', 'ap_executors_names': '', 'favourite_services': [], 'favourite_executors': [], 'total_spent': 0, 'appointments_count': 0, 'appointments_cancelled': 0, 'appointments_missed': 0, 'appointments': [], 'new_client': True, 'service_packs_not_active': [], '_modified': 1647116348, '_created': 1647116348}}, 'order_id': 7236227}]}
- в случае ошибки, например: {"status":"0","error":"Missing required variables - name"}
Для удаления визита используется функция
klientiks_visit_cancel(visit_id), где:
visit_id - обязательный параметр - тип строка - идентификатор визита клиента - например, 1295384
Функция возвращает словарь вида:
- в случае успеха: {{'status': '1', 'result': f"Klientiks_visit 1295384 has been cancelled"}
- в случае ошибки, например: {'status': '0', 'error': "Klientiks_visit cannot be cancelled"}
Если Вы хотите, чтобы в Salebot номер клиента в шапке заменялся на его имя из журнала Клиентикс CRM, то зайдите в Salebot -> Настройки про екта и в разделе “Общие переменные” введите переменную klientiks_save_name, равную 1:
Теперь при совершении событий из Клиентикс номер клиента будет автоматически заменяться на его имя.
Если в проекте несколько интеграций и включить замену необходимо только у конкретных клиентов, то значение переменной klientiks_save_name = 1 следует задать в калькуляторе нужного блока, а не в общ их переменных:
Для настройки webhooks потребуется сгенерировать API-ключ в Salebot. Для этого нужно пройти в Настройки-Ключ доступа к Api-Сгенерировать. Формируем ссылку вида https://chatter.salebot.pro/klientiks_webhook/bf28a54e58066440c50525193a5727c2
Для настройки webhooks в Клиентикс crm следует перейти по следующей ссылке: https://klientiks.ru/clientix/admin/eventHandlers и нажать на “добавить событие-webhook”.
1)