Перейти к основному содержимому

Клиент вводит номер телефона

Бота можно научить общаться с клиентами, если показать ему разные варианты реакций клиента и ответов на них.

Эти реакции закладываются в блок Интенты (от англ. intent — намерение). В зависимости от намерения клиента бот направит разговор по подходящей ветке сценария.

Реакции клиента часто можно предугадать. Например, в процессе диалога клиент может написать или сказать свой номер телефона. Бот может получить этот номер несколькими способами.

При помощи этих способов можно получать только российские мобильные номера.

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

Вы можете получить номер телефона клиента двумя способами:

  • Через блок phone to $var:
    • Бот будет пытаться распознать номер телефона, то есть системную сущность $PHONE внутри сообщения клиента. Бот распознает номер, даже если клиент напишет в сообщении другие слова до или после номера телефона.
    • При помощи блока phone to $var вы можете получить только номер телефона на одном экране.
  • Через готовый интент Номер телефона:
    • Бот распознает номер телефона строго по шаблону $PHONE. Если клиент напишет дополнительные слова до или после номера телефона, бот не распознает его.

    • Бот может одновременно пытаться распознать в сообщении клиента несколько типов контактных данных, поэтому вы можете добавить несколько готовых интентов на один экран. Например, таким образом можно запросить номер телефона или email:

Готовый интент Номер телефона

Готовый интент Номер телефона доступен в секции Реплики пользователя палитры блоков:

Добавьте этот интент в сценарий, чтобы бот распознал в сообщении клиента системную сущность $PHONE и сохранил номер телефона клиента в переменную $phone.

Готовый интент Номер телефона содержит следующее регулярное выражение:

$regexp<(\+?(8|7)[\-\s]?)?\(?9\d{2}\)?[\-\s]?\d{3}[\-\s]?\d{2}[\-\s]?\d{2}>

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

Запись номера цифрами

Интент Номер телефона принимает номера, которые содержат:

  • код 8 или +7 в начале номера;
  • цифру 9 после кода;
  • 9 цифр номера.

Готовый интент Номер телефона также принимает номера без кода, если они состоят из 10 цифр и начинаются на цифру 9. Например, бот примет такой номер:

901 234 56 78

Также бот примет номер, если между цифрами он содержит:

  • скобки — 8(901)2345678;
  • тире — 8-901-234-56-78;
  • пробелы — 8 901 234 56 78.

Вне зависимости от того, с каким кодом и символами между цифрами клиент напишет номер, бот сохранит номер в переменную $PHONE в формате +79xxxxxxxxx. Например: +79012345678.

Запись номера словами

С помощью интента Номер телефона бот также распознает номера, написанные словами.

Например, если клиент напишет восемь девять один два три четыре пять шесть семь восемь девять, бот сохранит в переменную $PHONE значение +79123456789.

Бот распознает номер, если клиент напишет или произнесет его в следующем формате:

  1. Код 8 или +7 в начале номера, то есть, слова восемь или плюс семь.
  2. Трехзначное число, начинающееся с цифры 9, например: девять один один или девятьсот одиннадцать.
  3. Три цифры, написанные одним из способов:
    • три цифры подряд: восемь шесть пять;
    • ноль и двузначное число: ноль восемьдесят один;
    • трехзначное число: триста двадцать шесть.
  4. Четыре цифры, написанные одним из способов:
    • четыре цифры подряд: три восемь шесть один;
    • ноль, цифра и двухзначное число: ноль пять шестьдесят три;
    • ноль и трехзначное число: ноль восемьсот тридцать два;
    • два двузначных числа: двадцать три сорок семь;
    • двузначное число, ноль и цифра: семьдесят три ноль пять.

Как получить другой номер телефона

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

В блоке Интенты нажмите Создать интент и вставьте свои выражения.

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

Украинский номер

Чтобы получить номер телефона Украины, дополните интент Номер телефона выражением:

$regexp<^((3|8)[-]?)(\d{3}[-]?)(\d{3}[-]?)(\d{2}[-]?)(\d{2})$>

Белорусский номер

Чтобы получить номер телефона Беларуси, укажите выражение:

$regexp<^(\+375|80)(29|25|44|33)(\d{3})(\d{2})(\d{2})$>

Казахстанский номер

Чтобы получить номер телефона Казахстана, укажите выражение:

$regexp<^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$>

Также вы можете получить городской номер телефона.

Использование номера телефона в сценарии

Номер телефона, распознанный при помощи интента Номер телефона, сохранится в переменную $PHONE.

Если сработает регулярное выражение, которое вы добавили сами, бот сохранит полученный номер телефона в переменную $queryText.

Если в вашем сценарии есть другие интенты, номер будет храниться в переменной $queryText до тех пор, пока не сработает другой интент. Когда клиент введет любой текст по другому интенту, этот текст сохранится в $queryText вместо номера телефона.

Чтобы сохранить номер из $queryText в переменную $PHONE или в другую переменную, добавьте в сценарий условие:

Пример участка сценария с пользовательским регулярным выражением:

Пример диалога: