Работа с клиентами
ЛЕГЕНДА:
was_in_state() | days_from_last_message() | free_client() | assign_to_user() | distribute_client()| get_operator() | get_operator_name() | delete_pended_messages() | set_note() | add_unread() | clear_unread() | unsubscribe()|block_client() | unblock_client() | set_client_name() | get_bind_clients() | get_current_pipline_id()
was_in_state(message_id)
проверяет, находился ли клиент в выбранном состоянии (блоке). Номер блока можно получить из редактора.

days_from_last_message()
определяет количество дней с момента последнего сообщения клиента. Создана для проверки, попадает ли он в 24-часовое окно.
Пример:
d = days_from_last_message()
Если с момента последнего сообщения клиента прошло более 30 дней, функция вернет значение 9999.
free***_***client()
снимает назначение ответственного оператора.
Пример: free_client()
assign_to_user(email, only_active)
назначает диалог оператору, где:
- email - строковый параметр (необязательный). Если указан только email, диалог будет назначен указанному оператору независимо от его текущего статуса.
- only_active - True или False (необязательный параметр). Если установлено True, диалог будет назначен указанному оператору только в том случае, если он сейчас на смене.
Примеры:
assign_to_user() - назначает диалог случайному оператору, который сейчас на смене
assign_to_user('email оператора') - назначает диалог оператору независимо от его статуса
assign_to_user('email оператора', True) - назначает диалог указанному оператору только если он сейчас на смене
distribute_client()
назначает диалог оператору в соответствии с настройками авто-распределения.
Пример: distribute_client()
get_operator()
получает email ответственного оператора
Пример: get_operator()
Может использоваться для назначения задач ответственному оператору или для проверки его существования. Если ответственного оператора нет, вернет None.
get_operator_name()
получает имя ответственного оператора
Пример: get_operator_name()
Может использоваться для отображения информации клиенту. Если ответственного оператора нет, вернет None. Если у оператора не задано имя, вернет его email.
delete_pended_messages()
удаляет все запланированные сообщения для текущего клиента. По умолчанию также удаляет сообщения, созданные стрелками "Не отменять". Чтобы сохранить сообщения от стрелок "Не отменять", передайте параметр False: delete_pended_messages(False).
set_note(comment)
добавляет комментарий к диалогу.
Пример: set_note('Переделать')
add_unread(count)
помечает диалог с клиентом как непрочитанный
Параметр count можно опустить или установить в 1; в этом случае в диалоге с клиентом появится индикатор +1 непрочитанное сообщение.


Если передано любое другое число, оно будет отображаться в разделе "Клиенты" как количество непрочитанных сообщений от клиента.

clear_unread()
помечает диалог как прочитанный
unsubscribe()
Функция для отписки от сообщений бота. Пример приведен в этой статье.
Для отписавшегося клиента появится символ — красное сообщение с крестиком.


Важно!
Сначала выполняется Калькулятор, и только затем отправляется сообщение.
Поэтому, если вам нужно отправить финальное сообщение, например "Вы отписаны от бота" или "Вы заблокированы", необходимо использовать двухэтапный процесс:
- Сначала отправьте блок с финальным сообщением.
- Затем отправьте пустой блок с функцией отписки/блокировки.
Если попытаться сделать и то, и другое в одном блоке, сообщение не будет отправлено.

Если поместить функцию unsubscribe() в калькулятор того же блока, что и ваше сообщение, сообщение не будет отправлено, и система покажет ошибку.

block_client()
блокирует возможность клиента отправлять сообщения боту. Ранее запланированные сообщения от бота также будут отменены. Однако все еще можно будет отправлять сообщения клиенту напрямую из диалога в разделе "Клиенты"

У заблокированного клиента появится отметка — красный значок замка.

unblock_client()
разблокирует клиента. Клиент снова сможет взаимодействовать с ботом и проходить по цепочкам сообщений.
set_client_name(name)
изменяет имя клиента. Передайте имя клиента в виде строки в двойных кавычках. Также можно использовать переменную, содержащую имя клиента, например: set_client_name("Иван Иванов")
get_bind_clients()
функция без параметров, возвращающая массив ID клиентов, привязанных к текущему клиенту.
get_current_pipline_id()
функция без параметров, возвращающая ID воронки, в которой находится клиент.
Если сделка клиента находится на стадии "необработанная", возвращает None.
Работа с задачами
Функции, работающие с задачами, возвращают статус операции как True или ID задачи при успехе. В случае неудачи возвращают False или None.
MaviBot использует формат даты "дд.мм.гггг" и формат времени "ЧЧ:ММ".
create_task() | update_task() | done_task() | delete_task()
create_task(email, name, date_srok, description, time_srok) – создает задачу
Параметры:\ ! email - email ответственного\ ! name - название задачи\ ! date_srok - срок выполнения, дата\ ! description - описание задачи
time_srok - срок выполнения, время
update_task(task_id,email, name, date_srok, description, time_srok) - обновляет задачу
Параметры:\ ! task_id- ID задачи\ ! email - email ответственного\ ! name - название задачи\ ! date_srok - срок выполнения, дата\ ! description - описание задачи
time_srok - срок выполнения, время
done_task(task_id)- отмечает задачу как выполненную
Параметры:\ ! task_id- ID задачи
delete_task(task_id) – удаляет задачу
Параметры:\ ! task_id- ID задачи
Назначить ответственного пользователя
assign_order_to_user(email, order_id) — назначить ответственного пользователя на сделку
-
email— email сотрудника, которого нужно назначить ответственным. Обязательно. -
order_id— ID сделки, на которую нужно назначить сотрудника. Если не указан, используется текущая сделка. Необязательно.
Получить email ответственного пользователя
get_order_operator(order_id) — получить email ответственного пользователя для сделки
-
order_id— ID сделки, для которой нужно получить ответственного пользователя. Если не указан, используется текущая сделка. Необязательно.
Создадим задачу для оператора:

Обновим срок выполнения и описание.

Отметим задачу как выполненную.

Удаление задачи

task_id=create_task('[email protected]', 'Тест', '22.01.2023', 'тестовая задача', '08:00') status=delete_task(task_id)
Работа со сделками
get_order_id() | create_order() | set_order_name() | set_order_budget() | get_active_orders_ids() | get_success_orders_ids() | get_fail_orders_ids() | get_order_var() | get_order_vars() | set_order_var() | set_order_vars() | move_order_to_next_state() | set_order_status_success() | set_order_status_fail(order_id)| get_state_id() | change_state() | get_order_id_by_var_value() | latest_order_datetime() | count_client_orders(), get_count_orders() | delete_order(order_id) |
Получение ID текущей сделки
get_order_id() - возвращает состояние сделки.
Создание новой сделки
create_order(name, budget, description, client_name, phone, email, state_id)
Текущая активная сделка в воронке, а также ее переменные, будут доступны только в функциях, связанных со сделками, и в CRM.
Параметры функции: \ ! name - (необязательно), название сделки. Если не указано, функция применяется к текущей активной сделке клиента.
! budget - (необязательно) сумма сделки. Если не указано, применяется к текущей активной сделке.
Если budget не является числом, функция вернет: budget must be a number
description - (необязательно), описание сделки.
Дополнительные параметры для создания клиента:
client_name - (необязательно) строка, имя нового клиента
phone - (необязательно) строка, номер телефона нового клиента.
email - (необязательно) строка, email адрес нового клиента.
Для создания клиента необходимо указать хотя бы телефон или email. Если указан телефон и в проекте нет клиента с таким телефоном, будет создан новый.
Если указан email без телефона и в проекте нет клиента с таким email, будет создан новый.
Дополнительный параметр:
state_id - число, позволяет установить начальное состояние сделки при создании
Установить или обновить название сделки
set_order_name(name, order_id)
name - ❗обязательно, строка; название сделки
order_id - (необязательно) ID сделки. Если не указано, изменение применяется к текущей активной сделке клиента.
Установить или обновить бюджет сделки
set_order_budget(budget, order_id)
budget -❗обязательно, число; сумма сделки
order_id - (необязательно) ID сделки. Если не указано, применяется к текущей активной сделке клиента.
Для правильного использования order_id:
- Вы можете указать его вручную — получить ID сделки и передать его как параметр функции, если хотите воздействовать на конкретную сделку.


- Получить его с помощью функции get_order_id(), потому что встроенная переменная order_id возвращает значение в формате {client_id}-{order_id}, что может вызвать некорректное поведение.
Получение списков сделок
((исключая архивные, успешные или проваленные сделки))
get_active_orders_ids()
Получить список ID успешных сделок
get_success_orders_ids()
Получить список ID проваленных сделок
get_fail_orders_ids()
Получение значения переменной сделки
get_order_var(order_id, variable)
Параметры:
! order_id - ID сделки
! variable - имя переменной, значение которой нужно получить
Получение данных сделки
get_order_vars(order_id, names)
Параметры:
! order_id - ID сделки
names - массив имен переменных для получения. Если опущен, функция возвращает все переменные для указанной сделки
Функция возвращает словарь, содержащий переменные, перечисленные в массиве names, для сделки, идентифицированной order_id. Если names не указан, возвращает словарь со всеми переменными указанной сделки.
Добавление переменной сделки
set_order_var(order_id, variable, value)
Параметры:
! order_id - ID сделки
! variable - имя переменной для добавления или обновления в сделке
Если вы хотите изменить параметры сделки "name" или "description", используйте имена переменных "name" или "description" соответственно.
! value - значение переменной
Добавление нескольких переменных сделки
set_order_vars(order_id, variables_dict)
Параметры:
! order_id - ID сделки.
! variables_dict - словарь переменных
Переход к следующему состоянию воронки
move_order_to_next_state(order_id)
Параметры:
order_id - ID сделки. Если не указан, будет перемещена текущая активная сделка.
Порядок состояний сделки определяется последовательностью, заданной в MavibotCRM.
Получение этапа воронки в MavibotCRM
get_state_id(client_id, order_id)
Вы также можете скопировать ID состояния воронки прямо из "Настроек состояния".
Параметры:
order_id - ID сделки клиента
Вы можете вызвать функцию с параметром order_id или без него. Если order_id опущен, функция вернет ID состояния воронки для текущей активной сделки.
Для правильного использования order_id:
- Вы можете указать его вручную, получив ID сделки и передав его как параметр функции, когда хотите воздействовать на конкретную сделку.
- Получить его с помощью функции get_order_id(), потому что встроенная переменная order_id возвращает значение в формате {client_id}-{order_id}, что может вызвать некорректное поведение.
Перемещение лида по воронке MavibotCRM по ID состояния
change_state(state_id, order_id)
Параметры:\ ! state_id - ID состояния воронки
order_id ( необязательно) - ID сделки для перемещения по воронке. Если опущен, будет перемещена текущая активная сделка.
Получение ID сделки по имени и значению переменной
get_order_id_by_var_value(var_name, var_value, client_id)
Параметры:\ ! var_name - имя переменной\ ! var_value - значение переменной;
client_id - (необязательно) ID сделки клиента; по умолчанию ID клиента в боте
Получение даты и времени последней сделки
latest_order_datetime(client_id, dt_fmt)
Параметры:
client_id - (необязательно) ID сделки клиента; по умолчанию ID клиента в боте;
df_fmt - (необязательно) формат возвращаемой даты и времени; по умолчанию "%d.%m.%y %H:%M"
Получение количества сделок клиента
count_client_orders(client_id, state_id, get_all, active)
Параметры:
client_id - (необязательно) ID сделки клиента; по умолчанию ID клиента в боте;
state_id - (необязательно) ID состояния сделки в воронке;
get_all - (необязательно) флаг фильтрации для параметра active; по умолчанию 1 (фильтрация по active отключена);
active - используется только когда get_all равен 0; фильтрует активные сделки; по умолчанию 1 (возвращает только активные сделки);
Получить количество сделок в определенном состоянии сделки
get_count_orders(id) - возвращает количество сделок, находящихся в данный момент в определенном состоянии воронки, по ID состояния.
Функция принимает один параметр:
! id - ID состояния сделки.
Пример использования функции:


ID этапа можно найти в настройках.
Далее необходимо ввести функцию в калькуляторе следующим образом:

При тестировании бота ответ бота будет состоять из количества сделок в состоянии, указанном значением, переданным в функцию.
Удаление сделки
delete_order(order_id) — удаляет сделку в MaviBotCRM.
order_id - (необязательно) ID сделки для удаления. Если опущен, будет удалена последняя сделка.
Все функции просты в использовании.
Например, создадим новую сделку и отправим ее номер клиенту:


Вы можете получить ID текущей активной сделки клиента с помощью функции get_order_id() или получить полный список сделок клиента с помощью get_active_orders_ids().




Установка тега успешной сделки
set_order_status_success()
Описание
set_order_status_success(order_id)
Параметры:
order_id - ID сделки. Если параметр не указан, тег будет установлен для текущей активной сделки.
Установка тега проваленной сделки
set_order_status_fail()
Описание
set_order_status_fail(order_id)
Параметры:
order_id - ID сделки. Если параметр не указан, тег будет установлен для текущей активной сделки.
Установка тега архивной сделки
set_order_status_archive()
Описание
set_order_status_archive(order_id)
Параметры:
order_id - ID сделки. Если параметр не указан, тег будет установлен для текущей активной сделки.
Примеры
/*Архивировать текущую активную сделку*/
res_arh = set_order_status_archive()


