Работа с клиентами и 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()

chevron-rightОписаниеhashtag

was_in_state(message_id) проверяет, был ли клиент в выбранном состоянии (блоке). Номер блока можно получить в редакторе.

В верхней строке редактора блока отображается номер блока.

days_from_last_message() определяет количество дней с момента последнего сообщения клиента. Создано для проверки, попадает ли оно в 24-часовое окно.

Пример: d = days_from_last_message()

circle-info

Если с момента последнего сообщения клиента прошло более 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() Функция для отписки от сообщений бота. Пример приведён в этой статье. У отписанного клиента появится символ — красное сообщение с крестиком.

circle-info

Важно!

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

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

  1. Сначала отправьте блок содержащий итоговое сообщение.

  2. Затем отправьте пустой блок содержащий функцию 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.

Работа с задачами

circle-check
circle-info

MaviBot использует формат даты "dd.mm.yyyy" и формат времени "HH:MM".

create_task() | update_task() | done_task() | delete_task()

chevron-rightОписаниеhashtag

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 задачи

chevron-rightПримерыhashtag

Давайте создадим задачу для оператора:

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

Обновление задачи

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

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

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

chevron-rightПример кода для копированияhashtag

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)

chevron-rightОписаниеhashtag

Получение 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:

  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 - имя переменной для добавления или обновления в сделке

circle-exclamation

! 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 сделки для удаления. Если опущен, будет удалена самая последняя сделка.

chevron-rightПримерыhashtag

Все функции просты в использовании. Например, давайте создадим новую сделку и отправим её номер клиенту:

Регистрация запроса клиента

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

Получение ID текущей активной сделки
Получение списка активных сделок
chevron-rightПример кода для копированияhashtag

Установка метки успешной сделки

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 сделки. Если параметр не указан, метка будет установлена для текущей активной сделки.

Последнее обновление