Интеграция 1С-Битрикс с eSputnik
eSputnik — украинский CDP (Customer Data Platform) с развитыми инструментами для ecommerce: омниканальные цепочки, product recommendations, abandoned cart, динамическое содержимое писем на основе каталога товаров. Подходит для магазинов с большим каталогом и сложными триггерными сценариями.
Особенности API eSputnik
eSputnik предоставляет REST API v1. Аутентификация — Basic Auth (логин/пароль от аккаунта, не API-ключ). Базовый URL: https://esputnik.com/api/v1/.
Ключевое отличие от других ESP — события как основной механизм триггеров. Вместо прямого управления рассылками, мы отправляем события (order placed, cart updated, page viewed) — eSputnik строит автоматизации на их основе.
Синхронизация контактов
class ESputnikClient {
private string $login;
private string $password;
private string $baseUrl = 'https://esputnik.com/api/v1/';
public function upsertContact(array $contactData): array {
$http = new \Bitrix\Main\Web\HttpClient();
$auth = base64_encode($this->login . ':' . $this->password);
$http->setHeader('Authorization', 'Basic ' . $auth);
$http->setHeader('Content-Type', 'application/json');
$http->setHeader('Accept', 'application/json');
$payload = [
'contacts' => [[
'channels' => [
['type' => 'email', 'value' => $contactData['email']],
],
'fields' => [
['id' => 1, 'value' => $contactData['first_name'] ?? ''],
['id' => 2, 'value' => $contactData['last_name'] ?? ''],
['id' => 3, 'value' => $contactData['phone'] ?? ''],
],
]],
];
return json_decode($http->post($this->baseUrl . 'contact', json_encode($payload)), true);
}
}
Номера полей (id: 1, 2, 3) соответствуют полям в настройках eSputnik — их нужно проверить в разделе «Контакты → Дополнительные поля» конкретного аккаунта.
Отправка событий ecommerce
Главная сила eSputnik — события. Отправляем событие при каждом значимом действии пользователя:
public function sendEvent(string $email, string $eventTypeKey, array $params): void {
$http = new \Bitrix\Main\Web\HttpClient();
// ... auth headers
$payload = [
'eventTypeKey' => $eventTypeKey,
'keyValue' => $email,
'params' => array_map(fn($k, $v) => ['name'=>$k,'value'=>$v],
array_keys($params), $params),
];
$http->post($this->baseUrl . 'event', json_encode($payload));
}
// Событие: заказ оформлен
$esp->sendEvent($email, 'OrderCreated', [
'orderId' => $orderId,
'orderTotal' => $orderTotal,
'currency' => 'RUB',
'items' => json_encode($orderItems), // JSON-строка с товарами
]);
// Событие: товар добавлен в корзину
$esp->sendEvent($email, 'CartUpdated', [
'cartTotal' => $cartTotal,
'items' => json_encode($cartItems),
]);
Кейс: динамические товарные рекомендации в письмах
Ситуация. Магазин спортивного питания, 15 000 активных покупателей. Задача: письма с персональными рекомендациями на основе истории покупок.
Реализация. eSputnik принимает товарный фид в формате XML/JSON и строит рекомендации на основе collaborative filtering. Фид генерируется из каталога Битрикса и публикуется по защищённому URL:
// /bitrix/components/custom/esputnik.feed/component.php
$products = CIBlockElement::GetList(
['SORT' => 'ASC'],
['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y', 'CATALOG_AVAILABLE' => 'Y'],
false, ['nTopCount' => 10000],
['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE', 'PROPERTY_PRICE_RRP', 'PROPERTY_BRAND']
);
// Генерируем XML в формате Google Shopping (eSputnik принимает этот формат)
header('Content-Type: application/xml');
// ...
В редакторе писем eSputnik блок «Рекомендации» автоматически подставляет персонализированные товары для каждого получателя на момент открытия письма (real-time рендеринг).
Результат: CTR писем с рекомендациями вырос с 2.1% до 6.8% за 3 месяца.
Группы контактов и сегментация
eSputnik поддерживает сегментацию по полям контакта и по событиям. Передаём из Битрикса поля для сегментации:
- Дата последнего заказа → реактивационные цепочки.
- Общая сумма покупок → VIP-сегмент.
- Категории купленных товаров → тематические рассылки.
| Задача | Трудозатраты |
|---|---|
| API-клиент + синхронизация контактов | 4–5 ч |
| События ecommerce (заказ, корзина, просмотр) | 6–8 ч |
| Товарный фид для рекомендаций | 4–6 ч |
| Настройка триггерных цепочек в eSputnik | 4–8 ч |







