Клієнти дзвонять у підтримку з питанням «Де моє замовлення?». Стандартні 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 хвилин присвятимо вашому проєкту.







