Як передавати події у SendPulse

У SendPulse у вас є можливість за допомогою API передавати події у вашу систему. Надсилання запитів можливе з авторизацією та без авторизації.

Щоб передати подію, вам знадобляться:

  • URL-адреса запиту.
  • Email адреса або номер телефону — обов'язковий параметр, який використовується для ідентифікації контакту, для якого потрібно запустити подію.
  • Параметри контакту — необов'язкові параметри, які використовуються як змінні для персоналізації повідомлень.
  • Системний параметр automation_id — необов'язковий параметр, використовується для ідентифікації ланцюжка, для якого передаються дані.

Скопіюйте URL

Перейдіть до розділу Менеджер подій (Events Manager) і додайте або натисніть назву створеної події.

Оберіть метод запиту.

Якщо використовуєте бібліотеку SendPulse на GitHub, подію необхідно передавати з авторизацією, використовуючи URL із вкладки REST API POST. Ключі для авторизації можна взяти у вкладці API у налаштуваннях облікового запису.

Якщо ви не використовуєте бібліотеку та передаєте події без авторизації, використовуйте URL-адресу з вкладки POST raw або POST form-data.

Скопіюйте URL-адресу в потрібній вкладці.

Сформуйте тіло запиту

Передайте дані за допомогою власних або глобальних змінних.

Обов'язково передайте змінні email або phone з типом Рядок (String), щоб SendPulse ідентифікував контакт і запустив подію.

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

Визначте ланцюжок по ID

Також ви можете передавати ID ланцюжка через необов'язковий параметр automation_id, щоб ідентифікувати запити та надсилати персональні дані для різних ланцюжків на одне посилання події.

Зверніть увагу, що параметр automation_id потрібно передавати з типом параметра Число (Number) і поза масивом.

Під час створення події параметр automation_id можна не додавати.

Щоб визначити значення automation_id, перейдіть на сторінку потрібного ланцюжка в розділі Автоворонки та скопіюйте числове значення після /flow/id/ в адресному рядку.

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

Передайте системні змінні у заголовку запиту

Використовуйте передачу системних змінних у заголовках (headers) HTTP‑запиту, як альтернативу включення їх у тіло JSON для ідентифікації підписників. Наприклад, у випадку, коли немає можливості включити ці змінні у тіло запиту.

Це також надає змогу спростити процес передачі подій без необхідності окремо налаштовувати відповідності (mappings) вручну.

Ви можете передавати такі змінні у заголовку запиту події:

email Email-адреса контакту.
phone Номер телефону контакту.
bot_id Унікальний ідентифікатор бота.
chatbots_subscriber_id Ідентифікатор підписника в чат‑боті.
chatbots_channel Канал чат‑бота.

Приклад запиту при передачі системних змінних у заголовках:

curl --location 'https://events.sendpulse.com/events/id/f5555e14bb034295c7280f39fc14e332/1111111' \
--header 'bot_id: 618919df397aae3aaf1d51ed' \
--header 'chatbots_channel: tg' \
--header 'email: j.smith@outlook.com' \
--header 'phone: +380982222222' \
--header 'Content-Type: application/json' \
--data '{"test":1111}'

У випадку передачі системних змінних в headers, тіло запиту (body) не повинно бути порожнім, інакше система поверне помилку: 400 Bad Request.

Приклади надсилання запитів

Без авторизації

PHP (з cURL)

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://events.sendpulse.com/events/id/eb561baa181247d1cd378c4ead632877/7043663',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
  "email": "test1@test1.com",
  product
  "value",
  "product_id": 123,
  "product_link": "product_link value",
  "product_price": "product_price value",
  "product_img_url": "product_img_url value",
  "event_date": "2021-05-28"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Python

import requests

url = "https://events.sendpulse.com/events/id/eb561baa181247d1cd378c4ead632877/7043663"

payload="{\n \"email\": \"test1@testn.com\" phone\": \"+123456789\",\n \"product_name\": \"product_name value\",\n \"product_id\": 123,\n \"product_link\": \"product_link value\" ,\n \"product_price\": \"product_price value\",\n \"product_img_url\": \"product_img_url value\",\n \"event_date\": \"2021-05-28\"\n }"
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

З авторизацією

PHP


use Sendpulse\RestApi\ApiClient;
use Sendpulse\RestApi\Storage\FileStorage;

define('API_USER_ID', '');
define('API_SECRET', '');
define('PATH_TO_ATTACH_FILE', __FILE__);

$SPApiClient = новий ApiClient(API_USER_ID, API_SECRET, новий FileStorage());

// Start event automation360
$eventName = 'registration';
$variables = [
    "email" => "test1@test1.com",
    "phone" => "+123456789",
    "var_1" => "var_1_value"
];

var_dump($SPApiClient->startEventAutomation360($eventName,$variables));

Докладніше: SendPulse REST client library.

Python

# -*-coding:utf8-*-

""" SendPulse REST API usage example

Documentation:
    https://login.sendpulse.com/manual/rest-api/
    https://sendpulse.com/api
"""

from pysendpulse.pysendpulse import PySendPulse

if __name__ == "__main__":
    REST_API_ID = ''
    REST_API_SECRET = ''
    TOKEN_STORAGE = 'memcached'
    MEMCACHED_HOST = '127.0.0.1:11211'
    SPApiProxy = PySendPulse(REST_API_ID, REST_API_SECRET, TOKEN_STORAGE, memcached_host=MEMCACHED_HOST)

    # Start event
    params = {
        "email": "test1@test1.com",
        "phone": "+123456789",
        "var_1": "var_1_value"
        }

    SPApiProxy.send_event('registration', params);

Докладніше: SendPulse REST client library.

Оцініть, наскільки стаття була корисною "Як передавати події у SendPulse"

Оцінка: 4 / 5 (8)

Назад

Як керувати подіями

Далі

Як зупинити серію за подією

Популярне в нашому блозі

Спробуйте сервіс email розсилок SendPulse безкоштовно