Телефон

На данный момент чат-бот Zabotix поддерживает только российский формат, а это значит, что переданный номер должен начинаться на 7 или 8, быть не менее 10 и не более 15 символов длиной, содержать только цифры (плюс и скобки игнорируются).

Чтобы получить корректный номер телефона от клиента, выберите в типе ответа "Ждать произвольный ответ пользователя" в поле "Проверить ответ на соответствие формату" - Телефон.

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

Полученный телефон вы можете записать либо в строковую переменную, либо в числовую, либо в переменную с типом данных "Телефон". Рекомендуем последний вариант.



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

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

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







Для примера, настроим простой сценарием. Запрашиваем у клиента номера телефона.



Укажем тип ответа "Ждать произвольный ответ пользователя".

Выберем формат "Телефон".

Включим параметр "Показать кнопку отправки контакта в мессенджерах".

Оставим текст для мессенджеров по умолчанию.

Результат запишем в переменную с типом "Телефон".



После корректного ответа клиента переведём его в другой узел.



Если ответ не корректный - дадим клиенту 2 попытки указать телефон ещё раз, написав ему сообщение, что указанный им номер некорректный.
Иначе переводим в другой узел.




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



В другом узле с некорректным ответом переведём диалог клиента на оператора.



В итоге получаем три простых узла. Один - запрос телефона, два других - реакция на полученный ответ.





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



Если клиент напишет что-то лишнее, то чат-бот попросит написать снова в правильном формате.



Если клиент израсходует все попытки - чат-бот переведёт его в другой узел и подключит оператора.



Если клиент напишет телефон в верном формате - чат-бот также переведёт его в другой узел, но уже с другим ответом.





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

Так это видит клиент. В данном случае в чат отправился дополнительный текст, так как вы включили параметр "Показать кнопку отправки контакта в мессенджерах".



Так это выглядит в истории диалога Битркис24. Данное сообщение в истории отображается как системное.



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





При нажатии на кнопку клиент будет предупреждён мессенджером, что данная кнопка отправит номер телефона в чат.

Если клиент нажмёт "Поделиться" - телеграм отправит карточку контакта боту.



В чате Битркис24 это два разных сообщения - цитата и сообщение с данными с именем клиента и его номером телефона.
Чат-бот игнорирует цитату и получает номер из второго сообщения. В данном случае его не интересуют лишние слова, он уже знает формат Telegram и обрабатывает сообщение корректно, получая из него номер телефона.





Аналогично в Viber клиенту придёт сообщение + кнопка.



Viber также предупреждает, что кнопка отправляет номер телефона.



В отличие от Telegram, когда клиент нажмёт "Поделиться номером", то в чат отправится текст кнопки от имени клиента. Но это только со стороны самого клиента. 



В чат Битрикс24 придётся другая информация: текст кнопки + номер телефона.
Чат-бот уже ожидает подобный формат и сам получает номер телефона из данного сообщения, записывая его в переменную.