Tipi di messaggio
Cascade API supporta quattro tipi di messaggi, ciascuno ottimizzato per casi d’uso e canali diversi.
Panoramica
| Digitare | Scopo | Canali | Interattivo |
|---|---|---|---|
| ”transazione” | Notifiche critiche | Tutti | No |
| ”promozionale” | Campagne di marketing | Tutti | Sì (pulsanti) |
viber_survey | Sondaggi e feedback | Viber, SMS | Sì (opzioni) |
flashcall | Verifica telefonica | Telefonata | No |
Messaggi di transazione
Notifiche critiche come conferme degli ordini, aggiornamenti dell’account e avvisi di sistema.
Caratteristiche
- Consegna ad alta priorità
- Nessun contenuto promozionale
- Diretto e conciso
- Sensibile al tempo
- Instradato tramite: Telegram → Viber → RCS → SMS
Casi d’uso
- Conferme d’ordine
- Notifiche di pagamento
- Avvisi sull’account
- Notifiche di sicurezza
- Aggiornamenti sulla consegna
- Reimpostazione della password
Esempio
{
"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
}
Migliori pratiche
- ✅ Mantieni i messaggi sotto i 160 caratteri quando possibile
- ✅ Includere i dettagli rilevanti della transazione
- ✅ Fornire collegamenti di tracciamento
- ✅Utilizza un linguaggio chiaro e professionale
- ❌ Non includere contenuti di marketing
- ❌ Non utilizzare eccessivamente gli emoji
Esempi per caso d’uso
Conferma dell’ordine
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Notifica di pagamento
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Avviso di sicurezza
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Aggiornamento sulla consegna
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Messaggi promozionali
Campagne di marketing e promozionali con rich media ed elementi interattivi.
Caratteristiche
- Supporto multimediale ricco
- Pulsanti interattivi
- Focalizzato sull’invito all’azione
- TTL più lungo accettabile
- Instradato tramite: Telegram → Viber → RCS → SMS
Casi d’uso
- Lancio di prodotti
- Annunci di vendita
- Inviti ad eventi
- Campagne di newsletter
- Offerte speciali
- Consapevolezza del marchio
Esempio
{
"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 variabili
{
"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"}
]
}
Migliori pratiche
- ✅Includi un chiaro invito all’azione
- ✅Utilizza un linguaggio accattivante
- ✅ Aggiungi parametri di tracciamento agli URL
- ✅ Personalizza con variabili
- ✅Test su più canali
- ❌ Non spammare i clienti
- ❌Non utilizzare contenuti fuorvianti
- ❌ Non superare i limiti di caratteri
Esempi per caso d’uso
Lancio del prodotto
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Vendita lampo
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Invito all’evento
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Carrello abbandonato
{
"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%"
}
Sondaggio Viber
Sondaggi e sondaggi interattivi per raccogliere il feedback dei clienti.
Caratteristiche
- 2-5 opzioni di risposta
- Testo limitato a 85 caratteri
- Interfaccia interattiva su Viber
- Fallback su SMS (senza interattività)
- Formato a domanda singola
Casi d’uso
- Indagini sulla soddisfazione del cliente
- Feedback sul prodotto
- Valutazioni della qualità del servizio
- Ricerche di mercato
- Feedback sugli eventi
- Punteggio netto del promotore (NPS)
Esempio
{
"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
}
Vincoli
- Testo: massimo 85 caratteri
- Opzioni: 2-5 scelte
- Lunghezza opzione: mantenere meno di 30 caratteri ciascuno
- TTL: consigliato 7-30 giorni
Migliori pratiche
- ✅ Fai una domanda chiara
- ✅ Fornire opzioni equilibrate
- ✅Utilizza un linguaggio semplice
- ✅ Mantieni le opzioni concise
- ✅ Imposta il TTL appropriato (7+ giorni)
- ❌Non fare domande multiple
- ❌Non utilizzare termini tecnici
- ❌Non falsare le risposte
Esempi per caso d’uso
Soddisfazione 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"
]
}
Feedback sul prodotto
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Qualità del servizio
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Feedback sugli eventi
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Chiamata flash
Verifica del telefono utilizzando chiamate automatizzate anziché codici SMS.
Caratteristiche
- Verifica economicamente vantaggiosa
- Più veloce degli SMS (1-3 secondi)
- Nessun codice visibile nelle notifiche
- Resistente agli attacchi SIM swap
- Solo telefonata (no Telegram/Viber)
Casi d’uso
- Registrazione dell’utente
- Verifica dell’accesso
- Convalida del numero di telefono
- Autenticazione a due fattori
- Recupero del conto
- Conferma della transazione
Esempio
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Come funziona
- L’utente inserisce il numero di telefono
- L’API avvia la chiamata flash
- La chiamata termina dopo 1-2 squilli
- L’app acquisisce l’ID chiamante
- ID chiamante verificato rispetto al modello
- Utente autenticato
Migliori pratiche
- ✅ Imposta TTL breve (60-300 secondi)
- ✅ Implementa il rilevamento dell’ID chiamante
- ✅ Fornire SMS di riserva
- ✅ Gestire le richieste di autorizzazione
- ✅Mostra istruzioni chiare
- ❌ Non utilizzare per scopi promozionali
- ❌ Non impostare TTL lungo
Esempio con fallback
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Scegliere il tipo giusto
Albero decisionale
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)
Matrice di confronto
| Caratteristica | Transazione | Promo | Sondaggio | Chiamata Flash |
|---|---|---|---|---|
| Rich Media | ❌ | ✅ | ❌ | ❌ |
| Interattivo | ❌ | ✅ | ✅ | ❌ |
| Personalizzazione | ✅ | ✅ | ✅ | ❌ |
| TTL tipico | Ore | Giorni | Settimana | Minuti |
| Costo | Medio | Medio | Medio | Basso |
| Velocità di consegna | Veloce | Veloce | Veloce | Il più veloce |
Esempio di implementazione
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'
);
Passaggi successivi
- Invia messaggi - Inizia a inviare messaggi a cascata
- Variabili del messaggio - Personalizza i messaggi
- API SMSBAT - Esplora le funzionalità SMSBAT