Посібник з формул у тригерах
Створюйте розумні правила для вашої CRM/ERP системи за допомогою потужних формул
Що таке формули?
Формули Elbuz дозволяють створювати інтелектуальні правила для тригерів замість простих фіксованих значень. Наприклад, замість того, щоб завжди встановлювати статус "Новий", ви можете встановити "VIP" для великих замовлень або "Терміновий", якщо коментар містить слово "терміново".
Як відрізнити формулу: Усі формули починаються із символу @
| Просте значення | Формула |
|---|---|
Нове замовлення | @if(document.amount > 1000, 'VIP замовлення', 'Звичайне замовлення') |
Джерела даних
У формулах можна використовувати дані з різних джерел:
| Джерело | Опис | приклад |
|---|---|---|
document.назва_поля | Дані документа (замовлення, накладні та ін.) | document.total_amount |
contractor.назва_поля | Дані контрагента/постачальника | contractor.company_name |
user.назва_поля | Дані користувача (якщо є) | user.department |
Приклади полів:
- Поля документів:
document.order_number,document.total_amount,document.status,document.comments - Поля контрагентів:
contractor.company_name,contractor.email,contractor.phone,contractor.type - Поля користувачів:
user.name,user.department,user.role,user.manager_id
Доступні функції
@if - Умови ("Якщо... то... інакше...")
Синтаксис: @if(умова, значення_якщо_правда, значення_якщо_брехня)
Оператори порівняння:
equals- одноcontains- містить текст>- Більше<- менше>=- більше чи одно<=- менше чи одно!=- не однаково
Приклади:
@if(document.total_amount > 5000, 'VIP', 'Звичайний')
Якщо сума замовлення більше 5000 €, встановити статус "VIP", інакше "Звичайний"@if(document.comments contains 'терміново', 'Пріоритетний', 'Звичайний')
Якщо коментарі містять слово терміново, встановити пріоритет "Пріоритетний"@if(contractor.company_type equals 'ТОВ', 'Корпоративний', 'Приватний')
Перевірка типу контрагента
@json - Витяг з JSON
Синтаксис: @json(поле_з_json, 'ключ')
Використовується, коли поле містить структуровані JSON дані.
Приклад:
@json(document.custom_fields, '17')
Вийняти значення за ключом "17" з JSON у полі custom_fields
Приклад: Якщо custom_fields містить {"16":"test1","17":"443355"}, результат буде 443355
@calc - Математичні обчислення
Синтаксис: @calc(математичний_вираз)
Приклади:
@calc(document.price * 1.2)
Збільшити ціну на 20%@calc(document.total_amount - document.discount)
Розрахувати суму після знижки@calc((document.price * document.quantity) * 0.21)
Розрахувати ПДВ 21%
@concat - Об'єднання тексту
Синтаксис: @concat(текст1, текст2, текст3,...)
Приклади:
@concat('Замовлення від', contractor.company_name)
Результат: "Замовлення від ТОВ Рогу та Копита"@concat(contractor.company_name, '-', document.order_number)
Результат: "ТОВ Рогу та Копита - ЗК-001"@concat('Сума: ', document.total_amount, '€')
Результат: "Сума: 1500 €"
@field - Отримання значення поля
Синтаксис: @field('джерело.поле')
Приклади:
@field('contractor.phone')
Отримати телефон контрагента@field('document.manager_id')
Отримати ID менеджера документа
Практичні приклади для бізнесу
Управління статусами замовлень
VIP клієнти при великих замовленнях:
@if(document.total_amount >= 10000, 'VIP замовлення', 'Звичайне замовлення')
Термінові замовлення за коментарем:
@if(document.comments contains 'терміново', 'Терміновий', @if(document.comments contains 'асап', 'Терміновий', 'Звичайний')))
Автоматичні знижки
Знижка для постійних клієнтів:
@if(contractor.customer_type equals 'Постійний', @calc(document.price * 0.95), document.price)
5% знижка для постійних клієнтів
Знижка за велику партію:
@if(document.quantity > 100, @calc(document.total_amount * 0.9), document.total_amount)
Формування описів документів
Автоматичне створення опису:
@concat('Замовлення №', document.order_number, 'від', contractor.company_name, '-', document.total_amount, '€')
Контроль накладних
Контроль великих поставок:
@if(document.total_amount > 50000, 'Вимагає додаткового контролю', 'Стандартна обробка')
Вилучення даних із додаткових полів
Отримання коду товару з JSON:
@json(document.additional_data, 'product_code')
Отримання регіону з налаштувань:
@json(contractor.settings, 'region')
Складні приклади (вкладені формули)
Багаторівневі умови:
@if(contractor.customer_type equals 'VIP', @if(document.total_amount > 5000, 'VIP Преміум', 'VIP Стандарт'), 'Звичайний')
Створює різні рівні VIP в залежності від суми
Динамічне формування заголовків:
@concat(@if(document.doc_type equals 'order', 'Замовлення', 'Накладна'), '№', document.number, '(', contractor.company_name, ')')
Створює різні заголовки в залежності від типу документа
Складне ціноутворення з кількома умовами:
@if(contractor.customer_type equals 'VIP', @calc(document.price * 0.85), @if(document.quantity > 50, @calc(document.price * 0.9), document.price))
VIP отримує знижку 15%, оптові замовлення отримують знижку 10%
Часті помилки
| Неправильно ❌ | Правильно ✅ |
|---|---|
if(document.amount > 1000, 'VIP', 'Звичайний')Забули @ на початку | @if(document.amount > 1000, 'VIP', 'Звичайний') |
@concat(Замовлення від ', contractor.name)Неправильні лапки | @concat('Замовлення від', contractor.name) |
@if(document.amount > 1000, 'VIP', 'Звичайний'Незакриті дужки | @if(document.amount > 1000, 'VIP', 'Звичайний') |
Важливі зауваження:
- Переконайтеся, що поле існує у вашій системі
- Перевірте, чи всі дужки правильно закриті
- Використовуйте правильні лапки для тексту
Поради та рекомендації
- Починайте з простого: Почніть із базових формул і поступово додавайте складність
- Тестуйте формули: Завжди перевіряйте ваші формули на реальні дані
- Використовуйте зрозумілі назви полів: Робіть умови легкими для розуміння
- Комбінуйте функції: Використовуйте кілька функцій разом для створення потужних правил
- Документуйте формули: Додайте коментарі, які пояснюють складну логіку
- Зберігайте читання: Розбивайте складні формули на дрібніші частини, коли це можливо
Порада експерта: Цей інструмент допоможе автоматизувати багато бізнес-процесів і зробити вашу CRM систему розумнішою!
Висновок
Формули в тригерах – це потужний інструмент для автоматизації бізнес-процесів у програмі Elbuz. Вони дозволяють створювати гнучкі та інтелектуальні правила, які адаптуються до різних ситуацій та умов. Почніть із простих формул і поступово вивчайте більш складні можливості.

