Подключение и использование внешнего источника данных PostgreSQL в eSputnik

Отслеживание событий и поведения

Email

Омниканальность

Автоматизация

Подключение и использование внешнего источника данных PostgreSQL

Частой является ситуация, когда контент для вставки в сообщения отделен от контактов, когда используется стороннее решение для анализа поведения клиента на сайте или в мобильном приложении. Примером могут служить персональные товарные рекомендации на основе offline-продаж или заказов по телефону.

Когда нужно редко или единоразово подготовить специфический контент, можно воспользоваться такими функциями, как подстановка данных при помощи препроцессора или использование в качестве источника данных Google-таблицы.

Если

  • сегментации по полям контакта недостаточно
  • необходимо наладить быстрый и бесшовный способ синхронизации контентной составляющей
  • необходимо добавить дополнительные сведения о контакте, позволяющие построить точный сегмент по специфическим условиям

то подключение внешней базы данных PostgreSQL будет отличными инструментом для решения ваших задач. 

Обатите внимание, что эта интеграция доступна после оплаты тарифа Advanced.

1. Конфигурация коннектора к внешней базе данных

Чтобы предоставить доступ к внешней базе данных, необходимо настроить коннектор, для этого перейдите в настройки своего аккаунта в раздел “Коннекторы” и выберите пункт Подключить PostgreSQL.

Конфигурация коннектора

Задайте название для коннектора и укажите авторизационные данные, для того чтобы наладить доступ из вашего аккаунта в eSputnik к внешней базе данных.

Заполнение данных

  1. Хост может содержать доменное имя удаленного сервера или же его IP-адрес.

  2. Порт.

  3. Название базы данных на удаленном сервере.

  4. Логин пользователя базы данных (достаточно роли только для чтения).

  5. Пароль.

На этом этапе можно проверить корректность авторизационных данных и выполнить тестовое подключение к удаленной базе данных, нажав кнопку “Проверить подключение” (6). При успешном подключении в правом верхнем углу раздела отобразится сервисное уведомление о том, что соединение установлено. В противном случае, если подключение не удалось, необходимо уточнить у вашего системного администратора корректность настроек или авторизационных данных.

Далее в пункте определения уникальности контакта нужно выбрать колонку таблицы, которая содержит уникальный ключ контакта (7), и сопоставить её с уникальным полем в аккаунте eSputnik (8).

Сопоставление строк

На примере данного изображение показано наличие в таблице колонки с email-адресами контактов и сопоставление с аналогичным полем в системе eSputnik.

При необходимости уникальность контакта может определяться не только по email-адресу, а также по номеру телефона, внутреннему идентификатору контакта или по дополнительному полю контакта.

Важный момент:

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

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

Новый коннектор

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

2. Конфигурация источника данных на базе коннектора

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

Для этого, перейдя в раздел “Источники данных” в настройках аккаунта eSputnik, подготовьте новый источник данных:

Добавление источника

В открывшемся окне выберите необходимый коннектор, созданный на предыдущем этапе:

Выбор коннектора

Новый источник данных

  1. Выбирается схема базы данных.

  2. Выбирается необходимая таблица с данными.

  3. Задается название источника данных.

После сохранения источника данных он отобразится в соответствующем разделе:

Источник данных

Следующий этап – это импорт контактов в аккаунт 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 позволяет решать широкий спектр маркетинговых задач: от простой подстановки промокода в триггерной рассылке для именинников или же средствами самой же системы управления баз данных строить сложные сегменты на основе большого количества данных, собранных из разрозненных источников в одном универсальном хранилище.

Остались вопросы?
Специалисты обязательно ответят и помогут решить вашу проблему!
Обратный звонок
Оставьте заявку – и наш специалист свяжется с вами в рабочее время.
Отправить заявку
Консультация в чате
Готовы к вашим вопросам!
Написать в чат
Электронная почта
Напишите в службу поддержки eSputnik.
Отправить email