Bỏ qua

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

  1. Người dùng nhập số điện thoại
  2. API bắt đầu cuộc gọi flash
  3. Cuộc gọi kết thúc sau 1-2 hồi chuông
  4. Ứng dụng chụp ID người gọi
  5. ID người gọi được xác minh theo mẫu
  6. 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