Об'єднуємо 1С-Бітрікс і UniSender для розсилок
Ручне вивантаження списків підписників, втрата лідів після відписки, відсутність зв'язку між замовленням і наступним листом — типові проблеми при email-маркетингу на Бітрікс. Клієнти витрачають до 10 годин на місяць на синхронізацію, а доставність падає через неправильне налаштування. Типовий сценарій: після оформлення замовлення клієнт не отримує підтвердження, менеджер вручну надсилає листа. Або підписник відписується, але продовжує отримувати розсилки через відсутність синхронізації.
Ми вирішуємо ці проблеми за 2–3 дні, налаштовуючи безшовний обмін даними через REST API UniSender. Досвід — понад 50 проєктів. Інтеграція окупається за 2–3 місяці за рахунок автоматизації.
Чому UniSender — оптимальний вибір для email-маркетингу?
UniSender — російський сервіс з доставністю на Mail.ru та Яндекс.Пошту в 1.2 рази краще закордонних аналогів. Простий REST API, зрозуміла документація та гнучкі тарифи. На відміну від Mailchimp, не вимагає верифікації домену і працює без затримок з російськими поштовими системами. Стабільна робота при навантаженні до 500 контактів за запит.
Як відбувається синхронізація контактів?
Синхронізація ґрунтується на методі importContacts. Приклад реалізації API-клієнта:
class UniSenderClient { private string $apiKey; private string $baseUrl = 'https://api.unisender.com/ru/api/'; public function __construct() { $this->apiKey = COption::GetOptionString('site', 'unisender_api_key'); } public function importContacts(array $contacts, int $listId): array { // Пакетний імпорт до 500 контактів за раз $fieldNames = ['email', 'email_list_ids', 'Name', 'Phone']; $fieldValues = []; foreach ($contacts as $c) { $fieldValues[] = [ $c['email'], (string)$listId, $c['name'] ?? '', $c['phone'] ?? '', ]; } $http = new \Bitrix\Main\Web\HttpClient(); return json_decode($http->post($this->baseUrl . 'importContacts', [ 'api_key' => $this->apiKey, 'format' => 'json', 'field_names' => $fieldNames, 'data' => $fieldValues, 'overwrite_tags' => 1, 'overwrite_lists' => 0, ]), true); } } Метод importContacts — основний для масової синхронізації. За один виклик — до 500 контактів. При експорті всієї бази розбиваємо на батчі. Для підписки нового користувача використовуємо subscribe з double opt-in: лист підтвердження надсилається автоматично. Якщо контакт відписався, при повторній підписці статус оновлюється.
Як налаштувати тригерні розсилки після замовлення?
Після оформлення замовлення надсилаємо серію транзакційних листів через UniSender Automation. Використовуємо подію OnSaleOrderSaved:
AddEventHandler('sale', 'OnSaleOrderSaved', function($order) { if (!$order->isNew()) return; $email = getOrderEmail($order); // Відправляємо транзакційний лист через UniSender $client = new UniSenderClient(); $client->sendEmail([ 'to' => [['email' => $email, 'name' => getOrderName($order)]], 'subject' => 'Замовлення #' . $order->getId() . ' оформлено', 'body' => renderOrderEmailTemplate($order), 'list_id' => UNISENDER_TRANSACT_LIST_ID, 'sender_name' => 'Магазин', 'sender_email' => '[email protected]', ]); }); Також налаштовуємо обробник підписки через OnSubscribeSubscribe:
AddEventHandler('subscribe', 'OnSubscribeSubscribe', function($id, $email, $fields) { $listId = COption::GetOptionString('site', 'unisender_list_id'); $client = new UniSenderClient(); $client->subscribe($email, $listId, [ 'Name' => $fields['NAME'] ?? '', 'Phone' => $fields['PERSONAL_PHONE'] ?? '', ]); }); Метод subscribe додає одиночний контакт і надсилає йому лист підтвердження (double opt-in), якщо ця настройка включена в UniSender. При помилці API (наприклад, перевищення ліміту) реалізуємо повторні спроби з експоненціальною затримкою, щоб не втратити дані.
Аналітика доставності та моніторинг
UniSender надає статистику через getCampaignStatus та getCampaignCommonStats. Ми отримуємо дані по кожній розсилці і логуємо їх в інфоблок Бітрікса для моніторингу тренду. Відстежуємо open rate, CTR, bounces та unsubscribes. Якщо bounce rate перевищує 5% — автоматично зупиняємо кампанію і повідомляємо маркетолога. Це дозволяє підтримувати чистоту бази та високу доставність.
Отримання статусу контакту
Перед створенням розсилки корисно знати статус підписника — активний чи він, чи не відписався:
public function getContactStatus(string $email): string { $http = new \Bitrix\Main\Web\HttpClient(); $response = json_decode($http->get( $this->baseUrl . 'getContact?api_key=' . $this->apiKey . '&format=json&email=' . urlencode($email) ), true); return $response['result']['status'] ?? 'unknown'; // 'active', 'unsubscribed', 'bounced', 'spam' } Використовуємо при обробці замовлення: якщо покупець відписаний — не додаємо його в нові списки розсилки.
Часта проблема: листи в спамі
Листи потрапляють у спам — це вирішується налаштуванням SPF-запису та використанням виділеного IP. UniSender надає інструменти для перевірки репутації. Ми включаємо це в інтеграцію.
Порівняння: UniSender vs зарубіжні сервіси
| Критерій | UniSender | Зарубіжні (Mailchimp, SendGrid) |
|---|---|---|
| Доставність на російські поштові системи | 95–98% | 70–80% |
| Верифікація домену | Не потрібна | Обов'язкова (DKIM, SPF) |
| Адаптація під російські поштові системи | Повна | Часткова |
| API-документація російською | Є | Немає |
| Підтримка double opt-in | Вбудована | Налаштовується |
Як ми інтегруємо: покроково
- Аналізуємо поточну базу підписників і сценарії листів.
- Налаштовуємо API-клієнт на стороні Бітрікса.
- Реалізуємо синхронізацію контактів (підписка/відписка) через події.
- Створюємо тригерні листи для замовлення, реєстрації, покинутого кошика.
- Інтегруємо статистику UniSender в інфоблоки Бітрікса.
- Тестуємо доставність і вносимо коригування.
- Навчаємо співробітників і надаємо документацію.
Що входить в роботу
- Налаштування API-клієнта та аутентифікації
- Реалізація синхронізації контактів (підписка/відписка)
- Створення тригерних листів за подіями (замовлення, реєстрація)
- Інтеграція статистики UniSender в інфоблоки Бітрікса
- Документація щодо доробок та навчання співробітників
- Підтримка протягом місяця після запуску
Приблизні трудозатрати
| Завдання | Трудозатрати |
|---|---|
| API-клієнт + обробники підписки | 3–5 год |
| Пакетний експорт бази підписників | 3–4 год |
| Транзакційні листи за подіями | 4–6 год |
| Збір аналітики в Бітрікс | 3–4 год |
Терміни виконання — від 2 до 5 днів залежно від складності. Вартість розраховується індивідуально після аналізу вашого проєкту. Замовте впровадження під ключ з гарантією результату. Отримайте консультацію щодо інтеграції — напишіть нам, і ми оцінимо обсяг робіт.







