Saltar al contenido
verificaOTP

Capítulo 3 de 5 · 13 min de lectura

Orden de fallback inteligente

Decide el canal por país, historial y costo en lugar de una lista fija.

Una lista fija de canales (chat → SMS → voz) es un buen comienzo, pero deja dinero y conversión sobre la mesa. El mejor canal para un número depende del país, de si ese usuario verificó antes y por dónde, y del costo relativo de cada ruta.

Señales para decidir

  • Último canal exitoso del usuario: el mejor predictor que tendrás.
  • País y operador: tasas de entrega históricas por ruta.
  • Costo: un SMS internacional puede costar varias veces uno doméstico.
  • Riesgo de la acción: para una transferencia, prioriza canales con menos exposición a SIM swap.
De lista fija a orden calculado
const CHANNELS = ["chat", "sms", "voice"];
function channelOrder(user) {
return CHANNELS;
}
Mostrando: antes · haz click para alternar

Tiempos de espera

Espera la confirmación de entrega entre 8 y 15 segundos antes de saltar de canal. Si no tienes recibo de entrega confiable, deja que el usuario lo pida («¿No llegó? Probar por SMS»): es más barato y le da control.

Un detalle que suele pasarse por alto: el número virtual (DID) desde el que respondes en voz o SMS también importa para la confianza del usuario. Un número local de Argentina asignado con mx.did.assign("AR") para un servicio argentino genera menos sospecha de spam que un número extranjero genérico.

Registra en cada verificación el canal finalmente exitoso junto con el país y el operador detectado, porque ese histórico es justamente el insumo que alimenta channelOrder para los próximos usuarios de la misma región.

Se marca completado al leer el 80%.

Comentarios (2)

Se guardan solo en tu navegador.

  • Gonzalo Pizarro9 oct

    Lo del último canal exitoso es simple y efectivo. Lo implementamos en una tarde.

  • Daniela Carrasco10 oct

    El callout de no reiniciar el contador debería estar en mayúsculas. Lo vimos explotado en un pentest.