Заявки в Telegram надходять швидше, ніж на пошту, і їх одразу бачить уся команда. Налаштувати це можна трьома способами: увімкнути інтеграцію в налаштуваннях платформи сайту, написати невеликий скрипт із ботом або підключити готовий сервіс. Розберемо кожен — із робочим кодом і типовими помилками.
Який спосіб обрати
| Спосіб | Кому підходить | Що потрібно |
|---|---|---|
| Налаштування платформи | Сайт на конструкторі або WordPress | Знайти інтеграцію в налаштуваннях форм або плагін |
| Власний скрипт із ботом | Є розробник і сервер із PHP, Node.js або Python | Бот, chat id, серверний скрипт |
| Готовий сервіс | Сайт на власному коді, а писати бекенд для форм не хочеться | Підключити скрипт сервісу й бота |
Крок для будь-якого способу: створіть бота
Заявки в Telegram надсилає бот. Створити його можна за кілька хвилин:
- Відкрийте в Telegram @BotFather і надішліть команду
/newbot. - Придумайте ім’я бота й адресу — вона має закінчуватися на
bot, наприкладmyshop_leads_bot. - BotFather надішле токен — рядок вигляду
123456789:AA…. Це ключ до бота: не публікуйте його й не вставляйте в код сторінки. - Знайдіть свого бота й натисніть «Почати». Бот у Telegram не може написати людині першим — без цього кроку повідомлення не надходитимуть.
Спосіб 1. Налаштування платформи сайту
У багатьох конструкторах сайтів і CRM підключення Telegram є просто в налаштуваннях приймання заявок: ви вставляєте токен бота або авторизуєте офіційного бота платформи. Для WordPress є плагіни, які надсилають у Telegram заявки з популярних плагінів форм. Шукайте в довідці своєї платформи розділ про «отримання даних із форм» або «сповіщення».
Плюс — нічого не треба програмувати. Мінус — спосіб працює лише в межах своєї платформи: під час переїзду на інший сайт усе доведеться налаштовувати заново, а інколи приймання заявок доступне лише на платному тарифі.
Спосіб 2. Власний скрипт із ботом
Якщо сайт зроблено на власному коді і є сервер, заявку можна надіслати в Telegram через Bot API — метод sendMessage. Потрібні токен бота і chat id одержувача.
Як дізнатися chat id
- Напишіть боту будь-яке повідомлення — або додайте бота в групу й напишіть у ній.
- Відкрийте в браузері
https://api.telegram.org/bot<токен>/getUpdates, підставивши свій токен. - У відповіді знайдіть
"chat":{"id":…}. В особистого чату це додатне число, у групи — від’ємне (у великих груп починається з-100).
Якщо замість списку повідомлень прийшла помилка про webhook, у бота вже налаштовано webhook і getUpdates для нього не працює. Зніміть webhook методом deleteWebhook або створіть окремого бота для заявок.
Обробник на PHP
Скрипт приймає дані форми, перевіряє поле-пастку й надсилає повідомлення. Токен і chat id беруться зі змінних оточення сервера, а не зберігаються у файлі, який може потрапити в загальний доступ.
<?php
// send.php — лежить на вашому сервері поруч із сайтом
$token = getenv('TG_BOT_TOKEN'); // токен — у налаштуваннях сервера, не в коді сторінки
$chatId = getenv('TG_CHAT_ID');
// Приховане поле-пастка: людина його не бачить, бот заповнює
if (!empty($_POST['website'])) { exit; }
$name = trim($_POST['name'] ?? '');
$phone = trim($_POST['phone'] ?? '');
$message = trim($_POST['message'] ?? '');
if ($phone === '') {
http_response_code(400);
exit('Вкажіть телефон');
}
// Простий текст без parse_mode — не потрібно екранувати HTML
$text = "Заявка з сайту\nІм’я: $name\nТелефон: $phone\n\n" . mb_substr($message, 0, 3000);
$ch = curl_init("https://api.telegram.org/bot$token/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => ['chat_id' => $chatId, 'text' => $text],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
]);
$ok = json_decode((string) curl_exec($ch), true)['ok'] ?? false;
http_response_code($ok ? 200 : 502);
echo $ok ? 'Дякуємо! Ми скоро зв’яжемося з вами' : 'Не вдалося надіслати — зателефонуйте нам';<form action="/send.php" method="post">
<input name="name" placeholder="Ім’я">
<input name="phone" type="tel" placeholder="Телефон" required>
<textarea name="message" placeholder="Повідомлення"></textarea>
<!-- пастка для ботів: прихована від людей -->
<input name="website" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px">
<button>Надіслати</button>
</form>Часті помилки
- Токен у JavaScript на сторінці. Його побачить будь-який відвідувач і зможе розсилати повідомлення від імені бота. Надсилання — лише із сервера.
- Немає захисту від спаму. Форма, яка шле все підряд у Telegram, за тиждень почне надсилати рекламу. Мінімум — поле-пастка й обмеження кількості надсилань з однієї адреси.
- Розмітка без екранування. З
parse_mode=HTMLсимвол<у повідомленні відвідувача ламає надсилання. Надсилайте простий текст або екрануйте дані. - Довге повідомлення. Telegram приймає до 4096 символів в одному повідомленні — обрізайте текст заявки.
- Заявка лише в Telegram. Якщо надіслати не вдалося, заявку втрачено. Зберігайте її ще й у базі даних або дублюйте на пошту.
Спосіб 3. Готовий сервіс без бекенду
Якщо сайт на власному коді, а писати й підтримувати обробник не хочеться, приймання заявок можна доручити сервісу. Так працюють форми Sitecog: скрипт на сторінці перехоплює надсилання будь-якої форми, зберігає заявку в CRM і надсилає сповіщення вашому боту.
<script src="https://widget.sitecog.com/widget.js" defer></script>
<form data-crm-lead="callback">
<input name="name" placeholder="Ім’я">
<input name="phone" type="tel" placeholder="Телефон">
<textarea name="message" placeholder="Повідомлення"></textarea>
<button>Надіслати</button>
</form>Що бере на себе сервіс:
- ім’я, телефон, пошту й повідомлення сервіс знаходить за назвами полів, решта полів зберігається в заявці;
- захист від спаму без капчі: поле-пастка й одноразовий пропуск, сумнівні заявки надходять із позначкою, подвійний клік не створює дубль;
- сповіщення в Telegram протягом хвилини: назва форми, контакти, початок повідомлення й посилання на заявку в CRM;
- кілька одержувачів, особисті чати й групи, у кожного свої тихі години — нічні заявки прийдуть уранці;
- заявка не губиться, навіть якщо Telegram недоступний: вона вже збережена в CRM, а за згоди відвідувача на статистику — з каналом і UTM-мітками;
- працює з формами на HTML, у темах WordPress і в застосунках на React і Vue (
window.crmLead()).
Одержувачів не треба шукати за chat id: кожен пише вашому боту /start, а ви натискаєте «Оновити список» у налаштуваннях заявок. Нові одержувачі додаються вимкненими — боту може написати будь-хто, і контакти клієнтів побачать лише ті, кого ви ввімкнули самі.
Як перевірити, що все працює
- Надішліть тестову заявку із сайту з телефона й з комп’ютера.
- Перевірте, що повідомлення прийшло всім одержувачам і в групу.
- Надішліть форму з порожнім телефоном — вона не має відправитися.
- Через тиждень загляньте в список заявок: чи немає спаму і втрачених надсилань.
Часті питання
Як дізнатися chat id для Telegram?
Напишіть своєму боту будь-яке повідомлення (або додайте бота в групу й напишіть там), потім відкрийте в браузері https://api.telegram.org/bot<токен>/getUpdates. У відповіді знайдіть "chat":{"id":…} — це і є chat id. У груп він від’ємний.
Чому бот не надсилає повідомлення?
Найчастіше — одержувач жодного разу не написав боту: бот у Telegram не може написати людині першим. Ще буває неправильний chat id, бота видалили з групи або токен перевипустили в @BotFather. Якщо getUpdates повертає помилку про webhook, у бота налаштовано webhook — його треба зняти або використати іншого бота.
Чи можна надсилати заявки в Telegram просто з JavaScript на сторінці?
Технічно так, але робити цього не можна: токен бота опиниться в коді сторінки, і будь-який відвідувач зможе ним скористатися — читати повідомлення бота й розсилати спам від його імені. Токен має зберігатися лише на сервері.
Як надсилати заявки одразу кільком співробітникам?
Найпростіше — створити групу в Telegram, додати туди бота й співробітників і надсилати повідомлення в групу. У своєму скрипті можна також перебрати кілька chat id. У Sitecog одержувачів обирають галочками, і в кожного свої тихі години.
Скільки це коштує?
Telegram Bot API безкоштовний. Власний скрипт коштує часу розробника й хостингу з PHP або іншою серверною мовою. У Sitecog заявки з форм входять у тариф Pro ($79 за 30 днів), кількість заявок не обмежена.