Бізнес-процеси
Конструктор автоматизації «якщо сталося X — зроби Y»: тригери, умови, дії, затримки, змінні, журнал запусків і помилок.
Що це і навіщо
Бізнес-процес — це автоматичний сценарій «якщо сталося X — зроби Y». Ви малюєте його схемою з блоків, без програмування. Приклади:
- з'явився новий лід — створити менеджеру завдання «Передзвонити» на завтра;
- замовлення набуло статусу «Підтверджено» — перевірити залишки на складі; якщо не вистачає, повідомити закупівельника; якщо вистачає — створити рахунок;
- клієнт написав у чат — AI-асистент виявляє, що йому потрібно, і залежно від відповіді створює задачу потрібному співробітнику;
- рахунок змінив статус — через 3 дні перевірити, чи він оплачений, і нагадати менеджеру.
Процес спрацьовує сам, у фоні, після події. Людина нічого не натискає. Якщо в процесі станеться збій, це не зламає основну дію (лід усе одно створиться), а помилка з'явиться в журналі.
Не плутайте з бізнес-правилами: вони обмежують або перевіряють дії користувача, а бізнес-процес виконує ланцюжок кроків автоматично.
Де знайти
Налаштування → Бізнес-процеси (/settings/business-process). Пункт з'являється в меню налаштувань лише тим, кому дозволено змінювати «Налаштування» системи. Це ж право потрібне для будь-яких дій з процесами.
Сторінка «Бізнес-процеси» — це три плитки:
| Плитка | Що там | Адреса |
|---|---|---|
| Налаштування процесів | Створення та редагування сценаріїв автоматизації | /settings/business-process/list |
| Логи процесів | Історія запусків: статуси, час виконання | /settings/business-process/logs |
| Помилки | Помилки виконання: причина та код для розробника | /settings/business-process/errors |
Список процесів
Кожен процес — картка з назвою, мітками «Активний» / «Вимкнено», сутністю (наприклад, «Ліди») і подією (наприклад, «Створення»). Внизу картки:
- перемикач — вмикає й вимикає процес одразу (повідомлення «Процес увімкнено» / «Процес вимкнено»);
- Редагувати (олівець) — відкриває редактор; клік по назві робить те саме;
- Експорт — завантажує схему процесу файлом JSON (
bp-назва.json); - Видалити (кошик) — після підтвердження «Видалити процес «…»?».
Кнопки вгорі: Імпорт (завантажити файл процесу; процес створюється вимкненим — «Процес імпортовано (вимкнено) — перевірте і увімкніть») і Створити процес. Якщо процесів ще немає, побачите «Поки немає процесів».
Експорт/імпорт зручні для перенесення сценарію між компаніями або для резервної копії. Імпорт чужого файла перевіряйте перед вмиканням — особливо HTTP-запити.
Редактор процесу
Відкривається кнопкою «Створити процес» або при редагуванні. Адреса: /business-process/номер (новий — /business-process/new).
Що на екрані
- Шапка: хлібні крихти, поле з назвою процесу (обов'язкове), перемикач Активно / Вимкнено, кнопки Назад і Зберегти (активна, коли є зміни).
- Ліворуч — «Блоки процесу»: палітра блоків, згрупована. Блок можна перетягнути на полотно або клікнути — він з'явиться в центрі.
- Полотно — область, де ви з'єднуєте блоки стрілками. У новому процесі вже є блок-тригер «Створено новий запис» (сутність «Ліди»). Підказка на порожньому полотні: «Перетягніть блоки з панелі ліворуч, зʼєднайте їх стрілками від краю до краю».
Як користуватись
- Клікніть по блоку-тригеру й оберіть Сутність CRM і Подію. Натисніть Застосувати.
- Додайте потрібні блоки (умови, дії, затримки).
- З'єднайте блоки: потягніть від точки на краю одного блоку до іншого. З одного виходу можна провести лише одну стрілку (нова замінить стару). Умова має дві гілки: Так (зверху) і Ні (знизу).
- Клікніть блок — праворуч виїде вікно налаштувань; після правок натисніть Застосувати (або Скасувати).
- Назвіть процес, увімкніть Активно і натисніть Зберегти.
Видалити блок — кнопка «Видалити блок» на ньому або клавіші Delete/Backspace; видалити стрілку — кнопка «Видалити зв'язок». Стартовий тригер видалити не можна. На кожному блоці є лічильник «Кількість спрацювань» — скільки разів процес проходив цей блок.
Якщо ви пішли зі сторінки з незбереженими змінами, система запитає підтвердження. Повідомлення «Стартовий тригер у процесі може бути лише один» — не можна додати другий блок «Подія CRM».
Перевірка при збереженні
Система перевіряє схему до запису. Помилки блокують збереження (список видно в панелі під полотном): порожній процес, немає стартового тригера, стрілка на неіснуючий блок, цикл без паузи (він би вичерпав ліміт кроків миттєво). Попередження не блокують: цикл із паузою, блоки, до яких не веде жодна стрілка, і дія, що не підходить до сутності процесу (наприклад, «AI-оператор» не в процесі на сутності «Чат (розмова)»). Попередження краще виправити: інакше ви дізнаєтесь про проблему лише з журналу помилок після активації.
Блоки: повний довідник
Події (тригери)
Подія CRM (стартовий тригер)
Початок процесу. Налаштування: Сутність CRM і Подія. Сутності: Ліди, Контакти, Контрагенти, Угоди, Замовлення, Рахунки, Відвантаження, Виробництво, Документи, Email (лист), Чат (розмова), Плани продажів. Події залежать від сутності:
| Подія | Коли спрацьовує |
|---|---|
| Створено новий запис | Після створення |
| Оновлено запис | При будь-якому оновленні |
| Змінено статус | Лише коли статус справді змінився |
| Змінено відповідального | Лише коли відповідальний справді змінився |
| Отримано лист | (Email) вхідний лист |
| Початок розмови | (Чат) нова розмова від клієнта |
| Нове повідомлення від клієнта | (Чат) вхідне повідомлення; поки розмову веде AI-оператор — не спрацьовує |
| Змінився темп виконання плану | (Плани продажів) темп перейшов в іншу групу (див. Плани продажів) |
Які події доступні для кожної сутності, видно у списку «Подія» після вибору сутності. Зверніть увагу: для Рахунків і Відвантажень у списку є «Створено новий запис», але створення цих документів зараз процес не запускає — для них працюють «Оновлено запис» і «Змінено статус».
Умови-фільтри запуску (тригер лише для певного джерела тощо) в редакторі поки що не налаштовуються: щоб обмежити процес, поставте першим блоком «Умову».
Очікування події
Проміжний тригер: ставить процес на паузу до події на записі. Приклад: створили завдання і чекаєте, поки його оновлять. Налаштування: Назва кроку, Сутність із контексту (основна або створена раніше в цьому процесі), Подія (Створено, Оновлено (будь-яка зміна), Змінено статус, Змінено відповідального), Макс. строк очікування (0 — без обмеження), Одиниці (Хвилин, Годин, Днів), Після завершення строку: «Вийти з процесу (успішно)», «Піти далі по гілці» або «Завершити з помилкою». Очікування витримує перезапуск системи.
Логіка та маршрутизація
Умова (If/Else)
Розгалужує процес на «Так» і «Ні». Налаштування:
- Назва умови (наприклад, «Перевірка суми»);
- Сутність / джерело: основна сутність, створена в процесі сутність або «Змінні процесу (vars)»;
- Логіка: «Всі умови (І)» або «Будь-яка умова (АБО)»;
- правила: Поле, Оператор, Значення (додати ще правило — кнопкою у вікні). Поле може бути й додатковим (позначка «(дод.)», див. Додаткові поля).
Оператори: Дорівнює, Не дорівнює, Містить, Не містить, Містить будь-яке з, Містить усі, Більше ніж, Менше ніж, Більше або дорівнює, Менше або дорівнює, Порожнє, Не порожнє. Для полів-списків порівнюються множини варіантів (умова «1» не спрацює на «11»). Для змінних процесу в полі вказується назва змінної.
Важливо про гроші: суми в умовах і підстановках зберігаються в копійках. 5 000 грн — це 500000.
Затримка
Пауза перед наступним кроком: Значення і Одиниці (Секунд, Хвилин, Годин, Днів — залежно від форми). Приклад: «3 дні». Нульова затримка пропускається. Процес у цей час має статус «Очікує».
Вихід з процесу / Зупинка з помилкою
Кінцеві блоки гілки. «Вихід з процесу» завершує запуск успішно. «Зупинка з помилкою» завершує його як невдалий і записує помилку в журнал (поле Повідомлення про помилку, можна з підстановками, напр. «Замовлення {{ model.name }}: недостатньо залишків»). Ставте на гілку «Ні» умови, щоб збій був видний, а не «тихий».
Дії та операції
| Блок | Що робить і які поля |
|---|---|
| Створити завдання | Ставить задачу. Поля: Прив'язати до сутності (з контексту), Тема завдання (обов'язково), Опис, Пріоритет (Звичайний / Високий / Терміновий), Відповідальний (власник сутності, «Ініціатор процесу» або конкретний користувач), Дедлайн і Нагадування (відносно, наприклад «через 3 дні», або з поля), Підзадачі. Див. Задачі. |
| Змінити поле | Змінює значення у картці: Сутність (з контексту), Поле, Нове значення (можна {{ model.поле }}). Для полів-дат є відносні значення. Змінюватись можуть лише «записувані» поля. Для лідів та угод синхронізуються воронка і етап. |
| Встановити змінну | Зберігає значення у змінну процесу: Назва змінної, Значення. Далі читається як {{ vars.назва }}. |
| AI: класифікація | AI обирає одну категорію з вашого списку і кладе її у змінну: Модель, Зберегти у змінну, Системна інструкція, Дані для класифікації, Варіанти відповіді. Далі розгалужуйте «Умовою» по змінній. Списує AI-кредити. |
| AI-оператор | Веде діалог у чаті й виявляє потребу клієнта. Працює лише на сутності «Чат (розмова)». Докладно — ШІ-оператор у чатах. |
| Перевірка залишків | Порівнює кількість у позиціях документа (замовлення, рахунок, відвантаження) з залишками на складі. Результат у змінній: «ok», «insufficient», «no_stock»; перелік дефіцитних товарів — у змінній з суфіксом _missing. Послуги ігноруються. Нічого не змінює. Поля: Документ (з контексту), Зберегти результат у змінну. |
| Сповіщення | Або Просте (повідомити), або Питання так-ні (чекати реакцію). Поля: Кому (користувач чи «Ініціатор процесу»; обов'язково), Питання / Повідомлення (обов'язково; підстановки можна). Для питання — Зберегти відповідь у змінну і поведінка, якщо ніхто не відповів: «Піти гілкою «Ні»» (за замовчуванням), «Вийти з процесу (успішно)» або «Завершити з помилкою». Для питання процес ставиться на паузу до відповіді користувача і далі йде гілкою «Так» або «Ні». |
| Призначити підписанта | Додає внутрішнього підписанта документа: Документ (з контексту), Підписант (внутрішній), Роль у документі, Черга, Термін підписання, Посада. |
| Створити рахунок / відвантаження / акт / платіж | Створює документ на основі іншого через штатний сервіс — так само, як це робить користувач кнопкою «Створити на основі» (діють ті самі правила й облік). Поле: На основі сутності (з контексту). Доступні пари: рахунок — з замовлення чи угоди; відвантаження — із замовлення чи рахунку; акт — із замовлення, угоди чи рахунку; платіж — з рахунку. Якщо в джерела немає контрагента/контакту або позицій, дія завершиться помилкою. |
| Теги | Додає або прибирає теги: Сутність, Дія (Додати теги / Прибрати теги), Теги. Див. Теги. |
| Доступ до запису | Надає чи відкликає доступ: Дія, Користувач, Права (Перегляд / Редагування / Видалення), Термін (0 — безстроково) і Одиниці (Годин / Днів). |
| Додати товар | Додає товар у позиції запису: Сутність, Товар, Кількість. Не для контактів і контрагентів. Ціна й валюта беруться штатним способом. |
| HTTP запит | Виклик зовнішнього API: Метод (GET, POST, PUT, PATCH, DELETE, HEAD), URL, Заголовки, Тип тіла (Без тіла, JSON, Текст (raw)…), Тіло запиту, Авторизація (Немає, токен, Basic), Таймаут (сек), Повтори (ретраї), Зберегти відповідь як (за замовчуванням «http»). Дозволені лише публічні адреси: внутрішні (localhost, приватні мережі) заблоковані. Відповідь читається як {{ http.json.поле }}. Помилковий код відповіді зупиняє процес, якщо ввімкнено «падати при помилці». |
| Надіслати Email | Лист за шаблоном: Сутність, Шаблон листа (обов'язково), Шаблон документа (необов'язково — додасть PDF вкладенням). Адреса береться з контактних каналів сутності. Див. Пошта. |
| Надіслати SMS | У палітрі є, але позначений «Скоро» і недоступний. |
Змінні і підстановки
У текстових полях блоків (тема, опис, URL, лист, значення) можна використовувати підстановки у фігурних дужках:
{{ model.name }}— поле основної сутності;{{ created.invoice.number }}— поле створеної в процесі сутності (задача —task, рахунок —invoice, акт —documentтощо);{{ vars.category }}— змінна процесу;{{ http.json.id }}— поле відповіді HTTP-запиту.
Кнопка «Вставити поле» біля поля підкаже доступні підстановки. Якщо підстановку не вдалося розкрити, вона залишається в тексті як є (процес не падає). Змінні живуть до кінця запуску, у тому числі через затримки й очікування.
Життєвий цикл запуску
Кожне спрацювання процесу — це запуск. Статуси запуску:
| Статус | Значення |
|---|---|
| Виконується | Іде по блоках |
| Очікує | Стоїть на «Затримці», «Очікуванні події», питанні з відповіддю або на діалозі AI-оператора |
| Завершено | Дійшов до кінця або вийшов блоком «Вихід з процесу» |
| Помилка | Зупинився на збої або блоці «Зупинка з помилкою» |
Важливі правила:
- Версія. Кожне збереження підвищує версію процесу. Запуск, що вже почався, доходить до кінця по тій схемі, з якої стартував — редагування процесу не ламає тих, що вже йдуть.
- Без повторів. Дії з побічним ефектом (створення завдання, документа, лист, HTTP, сповіщення) не виконуються двічі. Якщо систему зупинили у момент виконання такої дії, запуск завершиться помилкою «ACTION_INTERRUPTED» для ручної перевірки, а не створить дубль.
- Відновлення. Завислі запуски й пропущені таймери система підбирає сама (перевірка кожні кілька хвилин). Тенант без активності може підхопитись лише після першого звернення до нього.
- Ліміти. Не більше 200 кроків за один прохід і 2000 за все життя запуску; ланцюжок процесів, що запускають один одного, обривається на глибині 6, а той самий процес по тому самому запису — не частіше 5 разів за хвилину. Це захист від «вічних циклів».
Логи процесів
Плитка «Логи процесів» — таблиця останніх запусків: Процес, Статус (Виконується, Завершено, Помилка, Очікує), Сутність («lead #42»), Старт, Завершення, Помилка. Порожньо — «Запусків ще немає. Тут зʼявиться історія спрацювань ваших процесів». Кнопка «Назад» веде на сторінку з плитками.
Помилки процесів
Плитка «Помилки» — таблиця: Процес, Повідомлення (зрозуміла причина), Код (для розробника), Вузол, Час. Якщо помилок немає — «Помилок немає». Поширені коди:
| Код | Значення |
|---|---|
| ACTION_FAILED | Дія не виконалась (наприклад, немає товару чи контрагента для створення рахунку) |
| ACTION_INTERRUPTED | Дію перервано посеред виконання; потрібна ручна перевірка, повтор не робиться |
| STOP_ERROR | Процес дійшов до блоку «Зупинка з помилкою» |
| WAIT_TIMEOUT / SWITCH_TIMEOUT | Вичерпано час очікування події або відповіді на питання, а обрано «Завершити з помилкою» |
| ENGINE_MAX_STEPS / ENGINE_MAX_TOTAL_STEPS | Перевищено ліміт кроків (схема зациклена) |
| CASCADE_DEPTH | Ланцюжок процесів занадто глибокий |
Що відбувається в обліку
Самі блоки процесу не роблять проводок і не рухають склад «мимо» системи. Вони викликають ті самі сервіси, що й користувач. Тому, наприклад, «Створити рахунок» або «Створити відвантаження» дають ті самі наслідки в обліку, що й ручне створення (див. Рахунки, Відвантаження), а «Змінити поле» для статусу відвантаження проходить через штатну зміну статусу. Автору процесу варто пам'ятати: автоматична дія має ті ж наслідки, що й ручна, тільки без підтвердження людини.
Приклад: процес «Замовлення підтверджено → створити рахунок». Менеджер змінює статус замовлення. Через секунду система створює рахунок на суму замовлення тими ж правилами, що й кнопка «Створити рахунок», і кладе його в контекст ({{ created.invoice.id }}).
Приклади процесів
1. Завдання на новий лід
- Тригер: сутність «Ліди», подія «Створено новий запис».
- Дія «Створити завдання»: тема «Передзвонити: {{ model.name }}», дедлайн «через 1 день».
2. Велике замовлення — сповістити керівника
- Тригер: «Замовлення», «Створено новий запис».
- «Умова»: поле суми замовлення, оператор «Більше ніж», значення
10000000(100 000 грн у копійках). - Гілка «Так» → «Сповіщення»: кому — керівник, повідомлення «Велике замовлення {{ model.name }}».
- Гілка «Ні» → «Вихід з процесу».
3. Дізнатись, чи є товар, і підтвердитись у керівника
- Тригер: «Замовлення», «Змінено статус».
- «Перевірка залишків» → у змінну «stock_status».
- «Умова» по змінній «stock_status» = «ok»: «Так» → «Сповіщення» (питання «Створити відвантаження для {{ model.name }}?»), а на його гілці «Так» → «Створити відвантаження»; «Ні» → «Зупинка з помилкою» з повідомленням «Недостатньо залишків».
Права доступу
Усі дії з бізнес-процесами (перегляд, створення, редагування, увімкнення, журнали) вимагають права «Налаштування» (settings) у вашій ролі; без нього розділу в меню налаштувань немає. Права налаштовуються в Ролях і правах. Процес діє автоматично після події, тому давайте право редагувати процеси лише довіреним людям.
Типові помилки і питання
- Процес не спрацьовує. Перевірте, що він Активний, що вибрано правильну сутність і подію, і що для цієї сутності подія справді доступна (для рахунків і відвантажень «Створено» не спрацьовує). Після цього подивіться «Логи процесів»: запуски є?
- Запуск є, але дія не відбулась. Подивіться «Помилки»: там причина. Часта причина — у джерела немає позицій чи контрагента для створення документа.
- Процес «застряг» в «Очікує». Він чекає затримки, події або відповіді користувача. Якщо очікування не має обмеження за часом, воно може тривати довго — задайте «Макс. строк очікування».
- Не зберігається: «цикл без паузи». Додайте на шлях «Затримку» або «Очікування події», або приберіть зворотну стрілку.
- У списку сутність показана латиницею (наприклад, «task»). Це лише підпис у списку: процес працює нормально.
- Умова по сумі не спрацьовує. Ви ввели гривні замість копійок: 5000 грн = 500000.
- Чи діє процес на старі записи? Ні, лише на нові події після активації.
Дивіться також
- ШІ-оператор у чатах
- Бізнес-правила
- Задачі
- Додаткові поля
- Плани продажів менеджерів — подія «Змінився темп виконання плану»
- Пошта
- Ролі і права
- Огляд налаштувань