Блог

Аўтаматызацыя 8 хв чытання

Telegram-бот для бізнэсу: сцэнары, кошт і бяспечная рэалізацыя на PHP

Telegram-бот – адзін з самых танных спосабаў дастаўляць камандзе інфармацыю ў рэальным часе і, там дзе кліенты сядзяць у Telegram, мець зносіны з імі. У гэтым артыкуле сапраўды разабрана, дзе ён дарэчны для амерыканскай кампаніі, якія сцэнары акупляюцца хутка, і дадзены працоўны код на PHP з важнымі правіламі бяспекі.

Вокладка артыкула: 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 да працоўнага вэбхука

  1. Стварыце бота. У Telegram напішыце BotFather, стварыце бота і скапіюйце токен. Токен - гэта пароль: захоўвайце яго як сакрэт на серверы, не ў кодзе і не ў Git.
  2. Стварыце камандны чат ці групу, дадайце бота і даведайцеся ID чата з першага абнаўлення, якое атрымае бот.
  3. Абярыце рэжым. Long polling прасцей за ўсё ў распрацоўцы. У прадакшне выкарыстоўвайце вэбхук: Telegram выклікае ваш HTTPS-адрас для кожнага абнаўлення.
  4. Зарэгіструйце вэбхук з сакрэтным токенам, каб адхіляць усіх, хто знойдзе адрас:
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. Тыдзень 1: бот-паведаміцель па плацяжах і памылкам ва ўнутраным чаце.
  2. Тыдзень 2: дадаць апавяшчэння аб заяўках і штодзённую зводку.
  3. Тыдня 3-4: дадаць ўзгаднення з кнопкамі і часопіс дзеянняў.
  4. Пазней: падтрымка кліентаў або адказы ІІ там, дзе ваша аўдыторыя выкарыстоўвае Telegram, з вымярэннем па часе адказу і колькасці зваротаў.

Чым мы можам дапамагчы

Мы праектуем і ствараем аўтаматызацыю ў Telegram, вэб-чаце і месэнджарах для кампаній разам з інтэграцыямі за ёй: плацяжы, CRM, пошта і ІІ. Прачытайце пра нашу паслугу інтэграцый або запішыцеся на кароткі званок і раскажыце, які працэс хочаце аўтаматызаваць першым.

Частыя пытанні

Ці карысны Telegram-бот для бізнесу ў ЗША?

Так, у асноўным як унутраны канал для алертаў, узгадненняў і справаздач і як канал для міжнароднай аўдыторыі, якая карыстаецца Telegram. Для амерыканскіх спажыўцоў SMS, WhatsApp, пошта і вэб-чат звычайна ахопліваюць больш людзей.

Колькі каштуе ўтрымліваць Telegram-бота?

Bot API бясплатны пры звычайным выкарыстанні. Вы плаціце за распрацоўку, невялікі сервер і падлучаныя сэрвісы накшталт ІІ-мадэляў ці CRM. Просты бот-паведамнік робіцца за гадзіны, працэс узгадненняў або бот падтрымкі з ІІ – за дні і тыдні.

Што абраць: вебхук ці long polling?

Long polling – для распрацоўкі, вебхуки – для прадакшна. Рэгіструйце вебхук з сакрэтным токенам, правярайце яго пры кожным запыце і адказвайце хутка, а цяжкую працу рабіце ў фоне.

Ці бяспечна адпраўляць бізнес-дадзеныя праз Telegram-бота?

Ставіцеся да чатаў ботаў як да пошты. Не адпраўляйце паролі, ключы, нумары карт і медыцынскія дадзеныя, абмяжуйце робата дазволенымі чатамі і карыстальнікамі і вядзіце часопіс дзеянняў. Звычайныя чаты робатаў не маюць скразнога шыфравання.

Ці можа Telegram-бот прымаць плацяжы або ўзгадняць вяртанні?

Робат можа запускаць і пацвярджаць працэсы, напрыклад прасіць мэнэджара ўзгадніць вяртанне, а сам плацёж праводзіць ваш плацежны правайдэр. Не зьбірайце дадзеныя карт усярэдзіне чата.

Бясплатны званок для выяўлення

Прынясіце бязладны стэк ці завіслую інтэграцыю - Integrono намячае самы разумны першы крок.

Вы атрымліваеце экспертную ацэнку бюджэтных пастак, залежнасцей і таго, ці варта купляць, склейваць ці будаваць - да пачатку платнай працы. CEO застаецца ў кантуры.