Skoči na vsebino

Vrste sporočil

Cascade API podpira štiri vrste sporočil, od katerih je vsaka optimizirana za različne primere uporabe in kanale.

Pregled

Vrsta Namen Kanali Interaktivno
transakcija Kritična obvestila Vse Ne
promocija Marketinške akcije Vse Da (gumbi)
viber_anketa Ankete in povratne informacije Viber, SMS Yes (options)
bliskovski klic Telefonsko preverjanje Telefonski klic Ne

Transakcijska sporočila

Kritična obvestila, kot so potrditve naročil, posodobitve računa in sistemska opozorila.

Značilnosti

  • Dostava visoke prioritete
  • Brez promocijske vsebine
  • Neposredno in jedrnato
  • Občutljivo na čas
  • Usmerjeno prek: Telegram → Viber → RCS → SMS

Primeri uporabe

  • Potrditve naročil
  • Obvestila o plačilih
  • Opozorila o računu
  • Varnostna obvestila
  • Posodobitve dostave
  • Ponastavitev gesla

Primer

{
  "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
}

Najboljše prakse

  • ✅ Naj bodo sporočila krajša od 160 znakov, kadar je to mogoče
  • ✅ Vključite ustrezne podrobnosti transakcije
  • ✅ Navedite povezave za sledenje
  • ✅ Uporabljajte jasen, profesionalen jezik
  • ❌ Ne vključujte marketinške vsebine
  • ❌ Ne uporabljajte pretirano emojijev

Primeri po primerih uporabe

Potrditev naročila

{
  "messageType": "transaction",
  "text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}

Obvestilo o plačilu

{
  "messageType": "transaction",
  "text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}

Varnostno opozorilo

{
  "messageType": "transaction",
  "text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}

Posodobitev dostave

{
  "messageType": "transaction",
  "text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}

Promocijska sporočila

Tržne in promocijske kampanje z obogatenimi mediji in interaktivnimi elementi.

Značilnosti

  • Podpora za bogate medije
  • Interaktivni gumbi
  • Osredotočen na poziv k dejanju
  • Sprejemljiv daljši TTL
  • Usmerjeno prek: Telegram → Viber → RCS → SMS

Primeri uporabe

  • Predstavitve izdelkov
  • Prodajna obvestila
  • Vabila na dogodke
  • Akcije z glasili
  • Posebne ponudbe
  • Brand awareness

Primer

{
  "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 spremenljivkami

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

Najboljše prakse

  • ✅ Vključite jasen poziv k dejanju
  • ✅ Uporabljajte privlačen jezik
  • ✅ URL-jem dodajte parametre sledenja
  • ✅ Prilagodite s spremenljivkami
  • ✅ Preizkusite na več kanalih
  • ❌ Strankam ne pošiljajte vsiljene pošte
  • ❌ Ne uporabljajte zavajajoče vsebine
  • ❌ Ne prekoračite omejitev znakov

Primeri po primerih uporabe

Lansiranje izdelka

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

Hitra razprodaja

{
  "messageType": "promo",
  "text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}

Vabilo na dogodek

{
  "messageType": "promo",
  "text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}

Zapuščen voziček

{
  "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 in ankete za zbiranje povratnih informacij strank.

Značilnosti

  • 2-5 možnosti odgovora
  • Besedilo je omejeno na 85 znakov
  • Interaktivni vmesnik na Viberju
  • Povratek na SMS (brez interaktivnosti)
  • Oblika enega vprašanja

Primeri uporabe

  • Ankete o zadovoljstvu strank
  • Povratne informacije o izdelku
  • Ocene kakovosti storitev
  • Tržne raziskave
  • Povratne informacije o dogodku
  • Net Promoter Score (NPS)

Primer

{
  "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
}

Omejitve

  • Besedilo: največ 85 znakov
  • Možnosti: 2-5 možnosti
  • Možna dolžina: Naj bo vsak pod 30 znakov
  • TTL: Priporočeno 7-30 dni

Najboljše prakse

  • ✅ Zastavite eno jasno vprašanje
  • ✅ Zagotovite uravnotežene možnosti
  • ✅ Uporabljajte preprost jezik
  • ✅ Naj bodo možnosti jedrnate
  • ✅ Nastavite ustrezen TTL (7+ dni)
  • ❌ Ne postavljajte več vprašanj
  • ❌ Ne uporabljajte tehničnega žargona
  • ❌ Ne spreminjajte odgovorov

Primeri po primerih uporabe

Zadovoljstvo strank (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 izdelku

{
  "messageType": "viber_survey",
  "text": "How do you rate our new product?",
  "surveyOptions": [
    "⭐️ Excellent",
    "⭐️ Good",
    "⭐️ Average",
    "⭐️ Poor",
    "⭐️ Very Poor"
  ]
}

Kakovost storitev

{
  "messageType": "viber_survey",
  "text": "Was your support experience helpful?",
  "surveyOptions": [
    "Yes, very helpful",
    "Somewhat helpful",
    "Not helpful"
  ]
}

Povratne informacije o dogodku

{
  "messageType": "viber_survey",
  "text": "Would you attend our events again?",
  "surveyOptions": [
    "Definitely yes",
    "Probably yes",
    "Not sure",
    "Probably not",
    "Definitely not"
  ]
}

Flash Call

Preverjanje telefona z uporabo samodejnih klicev namesto SMS kod.

Značilnosti

  • Stroškovno učinkovito preverjanje
  • Hitreje kot SMS (1-3 sekunde)
  • V obvestilih ni vidne kode
  • Odporen na napade zamenjave kartice SIM
  • Samo telefonski klic (brez Telegrama/Viberja)

Primeri uporabe

  • Registracija uporabnika
  • Preverjanje prijave
  • Potrjevanje telefonske številke
  • Dvostopenjska avtentikacija
  • Obnovitev računa
  • Potrditev transakcije

Primer

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

Kako deluje

  1. Uporabnik vnese telefonsko številko
  2. API sproži bliskovni klic
  3. Klic se prekine po 1-2 zvonjenjih
  4. Aplikacija zajame ID klicatelja
  5. ID klicatelja preverjen glede na vzorec
  6. Preverjena pristnost uporabnika

Najboljše prakse

  • ✅ Nastavite kratek TTL (60-300 sekund)
  • ✅ Izvedite zaznavanje ID-ja klicatelja
  • ✅ Zagotovite nadomestni SMS
  • ✅ Obravnavajte zahteve za dovoljenja
  • ✅ Pokaži jasna navodila
  • ❌ Ne uporabljajte v promocijske namene
  • ❌ Ne nastavljajte dolgega TTL

Primer z rezervo

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

Izbira prave vrste

Odločitveno drevo

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)

Primerjalna matrika

Funkcija Transakcija Promocija Anketa Flash Call
Obogatena predstavnost
Interaktivno
Personalizacija
Tipičen TTL ure Dnevi teden zapisnik
Stroški Srednje Srednje Srednje Nizka
Hitrost dostave Hitro Hitro Hitro Najhitrejši

Primer 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'
);

Naslednji koraki