Автоматизация 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С, обеспечив стабильные уведомления на всех этапах заказа.







