Чаще всего причина не в коде бота, а в том, что Telegram технически не даёт отправить сообщение пользователю, который сам не написал боту первым.
Пользователь не запускал бота
Бот не может первым написать человеку, который никогда не нажимал /start — это ограничение платформы, а не баг интеграции. Если заявка формы привязана к менеджеру, а не к клиенту, убедитесь, что уведомление уходит именно менеджеру, который бота уже запустил.
Неверный chat_id
chat_id личного чата и chat_id группы — разные числа, и группа может иметь отрицательный id. Если бота добавили в группу заново (удалили и добавили обратно), id создаётся новый — старый сохранённый id перестаёт работать молча, без явной ошибки в логах, если её не проверять отдельно.
Ошибка форматирования текста
Если сообщение отправляется с parse_mode Markdown или HTML, а в тексте заявки случайно оказался символ вроде "*" или "<" без экранирования, Telegram API вернёт ошибку и сообщение не уйдёт. Проверяйте ответ API, а не только факт вызова метода.
Как быстро продиагностировать
Отправьте тестовый запрос к sendMessage напрямую (например, через Postman) с тем же chat_id и токеном — ответ API покажет точную причину: "chat not found", "bot was blocked by the user" или ошибку разметки.



