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
- Ang user ay nagpasok ng numero ng telepono
- Nagsisimula ang API ng flash call
- Matatapos ang tawag pagkatapos ng 1-2 ring
- Kinukuha ng app ang caller ID
- Na-verify ang Caller ID laban sa pattern
- 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
- Send Messages - Simulan ang pagpapadala ng mga cascade message
- Mga Variable ng Mensahe - I-personalize ang mga mensahe
- SMSBAT API - Galugarin ang mga feature ng SMSBAT