Projects

Website lead → Telegram

Цель: форма на сайте за секунды оказывается у менеджера в Telegram — без почты и без «потерялось в spam».

Website form
    ↓
PHP handler
    ↓  INSERT leads + sendMessage
Telegram (manager)
    ↓  callback take:leadId
Your CRM / status update

1. Сохранить лид

$leadId = bin2hex(random_bytes(7));
$pdo->prepare(
  'INSERT INTO leads (id, name, phone, page, created_at) VALUES (?,?,?,?,?)'
)->execute([$leadId, $name, $phone, $page, time()]);

Не используйте $_SESSION как хранилище лида для webhook: это другой HTTP-запрос (и часто другой процесс).

2. Уведомить менеджера

$tg->call('sendMessage', [
    'chat_id' => getenv('TELEGRAM_MANAGER_CHAT'),
    'parse_mode' => 'HTML',
    'text' => '<b>Лид</b> #' . $leadId . "\n" . htmlspecialchars($name, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'),
    'reply_markup' => [
        'inline_keyboard' => [[
            ['text' => 'Взять', 'callback_data' => 'take:' . $leadId],
        ]],
    ],
]);

3. Webhook обрабатывает take:

  • проверить secret_token;
  • идемпотентность по update_id;
  • разобрать callback_data;
  • обновить статус лида;
  • answerCallbackQuery.

Что не обещать в первой версии

  • полноценную CRM;
  • что deep-link сам «продолжит диалог с клиентом»;
  • антиспам формы — добавьте CSRF + Turnstile/hCaptcha отдельно.

База: sendMessage, inline, webhook.