Tipuri de mesaje
Cascade API acceptă patru tipuri de mesaje, fiecare optimizat pentru diferite cazuri de utilizare și canale.
Prezentare generală
| Tip | Scop | Canale | Interactiv |
|---|---|---|---|
tranzacție |
Notificări critice | Toate | Nu |
promo |
Campanii de marketing | Toate | Da (butoane) |
viber_survey |
Sondaje și feedback | Viber, SMS | Da (opțiuni) |
flashcall |
Verificare telefonică | Apel telefonic | Nu |
Mesaje tranzacționale
Notificări critice, cum ar fi confirmările comenzilor, actualizările contului și alertele de sistem.
Caracteristici
- Livrare cu prioritate ridicată
- Fără conținut promoțional
- Direct și concis
- Sensibilă la timp
- Dirijat prin: Telegram → Viber → RCS → SMS
Cazuri de utilizare
- Confirmări de comandă
- Notificări de plată
- Alerte de cont
- Notificări de securitate
- Actualizări de livrare
- Resetarea parolei
Exemplu
{
"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
}
Cele mai bune practici
- ✅ Păstrați mesajele sub 160 de caractere atunci când este posibil
- ✅ Includeți detalii relevante ale tranzacției
- ✅ Furnizați link-uri de urmărire
- ✅ Folosiți un limbaj clar, profesional
- ❌ Nu includeți conținut de marketing
- ❌ Nu folosi emoji-urile în mod excesiv
Exemple după caz de utilizare
Confirmarea comenzii
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Notificare de plată
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Alertă de securitate
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Actualizare de livrare
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Mesaje promoționale
Campanii de marketing și promovare cu rich media și elemente interactive.
Caracteristici
- Suport media bogat
- Butoane interactive
- Concentrat pe chemare la acțiune
- TTL mai lung acceptabil
- Dirijat prin: Telegram → Viber → RCS → SMS
Cazuri de utilizare
- Lansări de produse
- Anunturi de vanzari
- Invitații la evenimente
- Campanii de newsletter
- Oferte speciale
- Conștientizarea mărcii
Exemplu
{
"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
}
Cu variabile
{
"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"}
]
}
Cele mai bune practici
- ✅ Includeți un îndemn clar la acțiune
- ✅ Folosește un limbaj captivant
- ✅ Adăugați parametri de urmărire la adresele URL
- ✅ Personalizează cu variabile
- ✅ Testează pe mai multe canale
- ❌ Nu trimiteți spam clienților
- ❌ Nu utilizați conținut înșelător
- ❌ Nu depășiți limitele de caractere
Exemple după caz de utilizare
Lansarea produsului
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Reducere flash
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Invitație la eveniment
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Cărucior abandonat
{
"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%"
}
Sondaj Viber
Sondaje interactive și sondaje pentru colectarea feedback-ului clienților.
Caracteristici
- 2-5 opțiuni de răspuns
- Text limitat la 85 de caractere
- Interfață interactivă pe Viber
- Fallback la SMS (fără interactivitate)
- Format cu o singură întrebare
Cazuri de utilizare
- Sondaj de satisfacție a clienților
- Feedback despre produs
- Evaluări ale calității serviciilor
- Cercetare de piata
- Feedback despre eveniment
- Scorul net de promovare (NPS)
Exemplu
{
"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
}
Constrângeri
- Text: maximum 85 de caractere
- Opțiuni: 2-5 opțiuni
- Lungimea opțiunii: păstrați sub 30 de caractere fiecare
- TTL: Recomandat 7-30 de zile
Cele mai bune practici
- ✅ Pune o întrebare clară
- ✅ Oferă opțiuni echilibrate
- ✅ Folosiți un limbaj simplu
- ✅ Păstrați opțiunile concise
- ✅ Setați TTL adecvat (7+ zile)
- ❌ Nu pune mai multe întrebări
- ❌ Nu folosi jargon tehnic
- ❌ Nu părtiniți răspunsurile
Exemple după caz de utilizare
Satisfacția clienților (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 despre produs
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Calitatea serviciilor
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Feedback despre eveniment
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Apel flash
Verificarea telefonului folosind apeluri automate în loc de coduri SMS.
Caracteristici
- Verificare rentabilă
- Mai rapid decât SMS-ul (1-3 secunde)
- Niciun cod vizibil în notificări
- Rezistent la atacurile de schimb SIM
- Numai apel telefonic (fără Telegram/Viber)
Cazuri de utilizare
- Înregistrarea utilizatorului
- Verificare autentificare
- validarea numărului de telefon
- Autentificare cu doi factori
- Recuperarea contului
- Confirmarea tranzactiei
Exemplu
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Cum funcționează
- Utilizatorul introduce numărul de telefon
- API inițiază apelul flash
- Apelul se termină după 1-2 sunete
- Aplicația captează ID-ul apelantului
- ID apelant verificat în funcție de model
- Utilizator autentificat
Cele mai bune practici
- ✅ Setați TTL scurt (60-300 secunde)
- ✅ Implementați detectarea ID-ului apelantului
- ✅ Oferă SMS-uri de rezervă
- ✅ Gestionați cererile de permisiuni
- ✅ Afișați instrucțiuni clare
- ❌ Nu utilizați în scopuri promoționale
- ❌ Nu setați TTL lungi
Exemplu cu Fallback
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Alegerea tipului potrivit
Arborele de decizie
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)
Matricea de comparație
| Caracteristica | Tranzacție | Promo | Sondaj | Apel flash |
|---|---|---|---|---|
| Rich Media | ❌ | ✅ | ❌ | ❌ |
| Interactiv | ❌ | ✅ | ✅ | ❌ |
| Personalizare | ✅ | ✅ | ✅ | ❌ |
| TTL tipic | Ore | Zile | Săptămâna | Minute |
| Cost | Mediu | Mediu | Mediu | Scăzut |
| Viteza de livrare | Rapid | Rapid | Rapid | Cel mai rapid |
Exemplu de implementare
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'
);
Următorii pași
- Trimite mesaje - Începeți să trimiteți mesaje în cascadă
- Variabile de mesaje - Personalizați mesajele
- SMSBAT API - Explorați funcțiile SMSBAT