Проекты
Заявка с сайта → Telegram
Сквозной сценарий: HTML-форма → PHP → sendMessage менеджеру, lead_id в БД, inline-кнопка.
Цель: форма на сайте за секунды оказывается у менеджера в 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.