Загальна інформація
ЗмістЗагальна інформація#1. Типи тригерів#2. Умови виконання#3. Метод запускуДодаткова інформація
Загальна інформація
Тригери дозволять автоматизувати роботу в KeepinCRM, структурувати процеси, налаштувати додаткові продажі, та не забувати про те що потрібно виконати. Тобто налаштувавши один раз тригер - він буде виконувати частину шаблонних робіт та допомагати.
Структурно тригери складаються з:
- Тип тригера
- Яку дію виконати
- Умова виконання
- Метод запуску
#1. Типи тригерів
Наразі доступно:
- Створення завдання
- Відправка SMS
- Зміна головного відповідального
- Зміна етапу угоди
- Архівація угоди
- Архівація контрагента (ліда, клієнта)
- Копіювання з поля в поле
- Заповнення полів
- Створення платежів
- Генерація документів
- Запис в нотатку
- Автоматичне тегування контрагентів (сегментація)
- Авторозподіл угод/контрагентів
- Сповіщення в середині системи або по Email працівників
- Переміщення між воронками продажів
- Робота з дзвінками
- Створення фіскальних чеків Checkbox
Створення тригера:
#2. Умови виконання
В умові потрібно вказати, при якій дії повинен запуститись тригер. Наприклад: змінено відповідального, змінено статус ліда, значення поля дорівнює вказаному в умові й тому подібне.
Важливо:
- Умова має свій синтаксис
- Якщо умова некоректна, тригер не запуститься
- Якщо налаштовані додаткові контролі, то тригер це врахує. Наприклад заборона архівації, якщо фінанси не проведені, або товар не списано
#2.1 Умова складається з 3-х блоків
Розберемо на прикладі:
stage.name == 'Відправлено рахунок'
- "stage.name" - що саме відстежується (змінна)
- "==" - оператори: рівно (==), не рівно (!=), більше (>), менше (<)
- "Відправлено рахунок" - на яке значення повинно змінитись, щоб тригер спрацював
#2.2 Які змінні можна використовувати в умовах
В умовах можна використовувати 2 типи змінних: системні та користувацькі поля. Приклад системних змінних (інші можна знайти в колонці ID в налаштуваннях полів):
Змінна | Опис | Таблиця | Значення | Приклад |
stage.name |
Етап воронки продажів | Угоди | Точна назва етапу | stage.name == 'Відправлено' |
source_id |
Джерело | Угоди, Контрагенти | ID для API з розділу: Налаштування => Управління => Джерела | source_id == 4 |
status_id |
Статус | Контрагенти, Завдання | ID для API з розділу: Налаштування => Типи даних => Ліди або клієнти | status_id == 2 |
main_responsible_id |
Головний відповідальний | Угоди, Контрагенти | ID користувача для API з налаштувань | main_responsible_id == 29 Якщо головний відповідальний пустий: main_responsible_id == NULL |
comment |
Коментар | Угоди, Контрагенти | В одинарних дужках точна назва тексту яку треба відстежувати | comment == 'тестовий коментар' |
created_at |
Дата створення | Угоди, Контрагенти | Використовується для запуску тригеру тільки при створенні та без значень | created_at |
result |
Результат угоди | Угоди | Якщо результат угоди Виграно (successful) або Програно (failed) | result == 'successful' |
paid |
Сплачено | Угоди | Потрібна цифра з нулем після крапки | paid == 100.0 |
total |
Всього | Угоди | Потрібна цифра з нулем після крапки | total > 200.0 |
status_description |
Статус доставки | Доставка | Точна назва статусу ТТН | status_description == 'Прибуло у відділення' |
client.working_agreements_count |
К-сть угод контрагента | Угоди | К-сть (цифра) | client.working_agreements_count == 0 або client.working_agreements_count >= 1 |
any(documents, document, document.template.name == 'Рахунок') |
Наявність в угоді конкретного документа | Угоди | Точна назва документа | any(documents, document, document.template.name == 'Рахунок') |
archive_status.name |
Причина програшу угоди | Угоди | Точна назва причини | archive_status.name == 'Дорого' |
funnel.title |
Виконання в певній воронці продажів | Угоди | Точна назва воронки продажів | funnel.title == 'Продажі' |
finished |
Завдання виконане (архів) | Завдання | Виконане - true, невиконане - false | finished == true |
CONTAINS('текст нотатки', note) |
Моніторинг тексту в нотатках для контрагентів, угод, завдань | Нотатки | В лапках вказується чіткий текст, який потрібно моніторити, та запускати відповідний тригер | CONTAINS('текст нотатки', note) Додатково: Якщо потрібно враховувати головного відповідального по контрагенті і нотатка створюється в угоді, то додається змінна: item.client.main_responsible_id == 1 якщо нотатка додається в картці контрагента, то додається змінна: item.main_responsible_id == 1 якщо потрібно шукати співпадіння в користувацьких полях, то зліва заповнюється текст який потрібно шукати, справа користувацьке поле, в якому шукати: CONTAINS('текст який шукаємо', comment) |
any(jobs, job, job.title == 'Назва товару') |
Перевірка наявності товару з потрібною назвою в угоді. Використовується з додатковою умовою: наприклад зміна етапу, відповідального і тому подібне | Угоди | Точна назва | any(jobs, job, job.title == 'Точна назва товару') and stage.name == 'Відправлено' |
any(jobs, job, job.sku == '33921') |
Перевірка наявності товару з потрібним артикулом в угоді. Використовується з додатковою умовою: наприклад зміна етапу, відповідального і тому подібне | Угоди | Точна назва | any(jobs, job, job.sku == '33921') and stage.name == 'Відправлено' |
any(jobs, job, any(job.product.category.full_path, category_name, category_name == 'Назва папки')) |
Перевірка наявності товару з потрібної папки в угоді. Використовується з додатковою умовою: наприклад зміна етапу, відповідального і тому подібне | Угоди | Точна назва | any(jobs, job, any(job.product.category.full_path, category_name, category_name == 'Мобільні телефони')) |
lead == true |
Перевірка, щоб контрагент був в розділі "Ліди" | Контрагенти | Лід - true Клієнт - false |
lead == true або lead == false, якщо створені додаткові розділи з лідами, то додається section_id == null and lead == true |
updated_at |
Запускати тригер при кожному оновленні (будь-яка зміна в картці) | Угоди, Контрагенти, Завдання | Точна назва змінної | updated_at |
not(phones[0]) |
Перевірка наявності телефонів в картці контрагента | Контрагенти, Угоди, Завдання | Точна назва змінної |
Таблиця Угоди: Таблиця Контрагенти, Завдання: not(client.phones[0]) |
not(emails[0]) |
Перевірка наявності Email в картці контрагента | Контрагенти, Угоди, Завдання | Точна назва змінної |
Таблиця Угоди: Таблиця Контрагенти, Завдання: not(client.emails[0]) |
status.name |
Статус Закупівлі або Повернення | Закупівлі | Точна назва статусу |
status.name == 'Закупівля відправлена постачальнику' |
is_archived |
Архівна Закупівля або Повернення | Закупівлі | Точна назва змінної |
Архівна Закупівля або Повернення: |
is_return |
Уточнення де запускати тригер, в Закупівлях чи в Поверненнях | Закупівлі | Точна назва змінної |
Запускати тільки в Закупівлях: |
custom_fields.rozetka_is_fulfillment |
Перевірка угоди на фулфілмент Rozetka | Угоди | Точна назва змінної |
Якщо замовлення по фулфілменту: |
Приклад користувацьких змінних (полів):
Змінна | Опис | Таблиця | Значення | Приклад |
custom_fields.ІД змінної яка в дужках в налаштуванні полів |
Будь-яке користувацьке поле, включно з полями всіх маркетплейсів | Угоди, Контрагенти | Чіткий формат використання з налаштування полів. | Приклад #1: custom_fields.oplata_2 == 'Безготівкова оплата' Приклад #2: custom_fields.rozetka_payment_status == 'Оплачено' |
Приклад змінних для таблиці "Фінанси".
Змінна | Опис | Таблиця | Значення | Приклад |
kind |
Тип платежу: дохід, витрата | Фінанси | Чіткий формат використання | Приклад дохід: kind == 'debit' Приклад витрата: kind == 'credit' |
planned |
Перевірка, чи це запланований платіж | Фінанси | Чіткий формат використання: true або false | planned == true |
parent.credit |
Перевірка несплачено по угоді | Фінанси | Чіткий формат використання | parent.credit == 0.0 |
purse.name |
Перевірка потрібного гаманця | Фінанси | Чіткий формат використання з назвою гаманця | purse.name == 'Безготівка' |
category.name |
Перевірка потрібної категорії | Фінанси | Чіткий формат використання з назвою категорії | category.name == 'Надання послуг' |
amount |
Перевірка суми платежу | Фінанси | Чіткий формат використання | amount >= 100, або amount == 1000 |
parent_id |
Перевірка чи платіж проведено по угоді | Фінанси | Чіткий формат використання | parent_id != NULL |
parent.ІД змінної яка в дужках в налаштуванні полів угод |
Перевірка по полю з угоди (можна використовувати будь-яке) | Фінанси | Чіткий формат використання | Приклад з перевіркою відповідального по угоді parent.main_responsible_id == 1 |
parent.client.ІД змінної яка в дужках в налаштуванні полів контрагентів |
Перевірка по полю з лідів або клієнта (можна використовувати будь-яке) | Фінанси | Чіткий формат використання | Приклад #1 з перевіркою відповідального по клієнту parent.client.main_responsible_id == 1 Приклад #2 з перевіркою статусу клієнта parent.client.status_id == 19 |
*Більше прикладів використання описано в кожному типі тригера
Корисно:
Якщо створюється тригер з таблицею угоди, то в умові тригера можна звертатись до полів картки клієнта по формату: client.назва змінної.
Приклад #1: Відправити SMS якщо відповідний статус ліда/клієнта та змінюється етап угоди:
client.status_id == 10 and stage.name == 'Відправлено ТОВ'
Приклад #2: Якщо відповідний тег ліда/клієнта і потрібно сформувати документи на певному етапі:
any(client.tags, tag, tag == 'B2B') and stage.name == 'Документи'
Приклад #3: Якщо в користувацькому полі ліда/клієнта з типом цифра є потрібне значення:
client.custom_fields.kol_vo_kliientov_50537 == 10 and stage.name == 'Повернення'
А якщо створюється тригер з іншою таблицею (не угоди і не контрагенти), то можна звертатись до інформації угоди по формату: agreement.назва змінної
Приклад #1: Якщо угода на потрібному етапі і таблиця Еквайринг:
agreement.stage.name == 'Підготовка документів'
#2.3 Декілька умов в одному тригері
Для використання декількох умов в одному тригері потрібно використовувати: AND = "І" (уточнення), OR = "АБО". Приклад, потрібний статус ліда та потрібний відповідальний:
source_id == 1 AND main_responsible_id == 2
Приклад з умовою OR (АБО) та обов'язковим використанням дужок для цього. Приклад, потрібний статус ліда та декілька можливих відповідальних:
source_id == 1 AND (main_responsible_id == 2 or main_responsible_id == 3 or main_responsible_id == 10)
Якщо використовуються декілька SMS підписів і потрібне налаштування відправки SMS по посилці яка довго у відділенні, то використовуються декілька умов. Приклад:
status_description == 'Прибуло у відділення' AND source_id == 2
#3. Метод запуску
При створенні тригера в наявності поле "Метод запуску", воно відповідає за те, коли саме потрібно виконати тригер. Доступно три варіанти роботи:
- Відразу - тригер виконується відразу
- З затримкою - виконується, через вказану к-сть хвилин
- Якщо потрібно виконати через 2 дні: 2 дні * 24 години * 60 хвилин = 2880
- Якщо потрібно виконати через 1 годину і 30 хвилин: 1 година * 60 хвилин + 30 хвилин = 90
- На основі поля з типом дата - запуск тригера відбувається на основі обраного поля з типом Дата. Можливі 2 варіанти:
- Якщо обирається системне поле: дата завершення завдання, дата завершення угоди або інше поле, то в цих полях є дата та час, тому тригер виконається в цю дату та час (якщо не змінювати метод виконання, тобто залишити 0 в днях, годинах та хвилинах). Якщо потрібно виконати тригер в інший час, то для цього потрібно обрати метод виконання:
- До дати - тригер буде виконано за вказаний термін до дати
- Приклад #1. Обрано поле "Дата завершення" і в ньому заповнено 11.05.2024 18:00, потрібно щоб тригер запустився за 1 день до цього часу, то потрібно вказати: Днів до - 1, Годин до - 0, Хвилин до - 0 (тригер запуститься 10.05.2024 18:00)
- Приклад #2. Обрано поле "Дата завершення" і в ньому заповнено 11.05.2024 18:00, потрібно щоб тригер запустився за 30 днів, 5 годин і 30 хв. до цього часу, то потрібно вказати: Днів до - 30, Годин до - 5, Хвилин до - 30 (тригер запуститься 11.04.2024 12:30, але точна дата залежить від к-сті днів в місяці)
- Після дати - тригер буде виконано через вказаний термін після дати
- Приклад #1. Обрано поле "Дата завершення" і в ньому заповнено 11.05.2024 18:00, потрібно щоб тригер запустився через 1 день до цього часу, то потрібно вказати: Днів до - 1, Годин до - 0, Хвилин до - 0 (тригер запуститься 12.05.2024 18:00)
- Приклад #2. Обрано поле "Дата завершення" і в ньому заповнено 11.05.2024 18:00, потрібно щоб тригер запустився через 60 днів, 2 години і 45 хв. до цього часу, то потрібно вказати: Днів до - 60, Годин до - 2, Хвилин до - 45 (тригер запуститься 11.06.2024 15:15, але точна дата залежить від к-сті днів в місяці)
- До дати - тригер буде виконано за вказаний термін до дати
- Якщо обирається користувацьке поле з типом Дата, то в цьому полі є тільки дата, час виконання вказується в полях - В (годин), В (хвилин), тобто в яку годину та хвилину запустити тригер, якщо залишити 0 в усіх 3-х полях, то тригер запуститься рівно в 00:00 годин вказаної дати в полі. Якщо потрібно виконати тригер в інший час, то для цього потрібно обрати метод виконання:
- До дати - тригер буде виконано за вказаний термін до дати
- Приклад #1. Обрано користувацьке поле з типом дата і в ньому заповнено 11.05.2024, потрібно щоб тригер запустився за 1 день до цього часу в 14:00, то потрібно вказати: Днів до - 0, Годин до - 14, Хвилин до - 0 (тригер запуститься 10.05.2024 14:00)
- Приклад #2. Обрано користувацьке поле з типом дата і в ньому заповнено 12.05.2024, потрібно щоб тригер запустився за 5 днів, в 10:30 хв. до цього часу, то потрібно вказати: Днів до - 4, Годин до - 10, Хвилин до - 30 (тригер запуститься 07.05.2024 10:30)
- Після дати - тригер буде виконано через вказаний термін після дати
- Приклад #1. Обрано користувацьке поле з типом дата і в ньому заповнено 11.05.2024, потрібно щоб тригер запустився через 1 день в 20:00 до цього часу, то потрібно вказати: Днів до - 1, Годин до - 20, Хвилин до - 0 (тригер запуститься 12.05.2024 20:00)
- Приклад #2. Обрано користувацьке поле з типом дата і в ньому заповнено 11.05.2024, потрібно щоб тригер запустився через 15 днів в 15:15 до цього часу, то потрібно вказати: Днів до - 15, Годин до - 15, Хвилин до - 15 (тригер запуститься 26.05.2024 15:15)
- Приклад #3. Обрано користувацьке поле з типом дата і в ньому заповнено 11.05.2024, потрібно щоб тригер запустився в цей же день в 11:00, то потрібно вказати: Днів до - 0, Годин до - 11, Хвилин до - 0 (тригер запуститься 11.05.2024 11:00)
- До дати - тригер буде виконано за вказаний термін до дати
- Якщо обирається системне поле: дата завершення завдання, дата завершення угоди або інше поле, то в цих полях є дата та час, тому тригер виконається в цю дату та час (якщо не змінювати метод виконання, тобто залишити 0 в днях, годинах та хвилинах). Якщо потрібно виконати тригер в інший час, то для цього потрібно обрати метод виконання:
- Якщо багато тригерів на одній умові (від 3-х), то рекомендуємо додавати затримку в +1 хв для тригера, щоб вони спрацьовували послідовно
Додаткова інформація
- Якщо тригер виконався, але спрацював додатковий контроль, повідомлення про це виведеться в нотатках
- Якщо тригер не запустився, звернути увагу на таке:
- Чи увімкнений тригер (при створенні він вимкнений)
- Яка таблиця використовується, якщо використовуються змінні з угоди, а вибрана таблиця - Контрагенти то тригер не спрацює
- Коректність написання назви змінної
- Чи вказана затримка виконання тригера
- При імпорті замовлень/клієнтів рекомендуємо вимкнути тригери які відповідають за відправку SMS або завдання
- Boolean поля (Так/Ні) в умовах вказуються як true або false, без лапок
- В кожного тригера є свій журнал спрацювань (стрілочка у вікні редагування тригера)
- Тригер запускається тільки у нових діях, тобто якщо було налаштовано тригер, який створює завдання на етапі, то в угодах які вже на цьому етапі завдання не створяться, тільки у тих які перейдуть на цей етап
- Додаткові умови можна також знайти у валідаціях, вони можуть використовуватись і в тригерах
- Якщо виникнуть складнощі при самостійному налаштуванні тригерів, зверніться до служби технічної підтримки
Оновлено 01.10.2024