Первые шаги
Пользовательские данные
- Обзор адаптивного email-редактора
- Создание оформления для письма
- Создание сквозных модулей
- Настройка адаптивности
- Настройка smart-контейнеров
- Оформление промовкладки для Gmail
- Добавление Ролловера
- Добавление анкорных ссылок
- Библиотека модулей
- Добавление таблицы в письмо
- Работа с блоком "Баннер"
- Добавление пользовательских шрифтов
- Создание кнопки CTA
- Работа с блоком "Картинка"
- Работа с блоком “Таймер"
- Использование ИИ в email-редакторе
- Поддержка мессенджер-протоколов почтовыми клиентами и платформами
Омниканальность
- SDK для мобильных приложений
- Управление ключами доступа к мобильному SDK
- Подключение мобильного приложения
- Создание и загрузка ключа Firebase
- Создание мобильных push-сообщений
- Настройка аналитики доставляемости и кликов
- Планирование мобильных push-уведомлений
- Типы диплинков
- Отправка тестовых сообщений из отладки запросов
- Настройка виджетов для сайта
- Геймификация виджетов
- Вызов виджета
- Настройка геоданных для правил вызова виджетов
- Сохранение данных из виджетов в поля контактов
- Защита от раздражения
- Действия после заполнения формы
- Замена системного сценария Double Opt-In
- Создание pop-up-форм с помощью Google Tag Manager или WordPress
- Отправка событий из форм подписки в Google Analytics
- A/B-тестирование виджетов
- Сбор контактных данных с помощью форм запросов
Автоматизация
- Настройка и редактирование сценариев
- Настройка условий запуска и остановки сценария
- Блок “Старт”
- Группа блоков “Популярные”
- Группа блоков “Сообщения”
- Использование блока сообщений "Одно из многих"
- Группа блоков “Контакт”
- Группа блоков "Условия"
- Группа блоков “Другое”
- Группа блоков “Сообщение на группу”
- Группа блоков “Время”
- Расширенные параметры блоков сценариев
- Разрешенное время отправки
- Вебхуки в сценариях
- Отслеживание истории запусков сценария
- Если сценарий не работает
- Двойное подтверждение подписки
- Приветственная серия
- Приветственная серия с сегментацией по категориям
- Запуск сценария после импорта контактов
- Регулярный сценарий для группы
- Поздравление с днем рождения
- Привязка сценария к кнопке
- Использование переменных из заказа в сценарии
- Сбор отзывов о заказе
- Реактивация клиентов и подписчиков
- Отправка рассылки непрочитавшим
- Настройка дополнительных рассылок
- Отправка напоминаний в заданное пользователем время
- А/B-тестирование в сценариях
Персонализация
- Подстановка промокода из файла
- Подстановка промокода с использованием API
- Принципы генерации промокодов с помощью PHP/JAVA
- Подстановка промокода с помощью персонализации
- Загрузка промокодов для использования в сценарии
- Генерация промокодов в сценарии
- Отправка промокода с помощью препроцессора
- HTTP-запрос для передачи промокода из сообщения в карточку контакта
Аналитика
- Отчёт по email-рассылке
- Отчет по SMS-рассылке
- Отчет по рассылке Web Push
- Отчет по Viber-рассылке
- Отчет по рассылке Mob Push
- Отчет по рассылке App Inbox
- Отчет по Telegram-рассылке
- Отчет по взаимодействию с In-App
- Отчет по взаимодействию с виджетами
- Отчет по триггерной рассылке
- Отчет по AMP-рассылке
- Отчет по мультиязычной рассылке
- Настройка передачи UTM-меток
- Визуализация дохода
- Отслеживание эффективности кампаний в Google Analytics 4
- Статистика сообщений
Мультиязычность
Отслеживание событий и поведения
- События для запуска триггерных рассылок
- Именование пользовательских событий
- Валидация параметров события
- Отслеживание активности на сайте при помощи Generate event
- Подстановка данных из событий в сообщения
- Разветвление сценария в зависимости от параметров события
- Отслеживание активности клиентов в мобильных приложениях
- Вебхуки для отслеживания активности
- Аналитика событий
Товарные рекомендации
API
Смена системы
Документы
Интеграция
Подключение PostgreSQL
Частой является ситуация, когда контент для вставки в сообщения отделен от контактов, когда используется стороннее решение для анализа поведения клиента на сайте или в мобильном приложении. Примером могут служить персональные товарные рекомендации на основе offline-продаж или заказов по телефону.
Когда нужно редко или единоразово подготовить специфический контент, можно воспользоваться такими функциями, как подстановка данных при помощи препроцессора или использование в качестве источника данных Google-таблицы.
Если
- сегментации по полям контакта недостаточно
- необходимо наладить быстрый и бесшовный способ синхронизации контентной составляющей
- необходимо добавить дополнительные сведения о контакте, позволяющие построить точный сегмент по специфическим условиям
то подключение внешней базы данных PostgreSQL будет отличными инструментом для решения ваших задач.
Обратите внимание, что эта интеграция доступна после оплаты тарифа Advanced.
1. Конфигурация коннектора к внешней базе данных
Чтобы предоставить доступ к внешней базе данных, необходимо настроить коннектор, для этого перейдите в настройки своего аккаунта в раздел “Коннекторы” и выберите пункт Подключить PostgreSQL.
Задайте название для коннектора и укажите данные авторизации, для того чтобы наладить доступ из вашего аккаунта в eSputnik к внешней базе данных.
-
Хост может содержать доменное имя удаленного сервера или же его IP-адрес.
-
Порт.
-
Название базы данных на удаленном сервере.
-
Логин пользователя базы данных (достаточно роли только для чтения).
-
Пароль.
На этом этапе можно проверить корректность авторизационных данных и выполнить тестовое подключение к удаленной базе данных, нажав кнопку “Проверить подключение” (6).
Примечание
При подключение к PostgreSQL рекомендуется использовать защищенное SSL-соединение для безопасной передачи данных.
Если вы не используете SSL-соединение, система предупредит об этом:
При успешном подключении в правом верхнем углу раздела отобразится сервисное уведомление о том, что соединение установлено. В противном случае, если подключение не удалось, необходимо уточнить у вашего системного администратора корректность настроек или авторизационных данных.
Далее в пункте определения уникальности контакта нужно выбрать колонку таблицы, которая содержит уникальный ключ контакта (7), и сопоставить её с уникальным полем в аккаунте eSputnik (8).
На примере данного изображение показано наличие в таблице колонки с email-адресами контактов и сопоставление с аналогичным полем в системе eSputnik.
Вы можете создать любой ключ уникальности контакта, который содержится в таблице и в eSputnik — внешнему ID, номеру телефона, дополнительному полю и т.д.
Важный момент:
в дальнейшем на основе настроек коннектора будут создаваться источники данных и ключ, по которому будет определяться уникальность контакта, будет унаследован всеми источниками. Поэтому желательно придерживаться единого ключа во всех таблицах.
Если все же необходимо использовать другой ключ, тогда можно создать еще один коннектор к той же базе данных, но с другими настройками определения уникальности контакта.
После заполнения настроек и теста подключения сохраните подготовленный коннектор. Созданный коннектор будет отображен в соответствующем разделе. При необходимости настройки в дальнейшем можно будет скорректировать.
2. Конфигурация источника данных на базе коннектора
Коннектор – это первичный этап настройки интеграции внешней базы данных. Так как в базе может быть несколько таблиц, нужно конкретизировать, к какой именно обращаться.
Для этого, перейдя в раздел “Источники данных” в настройках аккаунта eSputnik, подготовьте новый источник данных:
В открывшемся окне выберите необходимый коннектор, созданный на предыдущем этапе:
-
Выбирается схема базы данных.
-
Выбирается необходимая таблица с данными.
-
Задается название источника данных.
После сохранения источника данных он отобразится в соответствующем разделе:
Следующий этап – это импорт контактов в аккаунт eSputnik и наполнение данными внешнюю базу.
После этого в вашем аккаунте будет доступна возможность строить сегменты на основе значения полей во внешней базе данных при помощи построения условных групп:
Полученный сегмент можно использовать в промо- и триггерных рассылках.
Важный момент:
для сегментации доступны только те контакты, которые есть в вашем аккаунте eSputnik и во внешней базе данных. Импорт контактов из внешней базы в ваш аккаунт не происходит. Поэтому важно оперативно синхронизировать и актуализировать контакты перед совершением рассылок.
3. Подстановка в сообщение данных из внешнего источника
Чтобы в письме задать использование внешних данных, к ним необходимо обратиться при помощи Velocity конструкции вида $!data.get(‘название_источника’)... – так, в этом примере мы подготовили источник под названием promo_codes.
а. Для массовой рассылки (отправка группе)
Допустим, запланирована рассылка контакту kozak@example.com, тогда из таблицы
для контакта будет получен набор данных и помещен в объект data:
{
"data": {
"promo_codes": [
{
"id": "2",
"email": "kozak@example.com",
"name": "Dina Kozak",
"birthday": "2020-09-02T00:00:00Z",
"promo_code": "AAAA-BBBB-DDDD"
}
]
}
}
К полям массива promo_codes можно обратится двумя способами:
-
поэлементно
$!data.get('promo_codes').get(0).get('name')
$!data.get('promo_codes').get(0).get('promo_code')
Этот способ подходит, если вы точно знаете, количество элементов в массиве.
-
при помощи цикла
#foreach($pc in $!data.get('promo_codes'))
$!pc.get('name')
$!pc.get('promo_code')
#end
Этот способ более универсальный и подойдет в большинстве ситуаций.
б.Для триггерной рассылки
Для того чтобы использовать внешний источник данных в триггерных рассылках, необходимо подготовить условную группу, например, задать условие, что сегодня у контакта день рождения:
Детальнее следует рассмотреть принцип использования условной группы в триггерных рассылках. В момент срабатывания сценария для каждого контакта, который соответствует условию группы, системой генерируется событие. Название этого события формируется из статической части regularEventType- и идентификатора группы, для которой запускается сценарий, например regularEventType-170531841.
Событие содержит данные о контакте, идентификатор контакта в eSputnik (ContactId), имейл-адрес (EmailAddress), а также данные из внешней таблицы.
Содержимое каждого поля из таблицы преобразуется в вид ключ-значение и помещается в массив с числовым названием, соответствующим порядковому номеру источника внешних данных:
В свою очередь это массив сериализован и помещен в виде строки в поле jsonParam. Содержимое события может иметь приблизительно такой вид:
{
"params": [
{
"name": "ContactId",
"value": "623927159"
},
{
"name": "jsonParam",
"value": "{\"1043\":[{\"id\":,\"email\":\"kozak@example.com\",\"name\":\"Dina Kozak\",\"birthday\":\"2020-09-02T00:00:00Z\",\"promo_code\":\"AAAA-BBBB-DDDD\"}]}"
},
{
"name": "EmailAddress",
"value": "kozak@example.com"
}
]
}
Для обратного преобразования из сериализованной строки в набор объектов в сценарии у блока отправки в поле JSON укажите источник данных из события – ${jsonParam}:
Настроив и сохранив сценарий, остается задать условие запуска и желаемую частоту срабатывания:
Для вывода содержимого из события используется идентичный подход, как и для массовой рассылки, с небольшим отличием в наименовании массива. Так в письме будет доступен объект data, с содержимым вида
{
"data": {
"1043": [
{
"id": "2",
"email": "kozak@example.com",
"name": "Dina Kozak",
"birthday": "2020-09-02T00:00:00Z",
"promo_code": "AAAA-BBBB-DDDD"
}
]
}
}
К полям массива 1043 можно так же обратится двумя способами:
-
поэлементно
$!data.get('1043').get(0).get('name')
$!data.get('1043').get(0).get('promo_code')
-
или при помощи цикла
#foreach($pc in $!data.get('1043'))
$!pc.get('name')
$!pc.get('promo_code')
#end
Подключение внешней базы данных PostgreSQL позволяет решать широкий спектр маркетинговых задач: от простой подстановки промокода в триггерной рассылке для именинников или же средствами самой же системы управления баз данных строить сложные сегменты на основе большого количества данных, собранных из разрозненных источников в одном универсальном хранилище.
4. Настройка экспорта данных
Чтобы регулярно обновлять информацию об аудитории, заказах и результатах кампаний в PostgreSQL, настройте экспорт данных из eSputnik в таблицы. Например, вы можете экспортировать ответы на NPS-опрос, историю покупок, дату последнего клика в сообщении и т. д.
Доступные наборы данных для экспорта:
- broadcasts;
- contactActivities;
- contacts;
- events;
- messages;
- devices;
- orderItems;
- orders;
- revenue.
Список параметров данных для экспорта
Broadcasts
Параметр |
Тип данных | Описание |
---|---|---|
createdDate | timestamp |
Дата и время создания сообщения (формат: '2021-10-08 11:11:02') |
groupId | int |
ID групп, участвовавших в рассылке |
id | int |
ID рассылки |
mediaType | varchar (50) |
Медиатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget) |
messageId | int |
ID сообщения |
name |
varchar (1000) | Название рассылки |
startedDate |
timestamp |
Дата и время отправки рассылки (формат: '2021-10-08 11:11:02') |
status | varchar (50) |
Статусы рассылки:
|
updatedDate | timestamp | Дата и время обновления рассылки (формат: '2021-10-08 11:11:02') |
ContactActivities
Параметр |
Тип данных | Описание |
---|---|---|
activity (activityStatus)* |
varchar (100) | Статус активности:
|
workflowInstanceId | varchar (200) | Идентификатор отдельного запуска сценария. Используйте его для группировки рассылок в рамках запуска одного сценария. |
broadcastId | int | ID рассылки |
campaignType | varchar (50) |
Тип рассылки:
|
clickEventLink | varchar (1000) | Содержит ссылку, которую кликнул контакт (статус CLICKED) |
contactId | bigint | ID контакта в eSputnik (Внутренний) |
errorCode (statusDescription)* | varchar (1000) | Ошибка доставки SMTP и описание |
eventKey | varchar (100) | Ключ события |
eventTypeKey | varchar (100) | Ключ типа события |
externalCustomerId | varchar (100) | ID контакта в вашей системе (Внешний) |
mediaType | varchar (50) | Медиатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App, Telegram) |
messageInstanceId | int | Служебное поле |
messageLanguageCode | varchar (50) | Код языка сообщения |
messageName | varchar (100) | Название сообщения в аккаунте eSputnik |
messageId | int | ID сообщения |
messageTags | varchar (200) | Метки сообщения |
messageURL | varchar (1000) | Содержит ссылку на веб-версию email |
senderName | varchar (200) | Имя отправителя в Viber |
started (activityDateTime)* | timestamp | Дата и время отправки сообщения (формат: '2021-10-08 11:11:02') |
utmCampaign | varchar (400) | UTM-метка рассылки |
workflowId | int | ID сценария |
workflowBlockId | varchar (200) | ID блока сценария |
* Поле будет удалено как устаревшее; используйте поле, указанное в скобках.
Contacts
Параметр | Тип данных | Описание |
---|---|---|
contactId | bigint | ID контакта в eSputnik (Внутренний) |
contactSource | varchar (50) | Источник контакта:
|
createdDate | timestamp | Дата и время создания контакта (формат: '2021-10-08 11:11:02') |
varchar (50) | Email контакта | |
emailDomain | varchar (100) | Домен email |
emailStatus | varchar (50) | Статус email |
externalCustomerId | varchar (100) | ID контакта в вашей системе (Внешний) |
firstName | varchar (50) | Имя контакта |
languageCode | varchar (20) | Код языка сообщений |
lastClickedDate | timestamp | Дата и время последнего клика (формат: '2021-10-08 11:11:02') |
lastName | varchar (50) | Фамилия контакта |
lastReceivedDate | timestamp | Дата и время последней доставки (формат: '2021-10-08 11:11:02') |
lastSentDate | timestamp | Дата и время последней отправки (формат: '2021-10-08 11:11:02') |
lastViewedDate | timestamp | Дата и время последнего открытия (формат: '2021-10-08 11:11:02') |
sms | varchar (50) | Номер телефона |
totalClicked | int | Общее количество кликов |
totalReceived | int | Общее количество полученных сообщений |
totalSent | int | Общее количество отправленных сообщений |
totalViewed | int | Общее количество просмотренных сообщений |
Devices
Параметр | Тип данных | Описание |
---|---|---|
appVersion | varchar (50) | Версия приложения |
applicationId | int | ID приложения |
category | varchar (50) | Категория |
contactId | bigint | ID контакта |
deviceId | varchar (250) | ID устройства |
deviceModel | varchar (100) | Модель устройства |
externalCustomerId | varchar (100) | Внешний ID контакта |
languageCode | varchar (20) | Код языка |
osType | varchar (50) | Тип ОС |
osVersion | varchar (50) | Версия ОС |
pushToken | varchar (max) | Пуш-токен |
timeZone | varchar (100) | Часовой пояс |
Events
Параметр |
Тип данных | Описание |
---|---|---|
contactId | int |
ID контакта |
eventId | int |
ID события |
eventTypeKey | string |
Тип события |
keyValue | string |
Ключ события |
occured | timestamp |
Дата и время возникновения (формат: '2021-10-08 11:11:02') |
paramsJson |
json | 50 первых параметров и значений события (name/value); передается до 300 символов значений. |
Messages
Параметр | Тип данных |
Описание |
---|---|---|
annoyanceLevel | int | Уровень беспокойства сообщения |
language | varchar (50) | Язык основной версии сообщения |
mediaType | varchar (50) | Медиатип (SMS, Email, Web Push, Viber, Mobile Push, AppInbox, Widget, In-App) |
messageId |
int | ID сообщения |
name | varchar (200) | Название сообщения |
replyTo | varchar (200) | Адрес для ответов |
sender | varchar (200) | Отправитель |
subject | varchar (1000) | Тема |
tags | varchar (200) | Метки |
translations | varchar (200) | Языковые версии сообщения |
updateDate | timestamp | Дата и время обновления сообщения (формат: '2021-10-08 11:11:02') |
OrderItems
Параметр | Тип данных | Описание |
---|---|---|
cost | numeric | Стоимость продукта |
description | varchar (300) | Описание продукта |
externalProductId | varchar (100) | Внешний ID продукта |
imageUrl | varchar (200) | Ссылка на изображение продукта |
name | varchar (100) | Название продукта |
orderDate | timestamp | Дата создания заказа (формат: '2021-10-08 11:11:02') |
orderId | int | ID заказа в eSputnik (Внутренний) |
quantity | int | Количество продукта |
url | varchar (200) | URL-адрес продукта |
Orders
Параметр | Тип данных | Описание |
---|---|---|
contactId | bigint | ID контакта в eSputnik (Внутренний) |
deliveryAddress | varchar (100) | Адрес доставки |
deliveryMethod | varchar (50) | Способ доставки |
discount | numeric | Скидка |
varchar (50) | ||
externalOrderId | varchar (100) | Внешний ID заказа |
firstName | varchar (50) | Имя контакта |
lastName | varchar (50) | Фамилия контакта |
orderCreatedDate | timestamp | Дата создания заказа в eSputnik (формат: '2021-10-08 11:11:02') |
orderDate | timestamp | Дата создания заказа (формат: '2021-10-08 11:11:02') |
orderId | int | ID заказа в eSputnik (Внутренний) |
paymentMethod | varchar (50) | Способ оплаты |
phone | varchar (50) | Номер телефона |
status | varchar (50) | Статус заказа:
|
totalCost | numeric | Общая стоимость заказа |
Revenue
Параметр | Тип данных | Описание |
---|---|---|
activity (activityStatus)* | varchar (100) | Статус активности:
|
campaignType | varchar (50) | Тип рассылки:
|
clickEventLink | varchar (1000) | Содержит ссылку, которую кликнул контакт (статус CLICKED) |
contactId | bigint | ID контакта в eSputnik (Внутренний) |
currency | varchar (3) | Валюта |
externalCustomerId | varchar (100) | ID контакта в вашей системе (Внешний) |
externalOrderId | varchar (200) | ID заказа внешний |
mediaType | varchar (50) | Медиатип сообщения (SMS, Email, Web Push, Viber, Mobile Push, AppInbox) |
messageInstanceId | int | Служебное поле |
messageName | varchar (100) | Название сообщения в аккаунте eSputnik |
messageTags | varchar (200) | Метки сообщения |
messageUrl | varchar (1000) | Содержит ссылку на веб-версию email |
orderDate | timestamp | Дата создания заказа (формат: '2021-10-08 11:11:02') |
senderName | varchar (200) | Имя отправителя в Viber |
started (activityDateTime)* | timestamp | Дата и время отправки сообщения (формат: '2021-10-08 11:11:02') |
totalCost | numeric | Общая стоимость заказа |
utmCampaign | varchar (400) | UTM-метка рассылки |
* Поле будет удалено как устаревшее; используйте поле, указанное в скобках
Примечание
Существующие записи в таблице Revenue (для заказов, сделанных после 08.03.2024) можно обновлять вместе с выгрузкой новых заказов. Обновление может понадобиться, например, если изменилась общая стоимость заказа.
Эта информация будет передана в PostgreSQL и обновит данные в таблицах.
Важно
Вам не нужно предварительно создавать таблицы PostgreSQL. Они будут сгенерированы автоматически при первом экспорте, и с этого момента все поступающие данные будут обновляться. Все названия таблиц будут соответствовать наборам данных (contact activities, contacts, order items, orders, revenue)
Настройка PostgreSQL-коннектора для экспорта данных
1. Перейдите в «Настройки» → «Экспорт данных» и нажмите «Новый экспорт данных». Выберите один из созданных PostgreSQL-коннекторов.
2. Выберите интервал загрузки и установите флажки для наборов данных, которые вы хотите загрузить. Тип набора данных по умолчанию public, вы можете выбрать другой тип, если указали его в настройках PostgreSQL.
Нажмите "Сохранить".
Соединение отобразится в разделе «Экспорт данных», здесь вы можете отредактировать его настройки.