Каскад собирается из двух каналов: сначала система звонит и подтверждает номер через Flash Call, а если клиент не принял вызов или не ввёл код за отведённое время, тот же код зачитывает голосом Voice OTP. Авторизация не срывается, а SMS остаётся крайним случаем. Ниже — таймауты, число попыток, текст подсказок на экране и ошибки, которые ломают этот сценарий чаще всего.
Как работает Flash Call и где он спотыкается
Flash Call — короткий входящий вызов, на который отвечать не нужно. Номер звонящего и есть код: в одних реализациях приложение считывает его само, и клиент ничего не вводит (Flashcall.by), в других человек вводит последние цифры номера в поле на сайте или в приложении (new-tel.net). Подменить входящий номер сложнее, чем перехватить SMS: номер приходит по голосовому каналу оператора (СП ТЕЛЕКОМ).
Сбои начинаются там, где заканчивается предсказуемость. Телефон в беззвучном режиме. Спам-фильтр смартфона блокирует незнакомый номер. Абонент в роуминге. Форма открыта, номер введён, подтверждения нет, и человек уходит. Незакрытый шаг воронки стоит дороже нескольких отправленных SMS, поэтому резервный канал закладывают в сценарий сразу.
Почему Voice OTP подходит на роль второго шага
Voice OTP — автоматический звонок, который голосом зачитывает код подтверждения. Клиент отвечает и слушает. Такой звонок доходит на кнопочные телефоны и работает без интернета, а если код плохо слышно, его можно прослушать повторно, нажав цифру на клавиатуре (СП ТЕЛЕКОМ).
Переключаться на голос имеет смысл в трёх ситуациях: клиент не понял, что от него хотели; смартфон не дал приложению считать номер входящего; код введён неверно дважды. В каждом из этих случаев код остаётся тем же, меняется только способ доставки.
Каскад пригодится там, где подтверждение стоит между клиентом и деньгами. Запись на выезд мастера по ремонту техники (звонковая авторизация для подтверждения выезда мастера): если подтверждение зависло, мастер уже приехал впустую. Запись к частному стоматологу (Flash Call для подтверждения онлайн-записи к стоматологам): пустое кресло в расписании никто не займёт, а клиент уйдёт к тем, у кого запись подтвердилась за минуту.
Как выстроить каскад переключений
Логика простая: сначала дешёвый канал, потом резервный. Похожий принцип разобран в материале про каскад SMS и Flash Call для подтверждения заказов, вот как он выглядит для авторизации.
- Клиент вводит номер в форму на сайте, в приложении или в карточке CRM. Звонок запускается автоматически, без кнопки «получить код» (МТС Exolve).
- Система делает Flash Call и ждёт подтверждения. Пока идёт ожидание, на экране висит понятная подсказка, а не пустой спиннер.
- Подтверждения нет: истёк таймаут, клиент ввёл неверный код дважды или отказался принимать вызов. Запускается Voice OTP с тем же кодом.
- Клиент не ответил и на голосовой звонок. Тогда срабатывает третий канал: SMS, push или email (МТС Exolve).
- После нужного числа неудач сценарий останавливается, а номер уходит в мониторинг подозрительной активности (МТС Exolve).
Сколько ждать и сколько попыток давать
Flash Call не требует ответа, поэтому ожидание измеряется вниманием клиента, а не гудками. Двадцати-тридцати секунд хватает, чтобы человек посмотрел на экран и увидел входящий. Дальше он переключается на другие дела и возвращается на шаг назад. Оставьте по одной попытке на каждый канал. Две неудачи подряд обычно указывают на проблему с номером: опечатка, чужой телефон, аппарат без SIM. Ограничение числа попыток и мониторинг подозрительной активности (МТС Exolve) ещё и защищают от перебора чужих номеров.
Что показать клиенту на экране
Подсказка на экране экономит заявки. Напишите прямо: «Сейчас позвоним на +375 29 XXX-XX-XX. Отвечать не нужно, код в номере входящего». Рядом поставьте таймер и кнопку «Не могу принять звонок»: она сразу запускает голосовой код, не дожидаясь таймаута. Клиент, который переключил канал сам, не уходит с формы и не звонит в поддержку.
Что проверить в интеграции до запуска
Сценарий запускается автоматически после ввода номера в форму на сайте, в приложении или в карточке CRM (МТС Exolve). Перед запуском пройдитесь по четырём пунктам.
- Нормализация номера. Из форм белорусские номера приходят с «8», пробелами и дефисами, а сервису нужен формат +375. Ошибка здесь выглядит как «клиент не подтвердил», хотя звонок ушёл не туда.
- Идемпотентность. Повторная отправка формы не должна запускать второй звонок и списывать деньги дважды. Ключ на сессию решает это в пару строк.
- Вебхуки со статусами. «Позвонили», «не ответили», «неверный код»: без них вы не узнаете, на каком шаге обрывается каскад.
- Логирование причины переключения. Через месяц этих данных хватит, чтобы поднять долю подтверждений без новой интеграции.
Отдельно проверьте нагрузку. В сезон записей или акций число одновременных запросов растёт, и очередь должна держать его без ручного вмешательства: если авторизация встаёт, клиенты уходят на второй-третий раз.
Сравнение каналов подтверждения
| Канал | Что делает клиент | Где работает | Место в каскаде |
|---|---|---|---|
| Flash Call | Не отвечает; код в последних цифрах входящего номера | Смартфон с приложением, которое считывает номер | Первый шаг |
| Voice OTP | Отвечает, слушает код, при необходимости прослушивает повторно | Кнопочные и смартфоны, интернет не нужен | Второй шаг, если Flash Call не подтвердился |
| SMS с кодом | Читает сообщение и вводит цифры вручную | Любой телефон с SIM | Третий шаг, когда два звонка не сработали |
| Push или email | Открывает приложение или почту | Установленное приложение, активная почта | Для тех, кто не берёт трубку |
Экономика в пользу звонковой верификации: расходы на подтверждение пользователей снижаются до 70% по сравнению с классическими SMS-рассылками (Flashcall.by). Скорость тоже меняется: когда код вводить не нужно, шаг проходится быстрее и доходимость выше (Flashcall.by).
Типичные ошибки
- Оставить одну попытку Flash Call и сразу показать «неверный номер». Клиент с заблокированным незнакомым номером теряется навсегда.
- Поставить Voice OTP первым шагом. Тогда теряется скорость, ради которой выбирают Flash Call: клиенту приходится отвечать, слушать и запоминать цифры.
- Не показать номер, с которого позвонит сервис. Человек видит пустой вызов в журнале и не понимает, какие цифры ему вводить.
- Запускать каскад без ограничения попыток. Один номер можно перебирать бесконечно, а это уже риск злоупотребления (МТС Exolve).
- Не логировать причину отказа канала. Через неделю невозможно понять, почему половина клиентов не доходит до конца подтверждения.
- Тестировать только на своём смартфоне с интернетом. У части клиентов кнопочные аппараты, роуминг и блокировка незнакомых звонков.
3 шага, которые можно сделать на этой неделе
- Посмотрите отказы по шагам в текущей форме: сколько клиентов вводит номер и не доходит до подтверждения.
- Опишите правило переключения: таймаут ожидания, число попыток, резервный канал, условие остановки.
- Прогоните Voice OTP на своём телефоне в тех же условиях, что у клиентов: с блокировкой незнакомых номеров, в роуминге, на кнопочном аппарате.



