Автоматизируемся. Живые примеры транзакционных триггеров retailCRM
Сегодня поговорим о самых популярных среди владельцев ИМ триггерах — транзакционных.
Что такое транзакционный триггер?
Многие из пользователей retailCRM знакомы с этим понятием. Но если Вы слышите такую формулировку впервые, то расскажу специально для Вас :)
Если Вы знаете, в CRM-системе retailCRM есть такой инструмент автоматизации, как триггер. По сути, это небольшой кусок кода внутри системы, позволяющий, например, задать автоматическую постановку задачи на менеджера по какому-нибудь событию (к примеру, товар поступает в наличие — перед глазами менеджера сразу же всплывает задача перезвонить клиенту, который интересовался этим товаром).
Или отправить письмо (SMS) клиенту о том, что его заказ был доставлен. При этом триггер самостоятельно будет реагировать на любое событие в системе (смена статуса, изменение информации о заказе, клиент зашёл на сайт и т.д.) и активировать настроенное Вами действие по этому событию.
Триггеры, которые реагируют на смену статуса заказа и уведомляют об этом Вашего клиента, называются «транзакционные».
Ниже приведу примеры самых популярных транзакционных триггеров, которые настраивают пользователи retailCRM. Можете брать их на вооружение
Уведомление о том, что заказ принят.
Кроме странички на сайте «Спасибо за заказ», полезно отправлять клиенту письмо о том, что его заказ принят. Заодно можно предложить сопутку или релевантные товары.
Как настроить?
Заходите в триггеры, и прописываете код, настраиваете действие и шаблон письма. Всё просто :)
Пример триггера:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getOldValue('status') == null and changeSet.getNewValue('status').getGroupCode() == 'new' and (not (order.getCustomerComment() matches "/(C11)|(drop1)|(MPB)|(PN)|(OPN)/") or order.getCustomerComment() == null)
В условии пишем:
(date('now') < date("today [время закрытия Вашего магазина]") and date('now') > date("today [время, после которого можно принимать заказы]")) and order.getOrderMethod() != null and order.getOrderMethod().getCode() in ["способ оформления заказа"]
Пример шаблона письма к нему:
Здравствуйте, ! Ваш заказ № принят и поступил в обработку. Товар: {% for op in order.availableOrderProducts %} — шт. {% endfor %} Наш менеджер свяжется с Вами в ближайшее время для уточнения деталей. Если у Вас появились дополнительные комментарии к заказу или Вы не указали какие-то данные, пришлите их ответом на данное сообщение. Просим Вас не создавать отдельное письмо — оно будет считаться новым обращением и попадет в конец очереди. </p> {% if order.site.code == 'MPB' %} <p> — С уважением, </p> {% endif %}
Пример шаблона SMS:
Уважаемый(ая) , Ваш заказ № принят. Наши менеджеры свяжутся с Вами в течение некоторого времени. Сайт — . [— здесь указывается ссылка на сайт с которого был сделан заказ.]
Новый заказ в нерабочее время:
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getOldValue('status') == null and changeSet.getNewValue('status').getGroupCode() == 'new' and (not (order.getCustomerComment() matches «/(C11)|(drop1)|(MPB)|(PN)|(OPN)/») or order.getCustomerComment() == null)
В условии:
(date('now') <= date('today [время, после которого можно принимать заказы]') or date('now') >= date('today [время закрытия Вашего магазина]')) and order.getOrderMethod() != null and order.getOrderMethod().getCode() in ["способ оформления заказа"]
Шаблоны писем и SMS
Письмо:
Здравствуйте, ! Ваш заказ № принят и поступил в обработку. Товар: {% for op in order.availableOrderProducts %} — шт. {% endfor %} К сожалению, наш рабочий день уже закончился. Наш менеджер обязательно свяжется с Вами завтра! Мы работаем с _ по _ по московскому времени. Если у Вас появились дополнительные комментарии к заказу или Вы не указали какие-то данные, пришлите их ответом на данное сообщение. Просим Вас не создавать отдельное письмо — оно будет считаться новым обращением и попадет в конец очереди. </p> {% if order.site.code == 'MPB' %} <p> — С уважением, </p> {% endif %}
SMS:
Уважаемый(ая) , Ваш заказ № принят. К сожалению, рабочий день уже закончился, мы обязательно свяжемся с Вами завтра! Сайт — . [здесь указывается ссылка на сайт с которого был сделан заказ].
Согласовано с клиентом
Триггер:
В фильтре:
changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == 'send-to-assembling'
Письма и SMS:
Письмо:
Уважаемый(ая) , Ваш заказ № подтверждён. Заявка поступила в обработку на склад. Товар: {% for op in order.availableOrderProducts %} — шт. {% endfor %} Товар будет отправлен в ближайшее время. Скоро мы вышлем Вам трек-номер для отслеживания посылки. Данное письмо сформировано автоматически и не требует ответа. </p> {% if order.site.code == 'MPB' %} — С уважением, {% endif %}
SMS:
Уважаемый(ая) , Ваш заказ № подтверждён. Заявка поступила в обработку на склад.Скоро мы вышлем Вам трек-номер для отслеживания посылки. Сайт — .[здесь указывается ссылка на сайт с которого был сделан заказ].
Оплата поступила
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == 'prepayed'
Письма и SMS:
Шаблон письма:
Уважаемый(ая) , Ваш заказ № успешно оплачен. Заявка поступила в обработку на склад. </p> {% if order.site.code == 'MPB' %} <p> — С уважением, подпись </p> {% endif %}
Шаблон SMS:
Уважаемый(ая) , Ваш заказ № успешно оплачен. Заявка поступила в обработку на склад. Сайт — .[здесь указывается ссылка на сайт с которого был сделан заказ].
Передан в доставку
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getNewValue('status') and changeSet.getNewValue('status').getCode() == 'send-to-delivery'
Шаблон письма и SMS:
Письмо:
Уважаемый(ая) , Ваш заказ № отправлен. Трек номер . Отследить заказ вы можете на сайте {% if order.deliveryType != null and order.deliveryType.code == 'russian-post' %} <a href="<a href=" https:="" <a="">www.pochta.ru</a>="" tracking#"=""><a href="https://www.pochta.ru/tracking#">https://www.pochta.ru/tracking#</a>">Почта России {% elseif order.deliveryType != null and order.deliveryType.code in ['sdek-to-door', 'sdek-to-point'] %} <a href="<a href=" <a=""></a><a href="<a href=" <a="" http:="" www.edostavka.ru="" track.htm"="">http://www.edostavka.ru/track.htm</a>">http://www.edostavka.ru/track.htm">http://www.edostavka.ru/track.htm">http://www.edostavka.ru/track.htm"><a href="http://www.edostavka.ru/track.htm">http://www.edostavka.ru/track.htm</a>">СДЭК {% elseif order.deliveryType != null and order.deliveryType.code == 'international' %} <a href="http://www.edostavka.ru/track.htm">Международная доставка</a> {% endif %} — С уважением, подпись {% endif %}
SMS:
Уважаемый(ая) , Ваш заказ отправлен (Название логистической компании, например EMS, Почта России,CDEK, или курьер)! Трек-номер отправления . Мы надеемся, что вы останетесь довольны! С уважением,
Заказ передан курьеру
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == '[статус, при котором заказ передаётся курьеру]'
Шаблон письма и SMS:
Письмо:
Здравствуйте, ! Ваш заказ № передан курьеру. Товар: {% for op in order.availableOrderProducts %} — шт. {% endfor %} Курьер свяжется с Вами в ближайшее время для уточнения деталей. </p> {% else %} <p> — С уважением, подпись </p> {% endif %}
SMS:
Уважаемый(ая) , Ваш заказ отправлен Способ доставки: курьером. : Заказ доставит Илья. Дата доставки: {{ order.deliveryDate|date('d.m.Y H:i:s') }}. Сумма: . Телефон курьера:[здесь телефон курьера]
Посылка прибыла в пункт выдачи
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == '[статус заказа при прибытии в ПВЗ]'
Письма и SMS:
Письмо:
Уважаемый(ая) , Ваш заказ № на сумму доставлен. Посылка ожидает в почтовом отделении по Вашему адресу. </p> — С уважением, подпись {% endif %}
SMS:
, Ваша посылка прибыла! Спешите забрать! Номер посылки Вы можете забрать посылку с паспортом на почте не дожидаясь извещения. Спасибо за заказ!
Заказ ожидает в пункте самовывоза
Триггер:
В фильтре пишем:
changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == '[статус заказа при прибытии в ПВЗ]'
Письма и SMS:
Письмо:
Уважаемый(ая) , Ваш заказ № на сумму доставлен и ожидает в пункте самовывоза по адресу {{ order.getIntegrationDeliveryData().getPickuppointAddress() }}. </p> — С уважением, подпись {% endif %}
SMS:
Здравствуйте :) Пожалуйста, заберите Заказ от в Вашем почтовом отделении ([postoff]). Номер посылки: . Сумма: руб.
Я привёл примеры самых популярных транзакционных триггеров. Надеюсь, статья оказалась для Вас полезной :)
Возникнут вопросы — напишите мне hello@retailcrmguru.ru