I-skip tungo sa nilalaman

Mga Uri ng Mensahe

Sinusuportahan ng Cascade API ang apat na uri ng mensahe, bawat isa ay na-optimize para sa iba't ibang mga kaso ng paggamit at mga channel.

Pangkalahatang-ideya

Uri Layunin Mga Channel Interactive
transaksyon Mga kritikal na notification Lahat Hindi
promo Mga kampanya sa marketing Lahat Oo (mga pindutan)
viber_survey Mga botohan at feedback Viber, SMS Oo (mga opsyon)
flashcall Pag-verify ng telepono Tawag sa telepono Hindi

Mga Mensahe sa Transaksyon

Mga kritikal na notification tulad ng pagkumpirma ng order, pag-update ng account, at mga alerto sa system.

Mga katangian

  • Mataas na priyoridad na paghahatid
  • Walang pampromosyong nilalaman
  • Direkta at maigsi
  • Sensitibo sa oras
  • Ruta sa pamamagitan ng: Telegram → Viber → RCS → SMS

Mga Use Case

  • Pagkumpirma ng order
  • Mga abiso sa pagbabayad
  • Mga alerto sa account
  • Mga abiso sa seguridad
  • Mga update sa paghahatid
  • Mga pag-reset ng password

Halimbawa

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

Pinakamahuhusay na Kasanayan

  • ✅ Panatilihin ang mga mensahe sa ilalim ng 160 character kung posible
  • ✅ Isama ang mga nauugnay na detalye ng transaksyon
  • ✅ Magbigay ng mga link sa pagsubaybay
  • ✅ Gumamit ng malinaw, propesyonal na wika
  • ❌ Huwag isama ang nilalaman ng marketing
  • ❌ Huwag gumamit ng emojis nang labis

Mga Halimbawa ayon sa Use Case

Kumpirmasyon ng Order

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

Notification sa Pagbabayad

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

Alerto sa Seguridad

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

Update sa Paghahatid

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

Mga Mensahe ng Promo

Mga marketing at promotional campaign na may rich media at interactive na elemento.

Mga katangian

  • Suporta sa rich media
  • Mga interactive na pindutan
  • Nakatuon ang call-to-action
  • Mas mahabang TTL na katanggap-tanggap
  • Ruta sa pamamagitan ng: Telegram → Viber → RCS → SMS

Mga Use Case

  • Paglulunsad ng produkto
  • Mga anunsyo sa pagbebenta
  • Mga imbitasyon sa kaganapan
  • Mga kampanya sa Newsletter
  • Mga espesyal na alok
  • Kamalayan sa brand

Halimbawa

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

Gamit ang mga Variable

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

Pinakamahuhusay na Kasanayan

  • ✅ Isama ang malinaw na call-to-action
  • ✅ Gumamit ng nakakaakit na pananalita
  • ✅ Magdagdag ng mga parameter sa pagsubaybay sa mga URL
  • ✅ I-personalize gamit ang mga variable
  • ✅ Subukan sa maraming channel
  • ❌ Huwag mag-spam ng mga customer
  • ❌ Huwag gumamit ng mapanlinlang na nilalaman
  • ❌ Huwag lumampas sa mga limitasyon sa karakter

Mga Halimbawa ayon sa Use Case

Paglulunsad ng Produkto

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

Flash Sale

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

Imbitasyon sa Kaganapan

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

Inabandunang Cart

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

Mga interactive na poll at survey para sa pagkolekta ng feedback ng customer.

Mga katangian

  • 2-5 mga pagpipilian sa pagtugon
  • Limitado ang text sa 85 character
  • Interactive na interface sa Viber
  • Fallback sa SMS (nang walang interactivity)
  • Isang format na tanong

Mga Use Case

  • Mga survey sa kasiyahan ng customer
  • Feedback ng produkto
  • Mga rating ng kalidad ng serbisyo
  • Pananaliksik sa merkado
  • Feedback sa kaganapan
  • Net Promoter Score (NPS)

Halimbawa

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

Mga hadlang

  • Text: Maximum na 85 character
  • Mga Pagpipilian: 2-5 na pagpipilian
  • Haba ng Opsyon: Panatilihing wala pang 30 character bawat isa
  • TTL: Inirerekomenda 7-30 araw

Pinakamahuhusay na Kasanayan

  • ✅ Magtanong ng isang malinaw na tanong
  • ✅ Magbigay ng balanseng mga pagpipilian
  • ✅ Gumamit ng simpleng wika
  • ✅ Panatilihing maigsi ang mga opsyon
  • ✅ Itakda ang naaangkop na TTL (7+ araw)
  • ❌ Huwag magtanong ng maraming tanong
  • ❌ Huwag gumamit ng teknikal na jargon
  • ❌ Huwag bias ang mga tugon

Mga Halimbawa ayon sa Use Case

Customer Satisfaction (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 ng Produkto

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

Kalidad ng Serbisyo

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

Feedback sa Kaganapan

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

Flash na Tawag

Pag-verify ng telepono gamit ang mga awtomatikong tawag sa halip na mga SMS code.

Mga katangian

  • Cost-effective na pag-verify
  • Mas mabilis kaysa sa SMS (1-3 segundo)
  • Walang nakikitang code sa mga notification
  • Lumalaban sa mga pag-atake ng SIM swap
  • Tawag sa telepono lamang (walang Telegram/Viber)

Mga Use Case

  • Pagpaparehistro ng user
  • Pag-verify sa pag-login
  • Pagpapatunay ng numero ng telepono
  • Dalawang-factor na pagpapatotoo
  • Pagbawi ng account
  • Pagkumpirma ng transaksyon

Halimbawa

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

Paano Ito Gumagana

  1. Ang user ay nagpasok ng numero ng telepono
  2. Nagsisimula ang API ng flash call
  3. Matatapos ang tawag pagkatapos ng 1-2 ring
  4. Kinukuha ng app ang caller ID
  5. Na-verify ang Caller ID laban sa pattern
  6. Pinatotohanan ng user

Pinakamahuhusay na Kasanayan

  • ✅ Itakda ang maikling TTL (60-300 segundo)
  • ✅ Ipatupad ang caller ID detection
  • ✅ Magbigay ng SMS fallback
  • ✅ Pangasiwaan ang mga kahilingan sa pahintulot
  • ✅ Magpakita ng malinaw na mga tagubilin
  • ❌ Huwag gamitin para sa mga layuning pang-promosyon
  • ❌ Huwag magtakda ng mahabang TTL

Halimbawa sa Fallback

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

Pagpili ng Tamang Uri

Puno ng Desisyon

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)

Matrix ng Paghahambing

Tampok Transaksyon Promo Survey Flash na Tawag
Rich Media
Interactive
Pag-personalize
Karaniwang TTL Oras Mga Araw Linggo Mga minuto
Gastos Katamtaman Katamtaman Katamtaman Mababa
Bilis ng Paghahatid Mabilis Mabilis Mabilis Pinakamabilis

Halimbawa ng Pagpapatupad

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

Mga Susunod na Hakbang