Help Center Tipi di messaggio

Tipi di messaggio

Cascade API supporta quattro tipi di messaggi, ciascuno ottimizzato per casi d’uso e canali diversi.

Panoramica

DigitareScopoCanaliInterattivo
”transazione”Notifiche criticheTuttiNo
”promozionale”Campagne di marketingTuttiSì (pulsanti)
viber_surveySondaggi e feedbackViber, SMSSì (opzioni)
flashcallVerifica telefonicaTelefonataNo

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

  1. L’utente inserisce il numero di telefono
  2. L’API avvia la chiamata flash
  3. La chiamata termina dopo 1-2 squilli
  4. L’app acquisisce l’ID chiamante
  5. ID chiamante verificato rispetto al modello
  6. 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

CaratteristicaTransazionePromoSondaggioChiamata Flash
Rich Media
Interattivo
Personalizzazione
TTL tipicoOreGiorniSettimanaMinuti
CostoMedioMedioMedioBasso
Velocità di consegnaVeloceVeloceVeloceIl 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