В этой статье я расскажу, как настроить автоматическую отправку данных из веб-форм 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" $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; }
Готово, теперь при заполнении форм на сайте будут приходить уведомления в телеграмм в бот, если нужно что бы уведомления приходило нескольким людям, можно создать групповой чат и добавить туда этого бота.
Если нужно помочь с интеграцией или проконсультироваться вы можете написать мне в телеграмм или на почту.