Налаштування сегментованих push-повідомлень 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування сегментованих push-повідомлень 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування сегментованих push-повідомлень у 1С-Bitrix

Масові push-повідомлення з CTR 0,5% і зростаючою кількістю відписок — наслідок відсутності сегментації. Push з релевантною пропозицією (знижка на категорію, яку переглядав користувач) дає CTR 4–8%. Це різниця в підході: не «всім про все», а конкретному сегменту — конкретне повідомлення.

Інфраструктура push-повідомлень у Bitrix

Стандартний модуль 1С-Bitrix не включає push-повідомлення для інтернет-магазину. Інфраструктура будується на базі:

  • Firebase Cloud Messaging (FCM) — для web push і Android
  • Apple Push Notification Service (APNs) — для iOS (якщо є мобільний додаток)
  • Сторонні платформи: OneSignal, Pushwoosh, SendPulse — з готовою сегментацією

Для інтеграції з Bitrix найпрактичніший варіант з OneSignal або власним сховищем токенів + FCM API.

Зберігання токенів і атрибутів користувачів

Токени push-підписки зберігаються в користувальницькій таблиці:

CREATE TABLE custom_push_tokens (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    token TEXT NOT NULL,
    platform ENUM('web', 'android', 'ios') DEFAULT 'web',
    created_at DATETIME,
    last_active DATETIME,
    INDEX idx_user (user_id),
    INDEX idx_platform (platform)
);

Атрибути для сегментації зберігаються окремо:

CREATE TABLE custom_push_user_attrs (
    user_id INT,
    attr_key VARCHAR(100),
    attr_value VARCHAR(255),
    updated_at DATETIME,
    PRIMARY KEY (user_id, attr_key)
);

Атрибути оновлюються подіями Bitrix: перегляд категорії → last_category_viewed, покупка → last_purchase_date і total_orders, сума у кошику → cart_value.

Сегментація: що і як ділити

Типові сегменти для інтернет-магазину:

Сегмент Критерії Приклад повідомлення
Заброшений кошик cart_value > 0, last_cart_update > 2h «Ваш кошик чекає. Оформіть зараз»
Активні покупці total_orders >= 3 за 90 днів Ексклюзивна акція для постійних клієнтів
Нові користувачі registration_date < 7 днів Промокод на перше замовлення
Інтерес до категорії last_category_viewed = 'electronics' Знижка на електроніку сьогодні
Давно не купували last_purchase_date > 60 днів «Скучаємо за вами» + спецпропозиція

Надсилання через FCM

Клас-обгортка для надсилання:

class PushSender {
    private const FCM_URL = 'https://fcm.googleapis.com/fcm/send';

    public function sendToSegment(array $filter, string $title, string $body, array $data = []): void {
        $tokens = $this->getTokensByFilter($filter);

        // FCM приймає не більше 500 токенів за запит
        foreach (array_chunk($tokens, 500) as $chunk) {
            $this->sendBatch($chunk, $title, $body, $data);
        }
    }

    private function sendBatch(array $tokens, string $title, string $body, array $data): void {
        $payload = [
            'registration_ids' => $tokens,
            'notification' => [
                'title' => $title,
                'body' => $body,
                'icon' => '/favicon-192.png',
                'click_action' => $data['url'] ?? '/',
            ],
            'data' => $data,
        ];

        $http = new \Bitrix\Main\Web\HttpClient();
        $http->setHeader('Authorization', 'key=' . FCM_SERVER_KEY);
        $http->setHeader('Content-Type', 'application/json');
        $http->post(self::FCM_URL, json_encode($payload));
    }
}

Триггери оновлення атрибутів

Атрибути сегментації повинні оновлюватися у реальному часі. Реалізується через обробники подій Bitrix:

  • OnSaleOrderSaved → оновлення total_orders, last_purchase_date
  • OnSaleBasketItemSaved → оновлення cart_value
  • Користувацька подія при перегляді розділу каталогу → last_category_viewed

Оновлення атрибутів — простий REPLACE INTO custom_push_user_attrs.

Підписка на push через браузер

JavaScript для запиту дозволу і збереження токена:

async function subscribeToPush() {
    const registration = await navigator.serviceWorker.register('/sw.js');
    const subscription = await registration.pushManager.subscribe({
        userVisibleOnly: true,
        applicationServerKey: VAPID_PUBLIC_KEY
    });

    await fetch('/api/push/subscribe/', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(subscription)
    });
}

Сроки виконання

Обсяг робіт Строк
Зберігання токенів + базове надсилання 1–2 дні
Атрибути + 5–7 сегментів 2–3 дні
UI управління + аналітика доставки +2 дні

Сегментовані push — інструмент утримання, який окупається при базі від 5 000 підписників.