Триггеры и условия

Правило автоматизации: событие → условие → действие. Настраиваются в ЛК: Настройки → Интеграции → Триггеры. Срабатывают на заказы и клиентов из любого канала — личный кабинет, REST API, MCP.

Что такое триггер

Триггер привязан к сущности — Заказ или Клиент. Когда сущность создаётся или меняется, движок проверяет условие триггера и, если оно истинно, выполняет действие. Условие — это одно текстовое выражение (см. ниже). Если условие пустое — триггер срабатывает на любое создание и изменение.

Действия триггеров пишут изменения напрямую и не запускают другие триггеры повторно — рекурсии не будет. Единственное продолжение — явная цепочка «после другого триггера».

События (сущности)

СобытиеКогда срабатывает
ЗаказСоздание заказа и любое его изменение: смена статуса, оплата, состав, доставка, реквизиты, смена клиента.
КлиентСоздание клиента и изменение его карточки.
После триггераЦепочка — выполняется сразу после указанного триггера (см. ниже).

Создание или изменение различается в условии через переменную event (created / updated), а что именно изменилось — через changed.

Язык условий

Условие — одно логическое выражение. Только латиница в ключевых словах, полях и операторах.

Операторы сравнения
ОператорЗначение
=равно (числа — по значению, строки — без учёта регистра)
!=не равно
> < >= <=числовые сравнения
containsсодержит подстроку; для списков (телефоны, changed) — содержит элемент
Связки и группировка
Ключевое словоЗначение
and (или &&)оба условия истинны
or (или ||)хотя бы одно истинно
notотрицание следующего условия
( … )скобки для группировки; or слабее and
Значения

Число (5000), слово без пробелов (new) или строка в кавычках для значений с пробелами: "в пути", 'самовывоз'. Сравнение строк регистронезависимо.

amount >= 5000 and (status = new or method = site)
event = created or (changed contains status and status = done)
not status = cancelled and phones contains 7912

Переменные

Набор зависит от сущности. В цепочке доступны переменные родительской сущности.

Заказ
ПолеОписание
eventЧто произошло: created (создан) / updated (изменён)
changedЧто изменилось: status / payment / items / details / delivery / contact
statusСтатус (код)
status_prevПредыдущий статус (при смене)
amountСумма товаров
totalИтого с доставкой
paid_amountОплачено
shop_idМагазин (ID)
methodСпособ оформления
currencyВалюта
contact_idКлиент (ID)
Клиент
ПолеОписание
eventЧто произошло: created (создан) / updated (изменён)
changedЧто изменилось: status / payment / items / details / delivery / contact
first_nameИмя клиента
last_nameФамилия клиента
emailsE-mail (список)
phonesТелефоны (список)
external_idВнешний ID

Кастомные поля доступны как custom.<код> — например custom.vip = 1.

Поле changed

Список того, что изменилось в этом событии (для event = created — пустой). Проверяется через contains:

ЗначениеЧто произошло
statusсменился статус заказа (доступна переменная status_prev)
paymentдобавлена или удалена оплата
itemsизменился состав (позиции)
deliveryизменилась доставка
contactсменён клиент заказа
detailsпрочие реквизиты (для клиента — изменение карточки)

Действия

ДействиеОписание
Уведомление в ЛКУведомление в ЛК. Поддерживает подстановки из события: {number}, {id}, {amount}, {total}, {status}, {method}, {first_name}, {last_name}.
Email клиентуПисьмо клиенту на e-mail. Отправитель — из настроенных в «Настройки → Почта» (по умолчанию основной); тема и текст с теми же подстановками. Получатель — e-mail клиента из события или указанное поле-подстановка ({email}, {custom_код}). Best-effort: ошибки доставки не ломают триггер.
Назначить менеджераНазначить менеджера заказа: конкретного или по очереди (round-robin) из пула, заданного в Настройках. Опция «только если не назначен» не перетирает ручное назначение.
Сменить статус заказаСменить статус заказа.
Добавить оплатуДобавить оплату; пустая сумма закрывает остаток целиком.
Изменить заказИзменить поля заказа: method currency external_id shop_id custom.<код>.
Изменить клиентаИзменить поля клиента: first_name last_name middle_name external_id custom.<код>.
HTTP-запрос (вебхук)Отправить HTTP-запрос (вебхук) на заданный URL. Тело — свой JSON-шаблон с подстановками или, если пусто, весь объект целиком. Необязательная подпись HMAC-SHA256 в заголовке X-TavoCRM-Signature. Таймаут 5 с, ошибки доставки не ломают заказ.

Действие, выполненное триггером, попадает в «Историю изменений» заказа/клиента с владельцем «Триггер „название“».

Цепочки

Событие «После другого триггера» запускает правило сразу после выбранного — с уже обновлёнными данными. Защита от циклов: каждый триггер выполняется не более одного раза на исходное событие, плюс ограничение глубины. Так из простых правил собираются сценарии.

Примеры

Крупный новый заказ → уведомить

Событие: Заказ. Условие:

event = created and total >= 50000
Заказ оплачен полностью → перевести в «Собран»

Событие: Заказ. Условие (paid_amount догнал total при добавлении оплаты):

changed contains payment and paid_amount >= total
Перешёл в «Отменён» → освободить менеджера через изменение заказа
changed contains status and status = cancelled
VIP-клиент по сумме покупки → отметить

Событие: Заказ, действие «Изменить клиента», поле custom.segment = vip. Условие:

total >= 100000