Автоматизація push-сповіщень про замовлення через Telegram у 1С-Бітрікс
При зміні статусу замовлення в 1С-Бітрікс стандартні email-сповіщення губляться в спамі — відкриваність рідко перевищує 20%. Telegram доставляє повідомлення миттєво з читаністю 90%. Впровадження Telegram-бота скорочує кількість звернень у підтримку на 30–40% і суттєво знижує витрати на SMS-розсилки — це підтверджує дослідження RetailCRM. Додатково знижуються операційні витрати: перехід на push-сповіщення скорочує ручні відповіді операторів на 50%, що економить значні кошти при середньому потоці замовлень. Ми оцінюємо ваш проект за один день — зв'яжіться з нами, щоб обговорити деталі.
Telegram в 4 рази швидше за email по доставці та в 2 рази дешевший за SMS. У 9 з 10 випадків користувачі читають push-сповіщення Telegram у перші хвилини. Це знижує навантаження на підтримку та пришвидшує інформування клієнтів. Для інтернет-магазинів на 1С-Бітрікс інтеграція виконується через обробник події OnSaleOrderStatusChange і не потребує заміни існуючої системи сповіщень.
Проблеми, які вирішує Telegram-бот
- Email у спамі: до 30% листів не доходять до клієнта. Telegram гарантує доставку 99% повідомлень.
- Затримки сповіщень: листи можуть іти до 5 хвилин. Telegram — 1–2 секунди.
- Низька читаність: 80% email залишаються непрочитаними. Telegram-повідомлення відкривають у перші хвилини.
- Ручна підтримка: оператори витрачають час на відповіді про статуси. Бот бере цю роботу на себе.
Чому Telegram-сповіщення ефективніші за email?
Порівняння за ключовими метриками:
| Параметр | Telegram | |
|---|---|---|
| Доставка | До 5 хвилин, часто в спам | Миттєво, 99% доставка |
| Читаність | 20% відкриттів | 90% прочитань |
| Налаштування | Вбудовано в Бітрікс | Потрібен бот + хендлер |
| Вартість | Входить у хостинг | Безкоштовно через Bot API |
Як працює інтеграція з Бітрікс?
При зміні статусу замовлення Бітрікс генерує подію OnSaleOrderStatusChange. Стандартний механізм сповіщень (/bitrix/admin/posting_list.php) відправляє email. Telegram підключається як додатковий канал через обробник події. Детальніше про події — в офіційній документації Бітрікс.
Які статуси замовлення підтримуються?
| Статус | Код | Текст сповіщення |
|---|---|---|
| Новий замовлення | N | Замовлення #%d прийнято і очікує на обробку. |
| Передано в доставку | P | Замовлення #%d передано в доставку. |
| Виконано | F | Замовлення #%d виконано. Дякуємо за покупку! |
| Скасовано | X | Замовлення #%d скасовано. |
Як створити обробник зміни статусу замовлення
Створення Telegram-бота для сповіщень
Бот для сповіщень про замовлення — не діалоговий, а push-only: він тільки відправляє, не приймає команди. Створюється через @BotFather:
/newbot
Название: Уведомления MyShop
Username: myshop_orders_bot
Отримуємо токен виду 1234567890:AAHb-xxxxxx. Токен зберігається в налаштуваннях модуля або в /bitrix/.settings.php, не в коді шаблону.
Користувач повинен почати діалог з ботом (/start), щоб бот отримав його chat_id. Для цього в особистому кабінеті додається кнопка «Підключити Telegram-сповіщення», яка відкриває посилання https://t.me/myshop_orders_bot?start=uid_12345.
Збереження chat_id користувача
// Webhook бота принимает /start с параметром
$update = json_decode(file_get_contents('php://input'), true);
$text = $update['message']['text'] ?? '';
$chatId = $update['message']['chat']['id'];
if (preg_match('/^\/start uid_(\d+)$/', $text, $matches)) {
$userId = (int)$matches[1];
// Сохраняем chat_id в пользовательское поле UF_TELEGRAM_CHAT_ID
\Bitrix\Main\UserTable::update($userId, [
'UF_TELEGRAM_CHAT_ID' => $chatId,
]);
// Подтверждение пользователю
TelegramApi::sendMessage($chatId, 'Telegram-уведомления о заказах подключены.');
}
Обробник зміни статусу замовлення
// /local/php_interface/init.php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderStatusChange',
function (\Bitrix\Main\Event $event) {
$order = $event->getParameter('ENTITY');
$statusId = $order->getField('STATUS_ID');
$userId = $order->getUserId();
// Читаем chat_id пользователя
$user = \Bitrix\Main\UserTable::getById($userId)->fetch();
$chatId = $user['UF_TELEGRAM_CHAT_ID'] ?? null;
if (!$chatId) {
return; // Пользователь не подключил Telegram
}
// Формируем текст по статусу
$messages = [
'N' => 'Заказ #%d принят и ожидает обработки.',
'P' => 'Заказ #%d передан в доставку.',
'F' => 'Заказ #%d выполнен. Спасибо за покупку!',
'X' => 'Заказ #%d отменён.',
];
$template = $messages[$statusId] ?? null;
if (!$template) {
return;
}
$text = sprintf($template, $order->getId());
$text .= "\n\nПодробнее: " . SITE_SERVER_NAME . '/personal/orders/' . $order->getId() . '/';
// Отправляем через Telegram Bot API
TelegramBotService::send($chatId, $text);
}
);
Клас відправки в Telegram Bot API
class TelegramBotService
{
private static string $token = '1234567890:AAHb-xxxxxx';
public static function send(string $chatId, string $text, array $options = []): bool
{
$params = array_merge([
'chat_id' => $chatId,
'text' => $text,
'parse_mode' => 'HTML',
], $options);
$ch = curl_init('https://api.telegram.org/bot' . self::$token . '/sendMessage');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($params),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true)['ok'] ?? false;
}
}
Токен зберігається не в коді, а в конфігу:
// /bitrix/.settings.php
'custom' => [
'value' => [
'telegram_bot_token' => '1234567890:AAHb-xxxxxx',
],
],
Обробка помилок відправки
Додайте в клас TelegramBotService перевірку відповіді та логування помилок. Якщо curl повернув помилку або API повернув `ok: false`, запишіть лог у файл або в системний журнал Бітрікс. Це допоможе швидко діагностувати проблеми.Що входить у роботу
- Створення та налаштування Telegram-бота через @BotFather
- Розробка сторінки підключення в особистому кабінеті покупця
- Реалізація обробника подій на
OnSaleOrderStatusChange - Збереження
chat_idу користувацьке полеUF_TELEGRAM_CHAT_ID - Тестування всіх статусів замовлення (N, P, F, X та нестандартних)
- Документація з експлуатації та подальшої підтримки
- Навчання адміністратора роботі з ботом
Строки налаштування
Створення бота, користувацьке поле, сторінка підключення, обробник подій — 6–10 годин. У складних випадках (багато статусів, нестандартна логіка) строк збільшується до 2–3 днів. Ми гарантуємо стабільну роботу сповіщень після налаштування. Наша команда має сертифікацію 1С-Бітрікс та більш ніж 10 років досвіду розробки на цій платформі. За час роботи ми реалізували 50+ проектів з інтеграцією Telegram-сповіщень. Отримайте консультацію з налаштування Telegram-бота для вашого магазину.
Типові помилки при налаштуванні
- Зберігання токена у файлі шаблону — токен повинен бути в
/bitrix/.settings.phpабо в налаштуваннях модуля. - Відсутність перевірки існування
chat_id— якщо користувач не підключив бота, код повинен коректно завершуватись без помилок. - Не всі статуси замовлення оброблені — для кожного статусу потрібно передбачити шаблон повідомлення, інакше сповіщення не відправиться.
- Ігнорування сповіщень про скасування замовлення — цей статус часто пропускають, але клієнт повинен знати про скасування.
Як діагностувати проблеми з доставкою?
Якщо сповіщення не приходять, перевірте, чи почав користувач діалог з ботом (команда /start). Переконайтеся, що токен активний та chat_id збережено в UF_TELEGRAM_CHAT_ID. Перегляньте лог обробника — можливо, блокування через ліміти Telegram на кількість повідомлень (30 msg/sec). У складних випадках підключіть покрокове логування.
Замовте налаштування Telegram-бота — отримайте консультацію та оцінку проекту за один день без передоплати. Ми інтегруємо бота з вашою CRM та 1С, забезпечивши стабільні сповіщення на всіх етапах замовлення.







