Loại tin nhắn
API Cascade hỗ trợ bốn loại thông báo, mỗi loại được tối ưu hóa cho các trường hợp sử dụng và kênh khác nhau.
Tổng quan
| Loại | Mục đích | Kênh | Tương tác |
|---|---|---|---|
giao dịch |
Thông báo quan trọng | Tất cả | Không |
khuyến mãi |
Chiến dịch tiếp thị | Tất cả | Có (nút) |
viber_khảo sát |
Thăm dò ý kiến và phản hồi | Viber, SMS | Có (tùy chọn) |
cuộc gọi flash |
Xác minh điện thoại | Gọi điện thoại | Không |
Tin nhắn giao dịch
Các thông báo quan trọng như xác nhận đơn hàng, cập nhật tài khoản và cảnh báo hệ thống.
Đặc điểm
- Ưu tiên giao hàng cao
- Không có nội dung quảng cáo
- Trực tiếp và ngắn gọn
- Thời gian nhạy cảm
- Định tuyến qua: Telegram → Viber → RCS → SMS
Trường hợp sử dụng
- Xác nhận đơn hàng
- Thông báo thanh toán
- Thông báo tài khoản
- Thông báo bảo mật
- Cập nhật giao hàng
- Đặt lại mật khẩu
Ví dụ
{
"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
}
Các phương pháp hay nhất
- ✅ Giữ tin nhắn dưới 160 ký tự khi có thể
- ✅ Bao gồm các chi tiết giao dịch có liên quan
- ✅ Cung cấp link theo dõi
- ✅ Sử dụng ngôn ngữ rõ ràng, chuyên nghiệp
- ❌ Không đưa vào nội dung tiếp thị
- ❌ Không sử dụng biểu tượng cảm xúc quá mức
Ví dụ theo ca sử dụng
Xác nhận đơn hàng
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Thông báo thanh toán
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Cảnh báo bảo mật
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Cập nhật giao hàng
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Tin nhắn khuyến mãi
Các chiến dịch tiếp thị và quảng cáo với các yếu tố đa phương tiện và tương tác.
Đặc điểm
- Hỗ trợ đa phương tiện
- Nút tương tác
- Tập trung vào lời kêu gọi hành động
- TTL dài hơn có thể chấp nhận được
- Định tuyến qua: Telegram → Viber → RCS → SMS
Trường hợp sử dụng
- Ra mắt sản phẩm
- Thông báo bán hàng
- Lời mời sự kiện
- Chiến dịch bản tin
- Ưu đãi đặc biệt
- Nhận thức về thương hiệu
Ví dụ
{
"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
}
Có biến
{
"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"}
]
}
Các phương pháp hay nhất
- ✅ Bao gồm lời kêu gọi hành động rõ ràng
- ✅ Sử dụng ngôn ngữ hấp dẫn
- ✅ Thêm thông số theo dõi vào URL
- ✅ Cá nhân hóa bằng các biến
- ✅ Thử nghiệm trên nhiều kênh
- ❌ Không spam khách hàng
- ❌ Không sử dụng nội dung gây hiểu lầm
- ❌ Không vượt quá giới hạn ký tự
Ví dụ theo ca sử dụng
Ra mắt sản phẩm
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Giảm giá chớp nhoáng
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Lời mời sự kiện
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Xe hàng bị bỏ rơi
{
"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%"
}
Khảo sát Viber
Các cuộc thăm dò và khảo sát tương tác để thu thập phản hồi của khách hàng.
Đặc điểm
- 2-5 tùy chọn phản hồi
- Văn bản giới hạn ở 85 ký tự
- Giao diện tương tác trên Viber
- Dự phòng SMS (không có tính tương tác)
- Dạng câu hỏi đơn
Trường hợp sử dụng
- Khảo sát sự hài lòng của khách hàng
- Phản hồi về sản phẩm
- Đánh giá chất lượng dịch vụ
- Nghiên cứu thị trường
- Phản hồi sự kiện
- Điểm quảng cáo ròng (NPS)
Ví dụ
{
"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
}
Ràng buộc
- Văn bản: Tối đa 85 ký tự
- Tùy chọn: 2-5 lựa chọn
- Độ dài tùy chọn: Giữ dưới 30 ký tự cho mỗi tùy chọn
- TTL: Khuyến nghị 7-30 ngày
Các phương pháp hay nhất
- ✅ Hỏi 1 câu hỏi rõ ràng
- ✅ Cung cấp các lựa chọn cân bằng
- ✅ Sử dụng ngôn ngữ đơn giản
- ✅ Giữ các lựa chọn ngắn gọn
- ✅ Đặt TTL phù hợp (7+ ngày)
- ❌ Đừng hỏi nhiều câu hỏi
- ❌ Không sử dụng thuật ngữ chuyên môn
- ❌ Đừng thiên vị phản hồi
Ví dụ theo ca sử dụng
Sự hài lòng của khách hàng (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"
]
}
Phản hồi sản phẩm
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Chất lượng dịch vụ
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Phản hồi sự kiện
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Cuộc gọi chớp nhoáng
Xác minh số điện thoại bằng cuộc gọi tự động thay vì mã SMS.
Đặc điểm
- Xác minh hiệu quả chi phí
- Nhanh hơn SMS (1-3 giây)
- Không có mã hiển thị trong thông báo
- Chống lại các cuộc tấn công hoán đổi SIM
- Chỉ gọi điện thoại (không có Telegram/Viber)
Trường hợp sử dụng
- Đăng ký người dùng
- Xác minh đăng nhập
- Xác thực số điện thoại
- Xác thực hai yếu tố
- Khôi phục tài khoản
- Xác nhận giao dịch
Ví dụ
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Cách thức hoạt động
- Người dùng nhập số điện thoại
- API bắt đầu cuộc gọi flash
- Cuộc gọi kết thúc sau 1-2 hồi chuông
- Ứng dụng chụp ID người gọi
- ID người gọi được xác minh theo mẫu
- Người dùng xác thực
Các phương pháp hay nhất
- ✅ Đặt TTL ngắn (60-300 giây)
- ✅ Thực hiện phát hiện ID người gọi
- ✅ Cung cấp dự phòng SMS
- ✅ Xử lý các yêu cầu cấp phép
- ✅ Hiển thị hướng dẫn rõ ràng
- ❌ Không sử dụng vào mục đích quảng cáo
- ❌ Không đặt TTL dài
Ví dụ với Dự phòng
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Chọn đúng loại
Cây quyết định
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)
Ma trận so sánh
| Tính năng | Giao dịch | Khuyến mại | Khảo sát | Cuộc gọi chớp nhoáng | |----------|-------------|-------|-------||----------|| | Đa phương tiện | ❌ | ✅ | ❌ | ❌ | | Tương tác | ❌ | ✅ | ✅ | ❌ | | Cá nhân hóa | ✅ | ✅ | ✅ | ❌ | | TTL điển hình | Giờ | Ngày | Tuần | Phút | | Chi phí | Trung bình | Trung bình | Trung bình | Thấp | | Tốc độ giao hàng | Nhanh | Nhanh | Nhanh | Nhanh nhất |
Ví dụ triển khai
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'
);
Các bước tiếp theo
- Gửi tin nhắn - Bắt đầu gửi tin nhắn theo tầng
- Biến tin nhắn - Cá nhân hóa tin nhắn
- API SMSBAT - Khám phá các tính năng của SMSBAT