Произвольные триггеры позволяют отправлять автоматические сообщения в мессенджеры, по SMS или Email с привязкой к изменениям любых полей заказа сразу после изменения поля или через определенное время. При этом не обязательно привязываться к изменению статуса заказа.
Для каждого заказа произвольный триггер для мессенджеров может срабатывать только один раз. Сделано для защиты от переспама конечных покупателей.
Для настройки триггера необходимо создать его, указать условие для его срабатывания, ввести содержимое уведомления и выбрать задержку отправки сообщения.
При указании ссылки на сайт рекомендуем использовать переменную {{account.url}}. Другие переменные могут не использовать https в адресе сайта и браузер отобразит предупреждение о переходе на небезопасный сайт.
1. Перейдите в Диалоги → Шаблоны и нажмите кнопку "Добавить" в разделе "Произвольные триггеры".

2. Укажите название триггера. Оно может быть любым, например, в названии можно отразить, по каким условиям будет отправлен триггер.

1. С помощью шаблонизатора Liquid опишите, при каких условиях будет срабатывать триггер.
2. Для инициации триггера используйте метод {{ send_message }}.
Поддерживаются циклы, условия, группы переменных ORDER, CLIENT и ACCOUNT.

Примеры условий отправки
Может использоваться для отправки трек-номера заказа покупателю.
{% if change_set['Трек-номер Почта России'].appeared? %}
{{ send_message }}
{% endif %}В примере выше важно использовать метод "change_set". Если производить отправку просто по проверке заполненности поля, а не по его изменению, то можно случайно отправить покупателям много однотипных сообщений, пересохраняя или повторно редактируя заказ.
{% if change_set['реквизиты'].changed? %} {{ send_message }} {% endif %}Может использоваться для сбора обратной связи через какое-то время после выполнения заказа.
{% if order.fulfillment_status == 'delivered' and order.paid? %}
{{ send_message }}
{% endif %}Если возникают трудности с использованием шаблонизатора Liquid, то обратитесь в техническую поддержку за помощью по составлению условий отправки.
Укажите, через какой промежуток времени будет выполнена отправка триггерного сообщения.

Доступно два варианта:
Заполните шаблон содержимого отправляемого сообщения.

Описание полей аналогично полям при создании шаблонов по статусам заказов.
Если возникают трудности с использованием шаблонизатора Liquid, то можно обратиться в техническую поддержку за помощью по составлению условий отправки.
Условие отправки
{% if change_set['Трек-номер Почты России'].appeared? %}
{{ send_message }}
{% endif %}Задержка отправки
Сразу после выполнения условий
Шаблон уведомления
Трек-номер вашего заказа {{ order.all_fields['Трек-номер Почта России'].value }}
Отследить заказ: https://www.pochta.ru/tRACKING
Интернет-магазин {{ account.main_host }}Объяснение
В условии отправки проверяем изменение поля заказа с названием "Трек-номер Почты России". Если поле было изменено (change_set[].appeared?) и сохранено, то инициируется отправка триггерного сообщения {{ send_message }}.
Отправка выполняется без задержки сразу после ввода трек-номера в поле заказа.
В шаблоне уведомления указывается, что нужно подставить значение поля "Трек-номер Почты России" {{ order.all_fields['Трек-номер Почта России'].value }}, указывается ссылка на сайт для отслеживания отправления и подставляется домен интернет-магазина {{ account.main_host }}.
Условие отправки
{% if order.fulfillment_status == 'delivered' and order.paid? %}
{{ send_message }}
{% endif %}Задержка отправки
Через промежуток времени – 1 день
Шаблон уведомления
{{ order.client.name }}, добрый день!
Вчера вы получили заказ №{{ order.number }} из нашего интернет-магазина.
Будем благодарны за честный отзыв на Яндекс.Маркете: https://vk.cc/abc1Gb
После публикации отзыва мы зачислим на ваш телефон {{ order.client.phone }} 200 рублей.
Магазин {{ account.main_host }}Объяснение
В условии отправки указывается, что отправку сообщения нужно осуществлять, если статус заказа "Доставлен" и статус оплаты "Оплачен".
Отзыв целесообразно запрашивать через некоторое время после выполнения заказа, поэтому в качестве задержки отправки можно указать один день.
В шаблон уведомления подставляется имя покупателя из заказа {{ order.client.name }}, номер заказа {{ order.number }}, короткая ссылка на профиль магазина в Яндекс Маркете, номер телефона покупателя из заказа {{ order.client.phone }} и домен интернет-магазина {{ account.main_host }}.
Условие отправки
{% if order.fulfillment_status == 'delivered' and order.paid? %}
{{ send_message }}
{% endif %}Задержка отправки
Через промежуток времени – 14 дней
Шаблон уведомления
{{ order.client.name }}, добрый день!
2 недели назад вы оформляли заказ №{{ order.number }} в нашем интернет-магазине.
Мы ждем Вас снова и дарим промо-код на следующую покупку со скидкой 20%
Промо-код: *sale20*
Магазин {{ account.main_host }}Объяснение
В условии отправки указывается, что отправку сообщения нужно осуществлять, если статус заказа "Доставлен" и статус оплаты "Оплачен".
Скидку целесообразно предлагать через некоторое время после выполнения заказа, поэтому задержка отправки — 14 дней.
В шаблон уведомления подставляется имя покупателя из заказа {{ order.client.name }}, номер заказа {{ order.number }}, промокод (указан в "звездочках", чтобы текст в мессенджерах был жирным) и домен интернет-магазина {{ account.main_host }}.
Условие отправки
{% if order.payment_title == 'Банковской картой' and order.paid? == false %}
{{ send_message }}
{% endif %}Задержка отправки
Через промежуток времени – 30 минут
Шаблон уведомления
{{ order.client.name }}, добрый день!
Заказ №{{ order.number }} будет отправлен после оплаты.
Ссылка для оплаты {{ order.pay_url }}
Магазин {{ account.main_host }}Объяснение
В условии отправки указывается, что отправку сообщения нужно осуществлять, если название способа оплаты в заказе "Банковской картой" и статус оплаты "Не оплачен".
Задержка отправки устанавливается 30 минут, чтобы дать покупателю время на оплату заказа после оформления.
В шаблон уведомления подставляется имя покупателя из заказа {{ order.client.name }}, номер заказа {{ order.number }}, прямая ссылка на оплату {{ order.pay_url }} и домен интернет-магазина {{ account.main_host }}.
change_set показывает, что изменилось в заказе в момент постановки триггера.
Стандартная конструкция, в которой используется change_set:
{% if change_set["order.fulfillment_status"].changed? %}
{{ send_message }}
{% endif %}
где:
ORDER, CLIENT и ACCOUNT);Как использовать переменные
Переменные указываются в квадратных скобках перед проверкой.
Если переменной нет, то проверка не происходит, `changed?` будет содержать значение "false".
Проверки
Старое и новое значение переменной из `change_set` прочитать нельзя.