Клієнти дзвонять у підтримку з питанням «Де моє замовлення?». Стандартні 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% | Платно | Низька |
| ~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-бота
- Реєструємо акаунт на developers.viber.com
- Створюємо бот у панелі адміністратора my.viber.com
- Отримуємо auth token виду
47b...== - Встановлюємо 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 хвилин безкоштовно.







