Работа с клиентами и CRM
Работа с клиентами
ЛЕГЕНДА:
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.
Если попытаться сделать и то и другое в одном блоке, сообщение не будет отправлено.

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

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

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

unblock_client() разблокирует клиента. Клиент снова сможет взаимодействовать с ботом и проходить по цепочкам сообщений.
set_client_name(name) изменяет имя клиента. Передайте имя клиента как строку в двойных кавычках. Также можно использовать переменную, содержащую имя клиента, например: set_client_name("John Smith")
get_bind_clients() функция без параметров, которая возвращает массив ID клиентов, связанных с текущим клиентом.
get_current_pipline_id() функция без параметров, которая возвращает ID воронки, в которой сейчас находится клиент.
Если сделка клиента находится на этапе "необработано", возвращает None.
Работа с задачами
Функции, работающие с задачами, возвращают статус операции как True или ID задачи в случае успеха. В случае ошибки они возвращают False или None.
MaviBot использует формат даты "dd.mm.yyyy" и формат времени "HH:MM".
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 задачи
Примеры
Давайте создадим задачу для оператора:

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

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

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

Пример кода для копирования
task_id=create_task('[email protected]', 'Test', '22.01.2023', 'test task', '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 должен быть числом
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()
Последнее обновление