
WordPress + Telegram: как автоматизировать заявки, уведомления и поддержку клиентов Заявка с сайта приходит на почту. Менеджер замечает письмо через два часа, перезванивает – а клиент уже оставил...
WordPress + Telegram: как автоматизировать заявки, уведомления и поддержку клиентов
Заявка с сайта приходит на почту. Менеджер замечает письмо через два часа, перезванивает – а клиент уже оставил заявку у конкурента. Знакомая ситуация: по нашим внутренним наблюдениям на проектах малого бизнеса (это практический опыт, а не статистика по выборке), реакция на email-уведомление часто занимает от 40 минут до нескольких часов. При этом исследования скорости обработки лидов (lead response time, в частности InsideSales.com и HBR) показывают: вероятность дозвониться до лида и квалифицировать его падает в разы уже в первые 30–60 минут после заявки.
Telegram решает эту проблему практически бесплатно: push-уведомление приходит мгновенно, Bot API не требует платной подписки, а аудитория мессенджера – около миллиарда пользователей по всему миру, причём в России это самый популярный мессенджер – то есть ваши менеджеры и клиенты почти наверняка уже там.
В этом руководстве разберём полный цикл wordpress telegram integration:
- заявки из контактных форм (Contact Form 7, WPForms) – мгновенно в чат менеджеров;
- уведомления о заказах и оплатах WooCommerce;
- приём обращений в поддержку через Telegram-бота;
- вариант без плагинов – собственный код на PHP через Telegram Bot API;
- безопасность токена и защита от спама.
Базовая настройка занимает 15–30 минут и не требует бюджета на разработку. Нужен только доступ к админке WordPress и аккаунт в Telegram.

Что можно автоматизировать: карта сценариев
Прежде чем выбирать инструмент, определитесь, какие события сайта должны попадать в Telegram. На практике покрываются четыре группы задач:
- Заявки из форм. Клиент отправил форму Contact Form 7 или WPForms – сообщение с именем, телефоном и комментарием мгновенно падает в личный чат ответственного или в группу менеджеров.
- Заказы WooCommerce. Новый заказ, оплата, смена статуса, ошибка платежа – всё это можно транслировать в разные чаты: заказы менеджерам, оплаты бухгалтерии.
- Поддержка клиентов. Приём вопросов через Telegram-бота: клиент пишет боту, сообщение пересылается в группу поддержки, ответ менеджера возвращается клиенту.
- Служебные события. Новые комментарии, регистрации пользователей, ошибки сайта, события безопасности (входы в админку, смена паролей).
Дальше выбор подхода. Их два:
- Плагин из каталога WordPress – быстро, без кода, подходит для типовых сценариев. Минусы: зависимость от автора плагина, ограничения бесплатных версий, лишний вес на сайте.
- Собственный код через Telegram Bot API – полный контроль над шаблоном сообщений и логикой, никаких лишних плагинов. Минусы: нужен человек, который умеет редактировать PHP и не боится хуков WordPress.
Разберём оба.
Подготовка: создаём Telegram-бота через BotFather
Любая интеграция начинается с бота – он будет отправителем всех уведомлений.

Шаг 1. Создание бота. Откройте @BotFather в Telegram, отправьте команду /newbot. Придумайте отображаемое имя – то, что увидят пользователи в списке чатов (например, «Заявки с сайта Магазин»), – и username на латинице, обязательно заканчивающийся на bot (например, mymagazin_leads_bot). BotFather вернёт токен вида:
7123456789:AAEhBOweik6ad9r_QXMENQjcrGbqCr4K-4cТокен – это пароль от бота. Любой, кто им владеет, может отправлять сообщения от имени вашего бота. Храните его как пароль (подробнее – в разделе о безопасности).
Шаг 2. Получение chat_id. Каждое сообщение отправляется в конкретный чат, идентификатор которого нужно знать:
- Личный чат: напишите своему боту любое сообщение, затем откройте в браузере
https://api.telegram.org/bot<TOKEN>/getUpdates– в JSON найдите"chat":{"id":123456789. Альтернатива – боты вроде @userinfobot. - Группа менеджеров: создайте группу, добавьте в неё бота, отправьте любое сообщение в группу и снова вызовите
getUpdates.chat_idгруппы – отрицательное число вида-412345678. Нюанс: если группу перевести в супергруппу (например, включив темы/топики), chat_id изменится на формат-100xxxxxxxxxx– интеграцию придётся перенастроить.
Шаг 3. Тестовая отправка. Проверьте связку прямо из браузера:
https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=Тест с сайтаЕсли сообщение пришло – бот готов к работе. Если вернулось {"ok":false,"error_code":400,"description":"Bad Request: chat not found"} – чаще всего вы не написали боту первым (бот не может начать диалог сам) или перепутали chat_id.
Сразу сделайте две заготовки по безопасности: в группе менеджеров ограничьте права бота (только отправка сообщений, без удаления пользователей и закрепов) и нигде не публикуйте токен – ни в скриншотах, ни в репозиториях.
Обзор плагинов для интеграции WordPress с Telegram
В каталоге WordPress десятки решений. Перед установкой проверяйте по четырём критериям из практики:
- совместимость с вашей версией WordPress (указана на странице плагина);
- рейтинг и число активных установок: от 10 000 установок и рейтинг 4.5+ – хороший знак;
- дата последнего обновления – плагин, не обновлявшийся больше года, рискует сломаться при апдейте ядра или WooCommerce;
- поддержка нужных связок: Contact Form 7, WPForms, WooCommerce.
Основные варианты:
Telegram Bot & Channel (WP Telegram). Самое зрелое решение для уведомлений о контенте: отправка новых постов в канал или чат, уведомления о комментариях, базовая поддержка форм через модули. Бесплатный, активно поддерживается. Для заявок из CF7 потребуется дополнение.
Коннекторы для Contact Form 7 и WPForms. Отдельные плагины вида «CF7 Telegram», «Telegram Notifications for WPForms» и аналоги. Делают ровно одно: берут поля отправленной формы и шлют в Telegram по шаблону. Бесплатные версии обычно ограничены одной формой или одним получателем; гибкие шаблоны и несколько чатов – в Pro.
Универсальные конструкторы уведомлений. Плагины-шины, которые слушают события WordPress (новая запись, новый заказ, регистрация) и отправляют их в разные каналы, включая Telegram. Оправданы, когда сценариев много и нужны условия: «о заказе дороже 50 000 ₽ писать директору, об остальных – менеджеру».
Сравнение по ключевым параметрам:
| Критерий | WP Telegram | Коннекторы CF7/WPForms | Универсальные |
|---|---|---|---|
| CF7 / WPForms | частично | да | да |
| WooCommerce | нет | нет | да |
| Групповые чаты | да | зависит от версии | да |
| Шаблон сообщения | базовый | базовый / Pro | гибкий |
| Цена | бесплатно | бесплатно / Pro от ~$30/год | от ~$50/год |
Вывод по выбору: только заявки из форм – коннектор для вашего плагина форм. Заявки + заказы + события – универсальное решение. Максимум контроля и никаких подписок – собственный код (об этом ниже).
Сценарий 1: заявки из форм Contact Form 7 и WPForms в Telegram
Типовая настройка через плагин-коннектор занимает около 10 минут:
- Установите коннектор, активируйте.
- В настройках вставьте токен бота и chat_id (личный или группы).
- Выберите форму, заявки из которой нужно пересылать.
- Составьте шаблон сообщения.
Шаблон – самое важное место. Сообщение, которое менеджер читает с экрана телефона, должно быть коротким и структурированным. Рабочий вариант:
<b>Новая заявка с сайта</b>
Имя: [your-name]
Телефон: [your-tel]
Комментарий: [your-message]
Страница: [_url]
Время: [_date] [_time]Здесь [your-name] и другие теги – стандартные mail-теги Contact Form 7; у WPForms аналогичный синтаксис {field_id="1"}.
Про форматирование: Telegram Bot API поддерживает parse_mode=HTML – доступны <b>, <i>, <code>, <a href>, переносы строк работают как обычные \n. Важно: данные пользователя нельзя вставлять в сообщение «как есть» – если клиент введёт в поле комментария символ < или &, API вернёт ошибку can't parse entities и сообщение не уйдёт. Хорошие плагины экранируют спецсимволы сами; в собственном коде это делает htmlspecialchars() (пример ниже).
Куда слать – вопрос организации процесса. Для 1–3 менеджеров удобнее общая группа: все видят заявки, в теме обсуждают, кто взял в работу. Личные сообщения имеет смысл настраивать только ответственному за источник (например, заявки с лендинга – маркетологу, с корпоративного сайта – продажам).
Типовые ошибки при настройке:
- Бот не добавлен в группу или не имеет прав на отправку – сообщения молча не доходят.
- Перепутан chat_id – использован id пользователя вместо группы или потерян минус.
- Пустые поля в шаблоне – тег формы указан с опечаткой, в сообщении приходят дыры. Всегда отправляйте тестовую заявку и проверяйте все поля.
- Заблуждение «раз письма не доходят, всё сломано»: блокировка SMTP на хостинге ломает email, но не влияет на Telegram – API работает по HTTPS с сервера. Наоборот, Telegram-уведомления остаются резервным каналом, когда почта не ходит.
Сценарий 2: уведомления о заказах WooCommerce
Для магазина в Telegram обычно выносят: новый заказ (со составом, суммой, способом оплаты и доставки, контактами покупателя), успешную оплату, смену статуса и ошибки платежей.
В универсальных плагинах это настраивается привязкой к событиям заказа: created, processing, completed, failed. Практический совет – разделяйте потоки по чатам: менеджерам нужны заказы в работу (processing), бухгалтерии – оплаты (completed + сумма), а события failed полезно видеть и тем и другим: неудачная оплата – повод быстро позвонить клиенту и предложить другой способ.
Фрагмент рабочего шаблона сообщения о заказе:
<b>Заказ №[order_number] – [order_total]</b>
Статус: [order_status]
Оплата: [payment_method]
Доставка: [shipping_method]
Клиент: [billing_first_name] [billing_phone]
Состав: [order_items]Почему для WooCommerce часто надёжнее собственный код, а не плагин: во-первых, ниша «WooCommerce → Telegram» полна заброшенных плагинов, которые ломаются после очередного обновления магазина. Во-вторых, у реальных магазинов почти всегда есть кастомные поля заказа (пункты выдачи, комментарии курьеру, промокоды), которые универсальный шаблонизатор не вытащит. Хук woocommerce_new_order решает обе проблемы – пример в следующем разделе.
Проверка после настройки обязательна: оформите тестовый заказ (в WooCommerce есть тестовые платёжные шлюзы), убедитесь, что сообщение пришло, состав и сумма верны, телефон кликабелен.
Сценарий 3: поддержка клиентов через Telegram-бота
Третий сценарий сложнее – это уже не односторонние уведомления, а диалог. Модель работы: клиент пишет вашему боту → сообщение попадает в группу поддержки → ответ менеджера (reply на сообщение клиента) возвращается клиенту в Telegram.
Есть два уровня реализации.
Простой вариант – без разработки. Кнопка «Написать в Telegram» на сайте: обычная ссылка https://t.me/your_support или виджет. Клиент попадает в диалог с живым менеджером или с ботом, который принимает обращение. Никакой связки с сайтом, но и порог входа нулевой – для малого бизнеса этого часто достаточно.
Полноценный вариант – webhook. Webhook – это HTTPS-эндпоинт на вашем сайте, куда Telegram сам отправляет обновления (метод setWebhook у Bot API). Сайт принимает сообщения клиентов, маршрутизирует их в группу поддержки и связывает диалоги по chat_id клиента. Это уже полноценная разработка на PHP: нужно хранить соответствие «сообщение в группе ↔ клиент», обрабатывать команды, вести состояние диалога. Бюджет такой задачи – от 1–2 дней работы разработчика.
Честно про ограничения. Telegram-поддержка не заменяет тикет-систему, если вам нужны SLA, история обращений по клиенту, эскалации и аналитика по нагрузке – на этом уровне заявки из сайта и мессенджеров выгодно сводить в CRM (подключение Битрикс24, amoCRM и МойСклад к WordPress мы разбирали в отдельном руководстве). И у Bot API есть жёсткие рамки: бот не может написать пользователю первым (только в ответ на его сообщение или если пользователь ранее запустил бота), действуют лимиты на частоту отправки (ориентировочно 30 сообщений в секунду суммарно, в личке с пользователем – заметно меньше). Для уведомлений это не проблема, для рассылок – важно.
Интеграция без плагинов: свой код на PHP через Telegram Bot API
Когда этот путь оправдан: вы не хотите ставить лишний плагин ради одной формы; нужна кастомная логика (условия, фильтры, свои поля); есть требования безопасности – код короче и аудируемее, чем чужой плагин с тысячей настроек.
Базовая функция отправки через стандартный HTTP-клиент WordPress:
function tg_send_message( string $text, ?string $chat_id = null ): bool {
$token = defined( 'TELEGRAM_BOT_TOKEN' ) ? TELEGRAM_BOT_TOKEN : '';
$chat_id = $chat_id ?: ( defined( 'TELEGRAM_CHAT_ID' ) ? TELEGRAM_CHAT_ID : '' );
if ( ! $token || ! $chat_id ) {
return false;
}
$response = wp_remote_post(
"https://api.telegram.org/bot{$token}/sendMessage",
[
'timeout' => 10,
'body' => [
'chat_id' => $chat_id,
'text' => $text,
'parse_mode' => 'HTML',
],
]
);
if ( is_wp_error( $response ) ) {
error_log( 'Telegram error: ' . $response->get_error_message() );
return false;
}
$body = json_decode( wp_remote_retrieve_body( $response ), true );
if ( empty( $body['ok'] ) ) {
error_log( 'Telegram API error: ' . wp_remote_retrieve_body( $response ) );
return false;
}
return true;
}Хук для Contact Form 7 – собираем данные формы и отправляем:
add_action( 'wpcf7_before_send_mail', function ( $contact_form ) {
$submission = WPCF7_Submission::get_instance();
if ( ! $submission ) {
return;
}
$data = $submission->get_posted_data();
$text = "<b>Новая заявка с сайта</b>\n"
. 'Имя: ' . htmlspecialchars( $data['your-name'] ?? '' ) . "\n"
. 'Телефон: ' . htmlspecialchars( $data['your-tel'] ?? '' ) . "\n"
. 'Комментарий: ' . htmlspecialchars( $data['your-message'] ?? '' ) . "\n"
. 'Страница: ' . esc_url( wp_get_referer() ?: home_url() );
tg_send_message( $text );
} );Нюанс с полями множественного выбора: для чекбоксов и multiple-select get_posted_data() возвращает массив, а htmlspecialchars() на массиве в PHP 8 выбросит TypeError. Для таких полей предварительно приводите значение к строке:
$value = is_array( $data['your-check'] ?? '' )
? implode( ', ', $data['your-check'] )
: ( $data['your-check'] ?? '' );Хук для WooCommerce – текст заказа с позициями и суммой:
add_action( 'woocommerce_new_order', function ( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order ) {
return;
}
$items = [];
foreach ( $order->get_items() as $item ) {
$items[] = $item->get_name() . ' × ' . $item->get_quantity();
}
$text = "<b>Заказ №{$order->get_order_number()} – {$order->get_total()} ₽</b>\n"
. 'Оплата: ' . $order->get_payment_method_title() . "\n"
. 'Клиент: ' . htmlspecialchars( $order->get_billing_first_name() )
. ', ' . htmlspecialchars( $order->get_billing_phone() ) . "\n"
. 'Состав: ' . implode( ', ', $items );
tg_send_message( $text );
} );Куда поместить код. Не в functions.php основной темы – при её обновлении всё сотрётся. Варианты по надёжности: собственный мини-плагин (лучший выбор) или дочерняя тема. Мини-плагин – это один файл в wp-content/plugins/tg-notify/tg-notify.php с заголовком:
<?php
/**
* Plugin Name: TG Notify
* Description: Уведомления сайта в Telegram.
* Version: 1.0
*/
// Здесь функция tg_send_message() и хуки из примеров выше.После активации в админке он живёт своей жизнью и не зависит от темы.
Обработка ошибок. В примерах выше уже заложен минимум: проверка is_wp_error(), разбор ответа API и логирование через error_log() – смотрите wp-content/debug.log при включённом WP_DEBUG_LOG. Для критичных уведомлений (оплаты) имеет смысл добавить повторную попытку при сетевом сбое – например, через wp_schedule_single_event() на +5 минут, если первая отправка вернула ошибку таймаута.
Безопасность: токен бота и защита от спама
Токен – это пароль. Не храните его в коде плагина и тем более в репозитории. Правильное место – wp-config.php: это PHP-файл, содержимое которого при штатной работе сервера не отдаётся в браузер, и который обычно исключён из git:
// wp-config.php
define( 'TELEGRAM_BOT_TOKEN', '7123456789:AAEhBOweik6ad9r_QXMENQjcrGbqCr4K-4c' );
define( 'TELEGRAM_CHAT_ID', '-412345678' );Чтение из кода вы видели в примерах выше – через defined(). На серверах с управляемым окружением альтернатива – переменные окружения и getenv().
При утечке токена (скриншот ушёл в чат, токен попал в коммит): BotFather → /revoke → выберите бота → получите новый токен. Старый мгновенно перестаёт работать. Обновите значение в wp-config.php – на этом всё.
Ограничение получателей. Жёстко задавайте chat_id на стороне отправителя и не принимайте его из внешних данных (например, из полей формы – иначе форму можно использовать для рассылки через вашего бота).
Защита форм от спама – до отправки в Telegram. Как только вы подключите форму к чату менеджеров, каждый спам-бот получит прямой канал в ваш Telegram. Минимальный набор: honeypot-поле (невидимое поле-приманка, которое заполняют только боты), reCAPTCHA v3 или Cloudflare Turnstile, ограничение частоты отправки формы с одного IP (rate-limit) на стороне плагина форм или сервера. Проверьте после настройки: день-два наблюдений за чатом покажут, пробивается ли спам.
Персональные данные. Имя, телефон и комментарий клиента, уходящие в Telegram, – это передача ПДн третьей стороне (Telegram) по 152-ФЗ. Формально корректная схема: в форме есть согласие на обработку ПДн, в политике конфиденциальности упомянута передача данных в мессенджер для обработки обращений. Платёжные данные, номера карт и пароли в Telegram не отправляйте никогда.
Готовые плагины – с проверкой. Перед установкой посмотрите: когда обновлялся, что в отзывах, не шлёт ли данные на сторонние серверы (для платных «облачных» коннекторов это типично – заявка проходит через их прокси). Если это критично, аудит трафика через логи веб-сервера или выбор в пользу собственного кода решают вопрос радикально.
Чек-лист запуска и типичные проблемы
Перед тем как считать интеграцию готовой, пройдитесь по списку:
- бот создан, токен получен и сохранён в
wp-config.php, а не в коде; - chat_id получен и проверен тестовым запросом
sendMessageиз браузера; - бот добавлен в группу и имеет права на отправку сообщений;
- тестовая заявка с сайта дошла, все поля шаблона заполнены корректно;
- включена спам-защита форм;
- тестовый заказ WooCommerce дошёл с верным составом и суммой.
Если сообщения не приходят, диагностика по шагам:
https://api.telegram.org/bot<TOKEN>/getMe– бот жив? Если нет, проблема с токеном или с доступом к api.telegram.org с вашей машины.getUpdates– есть ли ваш chat_id и не изменился ли он (переход в супергруппу).- Права бота в группе – отправка сообщений разрешена?
- Сервер: не блокирует ли хостинг исходящие HTTPS-соединения к api.telegram.org? Проверка –
curl -s https://api.telegram.org/bot<TOKEN>/getMeпо SSH с сервера. Дешёвые shared-хостинги иногда режут исходящие соединения; решается обращением в поддержку хостинга или переездом на VPS. - Логи:
wp-content/debug.log– там будут ответы API с описанием ошибки.
Если сообщения приходят с ошибкой форматирования (can't parse entities) – в данных пользователя попали <, > или &, либо в шаблоне незакрытый HTML-тег. Лечение – htmlspecialchars() для всех пользовательских полей.
Если Telegram API недоступен с хостинга (актуально для некоторых регионов и дата-центров), обходные пути: проксирование запросов через промежуточный сервис/сервер в доступной юрисдикции или отправка через очередь с ретраями. Готовые облачные коннекторы решают это тем, что шлют со своих серверов, – но ценой передачи им ваших заявок.
Мониторинг после запуска. Простая практика: раз в неделю тестовая заявка с каждой формы сайта. Продвинутая: ежедневное служебное сообщение от бота («интеграция жива») через WP-Cron (встроенный планировщик задач WordPress) – если утром сообщения нет, интеграция упала раньше, чем это заметят по пропавшим лидам.
Заключение
Три сценария – заявки из форм, заказы WooCommerce и приём обращений в поддержку – закрывают подавляющее большинство потребностей малого бизнеса в связке WordPress + Telegram. Базовая настройка занимает около получаса: бот через BotFather, chat_id, плагин или 60 строк собственного PHP.

Разумный путь: начните с плагина – он даст результат за один вечер. Когда требования вырастут (кастомные поля, разделение потоков, условия), переходите на собственный код через Bot API: примеры из этой статьи – рабочая основа, останется подставить свои поля.
Следующий шаг после настройки уведомлений – связать Telegram с CRM, чтобы заявки не только приходили быстро, но и фиксировались в воронке продаж с ответственными и сроками. Об этом – в нашей статье «Интеграция WordPress с российскими CRM: Битрикс24, amoCRM и МойСклад».



