Работа с клиентами

ЛЕГЕНДА:

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)
назначает диалог оператору, где:

  1. email - строковый параметр (необязательный). Если указан только email, диалог будет назначен указанному оператору независимо от его текущего статуса.
  2. 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()
Функция для отписки от сообщений бота. Пример приведен в этой статье.
Для отписавшегося клиента появится символ — красное сообщение с крестиком.

Важно!

Сначала выполняется Калькулятор, и только затем отправляется сообщение.

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

  1. Сначала отправьте блок с финальным сообщением.
  2. Затем отправьте пустой блок с функцией отписки/блокировки.

Если попытаться сделать и то, и другое в одном блоке, сообщение не будет отправлено.

Если поместить функцию 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:

  1. Вы можете указать его вручную — получить ID сделки и передать его как параметр функции, если хотите воздействовать на конкретную сделку.

  1. Получить его с помощью функции 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:

  1. Вы можете указать его вручную, получив ID сделки и передав его как параметр функции, когда хотите воздействовать на конкретную сделку.
  2. Получить его с помощью функции 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()