Назад к списку

Уведомления в Telegram-бот о новых заявках на сайте Битрикс

Чтобы расширить логику уведомлений, форм или интеграций, можно заказать доработку функционала сайта на Битрикс.

В этой статье я расскажу, как настроить автоматическую отправку данных из веб-форм Bitrix в Telegram-бота. Это удобное решение для мгновенного уведомления менеджеров о новых заявках без ручного мониторинга CRM.

1. Создание Telegram-бота и получение токена

1.    Откройте Telegram и найдите @BotFather.

2.    Отправьте команду /newbot и следуйте инструкциям.

3.    После создания бота вы получите токен (например, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11).

Как узнать chat_id?

Отправьте боту любое сообщение, затем перейдите по ссылке:

https://api.telegram.org/botВАШ_ТОКЕН/getUpdates


В ответе JSON найдите "id" в разделе chat – это и есть ваш chat_id.

код ниже добавляем в init.php, разберем некоторые моменты:

$result[“FORM_ID”] – это id формы, его можно посмотреть в админке по пути сервисы – веб-формы – результаты – настройка форм. в $formName указываем название формы.

$botToken – тут указываем токен бота

$chatId – тут указываем ID чата

/* telega */
use Bitrix\Main\Web\HttpClient; // Вешаем обработчик на событие добавления результата формы AddEventHandler("form", "onAfterResultAdd", "sendFormDataToTelegram"); function sendFormDataToTelegram($formId, $resultId) {     $result = \CFormResult::GetByID($resultId)->Fetch();
// Получаем все ответы для этого результата     $answers = \CFormResult::GetDataByID(         $resultId,         [], // массив полей, если пустой - все поля         $arrResult, // массив с дополнительной информацией         $arrAnswer // массив с ответами     );
    $extractedData = [         'NAME' => $answers['NAME'][0]['USER_TEXT'],         'PHONE' => $answers['PHONE'][0]['USER_TEXT'],     ];
    if ($result["FORM_ID"] == 1) {         $formName = "Программа лояльности";     }     // Преобразуем массив в форматированную строку для Telegram     $messageText = "📢 Новое сообщение из формы: " . $formName . "\n";     $messageText .= "<b>Имя:</b> " . htmlspecialcharsbx($extractedData['NAME']) . "\n";     $messageText .= "<b>Телефон:</b> " . htmlspecialcharsbx($extractedData['PHONE']) . "\n";     sendTelegramMessage($messageText); }
function sendTelegramMessage($text) {     $botToken = 'токен бота'; //токен бота     $chatId = 'id чата с ботом'; // id чата с ботом     $url = "https://api.telegram.org/bot{$botToken}/sendMessage&quot;     $params = [        'chat_id' => $chatId,         'text' => $text,         'parse_mode' => 'HTML',     ];
    $httpClient = new HttpClient();     $httpClient->setHeader('Content-Type', 'application/x-www-form-urlencoded');     $response = $httpClient->post($url, $params);     if ($httpClient->getStatus() != 200) {         Debug::writeToFile(             "Telegram API Error: " . print_r(json_decode($response, true), true),             "telegram_error.log"         );         return false;     }
    return true; }

Готово, теперь при заполнении форм на сайте будут приходить уведомления в телеграмм в бот, если нужно что бы уведомления приходило нескольким людям, можно создать групповой чат и добавить туда этого бота.

Если нужно помочь с интеграцией или проконсультироваться вы можете написать мне в телеграмм или на почту.

Полезные материалы и услуги по теме

Как сделать Telegram-уведомления надежными

Уведомление о заявке должно помогать менеджеру быстро начать работу, а не быть единственным местом хранения данных. Заявка сначала сохраняется в форме или CRM, затем сайт формирует короткое сообщение для Telegram. Если мессенджер временно недоступен, заявка не должна теряться.

Что должно быть в сообщении

  • время и источник обращения;
  • имя и телефон в том виде, в котором их оставил клиент;
  • страница, с которой отправлена форма;
  • идентификатор заявки для поиска в админке;
  • ссылка на карточку лида, если используется CRM.

Безопасность интеграции

Токен бота нельзя хранить в открытом JavaScript, HTML или публичном репозитории. Его следует держать в настройках сервера или защищенном файле конфигурации. Доступ к чату нужно ограничить, а в журнале не записывать лишние персональные данные и токены.

Проверка перед запуском

  1. Отправьте тестовую заявку с компьютера и телефона.
  2. Проверьте русские символы, переносы строк и ссылку на страницу.
  3. Отключите Telegram на короткое время и убедитесь, что заявка сохранилась.
  4. Проверьте повторную отправку после временной ошибки и отсутствие дублей.
  5. Убедитесь, что в сообщении нет паролей, платежных данных и скрытых полей.

Если уведомления нужно связать с формами, CRM или каталогом, пригодятся доработка сайта на Битрикс, интеграция чат-бота и техническая поддержка.

Услуги по 1С-Битрикс

QuadCRM: Революционный Инструмент для Парсинга и Автоматизации Интернет-Магазинов

Что такое QuadCRM и как оценить пользу автоматизации интернет-магазина: сценарии парсинга, контроль данных, ограничения и безопасн...

Подробнее

Как работает AI чат-бот для сайта и зачем он нужен бизнесу

Подробнее

Что такое компоненты Битрикс и как они упрощают разработку сайта?

Что такое компоненты 1С-Битрикс, чем отличаются системные и собственные компоненты, как работают шаблоны, кеширование и result_mod...

Подробнее