Skip to content

Módulo 16 · SMS ​

Read in English: Module 16 · SMS.

Objetivo: registrar el proveedor por el que salen tus SMS, preparar una plantilla aprobada, enviar un mensaje, atender las respuestas y saber qué hace la plataforma con la baja del consumidor y con el tope mensual. Tiempo: ~9 minutos · Necesitas: un usuario del panel; para aprobar plantillas, registrar un proveedor de toda la cuenta o guardar la autorrespuesta, un administrador de la cuenta.

El SMS vive en el menú SMS (/sms). Esa pantalla junta, de arriba abajo, la Bandeja de SMS, el formulario Enviar un mensaje, el Uso de SMS y el historial de Mensajes SMS. Las plantillas y los proveedores tienen su propia pantalla.

1. Registrar un proveedor ​

Los mensajes salen por un proveedor de SMS. En Troncales y operadores pulsa Proveedores de SMS → (o entra a /trunks/sms-providers). La lista muestra Nombre, Adaptador, Región, Ámbito, Estado y Secreto del webhook.

  1. Pulsa Registrar un proveedor.
  2. Elige el Ámbito: Esta sede o Toda la cuenta (todas las sedes). La segunda opción solo la ofrece el panel a un administrador de la cuenta; si no lo eres, la pantalla lo dice («Registrar un proveedor para toda la cuenta lo hace un administrador de la cuenta; aquí registras uno para esta sede.»).
  3. Elige el Adaptador: HTTP (contrato interno), Telnyx o Simulado (sin envíos reales), y la Región: Estados Unidos (us), México (mx) o Europa (eu).
  4. Escribe el Nombre del proveedor.
  5. Solo con el adaptador HTTP aparece la URL del endpoint: debe empezar por https://, ir al puerto 443 y a una dirección pública; en blanco usa el endpoint general de la plataforma.
  6. Pega el Secreto del webhook y pulsa Guardar. Con Telnyx es la clave pública Ed25519 de tu cuenta (base64), nunca una clave privada.

El secreto es de solo escritura: se envía una vez, se guarda cifrado y no se vuelve a mostrar. En la lista solo verás Guardado o Ninguno guardado, y Detalle abre el identificador, cuándo se registró y su último cambio.

Retirar un proveedor te pide confirmar con Retirar para siempre (o Conservarlo): deja de enviar mensajes, no puede volver y su historial se conserva. Un proveedor Heredado de la cuenta no se retira desde la sede: dice «Es de toda la cuenta: no se retira desde aquí.»

Sin proveedor propio

Si aún no registraste ninguno, la pantalla avisa: los mensajes salen por la configuración general de la plataforma, si la hay.

2. Crear una plantilla y pedir su aprobación ​

En SMS pulsa Gestionar plantillas (/sms/templates). Cada plantilla es un texto con variables y versiones: lo que se aprueba es una versión concreta.

  1. Pulsa Nuevo borrador.
  2. Escribe el Nombre de la plantilla y el Cuerpo del mensaje. Las variables van en el cuerpo entre dobles llaves, por ejemplo .
  3. En Variables declara una por línea como nombre:string, nombre:number o nombre:date; añade :optional solo cuando haga falta.
  4. Pulsa Guardar borrador.

La plataforma exige que el cuerpo lleve un aviso de baja que nombre una palabra que ella respeta (ver la sección 5) y que no use términos prohibidos; si no, rechaza el borrador.

Cada versión tiene un estado: Borrador, Aprobada o Retirada.

  • Un Borrador se puede Editar borrador, Aprobar o Retirar.
  • Una versión Aprobada ya no se edita: solo se puede Retirar. Para cambiarla, escribe un borrador nuevo.
  • Una Retirada es definitiva.

Quién aprueba. Cualquier usuario del panel crea y edita borradores, pero aprobar es del administrador de la cuenta. El botón Aprobar aparece en todos los borradores y es el servidor quien decide: la propia pantalla lo dice («El servidor decide cada cambio de estado»). Así, el flujo es: quien redacta guarda el borrador y le pide al administrador que lo apruebe. No hay un botón «Rechazar»: rechazar un borrador es Retirarlo.

Lo que no hay en el panel

La opción «solo plantillas aprobadas», que obliga a que todo envío libre sea rechazado, se maneja por API. Está en la guía para desarrolladores de SMS.

3. Enviar un SMS ​

En el formulario Enviar un mensaje: un mensaje cada vez.

  1. Escribe el Número de destino (formato +15551234567) y el Mensaje.
  2. Si lo necesitas, abre Más opciones: Número de origen, Zona horaria, Campaña, ID de cuenta y Referencia del contacto.
  3. Pulsa Enviar mensaje.

El formulario no decide nada: el consentimiento, las listas de no llamar, el horario permitido y el límite de gasto los comprueba la plataforma. Lo que puede contestar:

  • La plataforma aceptó el mensaje para ese número, con el número de segmentos. Un texto largo se parte en varios segmentos y cada uno cuenta para el uso.
  • Una comprobación de cumplimiento rechazó este mensaje, con su Motivo y su Regla. No se envió nada ni se creó ningún mensaje, y repetirlo se rechaza otra vez. Cuando hay un registro de la decisión, el enlace Verificar la decisión lo abre.
  • El proveedor de SMS rechazó el mensaje: el intento queda en el historial como Fallido.
  • La plataforma no contestó: el mensaje pudo enviarse o no. Reintentar sin cambiar nada es seguro, porque reutiliza la misma referencia de envío y no duplica nada. Si cambias el texto, es un envío nuevo.
  • Demasiadas peticiones: espera los segundos que indica y reintenta.
  • El remitente no es tuyo (sms_from_not_owned o sms_from_invalid): el remitente (Número de origen, o la línea por defecto del proveedor) debe ser un número E.164 y un número activo de tu cuenta. No se envió nada. Registra el número entre tus números, o elige uno que sea tuyo.
  • Sin tarifa (no_rate): ningún precio cubre ese destino y el envío se rehúsa. Recargar no cambia nada; reintentar sin cambios se rehúsa otra vez hasta que la plataforma ponga precio.

4. Leer y responder la bandeja ​

La Bandeja de SMS agrupa los mensajes en conversaciones por consumidor y línea de envío, con la actividad más reciente primero. Solo actividad entrante deja las que tienen mensajes recibidos. Cargar más conversaciones trae el resto.

Al elegir una conversación ves los mensajes y «Mediante la línea …». Desde ahí:

  • Responder escribe tu respuesta y Enviar respuesta la manda; Respuesta aceptada. confirma que la plataforma la tomó. Tu respuesta pasa por las mismas comprobaciones que cualquier envío: puede ser rechazada.
  • Asignar a reparte la conversación entre el equipo. Un administrador la asigna a cualquier persona; los demás usuarios solo pueden tomarla para sí o soltar una que ya es suya. Sin asignar la suelta.
  • Marcar como leída limpia la marca para todo el equipo.
  • Cargar mensajes anteriores muestra el historial más antiguo de esa conversación.

Debajo, el historial Mensajes SMS lista cada mensaje del más reciente al más antiguo; filtra por dirección (Saliente o Entrante), por estado (En cola, Enviado, Entregado, No entregado, Fallido, Recibido), por campaña y por ID de cuenta. Ver detalle abre el Detalle del mensaje: el proveedor, la Cronología de estados, los Cambios de estado y la Decisión de cumplimiento con la que se envió.

El panel Uso de SMS suma los segmentos facturables entre dos fechas (Desde y Hasta), con mensajes, segmentos, importe y la tarifa vigente por segmento. Cuenta cuando el proveedor acepta el mensaje.

5. La baja del consumidor por palabra clave ​

Cuando un consumidor te responde con una de estas palabras —STOP, ALTO, UNSUBSCRIBE, CANCEL, QUIT o END— la plataforma, sin que tú hagas nada:

  • añade su número a tu lista interna de no llamar, y a partir de ahí los envíos y las llamadas a ese número se bloquean;
  • revoca su consentimiento;
  • le manda un mensaje de confirmación de la baja.

Esa confirmación sale una vez por número y ventana (24 horas por defecto): si el mismo número vuelve a mandar STOP dentro de la ventana, la baja se aplica otra vez pero no se manda una segunda confirmación, así nadie puede hacerte pagar un SMS por mensaje repitiendo STOP.

A quién alcanza. Si el STOP llega por un proveedor heredado de toda la cuenta (el de ámbito Toda la cuenta), la baja se escribe en todas las sedes de la cuenta, no sólo en la que le escribió por última vez a ese consumidor: ante un regulador el llamante es la empresa. Si llega por un proveedor registrado para una sede, se queda en esa sede. Nunca cruza a otra cuenta.

La baja se aplica siempre, aunque el aviso llegue tarde o desordenado. El consumidor puede volver con START (lo que levanta, abajo), y HELP o AYUDA le devuelve un mensaje de ayuda. Es la misma lista que ves en Cumplimiento, en Lista interna de no-llamar: allí también se suben las peticiones de cese.

Palabras que se respetan sin anunciarlas. Además de esas seis, la plataforma trata también como baja REVOKE, OPT OUT (también escrito OPTOUT u OPT-OUT), el sufijo ALL tras una palabra de baja (STOP ALL, REVOKE ALL, STOPALL) y las frases cortas: un mensaje de hasta 6 palabras que contiene una palabra de baja entera (please stop, stop texting me, Stop 🛑). Mayúsculas, puntuación y emojis no importan. Un mensaje más largo no da de baja a nadie —«can you stop by the office tomorrow?» es un mensaje más—, pero si contiene una palabra de baja el frame sms.received del piso en vivo lleva possible_optout: true, para que una persona del piso lo vea y decida. ALL solo, o una palabra que apenas contiene una de baja (STOPPED, «unstoppable»), no es baja.

Qué levanta START. START concede de nuevo el consentimiento de SMS y quita sólo el listado que escribió un STOP por SMS. No borra una baja que el consumidor hizo por voz, con la tecla, por una llamada entrante o que tu equipo subió en un CSV, ni un listado de origen desconocido (los antiguos sin motivo registrado se conservan): ese número sigue en la lista y los envíos a él siguen bloqueándose. Si una baja por voz o CSV cae sobre un número que estaba en la lista por un STOP por SMS, el listado pasa a ser esa y un START posterior ya no lo levanta. Un START más antiguo que el estado registrado (el aviso llegó tarde, tras un STOP más reciente) no cambia nada. Nunca toca la baja que otra sede tenga para el mismo número, ni las listas regulatorias.

Por eso tus plantillas y tu autorrespuesta deben nombrar una de esas palabras: un aviso que invite a una palabra que la plataforma no entiende no protege a nadie.

6. Autorrespuesta fuera de horario ​

En Configuración, la tarjeta Auto-respuesta SMS fuera de horario contesta sola a los mensajes que llegan fuera de tu horario laboral. Está apagada por defecto y necesita tres cosas a la vez:

  1. El interruptor de la plataforma. Es de nivel operator y lo enciende el equipo de Dialer Digital, no tú: el panel lo dice («Interruptor operativo: apagado por defecto y administrado fuera del dashboard»). La tarjeta no muestra su estado y escribe «estado no expuesto por el servidor»: si ya guardaste todo y no responde, pídele al soporte que lo active.
  2. El texto guardado: Cuerpo, Idioma y Enfriamiento (segundos).
  3. El horario guardado: Zona horaria y los días y horas en que sí atiendes.

Pulsa Guardar ajustes; solo un administrador de la cuenta puede hacerlo («Sólo un administrador de cuenta puede cambiar estos ajustes.»). Si falla una de las dos mitades, el panel dice cuál: Auto-respuesta u Horario.

La autorrespuesta no es una excepción: pasa por las mismas comprobaciones que un envío normal (consentimiento, no llamar, horario permitido, frecuencia y gasto), y si alguna la bloquea, no se manda ni se deja para la mañana. Responde como máximo una vez por conversación en cada periodo de enfriamiento. Su cuerpo también debe llevar el aviso de baja.

7. El tope mensual ​

Tu gestor de cuenta puede fijar a cada sede un tope de gasto mensual en SMS; si no lo fija, no hay tope. Cuando lo hay y el gasto del mes llega a él, los envíos se detienen antes de llegar al proveedor: no sale ningún mensaje y no se cobra nada. Reintentar no sirve; se reanudan cuando se sube el tope o cuando empieza el mes siguiente. El tope lo fija tu gestor de cuenta, no el panel, para que ninguna llave filtrada pueda subirse su propio presupuesto. Para anticiparte, mira Uso de SMS durante el mes.

Otros tres rechazos tienen que ver con el dinero y no con el tope, y cada uno responde 402: wallet_insufficient (recarga tu saldo prepagado), plan_exhausted (se agotaron los SMS incluidos en tu plan: sube de plan) y exposure_limit (completa la verificación de la cuenta). En ninguno sale el mensaje ni se cobra. Un tenant sintético de demostración recibe 403 synthetic_tenant: nunca envía hacia fuera y ningún pago lo cambia.

8. Una campaña que no envía nada ​

Una campaña de SMS envía desde sus propios números (caller IDs o reserva) o, si no los tiene, desde la línea por defecto del proveedor, y deben ser números activos de tu cuenta. Si ninguno sirve, o no resuelve ningún proveedor, la campaña no falla: da vueltas y no envía nada. Las estadísticas de la campaña (send_unavailable_reason, en la API y en el frame de estadísticas en vivo) dicen por qué: provider_unresolved (sin proveedor), caller_ids_no_active_did o caller_id_pool_no_active_did (ningún número activo entre los de la campaña), default_from_invalid (la línea por defecto del proveedor no es un número tuyo), did_unverified (tu cuenta exige titularidad probada de los números y los activos no la tienen) u outside_calling_window (la campaña está fuera de su ventana horaria; vuelve a enviar cuando se abre). El motivo se limpia solo en la primera vuelta que pasa. Detalle en la guía para desarrolladores de SMS.

Lo que aprendiste ​

  • Cómo registrar y retirar un proveedor, y por qué el secreto del webhook no se vuelve a ver.
  • El ciclo de una plantilla (borrador, aprobada, retirada) y que aprobar es del administrador.
  • Qué contesta el formulario de envío y cuándo es seguro reintentar.
  • Cómo leer, asignar y responder la bandeja, y dónde ver el uso.
  • Que la baja por palabra clave es automática, que la autorrespuesta está apagada por defecto y la enciende la plataforma, y qué pasa al llegar al tope mensual.
  • Que el remitente debe ser un número tuyo, que un destino sin tarifa se rehúsa (no_rate), que el STOP se confirma una vez por ventana y cómo leer por qué una campaña no envía nada.

Más detalle técnico en la guía para desarrolladores de SMS, en los webhooks y en los límites y topes.

Nothing in these docs is legal advice — always confirm compliance posture with your own counsel.