Capítulo 5 de 5 · 11 min de lectura
Plantillas y localización es-CL
Textos claros, cortos y locales que caben en un segmento y resisten la ingeniería social.
Flujos OTP multicanal · 0/5 completados
- SMS como canal base
- OTP por chat e IP
- Orden de fallback inteligente
- Voice OTP y accesibilidad
- Plantillas y localización es-CL
En este capítulo
La plantilla es la única parte del sistema que el usuario lee. Un buen texto reduce soporte, fraude y costo al mismo tiempo. Uno malo genera llamadas al call center del tipo «¿esto es real?».
Anatomía de una buena plantilla
- Marca primero: el usuario decide en la notificación si confía.
- El código pronto y aislado, fácil de copiar.
- Vigencia explícita: «Vence en 5 min».
- Advertencia: «Nadie de verificaOTP te lo pedirá».
- Línea de dominio para autocompletado, si aplica.
Variantes por país sin perder el control
En Chile «código» y «vence» funcionan bien; en México, «vigente por» suena más natural; en Argentina, el voseo aparece en el resto del producto pero las plantillas transaccionales se mantienen neutras. Centraliza las variantes y valida su longitud en CI.
// Templates must fit a single GSM-7 segment
const GSM7 = /^[A-Za-z0-9 @£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ!"#%&'()*+,\-./:;<=>?¡ÄÖÑܧ¿äöñüà\n]*$/;
export function segmentInfo(text: string) {
const gsm = GSM7.test(text);
const limit = gsm ? 160 : 70;
return { encoding: gsm ? "GSM-7" : "UCS-2", fits: text.length <= limit, limit };
}También vale la pena firmar las plantillas que viajan por webhook hacia sistemas internos, por ejemplo cuando notificas a un panel de soporte que se envió un código. Un HMAC sobre el payload evita que alguien falsifique ese evento dentro de tu propia red.
async function notifyInternal(payload) {await fetch("/internal/otp-events", {method: "POST",body: JSON.stringify(payload),});}