Статья

Как запросить контакт в Telegram-боте и проверить связь с пользователем

Как запросить контакт в Telegram-боте и проверить связь с пользователем. Построить добровольную передачу телефона с проверкой отправителя: порядок действий, условный пример, проверка результата и ограничения интеграции.

marketingРедакция Deskgram 22026-10-22

Ключевые выводы

  • Обычная и inline клавиатура Telegram бота: что выбрать для рабочего сценария
  • Приём документов Telegram ботом: формат, размер и проверка заявки
  • Номер телефона не приходит боту автоматически вместе с первым сообщением пользователя.
  • Если он нужен для связи с заказом или обратного звонка, приложение должно предложить отдельное понятное действие.

Номер телефона не приходит боту автоматически вместе с первым сообщением пользователя. Если он нужен для связи с заказом или обратного звонка, приложение должно предложить отдельное понятное действие. При этом сам полученный номер ещё не даёт права открыть любые сведения клиента в CRM.

Полезно разделить три задачи: получить контакт, проверить происхождение данных и связать их с внутренней записью. Когда эти шаги смешивают, бот начинает считать любой присланный номер подтверждённой личностью. Ниже разобран сценарий добровольной передачи контакта в личном разговоре с ботом без запроса паролей и скрытого сбора сведений.

Определите, зачем нужен номер

Если бот отвечает на общий вопрос, телефон может вообще не требоваться. Для обратного звонка он нужен как способ связи, а для поиска заказа — как один из ориентиров. Это разные назначения. Уточните их до создания обязательного поля, чтобы человек не передавал лишние сведения ради просмотра справки.

Объясните назначение рядом с кнопкой. Формулировка «оставьте контакт для согласования времени звонка» понятнее общего «пройдите проверку». Если номер передаётся в связанную систему обслуживания, описание должно соответствовать реальному процессу. Не обещайте, что сведения используются только внутри Telegram, когда они сохраняются в CRM.

Предусмотрите отказ или другой путь для задач, где контакт необязателен. Например, человек может продолжить общую консультацию сообщениями. Если без номера конкретная услуга недоступна, объясните это ограничение до заполнения длинной анкеты, а не после последнего вопроса.

Штатная кнопка и ручной ввод

Bot API предусматривает кнопку запроса контакта в поддерживаемом контексте. Используйте её по текущим правилам платформы и проверьте поведение в личном чате. Не рассчитывайте, что та же клавиатура будет одинаково работать во всех типах разговоров и сторонних клиентах без проверки.

Ручной ввод номера может быть полезным запасным вариантом, но его нужно обозначать как введённые пользователем данные. Человек способен ошибиться, указать рабочий телефон коллеги или отправить номер для другого получателя звонка. Это не то же самое, что подтверждение владения связанным кабинетом.

Если приложение принимает контакт, проверьте доступные поля объекта и соответствие отправителю там, где это применимо. Контакт может быть передан и другим способом. Нельзя считать любой объект Contact доказательством, что номер принадлежит именно написавшему человеку. Отсутствующие поля следует обрабатывать как отдельный случай, а не подставлять догадку.

Не превращайте контакт в универсальную авторизацию

Номер может встречаться в нескольких карточках CRM и со временем переходить другому владельцу. Поэтому поиск по нему полезен для предложения возможного соответствия, но не всегда достаточен для выдачи заказов, документов или доступа к личному кабинету. Уровень подтверждения должен соответствовать последствиям операции.

Для привязки кабинета используйте отдельную предусмотренную процедуру. Например, авторизованный пользователь кабинета может выпустить одноразовое подтверждение связи. Конкретный механизм проектирует ваша команда. Важно, что бот не просит пароль от Telegram или внешний постоянный пароль и не получает доступ по одному совпадению цифр.

Оператору следует показывать статус связи: номер получен, контакт уточнён, кабинет подтверждён. Если все состояния выглядят одинаково, сотрудник может случайно раскрыть сведения, приняв свободно введённый телефон за завершённую проверку. Различие должно быть видно в рабочем интерфейсе, а не только в документации разработчика.

Условный пример: заявка на обратный звонок

Предположим, человек хочет согласовать установку оборудования. Бот объясняет, что номер нужен для звонка сотрудника, и предлагает штатную кнопку передачи контакта. После получения показывает номер в маскированном или другом принятом для проверки виде и просит подтвердить удобное время.

Клиент сообщает, что звонить нужно на рабочий телефон, а не на номер аккаунта. Сценарий допускает отдельный ввод с понятным назначением. В записи заявки сохраняется, что это контакт для звонка, а не подтверждение владения CRM-профилем. Оператор видит эту границу и не использует номер для доступа к чужим заказам.

Если человек ошибся цифрой, он может исправить значение до отправки. После подтверждения создаётся одна заявка с выбранным временем. Пример условный: Telegram предоставляет средства ввода, а поля назначения, сводку и передачу сотруднику реализует приложение бота.

Проверка формата и нормализация

Телефоны вводят с пробелами, скобками и разными префиксами. Приложению нужен согласованный способ нормализации, который не уничтожает смысл номера. Используйте проверенную библиотеку и правила поддерживаемых регионов, если проект работает с международными контактами. Не удаляйте все символы вслепую и не добавляйте код страны без объяснения.

Ошибку показывайте конкретно: номер не распознан, требуется код страны или выбранный формат не поддерживается. Не сообщайте, что телефон существует и принадлежит человеку, если была выполнена только проверка синтаксиса. Форматирование и подтверждение доступности связи являются разными проверками.

Сохраняйте исходный ввод только при наличии рабочей необходимости и установленных правил. Для звонка сотруднику обычно нужен нормализованный номер и назначение контакта. Внутренние журналы ошибок не должны автоматически получать полную копию всех введённых персональных сведений ради удобства отладки.

Повторный запрос и изменение контакта

Если номер уже получен, не спрашивайте его заново без причины. Покажите возможность подтвердить текущий контакт или заменить его. При этом учитывайте срок актуальности: давняя запись могла измениться. Порядок повторного подтверждения зависит от задачи, а не от желания каждый раз собирать одну и ту же анкету.

Изменение контакта для звонка не должно молча менять все данные клиента в CRM. Возможно, человек указал временный номер или контакт другого участника заказа. Разделите поля назначения и определите, кто подтверждает обновление основного телефона в клиентском профиле.

После отвязки Telegram от кабинета сохранённый контакт не должен автоматически восстанавливать прежние права доступа. Новый запрос рассматривается по актуальным правилам связывания. Это особенно важно, когда номер используется как поисковый ориентир и приложение пытается облегчить повторный вход.

Проверка сценария перед использованием

Испытайте штатную передачу контакта, ручной ввод, отказ, ошибку формата и изменение перед финальной отправкой. Проверьте случай, когда человек прислал контакт другого лица, и отсутствие ожидаемого поля. Используйте вымышленные или специально предназначенные для теста сведения, а не чужие реальные номера.

Затем проверьте CRM: одинаковый номер в двух карточках, новый пользователь без совпадений и повторная заявка существующего клиента. Бот должен выдавать ровно тот уровень доступа, который подтверждён, и передавать неоднозначные случаи на предусмотренную проверку. Совпадение контакта само по себе не решает все вопросы идентификации.

Успешный сценарий позволяет человеку осознанно передать нужный контакт, исправить его и понять назначение. Команда при этом знает, что подтверждено технически, а что введено свободно. Такое разделение делает дальнейшую поддержку понятнее и помогает избежать ошибочной связи с чужой карточкой.

Как оператору использовать полученный номер

В карточке заявки показывайте назначение контакта рядом с самим значением. Сотрудник должен различать телефон для звонка сегодня и основной контакт профиля. Если пользователь ограничил удобное время, оно должно передаваться вместе с номером, иначе корректно собранная анкета приведёт к неподходящему обращению команды.

После неудачной попытки связи не меняйте номер молча на найденный в старой переписке. Сначала примените согласованный порядок уточнения через тот канал, которым человек воспользовался. Внутренняя заметка о звонке должна содержать результат и следующий шаг, а не только отметку «не ответил». Тогда следующий оператор не начнёт тот же процесс заново, не зная, какие условия клиент уже сообщил и какую попытку команда уже предприняла.

Источники

Параметры кнопки представлены в Bot API: KeyboardButton, поля полученного контакта — в Contact. Доступные способы взаимодействия описаны в Telegram Bot Features.

Читайте также

Полезные ссылки