← Назад к заметкам

Заметки

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

Как запросить телефон клиента в Telegram-боте и связать его с контактом CRM: ограничения штатной интеграции и свой бот или коннектор.

Username в Telegram не является надёжным ключом клиента. Если нужно связать Telegram-клиента с CRM, лучше получить подтверждённый телефон через кнопку запроса контакта и затем искать или создавать контакт.

Задача

Клиент пишет в Telegram, а в CRM нужно понять, какой это контакт.

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

Запрос телефона в Telegram

В своём Telegram-боте можно отправить клавиатуру с кнопкой запроса контакта.

{
    'chat_id' => $telegram_chat_id,
    'text' => 'Подтвердите номер телефона',
    'reply_markup' => [
        'keyboard' => [
            [
                [
                    'text' => 'Отправить телефон',
                    'request_contact' => true,
                ],
            ],
        ],
        'resize_keyboard' => true,
        'one_time_keyboard' => true,
    ],
}

Важно: клиент должен сам нажать кнопку и отправить контакт. Бот не может просто прочитать телефон пользователя без его действия.

Связь с CRM

После получения телефона бот ищет контакт и сохраняет связку внешнего Telegram ID с CRM.

BX24.callMethod(
    'crm.duplicate.findbycomm',
    {
        type: 'PHONE',
        values: ['+79990000000'],
    },
    function (result) {
        console.log(result.error() || result.data());
    }
);

Если контакт найден, его можно связать с диалогом. Если не найден — создать новый контакт или передать оператору сценарий ручной проверки.

Почему часто нужен свой коннектор

Штатная интеграция не всегда даёт нужный контроль над Telegram-кнопками и верификацией телефона.

Если нужен сценарий с запросом телефона, сохранением внешнего ID и дальнейшей CRM-логикой, удобнее делать собственного бота или коннектор, а не пытаться настроить всё только роботами.