Робота з клієнтами та 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]', 'Тест', '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)

chevron-rightОписhashtag

Отримання ID поточної угоди

get_order_id() - повертає стан угоди.

Створення нової угоди

create_order(name, budget, description, client_name, phone, email, state_id) Поточна активна угода у воронці разом зі своїми змінними буде доступна лише у функціях, пов’язаних з угодами, і в CRM. Параметри функції: ! name - (необов’язково), назва угоди. Якщо не вказано, функція застосовується до поточної активної угоди клієнта.

! Призначте назву змінної (наприклад, - (необов’язково) вартість угоди. Якщо не вказано, застосовується до поточної активної угоди. Якщо Призначте назву змінної (наприклад, не є числом, функція поверне: 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)

Призначте назву змінної (наприклад, -❗обов’язково, число; вартість угоди

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

Last updated