Skip to content

Vrste poruka

Cascade API podržava četiri tipa poruka, od kojih je svaki optimiziran za različite slučajeve upotrebe i kanale.

Pregled

| Vrsta | Svrha | Kanali | Interactive | |-------|---------|-----------------| | transakcija | Kritične obavijesti | Sve | Ne | | promo | Marketinške kampanje | Sve | Da (dugmad) | | viber_survey | Ankete i povratne informacije | Viber, SMS | Da (opcije) | | flashcall | Telefonska verifikacija | Telefonski poziv | Ne |

Transakcione poruke

Kritična obavještenja kao što su potvrde narudžbi, ažuriranja računa i sistemska upozorenja.

Karakteristike

  • Isporuka visokog prioriteta
  • Nema promotivnog sadržaja
  • Direktan i koncizan
  • Vremenski osjetljivi
  • Rutirano preko: Telegram → Viber → RCS → SMS

Slučajevi upotrebe

  • Potvrde narudžbe
  • Obavještenja o plaćanju
  • Upozorenja o računu
  • Sigurnosna obavještenja
  • Ažuriranja isporuke
  • Poništavanje 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
}

Najbolje prakse

  • ✅ Držite poruke ispod 160 karaktera kada je to moguće
  • ✅ Uključite relevantne detalje transakcije
  • ✅ Obezbedite linkove za praćenje
  • ✅ Koristite jasan, profesionalan jezik
  • ❌ Nemojte uključivati marketinški sadržaj
  • ❌ Nemojte preterano koristiti emotikone

Primjeri prema slučaju upotrebe

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 bogatim medijima
  • Interaktivna dugmad
  • Fokusiran na poziv na akciju
  • Duži TTL prihvatljiv
  • Rutirano preko: Telegram → Viber → RCS → SMS

Slučajevi upotrebe

  • Lansiranje proizvoda
  • Najave o prodaji
  • Pozivnice za događaje
  • Newsletter kampanje
  • Posebne ponude
  • Svest o brendu

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
}

Sa 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"}
  ]
}

Najbolje prakse

  • ✅ Uključi jasan poziv na akciju
  • ✅ Koristite zanimljiv jezik
  • ✅ Dodajte parametre praćenja URL-ovima
  • ✅ Personalizirajte pomoću varijabli
  • ✅ Testirajte na više kanala
  • ❌ Ne šaljite neželjenu poštu kupcima
  • ❌ Nemojte koristiti obmanjujući sadržaj
  • ❌ Nemojte prekoračiti ograničenje broja znakova

Primjeri prema slučaju upotrebe

Lansiranje proizvoda

{
  "messageType": "promo",
  "text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}

Flash 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 kupaca.

Karakteristike

  • 2-5 opcija odgovora
  • Tekst ograničen na 85 karaktera
  • Interaktivni interfejs na Viberu
  • Povratak na SMS (bez interaktivnosti)
  • Format jednog pitanja

Slučajevi upotrebe

  • Ankete o zadovoljstvu kupaca
  • Povratne informacije o proizvodu
  • Ocjene kvaliteta 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
  • Dužina opcije: Zadržite manje od 30 znakova svaki
  • TTL: Preporučeno 7-30 dana

Najbolje prakse

  • ✅ Postavite jedno jasno pitanje
  • ✅ Obezbedite uravnotežene opcije
  • ✅ Koristite jednostavan jezik
  • ✅ Neka opcije budu sažete
  • ✅ Postavite odgovarajući TTL (7+ dana)
  • ❌ Ne postavljajte više pitanja
  • ❌ Ne koristite tehnički žargon
  • ❌ Nemojte pristrasne odgovore

Primjeri prema slučaju upotrebe

Zadovoljstvo kupaca (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"
  ]
}

Kvalitet 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"
  ]
}

Flash poziv

Provjera telefona korištenjem automatskih poziva umjesto SMS kodova.

Karakteristike

  • Isplativa verifikacija
  • Brže od SMS-a (1-3 sekunde)
  • Nema vidljivog koda u obavještenjima
  • Otporan na napade zamjene SIM kartice
  • Samo telefonski poziv (bez Telegrama/Vibera)

Slučajevi upotrebe

  • Registracija korisnika
  • Potvrda prijave
  • Potvrda telefonskog broja
  • Dvofaktorska autentikacija
  • Oporavak računa
  • Potvrda transakcije

Primjer

{
  "id": "verify-user-12345",
  "fromName": "YourApp",
  "toPhone": "+380XXXXXXXXX",
  "messageType": "flashcall",
  "ttl": 300
}

Kako to radi

  1. Korisnik unosi broj telefona
  2. API pokreće flash poziv
  3. Poziv se prekida nakon 1-2 zvona
  4. Aplikacija snima ID pozivatelja
  5. ID pozivaoca verificiran prema uzorku
  6. Autentifikacija korisnika

Najbolje prakse

  • ✅ Postavite kratki TTL (60-300 sekundi)
  • ✅ Implementirajte identifikaciju pozivaoca
  • ✅ Obezbedite rezervni SMS
  • ✅ Rukovati zahtjevima za dozvolu
  • ✅ Pokažite jasna uputstva
  • ❌ Ne koristite u promotivne svrhe
  • ❌ Ne postavljajte dugi TTL

Primjer sa zamjenom

{
  "id": "verify-001",
  "fromName": "YourApp",
  "toPhone": "+380XXXXXXXXX",
  "messageType": "flashcall",
  "ttl": 300,
  "fallback": {
    "messageType": "transaction",
    "text": "Your verification code: 123456"
  }
}

Odabir pravog tipa

Decision Tree

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 za poređenje

Feature Transakcija Promo Anketa Flash Call
Rich Media
Interactive
Personalizacija
Tipični TTL Sati Dani Sedmica Minute
Cijena Srednje Srednje Srednje Niska
Brzina isporuke Fast Fast Fast 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