Підключення PostgreSQL | Support eSputnik

Дані користувача

Email

Омніканальність

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

Відстеження подій та поведінки

Підключення PostgreSQL

Підключення до PostgreSQL допоможе вирішити такі завдання:

  • імпорт даних у додаткові поля для сегментації;
  • налаштування безшовної синхронізації контенту;
  • експорт даних щодо результатів розсилки, поведінки у віджетах або контактної інформації з eSputnik.

Важливо

Інтеграція з PostgreSQL входить у платні тарифи

Крок 1. Налаштування конектора

1. Перейдіть на вкладку “Конектори” в налаштуваннях вашого акаунту і виберіть “Підключити PostgreSQL”.

Підключити PostgreSQL

2. Заповніть такі поля:

  • Назва.
  • Хост (може містити доменне ім'я віддаленого сервера або його IP-адресу).
  • Порт (за замовчуванням вводиться автоматично).
  • База даних (її назва на віддаленому сервері).
  • Ім'я користувача (логін користувача бази даних; достатньо ролі лише для читання).
  • Пароль.

Основні параметри

Натисніть кнопку “Перевірити підключення”, щоб перевірити коректність авторизаційних даних та виконати тестове підключення до віддаленої бази даних.

Примітка

При підключенні до PostgreSQL рекомендується використовувати захищене SSL з'єднання для безпечної передачі даних.

Якщо ви не використовуєте SSL з'єднання, система попередить про це:

З'єднання не захищене SSL

При успішному підключенні у верхньому правому куті розділу з'явиться сервісне повідомлення про те, що з'єднання встановлено. В іншому випадку, якщо підключення не вдалося, необхідно уточнити у вашого системного адміністратора коректність налаштувань або авторизаційних даних.

3. Для визначення унікальності контакту вкажіть колонку таблиці, що містить унікальний ключ контакту, та унікальне поле контакту в eSputnik. Вони повинні співпадати.

Визначення унікальності контакта

Так, якщо ви вибрали email, після підключення стовпець таблиці PostgreSQL з електронними адресами буде зіставлено з відповідним полем у eSputnik.

Ви можете задати будь-який ключ унікальності контакту, що міститься у таблиці та в eSputnik — зовнішній ID, номер телефону, додаткове поле тощо.

Важливо

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

4. Натисніть кнопку “Зберегти”.

Крок 2. Налаштування джерела даних

Ваша зовнішня база даних може містити кілька таблиць, і вам потрібно вибрати, до якої з них ви хочете підключитися.

1. Перейдіть у налаштування вашого профілю > вкладка “Джерела даних”, натисніть кнопку “Нове джерело” і оберіть “Зовнішні джерела даних”.

Налаштування джерела даних

2. Виберіть створений конектор.

Виберіть конектор

3. Виберіть dataset, таблицю і введіть назву джерела. Натисніть кнопку “Зберегти”.

Основні параметри

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

Створення умовної групи

Важливо

Для сегментації доступні лише ті контакти, які є у вашому обліковому записі eSputnik та у зовнішній базі даних. Імпорт контактів із зовнішньої бази до вашого облікового запису не відбувається. Тому важливо оперативно синхронізувати та актуалізувати контакти перед здійсненням розсилок.

Крок 3. Підстановка повідомлення даних із зовнішнього джерела

Щоб використовувати зовнішні дані у повідомленні, до них необхідно звернутися за допомогою velocity-конструкції $!data.get('назва_джерела')... – так, у цьому прикладі ми підготували джерело під назвою promo_codes.

Масова розсилка на групу

Наприклад, ви плануєте кампанію на адресу kozak@example.com.

Набір даних буде витягнуто з таблиці та вставлено в об’єкт:

{
  "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"
    }
  ]
}

Щоб десеріалізувати рядок у набір об’єктів, перейдіть до налаштувань  блоку Email → поле JSON та вкажіть джерело даних із події — ${jsonParam}.

Укажіть джерело даних

Налаштувавши сценарій, налаштуйте запуск:

Налаштування запуску

Для отримання даних із події використовується той самий підхід, що й для масової кампанії, з невеликою різницею в назві масиву. В листі буде такий об’єкт:

{
  "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-опитування, історію покупок, дату останнього переходу з в повідомлення тощо.

Доступні набори даних для експорту:

  • workflowInstanceId – ідентифікатор окремого запуску сценарію; використовуйте його для угрупування розсилок у рамках запуску одного сценарію;
  • broadcasts;
  • contactActivities;
  • contacts;
  • devices;
  • events;
  • messages;
  • 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)

Статуси розсилки:

  • IDLE – завершена;
  • RUNNING - почалася;
  • PAUSED - призупинена (якщо розсилка не була зупинена вами вручну, зверніться до служби підтримки для уточнення деталей);
  • SCHEDULED – запланована;
  • UNCONFIRMED – у черзі на модерацію;
  • CONSIDERATION – на модерації;
  • BLOCKED – заблокована модератором.
updatedDate  timestamp Дата та час оновлення розсилки (формат: '2021-10-08 11:11:02')

ContactActivities

Параметр Тип даних Опис

activity

(activityStatus)*

varchar (100) Статус активності:
  • DELIVERED – повідомлення доставлено.
  • UNDELIVERED – повідомлення не доставлено (містить причину statusDescription).
  • RECEIVED –повідомлення відкрито.
  • UNSUBSCRIBED – контакт відмовився від розсилки.
  • CLICKED – контакт клікнув посилання у повідомленні.
  • SPAM – контакт повідомив про спам.
  • SUBSCRIPTION_CHANGED – контакт змінив категорію підписки.
  • PUSH_SUBSCRIBED —контакт підписався на push-сповіщення.
workflowInstanceId varchar (200) Ідентифікатор окремого запуску сценарію. Використовуйте його для угрупування розсилок у рамках запуску одного сценарію.
broadcastId int ID розсилки
campaignType varchar (50)

Тип розсилки: 

  • IM — тригерне повідомлення, 
  • Group — масова розсилка.
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) Джерело контакту:
  • SITE_AUTOMATED - прив'язка email до push-підписника (скрипт збору web push), 
  • I_MESSAGE -відправка одного повідомлення, 
  • CAMPAIGN - сценарій (блок "Створити контакт" або блок "Додати до групи"), 
  • IMPORT - імпорт файла або метод “Add contacts”, 
  • MANUAL - створен вручну, 
  • SUBSCRIPTION - форма підписки (API метод “Subscribe a contact”), 
  • API метод “Add contact”, 
  • ORDER - замовлення на сайті (API метод “Add orders”).
createdDate timestamp Дата та час створення контакту (формат: '2021-10-08 11:11:02')
email 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 Знижка
email varchar (50) Email
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) Статус замовлення:
  • INITIALIZED,
  • IN PROGRESS,
  • DELIVERED, 
  • CANCELED.
totalCost numeric Загальна вартість замовлення

Revenue

Параметр Тип даних Опис
activity (activityStatus)* varchar (100) Статус активності:
  • DELIVERED – повідомлення доставлено.
  • UNDELIVERED – повідомлення не доставлено (містить причину statusDescription).
  • RECEIVED –повідомлення відкрито.
  • UNSUBSCRIBED – контакт відмовився від розсилки.
  • CLICKED – контакт клікнув посилання у повідомленні.
  • SPAM – контакт повідомив про спам.
  • SUBSCRIPTION_CHANGED – контакт змінив категорію підписки.
  • PUSH_SUBSCRIBED —контакт підписався на push-сповіщення.
campaignType varchar (50) Тип розсилки:
  • IM — тригерне повідомлення, 
  • Group — масова розсилка.
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, Widget)
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.

3. Натисніть “Зберегти”.

Редагування експорту даних

Підключення буде відображено в розділі “Експорт даних”, тут ви можете змінити його налаштування.

Залишилися питання?
Спеціалісти обов'язково нададуть відповідь та допоможуть вирішити вашу проблему!
Зворотний дзвінок
Залишіть заявку – і наш спеціаліст зв'яжеться з вами в робочий час.
Відправити заявку
Консультація в чаті
Готові до ваших запитань!
Написати в чат
Електронна пошта
Напишіть в службу підтримки eSputnik.
Надіслати email