Автоматизация работы с заказами

Вы можете передавать данные по заказам в eSputnik чтобы:

  • Пользоваться RFM-анализом вашей контактной базы.
  • Отправлять покупателям сообщения, связанные с заказами, и производить другие действия с контактами.

Создание автоматических триггерных писем, которые связаны с заказами (заказ получен, заказ отправлен, оставьте отзыв о покупке и т.д.) состоит из таких этапов:

 

Настройка передачи заказов по API

Для передачи заказов необходимо настроить вызов специального метода API /v1/orders. В запросе передаются один или несколько заказов (до 1000). Каждый заказ должен содержать некоторые обязательные поля. Остальные поля опциональные. Передавайте те поля, которые вы возможно захотите использовать в письмах. Конечно, чтобы подставлять в письма товары, в заказах надо передавать массив с данными по этим товарам. Формат запроса и описание всех полей доступны здесь.

Пример тела запроса:

{
    "orders": [{
        "externalOrderId": "100500",
        "externalCustomerId": "12345",
        "totalCost": 1000,
        "status": "INITIALIZED",
        "date": "2017-03-08T09:30:00+02:00",
        "email": "mail@example.com",
        "phone": "380942583691",
        "firstName": "John",
        "lastName": "Smith",
        "currency": "USD",
        "shipping": 10,
        "discount": 0,
        "deliveryMethod": "express",
        "paymentMethod": "cash",
        "deliveryAddress": "First str. 1",
        "items": [{
            "externalItemId": "200600",
            "name": "Super Device",
            "category": "devices",
            "quantity": 1,
            "cost": 990,
            "url": "http://example.com/item/200600",
            "imageUrl": "http://example.com/item/200600/image.png",
            "description": "High quality"
        }]
    }]
}
 
Обязательные поля выделены жирным. Массив с товарами items можно не передавать если в письмах данные по товарам вам не нужны либо вы передаете заказы только для RFM-анализа.
Успешный ответ на запрос вы будет сожержать статус 200.
 
Для заказов можно использовать несколько статусов. Например, для только что созданного заказа используйте статус INITIALIZED. Для заказа в процессе доставки IN_PROGRESS. Для оплаченого и доставленного заказа - DELIVERED. Для отмененных заказов - CANCELLED.
 
 Важно! Для формирования таблицы RFM используются только заказы в статусе DELIVERED.
 
Также есть статус для брошенных корзин ABANDONED_SHOPPING_CART. Использовать этот статус нужно если вы сами занимаетесь определением брошенных корзин. Если вы используете сервис Softcube, то настраивать API для брошенных корзин вообще не нужно.
 
Для обновления статуса или других данных заказа передавайте обновленный заказ с тем же externalOrderId. По этому параметру в системе определяется уникальность заказов.
 
Проверить попал ли заказ в систему и корректно ли переданы поля можно в личном кабинете в разделе Триггеры - Заказы. Щелкнув на ID заказа вы увидете все поля в формате JSON.
 

Создание сообщений с динамическим контентом

Для создания письма переходим в Сообщения → Сообщения и нажимаем Создать email

создаем письмо с динамическим контеном

Система предложит выбрать структуру письма. Для автоматических писем лучше всего подойдет Триггерное письмо. В нем минимальный набор блоков, поэтому не придется удалять много лишнего.

выбираем шаблон письма

Допустим мы хотим отправить уведомление о заказе в таком виде:

Здравствуйте, Иванов Сергей! Спасибо за ваш заказ
Ваш заказ будет отправлен перевозчиком по адресу: г. Днепр
Сумма оплаты: 15 000 грн

Список заказа:

Планшет Samsung
5000 грн

Планшет Lenovo
4000 грн

Планшет Acer
6000 грн

Данные о заказе 69022 отправлены вам на email@email.com и на телефон 097 111-11-11.
пример письма с динамическим контентом

Так будет выглядеть готовое письмо, которое вместо текста содержит название переменных. Например, вместо Иванов Сергей вы подставляете название переменных, которые содержат фамилию (lastName) и имя (firstName) в данных о заказе.

Важный момент! Если вы хотите в письме сообщить данные о товарах - используйте следующую конструкцию:

#foreach($item in $!data.get('items')) - это начало блока
#end - конец блока

В середине этого блока прописывайте переменные, которые содержат данные о товарах.

В нашем примере это $!item.get('name') (название товара) и $!item.get('cost') (стоимость товара).

Для удобства создания и тестирвоания письма в редакторе есть специальная функция, позволяющая подставить динамические данные и сразу, без отправки, увидеть результат.

Доступна она в редакторе по щелчку на кнопку с тремя точками, пункт Сформировать динамический контент.

тестирование письма


В открывшемся окне нажимаете Задать параметры

задаем параметры для тестирования

В открывшемся окне в текстовое поле надо вставить JSON-данные по заказу.

вставка и просмотр данных
 

Эти данные не надо набирать вручную Можно взять их из любого переданного в систему заказа. Для этого зайдите в Триггеры  Заказы.

переход на страницу с заказами

В таблице заказов щелкните на ID любого заказа.

список заказов

Откроется окно с данными по заказу. Используйте эти данные в окне в редакторе сообщений.

просмотр данных о заказе

После вставки данных по заказу в редакторе вы увидите как будет выглядеть ваше письмо с подставленными данными.

результат тестирования

Если вы ничего не отображается - значит в коде динамического контента допущена ошибка.

Для вывода карточек товаров в письмо вы можете использовать один из готовых товарных блоков в редакторе писем. Вам подойдут блоки с одним товаром на всю ширину письма. Например, вы хотите сделать такое письмо:
вариант оформления письма

Для этого в режиме выбора вставки блока нажимаете на вкладку Карточки товаров и выбираете нужный шаблон. В нашем примере используется Микро-блок с товаром и ценой.

вставляем товарный блок

В результате письмо приобретает следующий вид:

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

Для начала зададим цикл (копирование блока).
Кликаем мышкой на блок и нажимаем Показать HTML
задание динамических параметров в товарном блоке

В открывшимся окне прописываем в самом верху код начала цикла #foreach($!item in $!data.get('items'), а в самом низу код конца цикла #end.

задание границ для товарного блока

 Далее вместо названия товара и цены вставляем переменные. В нашем примере это $!item.get('name') (название товара) и $!item.get('cost') (стоимость товара)

В результате письмо примет следующий вид

вид письма после вставки динамических параметров


Осталось прописать переменные для URL страницы товара и URL картинки. Для этого опять выделяем мышкой наш блок и нажимаем Показать HTML.

меняем дефолтный url на динамический

В качестве ссылок на страницы товаров прописываем $!item.get('url'). В качестве ссылок на картинки $!item.get('imageUrl').

Теперь вы можете протестировать письмо и проверить корректность работы.

Сохраняете письмо и переходите к созданию сценария.

 Для SMS-сообщений используйте такой же код. Например, номер заказа можно подставить в сообщение такой переменной $!data.get('externalOrderId'), сумма заказа $!data.get('totalCost').

 

Создание сценариев

Каждый раз когда вы передаете заказ по API, в системе создается событие, которое может запускать сценарий. События создаются нескольких типов. Для каждого статуса заказа тип соыбтия будет свой, что позволяет вам настроить отдельные триггеры для каждого изменения статуса заказа. Названия событий состоят из слова order и дописанного к нему статуса заказа. То есть возможны такие события: orderINITIALIZED, orderIN_PROGRESS, odrerDELIVERED, orderCANCELLED и orderABANDONED_SHOPPING_CART. Создаваемые события вы можете увидеть в Истории событий:

В качестве ключей событий используются ваши идентификаторы заказов (те, которые вы передаете в параметре "externalOrderId"). События по заказам содержат такие параметры:

  • orderId - id заказа в базе eSputnik. Параметр нужен для работы сценария.
  • contactId - id контакта в eSputnik
  • EmailAddress - email-адрес покупателя (если передан в заказе)
  • SMS - номер телефона покупателя (если передан в заказе)

 Если в заказе не передан ни email ни номер телефона, то система не может связать покупателя с контактом, такому покупателю невозможно отправлять сообщения, поэтому события для таких заказов не создаются.

Для создания сценария выбираем Триггеры → Сценарии → Добавить сценарий

создание сценария

Указываете название сценария (Заказ доставлен, Заказ в процессе и т.д)

Сценарий будет выглядеть следующим образом:

создание структуры сценария
 

В сценарии нужны такие блоки:

  • блок Задача - Получить заказ. С помощью данного блока система вытянет все данные о заказе и передаст в письмо
  • блок Email (или SMS). Выбираете письмо (сообщение), которое вы предварительно создали для данного сценария (уведомление о заказе, оставьте отзыв и т.д)

Сохраняем сценарий.

Конечно, сценарий может быть более сложный. Можно вместо одного сообщения сделать серию. Письмо с отзывом обычно настраивают в сценарии для доставленного заказа. Перед отправкой письма ставится таймер на 1-2 недели.

Запуск сценария

После создания сценария необходимо его запустить. Для этого нажимаем Установите условие запуска, а после выбора условия кликаем на кнопку запуска сценария.

этап запуска сценария

В открывшемся окне выберите событие, которое запустит сценарий.


выбор условий запуска сценария

В итоге активный и работающий сценарий будет выглядеть следующим образом:

как выглядит активный сценарий