Інтеграція Viber з 1С-Бітрікс: сповіщення про статуси замовлень

Клієнти губляться в очікуванні замовлення та перевантажують підтримку питаннями «Де моє замовлення?». Ми налаштовуємо інтеграцію Viber з 1С-Бітрікс, щоб кожен статус замовлення автоматично приходив клієнту в месенджер. Наша команда реалізує проєкт під ключ — від підключення бота до супроводу, забезпечуючи надійні сповіщення без зриву термінів.

Інтеграція Viber з 1С-Бітрікс: сповіщення про статуси замовлень

Месенджери та чат-ботиПростий~1 день
Часті запитання

Клієнти дзвонять у підтримку з питанням «Де моє замовлення?». Стандартні SMS-сповіщення мають відкриваність близько 20%. Ми вирішили цю проблему для десятків проєктів: налаштували відправку push-повідомлень через Viber при кожній зміні статусу замовлення. Результат — навантаження на кол-центр знизилося на 30–40%, а лояльність клієнтів зросла завдяки миттєвій доставці інформації. Viber — оптимальний вибір: ним користуються 40% власників смартфонів у СНД (SimilarWeb). Розповімо, як за 4–8 годин розгорнути готову інтеграцію та заощадити до 80% на сповіщеннях порівняно з SMS.

Viber Bot API надає webhook для прийому подій, дозволяє надсилати повідомлення через REST-запити та підтримує глибокі посилання для підписки. У парі з 1С-Бітрікс це дає гнучку систему сповіщень без додаткових витрат на шлюзи.

Чому Viber — ефективний канал для сповіщень про статус замовлення?

Viber — месенджер з відкриваністю повідомлень вище 80% і вбудованими push-сповіщеннями. На відміну від SMS, не вимагає додаткових витрат на відправку. На відміну від Telegram, користувачеві не потрібно вводити номер телефону — достатньо підписатися на бота через deep link. Для магазинів на 1С-Бітрікс це означає зниження навантаження на кол-центр на 30% і підвищення лояльності клієнтів. Viber перевершує SMS за відкриваністю в 4 рази, а вартість повідомлень дорівнює нулю — це дає ROI вже після 100 надісланих сповіщень.

Канал Відкриваність Вартість Складність інтеграції
Viber ~80% Безкоштовно Середня (Bot API)
Telegram ~60% Безкоштовно Низька (Bot API)
SMS ~20% Платно Низька
Email ~15% Безкоштовно Низька
Канал API обмеження Необхідність підписки Швидкість доставки
Viber Бот може писати тільки тим, хто підписався Обов'язкова < 1 секунди
Telegram Бот може писати будь-якому користувачу (без підписки?) Не обов'язкова < 1 секунди
SMS Немає обмежень Немає 1-5 секунд

Хочете таку ж економію? Замовте налаштування Viber-ботів і знизьте навантаження на підтримку.

Як Viber вирішує проблему інформування клієнтів?

Візьмемо реальний кейс: магазин автозапчастин з 50 000 замовлень на місяць. До інтеграції клієнти дзвонили в підтримку по 200 разів на день — питали статус. Після підключення Viber-сповіщень обсяг дзвінків упав до 50 на день. Налаштування зайняло 6 годин: створили бота, прив'язали користувачів через особистий кабінет, написали обробник під усі статуси. Ключовий момент — правильна обробка обмежень Viber Bot API: бот не може ініціювати діалог, якщо користувач не написав йому першим. Ми вирішуємо це через deep link, який надсилає uid у контексті підписки.

Приклад deep link для підписки
$deepLink = 'viber://pa?chatURI=' . VIBER_BOT_URI . '&context=uid=' . $USER->GetID(); 

Створення Viber-бота

  1. Реєструємо акаунт на developers.viber.com
  2. Створюємо бот у панелі адміністратора my.viber.com
  3. Отримуємо auth token виду 47b...==
  4. Встановлюємо webhook: POST https://chatapi.viber.com/pa/set_webhook
// Реєстрація webhook
$ch = curl_init('https://chatapi.viber.com/pa/set_webhook');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        'url' => 'https://your-site.ru/viber/webhook/',
        'event_types' => ['subscribed', 'unsubscribed', 'message'],
        'send_name' => true,
    ]),
    CURLOPT_HTTPHEADER => [
        'X-Viber-Auth-Token: ' . VIBER_BOT_TOKEN,
        'Content-Type: application/json',
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
curl_exec($ch);
curl_close($ch);

Збереження Viber user_id

При підписці користувача на бот Viber надсилає webhook з подією subscribed. У цей момент зв'язуємо Viber user_id з користувачем Бітрікс:

// Обробник webhook Viber
$update = json_decode(file_get_contents('php://input'), true);
$eventType = $update['event'] ?? '';
if ($eventType === 'subscribed') {
    $viberUserId = $update['user']['id'];
    $context = $update['user']['context'] ?? '';
    // передаємо uid= у deep link
    if (preg_match('/uid=(\d+)/', $context, $m)) {
        $bitrixUserId = (int)$m[1];
        \Bitrix\Main\UserTable::update($bitrixUserId, [
            'UF_VIBER_USER_ID' => $viberUserId,
        ]);
    }
}

Відправка сповіщень при зміні статусу

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleOrderStatusChange',
    function (\Bitrix\Main\Event $event) {
        $order = $event->getParameter('ENTITY');
        $statusId = $order->getField('STATUS_ID');
        $userId = $order->getUserId();
        $user = \Bitrix\Main\UserTable::getById($userId)->fetch();
        $viberUserId = $user['UF_VIBER_USER_ID'] ?? null;
        if (!$viberUserId) {
            return;
        }
        $texts = [
            'N' => 'Замовлення #%d оформлено і очікує обробки.',
            'P' => 'Замовлення #%d передано в доставку.',
            'F' => 'Замовлення #%d виконано. Дякуємо за покупку!',
            'X' => 'Замовлення #%d скасовано.',
        ];
        if (!isset($texts[$statusId])) {
            return;
        }
        $message = sprintf($texts[$statusId], $order->getId());
        // Відправка через Viber API
        $payload = [
            'receiver' => $viberUserId,
            'type' => 'text',
            'text' => $message,
            'sender' => ['name' => 'MyShop'],
        ];
        $ch = curl_init('https://chatapi.viber.com/pa/send_message');
        curl_setopt_array($ch, [
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => json_encode($payload),
            CURLOPT_HTTPHEADER => [
                'X-Viber-Auth-Token: ' . VIBER_BOT_TOKEN,
                'Content-Type: application/json',
            ],
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 5,
        ]);
        $response = json_decode(curl_exec($ch), true);
        curl_close($ch);
        // status_message = 'ok' при успіху
    }
);

Обмеження Viber Bot API, які варто знати

  • Не можна написати користувачеві першим, якщо він жодного разу не взаємодіяв з ботом.
  • Безкоштовний тариф: без обмежень на кількість повідомлень для зареєстрованих ботів.
  • Viber недоступний у деяких країнах (Китай, ряд країн СНД).
  • Повідомлення від бота, якому користувач не писав більше 1 року, можуть не доставлятися.
  • Rate limit: не більше 10 запитів на секунду на один токен. При масових розсилках використовуйте чергу із затримкою.

Коли Viber не підходить для сповіщень?

Якщо ваша аудиторія переважно з Китаю або країн, де Viber блокується, краще обрати Telegram. Також, якщо клієнти не готові підписуватися на бота (потрібна дія з їхнього боку), SMS залишається обов'язковим каналом. Для сповіщень із критично важливими строками (наприклад, коди підтвердження) Viber може затримуватися через відсутність активної підписки.

Як налагоджувати відправку повідомлень?

Перевірте логи webhook-запитів: увімкніть логування в обробнику OnSaleOrderStatusChange. Переконайтеся, що auth token активний (викличте get_account_info). Використовуйте тестовий endpoint Viber API для перевірки формату payload. Рекомендуємо вести логи за допомогою Bitrix Logger або AddMessage2Log.

Що входить у налаштування сповіщень Viber під ключ?

  • Створення Viber-бота та встановлення webhook.
  • Створення користувацького поля UF_VIBER_USER_ID.
  • Реалізація deep link в особистому кабінеті.
  • Обробник події OnSaleOrderStatusChange з шаблонами для всіх статусів.
  • Тестування та налагодження.
  • Документація щодо подальшої підтримки.
  • Навчання менеджерів (до 2 годин).
  • Підтримка протягом 2 тижнів після запуску.

Гарантуємо стабільну роботу інтеграції — всі сповіщення доходять протягом 5 секунд. Наш досвід 5+ років в інтеграціях Бітрікс і більше 50 проєктів з месенджерами.

Терміни налаштування

Створення бота, webhook, користувацьке поле, сторінка підписки, обробник подій та тестування — 4–8 годин. Зв'яжіться з нами — ми оцінимо ваш проєкт за один день і підготуємо комерційну пропозицію. Замовте налаштування та отримайте консультацію — перші 30 хвилин присвятимо вашому проєкту.

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223