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

Вы можете передавать данные по заказам в 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. Использовать этот статус нужно если вы сами занимаетесь определением брошенных корзин. Если вы используете функционал, то настраивать API для брошенных корзин вообще не нужно.
 
Для обновления статуса или других данных заказа передавайте обновленный заказ с тем же externalOrderId. По этому параметру в системе определяется уникальность заказов.
 
Проверить попал ли заказ в систему и корректно ли переданы поля можно в личном кабинете в разделе Триггеры - Заказы. Щелкнув на ID заказа вы увидете все поля в формате JSON.
 

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

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

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

Допустим, необходимо отправить уведомление клиенту о совершенном заказе, указать способ и место доставки, а также форму оплаты.


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

Шаблон письма для заказа

 

Затем при помощи velocity письмо нужно снабдить динамическим контентом.

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

Шаблон письма для заказа с динамическим контентом


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

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

Для этого нужно выделить структуру в которой будет размещен динамический контент открыть редактор кода и добавить код, как показано на ниже:
 

Добавление кода для вывода массива из заказа


В середине этого блока прописывайте переменные, которые содержат данные о товарах. В нашем примере это $!item.get('name') (название товара) и $!item.get('cost') (стоимость товара).

Для блока изображения в качестве ссылки на страницу товара прописываем  $!item.get('url'), для картинки $!item.get('imageUrl') и альтернативный текст $!item.get('name').

Переменная в качестве адреса изображения
 

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

Доступна она в редакторе по щелчку на кнопку просмотра сообщения, пункт Настройка динамического контента.
 

Подстановка json данных для предпросмотра


В открывшемся окне в текстовое поле надо вставить JSON-данные по заказу. И нажать “Просмотр сообщения”
 

JSON по заказу


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

Раздел заказов в eSputnik


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

Раздел заказов


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

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

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

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


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

Если все корректно, сохраняете письмо и переходите к созданию сценария.

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

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

 

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

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

 

История событий
 

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

  • ${eventKey} - ключ уникальности заказа содержит значение поля "externalOrderId";
  • ${orderId} - id заказа в базе eSputnik. Параметр нужен для работы сценария;
  • ${contactId} - id контакта в eSputnik;
  • ${EmailAddress} - email-адрес покупателя (если передан в заказе);
  • ${SMS} - номер телефона покупателя (если передан в заказе).

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

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

 

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

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

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

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


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

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

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

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

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

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

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


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

 

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


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

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