Как запросить контакт пользователя телеграм в модуле воронок?

Задан 5 месяцев назад
Просмотрен 261 раз
1

Как вызвать такое окно подтверждения и сохранить данные в карточку пользователя?

Telegram
refunnels
телефон
пользователь
Сделаем GetOverflow лучше!
Проголосуйте 🔼 за полезные или 🔽 за бесполезные ответы.
1 ответ
0

Телеграм позволяет запросить у пользователя привязанный номер телефона. Это гарантирует, что номер настоящий и принадлежит текущему пользователю. В ответ будет получено событие с контактом (визитной карточкой) пользователя.

Для получения контакта таким образом понадобятся 2 блока:

  • Отправить сообщение
  • Событие чата Telegram

Настройка сообщения

Чтобы запросить контакт, добавьте текст к сообщению, нажмите на кнопку настройки и выберите пункт "Запросить контакт"

Обратите внимание! Эта функция поддерживается только в Telegram и только для кнопок отправленных клавиатурой (т.е. если выбрать опцию "отправить кнопки с текстом сообщения", запрос контакта не сработает).

Сохраните изменения.

Теперь, когда пользователь нажмет на кнопку, у него появится окно с подтверждением.

Настройка события

Добавьте в воронку блок "Событие чата телеграм".

И выберите из выпадающего списка пункт "Получен контакт".

Обратите внимание! Телеграм отправляет событие с контактом не только в этом случае. Если отправить боту любой контакт как вложение, телеграм также пришлет событие с данными контакта. Поэтому, если вам важно получить контакт именно текущего пользователя, установите чек-бокс "Не принимать контакты других пользователей".

Сохраните настройки. Теперь, когда Ваш бот получит карточку контакта, в воронке активируется событие.

Сохранение данных события

Теперь, когда в воронку уже приходит событие, его данные можно обработать стандартными средствами воронки (сохранить в переменную, проверять в условиях, отправить в тексте сообщения и т.д).

Если вы еще не знакомы с переменными, изучите эту статью.

Зайдите в настройки реактивности и установите чек-бокс "установить переменные".

В этом событии доступны следующие свойства:

  • номер телефона event.contact.phone_number
  • имя отправленного контакта event.contact.first_name
  • фамилия отправленного контакта (если есть) event.contact.last_name
  • id телеграм пользователя (если есть) event.contact.user_id
  • дополнительные данные о контакте в виде vCard (если есть) event.contact.vcard

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

Сохраните нужные свойства в переменные. Например так:

user.phone = event.contact.phone_number
user.telegramId = event.contact.user_id

Или можете сохранить весь объект целиком:

user.tgContact = event.contact

В этом случае, когда будете обращаться к переменной, путь будет состоять из двух ., т.е. user.tgContact.phone_number

Сохраните изменения.

Далее вы можете проверять значения этих переменных на стрелках, использовать в тексте и в других авто-действиях (например обновить поле в карточке пользователя).

P.s. Если вы хотите самостоятельно проверить соответствует ли идентификатор отправленного контакта с идентификатором текущего пользователя и построить в зависимости от этого разные реакции, в этом вам помогут условия на стрелках. Идентификатор текущего пользователя находится в переменной события event.chat.originId Т.е. чтобы проверить, что пользователь отправил именно свой контакт, выражение может выглядеть так:

Ваш ответ