Telegram-бот для бізнесу: сценарії, вартість та безпечна реалізація на PHP
Telegram-бот - один з найдешевших способів доставляти команді інформацію в реальному часі і там де клієнти сидять в Telegram спілкуватися з ними. У цій статті чесно розібрано, де він доречний для американської компанії, які сценарії окупаються швидко, і надано робочий код на PHP з важливими правилами безпеки.
Коротко
- Для більшості компаній із США Telegram найкраще працює як внутрішній канал (алерти, погодження, щоденні звіти) та як канал для міжнародних клієнтів та спільнот, а не як основний спосіб зв'язку з американськими споживачами.
- Сам Bot API безкоштовний. Витрати – час розробки, хостинг (невеликий) та підключені ІІ-сервіси або сервіси третіх сторін.
- Найкращі перші проекти: алерти з платежів та помилок, узгодження в один дотик, повідомлення про заявки та бот для первинної обробки підтримки.
- Використовуйте вебхуки з секретним токеном, обмежте бота дозволеними чатами і ніколи не надсилайте через чати паролі, дані карток та іншу чутливу інформацію.
- Закладайте повторні спроби та ліміти швидкості з першого дня, щоб завантажений день не перетворився на втрачені повідомлення.
Коли власники чують Telegram-бот, вони часто представляють споживчу іграшку. На практиці бот — дуже маленька програма, яка поєднує ваші системи з месенджером, який у команди і так є у телефоні. Він може повідомити тієї ж секунди про велике замовлення, попросити менеджера погодити повернення одним натисканням або відповісти на часті запитання клієнтів. Ми робимо таке в рамках нашої роботи з інтеграціями і ось як ми на це дивимося.
Де Telegram доречний для американського бізнесу
Будьте реалістичні щодо аудиторії. У США клієнти переважно користуються SMS, iMessage, WhatsApp, поштою та веб-чатом, а команди – Slack або Microsoft Teams. Telegram має сотні мільйонів користувачів, зосереджених у Європі, Азії, на Близькому Сході та в Латинській Америці. Звідси дві чіткі ролі:
- Внутрішні операції. Він простий, швидкий на мобільних та має безкоштовний, добре документований API для ботів. Багато невеликих команд використовують його для алертів та погоджень, тому що налаштування займає годинник, а не тижні.
- Міжнародні клієнти та спільноти. Якщо ви продаєте або підтримуєте клієнтів на ринках, де Telegram стандарт, бот зустрічає їх там, де вони є. Спільноти продукту, канали оголошень та групи підтримки – типові приклади.
Якщо ваші клієнти здебільшого американські споживачі, для них почніть із веб-чату або SMS, а Telegram залиште для команди. Логіка автоматизації одна й та сама.
Сценарії, які швидко окупаються
- Алерти з платежів та виручки: «Нове замовлення, $1 240, клієнт X» у командному чаті, а також повідомлення про невдалі платежі та повернення. Підключіть їх до платіжних веб-хуків, як описано в нашому посібнику з веб-хуків Stripe.
- Алерти з помилок та доступності: повідомлення, коли бекап не вдався, перевірка здоров'я почервоніла або зросла кількість помилок. Що відстежувати, див. у нашому посібнику з бекапа та моніторингу.
- Узгодження в один дотик: повернення понад ліміт, запит знижки, готовий до публікації матеріал. Менеджер натискає "Схвалити" або "Відхилити" в чаті, і ваша система діє.
- Повідомлення про нові заявки: відправка форми надходить у чат продажів з деталями та кнопкою «Беру». Найшвидший перший контакт зазвичай підвищує конверсію.
- Щоденне зведення: короткий ранковий підсумок із продажів, реєстрацій, тикетів та інцидентів.
- Первинна обробка підтримки та FAQ: бот відповідає на часті запитання, а решта передає людині. Якщо потрібні відповіді ІІ за вашими документами, прочитайте наш посібник з ІІ-чату про вартість, ROI та захист.
Скільки це коштує
Telegram Bot API не бере плату за повідомлення при звичайному використанні. Реальні витрати:
- Розробка: простий бот-повідомник - кілька годин роботи, процес узгоджень або бот підтримки - дні, а бот з ІІ та інтеграцією з CRM - довше.
- Хостинг: досить невеликого сервера. Робот більшу частину часу простоює.
- Сторонні послуги: використання ІІ-моделей, CRM, SMS-провайдер для резервного каналу. Залежать від обсягу.
- Супровід: моніторинг, оновлення та зміни в Bot API. Невелика, але не нульова.
Щоб обґрунтувати витрати, оцініть заощаджений час: хвилини на кожен алерт або узгодження, помножені на обсяг, плюс цінність швидшої відповіді. Багато команд бачать окупність вже першого місяця, адже альтернатива — вручну перевіряти дашборди або втрачати через повільні відповіді.
Налаштування: від BotFather до робочого вебхуку
- Створіть робота. У Telegram напишіть BotFather, створіть бота та скопіюйте токен. Токен це пароль: зберігайте його як секрет на сервері, не в коді і не в Git.
- Створіть командний чат або групу, додайте бота та дізнайтеся ID чату з першого оновлення, яке отримає бот.
- Виберіть режим. Long polling найпростіше у розробці. У продакшні використовуйте вебхук: Telegram викликає вашу HTTPS-адресу для кожного оновлення.
- Зареєструйте вебхук із секретним токеном, щоб відхиляти всіх, хто знайде адресу:
curl -sS "https://api.telegram.org/bot$TG_BOT_TOKEN/setWebhook" \
-d "url=https://example.com/telegram-webhook.php" \
-d "secret_token=$TG_WEBHOOK_SECRET" \
-d 'allowed_updates=["message","callback_query"]' \
-d "drop_pending_updates=true"
Невелика та безпечна реалізація на PHP
Спочатку помічник для виклику API з таймаутом і повтором, коли Telegram просить «повільніше» (HTTP 429):
<?php
function tg(string $method, array $params, int $tries = 3): array {
$url = 'https://api.telegram.org/bot' . getenv('TG_BOT_TOKEN') . '/' . $method;
for ($i = 1; $i <= $tries; $i++) {
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($params),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
]);
$raw = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$res = is_string($raw) ? (json_decode($raw, true) ?: []) : [];
if ($code === 429) { sleep((int)($res['parameters']['retry_after'] ?? 1)); continue; }
if ($code >= 500 || $raw === false) { sleep($i); continue; }
return $res;
}
return ['ok' => false];
}
Потім сповіщення з кнопками узгодження, наприклад коли запрошено повернення вище вашого ліміту:
tg('sendMessage', [
'chat_id' => getenv('TG_OPS_CHAT_ID'),
'parse_mode' => 'HTML',
'text' => 'Refund request <b>#' . $refundId . '</b>: $' . number_format($amount, 2) . "\nCustomer: " . htmlspecialchars($customerName),
'reply_markup' => ['inline_keyboard' => [[
['text' => 'Approve', 'callback_data' => 'refund:ok:' . $refundId],
['text' => 'Reject', 'callback_data' => 'refund:no:' . $refundId],
]]],
]);
І приймач вебхука, який перевіряє секрет, ігнорує незнайомі чати, не обробляє одне оновлення двічі і швидко відповідає:
<?php
// telegram-webhook.php
if (!hash_equals((string)getenv('TG_WEBHOOK_SECRET'), $_SERVER['HTTP_X_TELEGRAM_BOT_API_SECRET_TOKEN'] ?? '')) {
http_response_code(403); exit;
}
$update = json_decode(file_get_contents('php://input'), true);
if (!is_array($update) || !isset($update['update_id'])) { http_response_code(400); exit; }
// idempotency: Telegram may re-deliver an update
if (!claim_update((int)$update['update_id'])) { http_response_code(200); exit; } // e.g. INSERT IGNORE into a table
$chatId = $update['message']['chat']['id'] ?? $update['callback_query']['message']['chat']['id'] ?? null;
$allowed = array_map('intval', explode(',', (string)getenv('TG_ALLOWED_CHATS')));
if (!in_array((int)$chatId, $allowed, true)) { http_response_code(200); exit; } // ignore strangers
if (isset($update['callback_query'])) {
[$what, $decision, $id] = explode(':', $update['callback_query']['data']) + [null, null, null];
if ($what === 'refund' && ctype_digit((string)$id)) {
handle_refund_decision((int)$id, $decision === 'ok', $update['callback_query']['from']['id']);
tg('answerCallbackQuery', ['callback_query_id' => $update['callback_query']['id'], 'text' => 'Recorded']);
}
}
http_response_code(200);
Зверніть увагу на принципи: аутентифікуйте відправника, авторизуйте чат, перевіряйте дані та робіть обробник ідемпотентним. Ті ж принципи можна застосувати до платіжних вебхуків. Перевіряйте і те, хто натиснув кнопку: у групі натиснути може будь-хто, доки ви не обмежите коло тих, хто має право узгоджувати.
Правила безпеки та відповідності вимогам
- Тримайте токен у секреті і перевипускайте його через BotFather, якщо він утік.
- Не надсилайте чутливі дані в чатах: паролі, API-ключі, номери карток та медичні дані. Звичайні чати ботів не захищені наскрізним шифруванням так, як багато хто думає, тому ставтеся до них як до пошти.
- Обмежуйте по чату та по користувачеві. Погодження мають прийматися лише від названих людей.
- Отримуйте згоду на повідомлення клієнтам та давайте простий спосіб відмовитись. Дотримуйтесь правил конфіденційності, які застосовуються до ваших клієнтів, наприклад GDPR для користувачів у Європі, та опишіть роботи в політиці конфіденційності.
- Логуйте дії: хто що погодив і коли.
- Перевірте заходи з нашого чекліста безпеки PHP: бот — ще одна точка входу до ваших систем.
Надійність: ліміти швидкості та повтори
Telegram обмежує швидкість надсилання ботом: приблизно одне повідомлення в секунду в один чат, менше в групах і близько тридцяти повідомлень в секунду в цілому при розсилках. Для всього, що більше за командний чат, ставте повідомлення в чергу і відправляйте з контрольованою швидкістю. Завжди обробляйте відповідь 429 та значення retry_after, відповідайте на вебхуки за секунду-дві, а повільну роботу виконуйте у фоні, і стежте за помилками доставки, щоб помітити зламаного бота так само, як будь-який інший сервіс.
Розумний план впровадження
- Тиждень 1: бот-повідомник з платежів та помилок у внутрішньому чаті.
- Тиждень 2: додати повідомлення про заявки та щоденне зведення.
- Тижні 3–4: додати узгодження з кнопками та журнал дій.
- Пізніше: підтримка клієнтів або відповіді ІІ там, де ваша аудиторія використовує Telegram, з виміром за часом відповіді та кількістю звернень.
Чим ми можемо допомогти
Ми проектуємо та створюємо автоматизацію в Telegram, веб-чаті та месенджерах для компаній разом з інтеграціями за нею: платежі, CRM, пошта та ІІ. Прочитайте про нашу послугу інтеграцій або запишіться на короткий дзвінок та розкажіть, який процес хочете автоматизувати першим.
Часті запитання
Чи корисний Telegram-бот для бізнесу у США?
Так, в основному як внутрішній канал для алертів, погоджень та звітів і як канал для міжнародної аудиторії, яка користується Telegram. Для американських споживачів SMS, WhatsApp, пошта та веб-чат зазвичай охоплюють більше людей.
Скільки коштує утримувати Telegram-бота?
Bot API є безкоштовним при звичайному використанні. Ви платите за розробку, невеликий сервер та підключені сервіси на зразок ІІ-моделей або CRM. Простий бот-повідомник робиться за годинник, процес погоджень або бот підтримки з ІІ - за дні та тижні.
Що вибрати: вебхук чи long polling?
Long polling – для розробки, вебхукі – для продакшну. Реєструйте вебхук із секретним токеном, перевіряйте його при кожному запиті та відповідайте швидко, а важку роботу робіть у фоні.
Чи безпечно надсилати бізнес-дані через Telegram-бота?
Ставтеся до чатів ботів як до пошти. Не надсилайте паролі, ключі, номери карток та медичні дані, обмежте бота дозволеними чатами та користувачами та ведіть журнал дій. Звичайні чати роботів не мають наскрізного шифрування.
Чи може Telegram-бот приймати платежі чи погоджувати повернення?
Робот може запускати і підтверджувати процеси, наприклад просити менеджера погодити повернення, а сам платіж проводить ваш платіжний провайдер. Не збирайте дані карток усередині чату.
Безкоштовний discovery-дзвінок
Хаотичний стек чи зависла інтеграція - Integrono намітить найрозумніший перший крок.
Ви отримуєте senior-погляд на бюджетні пастки, залежності і коли купувати, склеювати чи писати - до старту оплати. CEO лишається в контурі.