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

Уведомления в 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; }

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

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

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

CMS 1С-Битрикс, Bitrix24 CRM и 1С:Предприятие — в чем разница?

Подробнее

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

Подробнее

Как выбрать Аспро?

Подробнее