tipos de mensajes
Cascade API admite cuatro tipos de mensajes, cada uno optimizado para diferentes casos de uso y canales.
Descripción general
| Tipo | Propósito | Canales | Interactivo |
|---|---|---|---|
transacción |
Notificaciones críticas | Todo | No |
promoción |
Campañas de marketing | Todo | Sí (botones) |
viber_encuesta |
Encuestas y comentarios | Viber, SMS | Sí (opciones) |
llamada flash |
Verificación telefónica | Llamada telefónica | No |
Mensajes de transacciones
Notificaciones críticas como confirmaciones de pedidos, actualizaciones de cuenta y alertas del sistema.
Características
- Entrega de alta prioridad
- Sin contenido promocional
- Directo y conciso
- Es urgente
- Enrutado a través de: Telegram → Viber → RCS → SMS
Casos de uso
- Confirmaciones de pedidos
- Notificaciones de pago
- Alertas de cuenta
- Notificaciones de seguridad
- Actualizaciones de entrega
- Restablecimiento de contraseña
Ejemplo
{
"id": "tx-order-12345",
"fromName": "YourStore",
"toPhone": "+380XXXXXXXXX",
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Delivery: Jan 25. Track: https://example.com/track/12345",
"ttl": 86400
}
Mejores prácticas
- ✅ Mantenga los mensajes con menos de 160 caracteres cuando sea posible
- ✅ Incluir detalles relevantes de la transacción
- ✅ Proporcionar enlaces de seguimiento
- ✅ Utilice un lenguaje claro y profesional
- ❌ No incluyas contenido de marketing.
- ❌ No uses emojis en exceso
Ejemplos por caso de uso
Confirmación de pedido
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Notificación de pago
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Alerta de seguridad
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Actualización de entrega
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Mensajes promocionales
Campañas de marketing y promoción con rich media y elementos interactivos.
Características
- Soporte de medios enriquecidos
- Botones interactivos
- Centrado en el llamado a la acción.
- TTL más largo aceptable
- Enrutado a través de: Telegram → Viber → RCS → SMS
Casos de uso
- Lanzamientos de productos
- Anuncios de ventas
- Invitaciones a eventos
- Campañas de boletines
- Ofertas especiales
- Conocimiento de la marca
Ejemplo
{
"id": "promo-summer-sale",
"fromName": "YourBrand",
"toPhone": "+380XXXXXXXXX",
"messageType": "promo",
"text": "🌟 Summer Sale! Up to 50% off on selected items. Shop now: https://example.com/sale",
"ttl": 259200
}
Con variables
{
"messageType": "promo",
"text": "Hi %name=1%! Exclusive offer: Use code %name=2% for 20% off. Shop: %short_url=1%",
"variables": [
{"id": 1, "type": "name", "value": "John"},
{"id": 2, "type": "name", "value": "VIP20"},
{"id": 1, "type": "short_url", "value": "https://store.com/sale?utm=sms"}
]
}
Mejores prácticas
- ✅ Incluir un llamado a la acción claro
- ✅ Utilice un lenguaje atractivo
- ✅ Agregar parámetros de seguimiento a las URL
- ✅ Personalizar con variables
- ✅ Prueba en múltiples canales
- ❌ No envíes spam a los clientes
- ❌ No utilices contenido engañoso
- ❌ No excedas los límites de caracteres
Ejemplos por caso de uso
Lanzamiento del producto
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Venta flash
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Invitación al evento
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Carro abandonado
{
"messageType": "promo",
"text": "Hi %name=1%! You left items in your cart. Complete purchase now and get 10% off with code CART10: %short_url=1%"
}
Encuesta de Viber
Encuestas y sondeos interactivos para recopilar comentarios de los clientes.
Características
- 2-5 opciones de respuesta
- Texto limitado a 85 caracteres
- Interfaz interactiva en Viber
- Respaldo a SMS (sin interactividad)
- Formato de pregunta única
Casos de uso
- Encuestas de satisfacción del cliente
- Comentarios sobre el producto
- Calificaciones de calidad del servicio.
- Investigación de mercado
- Comentarios del evento
- Puntuación neta del promotor (NPS)
Ejemplo
{
"id": "survey-satisfaction-001",
"fromName": "YourBrand",
"toPhone": "+380XXXXXXXXX",
"messageType": "viber_survey",
"text": "How satisfied are you with our service?",
"surveyOptions": [
"Very Satisfied",
"Satisfied",
"Neutral",
"Dissatisfied",
"Very Dissatisfied"
],
"ttl": 604800
}
Restricciones
- Texto: Máximo 85 caracteres
- Opciones: 2-5 opciones
- Longitud de la opción: Mantenga menos de 30 caracteres cada uno
- TTL: Recomendado 7-30 días
Mejores prácticas
- ✅ Haz una pregunta clara
- ✅ Proporcionar opciones equilibradas
- ✅ Utilice un lenguaje sencillo
- ✅ Mantenga las opciones concisas
- ✅ Establecer TTL apropiado (más de 7 días)
- ❌ No hagas múltiples preguntas
- ❌ No utilices jerga técnica
- ❌ No sesgues las respuestas
Ejemplos por caso de uso
Satisfacción del cliente (NPS)
{
"messageType": "viber_survey",
"text": "How likely are you to recommend us to a friend?",
"surveyOptions": [
"0 - Not at all",
"1-6 - Unlikely",
"7-8 - Likely",
"9-10 - Very Likely"
]
}
Comentarios sobre el producto
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Calidad del servicio
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Comentarios del evento
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Llamada rápida
Verificación telefónica mediante llamadas automáticas en lugar de códigos SMS.
Características
- Verificación rentable
- Más rápido que SMS (1-3 segundos)
- No hay código visible en las notificaciones.
- Resistente a ataques de intercambio de SIM
- Solo llamada telefónica (no Telegram/Viber)
Casos de uso
- Registro de usuario
- Verificación de inicio de sesión
- Validación de número de teléfono
- Autenticación de dos factores
- Recuperación de cuenta
- Confirmación de transacción
Ejemplo
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Cómo funciona
- El usuario ingresa el número de teléfono
- API inicia una llamada flash
- La llamada finaliza después de 1 o 2 timbres.
- La aplicación captura el identificador de llamadas
- Identificador de llamadas verificado según el patrón
- Usuario autenticado
Mejores prácticas
- ✅ Establecer TTL corto (60-300 segundos)
- ✅ Implementar la detección de identificador de llamadas
- ✅ Proporcionar respaldo de SMS
- ✅ Manejar solicitudes de permiso
- ✅ Mostrar instrucciones claras
- ❌ No utilizar con fines promocionales.
- ❌ No establezcas TTL largos
Ejemplo con respaldo
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Elegir el tipo correcto
Árbol de decisión
Is it time-critical or transactional?
├─ Yes → transaction
└─ No
└─ Is it promotional?
├─ Yes → promo
└─ No
└─ Is it a survey?
├─ Yes → viber_survey
└─ No → Is it for verification?
├─ Yes → flashcall
└─ No → transaction (default)
Matriz de comparación
| Característica | Transacción | Promoción | Encuesta | Llamada flash |
|---|---|---|---|---|
| Medios enriquecidos | ❌ | ✅ | ❌ | ❌ |
| Interactivo | ❌ | ✅ | ✅ | ❌ |
| Personalización | ✅ | ✅ | ✅ | ❌ |
| TTL típico | Horas | Días | Semana | Minutos |
| Costo | Medio | Medio | Medio | Bajo |
| Velocidad de entrega | Rápido | Rápido | Rápido | Más rápido |
Ejemplo de implementación
class CascadeMessageBuilder {
constructor(apiKey) {
this.apiKey = apiKey;
}
buildTransaction(id, fromName, toPhone, text, ttl = 86400) {
return {
id,
fromName,
toPhone,
messageType: 'transaction',
text,
ttl
};
}
buildPromo(id, fromName, toPhone, text, ttl = 259200) {
return {
id,
fromName,
toPhone,
messageType: 'promo',
text,
ttl
};
}
buildSurvey(id, fromName, toPhone, text, options, ttl = 604800) {
if (text.length > 85) {
throw new Error('Survey text must be under 85 characters');
}
if (options.length < 2 || options.length > 5) {
throw new Error('Survey must have 2-5 options');
}
return {
id,
fromName,
toPhone,
messageType: 'viber_survey',
text,
surveyOptions: options,
ttl
};
}
buildFlashCall(id, fromName, toPhone, ttl = 300) {
return {
id,
fromName,
toPhone,
messageType: 'flashcall',
ttl
};
}
async send(message) {
// Implementation to send message
}
}
// Usage
const builder = new CascadeMessageBuilder('your-api-key');
// Transaction
const transaction = builder.buildTransaction(
'order-123',
'Store',
'+380XXXXXXXXX',
'Order confirmed'
);
// Promo
const promo = builder.buildPromo(
'promo-001',
'Brand',
'+380XXXXXXXXX',
'Sale now on!'
);
// Survey
const survey = builder.buildSurvey(
'survey-001',
'Brand',
'+380XXXXXXXXX',
'Rate our service?',
['Excellent', 'Good', 'Average', 'Poor']
);
// Flash Call
const flashCall = builder.buildFlashCall(
'verify-001',
'App',
'+380XXXXXXXXX'
);
Próximos pasos
- Enviar mensajes - Comenzar a enviar mensajes en cascada
- Variables del mensaje - Personalizar mensajes
- API SMSBAT - Explora las funciones de SMSBAT