Upload
retailcrm
View
958
Download
56
Embed Size (px)
Citation preview
Наработанные решенияпо росту продажот retailCRM
Трансляция и видеозапись доступны на www.youtube.com/retailcrm
Спикер:
Москалик ДмитрийРуководитель отдела маркетинга retailCRM
>50% в росте продаж дают триггеры retailCRM
Основная причина — их нужно настроить только один раз, дальше они работают сами.Важно понимать, что у триггеров в retailCRM есть как плюсы, так и минусы:
Плюсы: Минусы:
В настройках триггеров можно учитывать данные по истории заказа, данные из GA, данные из Daemon Collector.
Отправленные SMS и email легко проследить по истории коммуникаций.
Довольно много различных программных методов, с помощью которых можно сделать “триггер своей мечты”
Визуально интерфейс настройки триггеров не очень дружелюбен к пользователю (пока что)
Нет визуального редактора для создания писем.
Персонализированные popup-окна
СТАНДАРТНОЕ POPUP-ОКНО ПЕРСОНАЛИЗИРОВАННОЕ POPUP-ОКНО
Лучшие акции нашегомагазина!
ОК
Евгений, рады вас видеть! Помним вашу прошлую покупку,
готовы помочь с выбором!
ОК
Примеры применения персонализированных popup-окон
1 . Приветствуемпостоянных клиентов
2 . Конвертируем подпис-чиков в покупателей
3 . Показываем статусы доставки тем, кто недавно сделал заказ
Рады видеть вас снова, Евгений! Ваша 5% скидка все еще действует. Если нужна что-то подсказать,
звоните, поможем!
ОК
Рады видеть вас снова, Евгений! Напоминаем,
что у на первую покупку в магазине действует
10% скидка!
ОК
Рады видеть вас снова, Евгений! Ваш недавний заказ №71345 прибыл в пункт выдачи по адресу
г. Новосибирск, ул. Победы, д.35 к.3
ОК
Как это настраивается
1. Активируем Daemon Collector для нужного магазина в панели администрирования
ОК
1 2 3
Как это настраивается
2. Подключаем код коллектора на сайт (перед тегом </head>), подставив в него API-ключ из настроек. Если на сайте есть механизм авторизации пользователя — прописываем, что должно передаваться в customerID.
<script type="text/javascript"> (function(_,r,e,t,a,i,l){_['retailCRMObject']=a;_[a]=_[a]||function(){(_[a].q=_[a].q||[]).push(arguments)};_[a].l=1*new Date();l=r.getElementsByTagName(e)[0];i=r.createElement(e);i.async=!0;i.src=t;l.parentNode.insertBefore(i,l)})(window,document,'script','https://collector.retailcrm.pro/w.js','_rc');
_rc('create', 'ключ-сайта', { 'customerId': 'ID-клиента-на-сайте' });
_rc('send', 'pageView');</script>
1 2 3
Как это настраивается
3. Со стороны CMS в форму подставляются любые персонализированные данные про пользователя (CMS получает все данные из retailCRM в процессе двухсторонней синхронизации.
$api = new \RetailCrm\ApiClient(CRM_URL,CRM_KEY);$response = $api->customersGet($customerId,'id');
if($response['success']) { $customer = $response[‘customer’];}
Ш А Г 11 2 3
ОК
Схема работы
Зашел на сайт в
первый раз
ПрошлоN времени
Сновапришелна сайт
Не покупает Приходитзаманчивое
предложение
ПокупаетКупил
Как это настраивается
ОК1. Ставим на сайт Daemon Collector2. Далее настраивается триггер с условиями а) не чаще раза в месяц для клиента б) дата последнего заказа — более месяца назад
1 2 3
Как это настраивается
3. По факту срабатывания отправляем письмо с выводом ТОП-3 товаров. В шаблон письма подтягиваем нужные товары через twig-шаблоны. Будет выглядеть так:
Моментальная акция от site.ru!ТОП-3 товара нашего магазина — со скидкой в 15%! Акция длится до конца сегодняшнего дня!{% set products = most_long_viewed_products (сount=3, customer = customer, from="1 day ago"|date('Y-m-d')) %}{% for item in products %} <h2>{{item.name}}</h2> <p>{{item.description}}</p><p><s>{{item.price}}</s></p><p>{{item.price*0.85}}</p><a href="{{item.url}}">Купить</a>{% endfor %}
1 2 3
Как это настраивается
ОК4. Уведомляем менеджера о том, что нужно обратить внимание напостоянного клиента
1 2 3
Как это настраивается
1. Настраиваем нужные нам сегменты (посетил — не купил) на те товары, которые нам интересны:
ОК
1 2 3
Как это настраивается
2. Настраиваем триггер, который будет отправлять соответствующее письмо. Обязательно проверяем, чтобы товара не было в последней покупке пользователя.
Вариант для 1 товара:
Вариант для нескольких товарных групп:
ОК
not order_contains(customer.getLastOrder(), entities_by_ids("Product", [12]))
not order_contains(customer.getLastOrder(), entities_by_ids("ProductGroup", [1, 12, 13], "id"))
1 2 3
Как это настраивается
3. Настраиваете письмо со скидкой на этот товар. В начале письма получим в переменную товар:
А далее вставляем в верстку различные свойства товара.ОК
{% set item = entity_by_id("Product", 12) %}
<h1>{{ item.name }}</h1><p>{{item.description}}</p><p><s>{{item.price}}</s></p><p>{{item.price*0.85}}</p>
1 2 3
Приближается День Рождения
клиента или другой праздник
Получает рассылку с персональными
скидками
Совершает покупку
Схема работы
ОК
Как это выглядит для клиента
Клиенту приходит письмо с персональной ограниченной по времени скидкой в честь Дня Рождения и с предложением некоторых товаров.
Как это настраивается
1. Вводим поле, в которое записывают дату менеджеры во время общения с клиен-тами (при желании, таких дат может быть несколько):
ОК
1 2 3 4 5 6
Как это настраивается
Настраиваем триггер на сегмент по МСК и сегмент по регионам (первое письмо) (отличие только в символьном коде сегментов):
После этого — настройка самого письма. Там можно показывать что угодно. Вот пример кода для демонстрации самых покупаемых товаров из тех разделов, которые уже покупал клиент:
changeSet.hasChangedField('segments') and changeSet.getNewValue('segments').getCode() == 'birthday-reg'
{% set customer_product_groups = {} %}{% set customer_products = best_selling_products(customer = customer) %}{% for product in customer_products %} {% set customer_product_groups = customer_product_groups|merge(product.groups) %}{% endfor %}{% set products = best_selling_products(groups = customer_product_groups) %}
1 2 3 4 5 6
Как это настраивается
Добавляем немного кода в фильтр триггера, чтобы не слать письмо тем, кто отреагировал на первые письма и совершил заказ.
Вот такой код для МСК:
Вот такой код для регионов:
customer.getLastOrder().getCreatedAt() < date (‘3 days ago”)
customer.getLastOrder().getCreatedAt() < date (‘7 days ago”)
1 2 3 4 5 6
ОК
Схема работы
ОККлиентзашелна сайт
Ему перезвани-вает менеждер
Заказподтверждается
Приходитписьмо
со спецпред-ложениями
Клиент звонит в магазин
Увеличение чека покупки
ОК
Как это выглядит для клиента
После совершения покупки клиенту приходит письмо с ограниченой по времени (на час) скидкой и предложением ТОП-6 товаров
Как это настраивается
Настраиваем триггер на перевод статуса заказа “Принят”. Обязательно ставим “защиту от спама”.
1 2
Как это настраивается
Показываем самые просматриваемые клиентом товары, которые клиент не купил, выводим их в шаблоне письма. Обязательно исключаем те товары, которые уже лежат в корзине.
При желании можно заморочиться и сделать предложение по маржинальным для магазина товарам, но тут одной строчкой кода не обойтись :)
Можно вручную прописать рекомендацию к каждому конкретному товару. Вот пример рекомендации, если совершена покупка товара из категории под номером 398
{% set products = most_visited_products(count=5, customer = order.customer, exclude=availableOrderProductsIds ) %}
{% if order|contains([entity_by_id('ProductGroup', 398)]) %}{% set products = entities_by_ids('Product',[678,1065,1894],'externalId') %}
1 2
ОК
Схема работы
ОК
E-mail SMS
Успешнаяпокупка
Доставкав отделение
E-mail оповещение
SMSоповещение
Менеджер связываетсяс клиентом
Подтвержде-ние выкупа
товара
ОК
Как это выглядит для клиента
Когда товар приходт в пункты выдачи, клиенту приходит письмо-уведомление с деталями платежа и выдачи
Как это настраивается
Сначала делаем “пустой” триггер (т.е. ничего не прописываем в действиях триггера), который ничего не делает для клиента, но который фиксируется в системе на факт доставки товара до пункта самовывоза.
Все последующие действия будут отталкиваться от такого “старт-триггера”.
1 2 3
Как это настраивается
В зависимости от того, работаем исходящим звонком, SMS или email, выбираем нужное действие:
1 2 3
Как это настраивается
Для варианта с SMS и email обязательно подставляем адрес отделения, где можно забрать посылку:
Обратите внимание - не каждая служба доставки отдает адрес пункта самовывоза по API. Подробнее — тут:
{{ order.deliveryAddress.fullAddressString }}
1 2 3
www.retailcrm.ru/docs/twig_entities_ru.html#Intaro\CRMBundle\Entity\Order
ОК
Схема работы
ОК
ОК
молоко
Успешнаяпокупка
Письмо с предложением
покупки ткого же товара
Товар заканчивается
у клиента
Товар используется клиентом
ОК
Как это выглядит для клиента
Приходит письмо с напоминанием о том, что приобретенный товар скоро закончится и с предложением купить ещё.
Также в письме клиенту напоминают о его возможных скидках и предлагают товары.
Как это настраивается
Выделите товары в вашем магазине, которые имеют определенный промежуток потребления и проведите анализ — как часто эти товары берут постоянные покупатели. Например:
— Детское питание — 3 недели. — Детские гигиенические средства — 2 месяца — Детская одежда — 6 месяцев.
Создайте один старт-триггер (без конкретного действия, активируется по факту создания нового заказа) и несколько триггеров (под каждую из групп) с событием “После срабатывания триггера для заказа”
1 2 3
Как это настраивается
Пропишите время срабатывания для каждого триггера с событием строку в фильтре:1 общий триггер, от которого отталкиваются все отложенные:
Условия для отложенных триггеров будут отличатся только ID товарной группы и временем с последнего заказа в зависимости от времени запуска триггера.
order_contains(order, entities_by_ids("ProductGroup", [12, 13, 14])) //где 12, 13, 14 — id всех товарных групп, при покупке которых нужно вызывать триггер.
order_contains(order, entities_by_ids("ProductGroup", [13])) and order.getCustomer.getLastOrder().getCreatedAt() < date (‘2 months ago”)
1 2 3
Как это настраивается
Выводите в письме те товары, которые пользователь брал в прошлый раз + их аналогиКод для товаров из последнего заказа:
Код для выведения товаров-аналогов по последней покупке:
Ш А Г 2
{% for item in order.availableOrderProducts %} {{ item.offer.name }}{% endfor %}
{% for item in order|analogs(3) %} {{ item.name }}{% endfor %}
1 2 3
Специализированная CRM-система для интернет-торговли
www.retailcrm.ru • [email protected] • +7 (495) 268-06-49
Москалик ДмитрийРуководитель отделамаркетинга retailCRM
Спасибо за внимание!