Vrste poruka
Cascade API podržava četiri vrste poruka, od kojih je svaka optimizirana za različite slučajeve upotrebe i kanale.
Pregled
| Upišite | Svrha | Kanali | Interaktivno |
|---|---|---|---|
transakcija |
Kritične obavijesti | Sve | Ne |
promocija |
Marketinške kampanje | Sve | Da (gumbi) |
viber_anketa |
Ankete i povratne informacije | Viber, SMS | Da (opcije) |
flashcall |
Telefonska potvrda | Telefonski poziv | Ne |
Transakcijske poruke
Kritične obavijesti poput potvrda narudžbi, ažuriranja računa i upozorenja sustava.
Karakteristike
- Isporuka visokog prioriteta
- Nema promotivnih sadržaja
- Izravno i sažeto
- Vremenski osjetljiv
- Usmjereno kroz: Telegram → Viber → RCS → SMS
Slučajevi upotrebe
- Potvrde narudžbi
- Obavijesti o plaćanju
- Obavijesti o računu
- Sigurnosne obavijesti
- Ažuriranja isporuke
- Ponovno postavljanje lozinke
Primjer
{
"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
}
Najbolji primjeri iz prakse
- ✅ Držite poruke ispod 160 znakova kada je to moguće
- ✅ Uključite relevantne detalje transakcije
- ✅ Navedite veze za praćenje
- ✅ Koristite jasan, profesionalan jezik
- ❌ Nemojte uključivati marketinški sadržaj
- ❌ Nemojte pretjerano koristiti emojije
Primjeri prema slučajevima korištenja
Potvrda narudžbe
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Obavijest o plaćanju
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Sigurnosno upozorenje
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Ažuriranje isporuke
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Promo poruke
Marketinške i promotivne kampanje s bogatim medijima i interaktivnim elementima.
Karakteristike
- Podrška za bogate medije
- Interaktivni gumbi
- Fokusiran na poziv na akciju
- Duži TTL prihvatljiv
- Usmjereno kroz: Telegram → Viber → RCS → SMS
Slučajevi upotrebe
- Lansiranje proizvoda
- Oglasi o prodaji
- Pozivnice za događaje
- Newsletter kampanje
- Posebne ponude
- Svijest o robnoj marki
Primjer
{
"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
}
S varijablama
{
"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"}
]
}
Najbolji primjeri iz prakse
- ✅ Uključite jasan poziv na radnju
- ✅ Koristite zanimljiv jezik
- ✅ URL-ovima dodajte parametre za praćenje
- ✅ Personalizirajte s varijablama
- ✅ Testirajte na više kanala
- ❌ Ne šaljite neželjenu poštu korisnicima
- ❌ Nemojte koristiti obmanjujući sadržaj
- ❌ Nemojte prekoračiti ograničenje broja znakova
Primjeri prema slučajevima korištenja
Lansiranje proizvoda
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Brza rasprodaja
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Pozivnica za događaj
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Napuštena kolica
{
"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%"
}
Viber Anketa
Interaktivne ankete i ankete za prikupljanje povratnih informacija od kupaca.
Karakteristike
- 2-5 opcija odgovora
- Tekst ograničen na 85 znakova
- Interaktivno sučelje na Viberu
- Povratak na SMS (bez interaktivnosti)
- Format jednog pitanja
Slučajevi upotrebe
- Ankete o zadovoljstvu kupaca
- Povratne informacije o proizvodu
- Ocjene kvalitete usluge
- Istraživanje tržišta
- Povratne informacije o događaju
- Neto rezultat promotora (NPS)
Primjer
{
"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
}
Ograničenja
- Tekst: Maksimalno 85 znakova
- Opcije: 2-5 izbora
- Opcija duljine: Neka svaki ne bude kraći od 30 znakova
- TTL: Preporučeno 7-30 dana
Najbolji primjeri iz prakse
- ✅ Postavite jedno jasno pitanje
- ✅ Pružite uravnotežene opcije
- ✅ Koristite jednostavan jezik
- ✅ Neka opcije budu sažete
- ✅ Postavite odgovarajući TTL (7+ dana)
- ❌ Ne postavljajte više pitanja
- ❌ Nemojte koristiti tehnički žargon
- ❌ Nemojte pristrasno odgovarati
Primjeri prema slučajevima korištenja
Zadovoljstvo korisnika (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"
]
}
Povratne informacije o proizvodu
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Kvaliteta usluge
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Povratne informacije o događaju
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Brzi poziv
Telefonska provjera pomoću automatskih poziva umjesto SMS kodova.
Karakteristike
- Isplativa verifikacija
- Brže od SMS-a (1-3 sekunde)
- Nema vidljivog koda u obavijestima
- Otporan na napade zamjene SIM kartice
- Samo telefonski poziv (bez Telegrama/Vibera)
Slučajevi upotrebe
- Registracija korisnika
- Provjera prijave
- Provjera telefonskog broja
- Dvostruka autentifikacija
- Oporavak računa
- Potvrda transakcije
Primjer
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Kako to radi
- Korisnik upisuje broj telefona
- API pokreće flash poziv
- Poziv se prekida nakon 1-2 zvona
- Aplikacija bilježi ID pozivatelja
- ID pozivatelja potvrđen prema uzorku
- Ovjeren korisnik
Najbolji primjeri iz prakse
- ✅ Postavite kratki TTL (60-300 sekundi)
- ✅ Implementirajte detekciju ID-a pozivatelja
- ✅ Omogućite rezervni SMS
- ✅ Obrada zahtjeva za dopuštenje
- ✅ Pokažite jasne upute
- ❌ Ne koristiti u promotivne svrhe
- ❌ Ne postavljajte dugi TTL
Primjer s rezervnim
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Odabir prave vrste
Stablo odlučivanja
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)
Matrica usporedbe
| Značajka | Transakcija | Promo | Anketa | Flash poziv |
|---|---|---|---|---|
| Bogati mediji | ❌ | ✅ | ❌ | ❌ |
| Interaktivno | ❌ | ✅ | ✅ | ❌ |
| Personalizacija | ✅ | ✅ | ✅ | ❌ |
| Tipični TTL | Sati | Dana | Tjedan | Zapisnik |
| Trošak | Srednje | Srednje | Srednje | Niska |
| Brzina isporuke | Brzo | Brzo | Brzo | Najbrži |
Primjer implementacije
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'
);
Sljedeći koraci
- Pošalji poruke - Počnite slati kaskadne poruke
- Varijable poruka - Personalizirajte poruke
- SMSBAT API - Istražite SMSBAT značajke