Μετάβαση στο περιεχόμενο

Τύποι μηνυμάτων

Το Cascade API υποστηρίζει τέσσερις τύπους μηνυμάτων, ο καθένας βελτιστοποιημένος για διαφορετικές περιπτώσεις χρήσης και κανάλια.

Επισκόπηση

Τύπος Σκοπός Κανάλια Διαδραστική
«συναλλαγή» Σημαντικές ειδοποιήσεις Όλα Όχι
«προώθηση» Καμπάνιες μάρκετινγκ Όλα Ναι (κουμπιά)
viber_survey Δημοσκοπήσεις και σχόλια Viber, SMS Ναι (επιλογές)
"flashcall" Επαλήθευση τηλεφώνου Τηλεφωνική κλήση Όχι

Μηνύματα συναλλαγών

Σημαντικές ειδοποιήσεις όπως επιβεβαιώσεις παραγγελιών, ενημερώσεις λογαριασμού και ειδοποιήσεις συστήματος.

Χαρακτηριστικά

  • Παράδοση υψηλής προτεραιότητας
  • Χωρίς διαφημιστικό περιεχόμενο
  • Άμεσο και συνοπτικό
  • Ευαίσθητο στο χρόνο
  • Δρομολόγηση μέσω: Telegram → Viber → RCS → SMS

Περιπτώσεις χρήσης

  • Επιβεβαιώσεις παραγγελιών
  • Ειδοποιήσεις πληρωμής
  • Ειδοποιήσεις λογαριασμού
  • Ειδοποιήσεις ασφαλείας
  • Ενημερώσεις παράδοσης
  • Επαναφορά κωδικού πρόσβασης

Παράδειγμα

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

Βέλτιστες πρακτικές

  • ✅ Διατηρήστε τα μηνύματα κάτω από 160 χαρακτήρες όταν είναι δυνατόν
  • ✅ Συμπεριλάβετε σχετικές λεπτομέρειες συναλλαγής
  • ✅ Παρέχετε συνδέσμους παρακολούθησης
  • ✅ Χρησιμοποιήστε σαφή, επαγγελματική γλώσσα
  • ❌ Μην συμπεριλάβετε περιεχόμενο μάρκετινγκ
  • ❌ Μην χρησιμοποιείτε υπερβολικά emojis

Παραδείγματα ανά περίπτωση χρήσης

Επιβεβαίωση παραγγελίας

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

Ειδοποίηση πληρωμής

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

Ειδοποίηση ασφαλείας

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

Ενημέρωση παράδοσης

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

Μηνύματα προώθησης

Καμπάνιες μάρκετινγκ και προώθησης με πλούσια μέσα και διαδραστικά στοιχεία.

Χαρακτηριστικά

  • Υποστήριξη εμπλουτισμένων μέσων
  • Διαδραστικά κουμπιά
  • Εστίαση παρότρυνσης για δράση
  • Αποδεκτό μεγαλύτερο TTL
  • Δρομολόγηση μέσω: Telegram → Viber → RCS → SMS

Περιπτώσεις χρήσης

  • Παρουσιάσεις προϊόντων
  • Ανακοινώσεις πωλήσεων
  • Προσκλήσεις εκδηλώσεων
  • Καμπάνιες ενημερωτικών δελτίων
  • Ειδικές προσφορές
  • Επίγνωση της επωνυμίας

Παράδειγμα

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

Με μεταβλητές

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

Βέλτιστες πρακτικές

  • ✅ Συμπεριλάβετε σαφή παρότρυνση για δράση
  • ✅ Χρησιμοποιήστε ελκυστική γλώσσα
  • ✅ Προσθέστε παραμέτρους παρακολούθησης σε διευθύνσεις URL
  • ✅ Εξατομίκευση με μεταβλητές
  • ✅ Δοκιμή σε πολλά κανάλια
  • ❌ Μην στέλνετε ανεπιθύμητα μηνύματα σε πελάτες
  • ❌ Μην χρησιμοποιείτε παραπλανητικό περιεχόμενο
  • ❌ Μην υπερβαίνετε τα όρια χαρακτήρων

Παραδείγματα ανά περίπτωση χρήσης

Παρουσίαση προϊόντος

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

Έκπτωση Flash

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

Πρόσκληση εκδήλωσης

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

Εγκαταλελειμμένο καλάθι

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

Διαδραστικές δημοσκοπήσεις και έρευνες για τη συλλογή σχολίων πελατών.

Χαρακτηριστικά

  • 2-5 επιλογές απόκρισης
  • Κείμενο που περιορίζεται σε 85 χαρακτήρες
  • Διαδραστική διεπαφή στο Viber
  • Εναλλαγή σε SMS (χωρίς διαδραστικότητα)
  • Μορφή μονής ερώτησης

Περιπτώσεις χρήσης

  • Έρευνες ικανοποίησης πελατών
  • Σχόλια για το προϊόν
  • Αξιολογήσεις ποιότητας υπηρεσιών
  • Έρευνα αγοράς
  • Σχόλια εκδήλωσης
  • Καθαρή βαθμολογία υποστηρικτών (NPS)

Παράδειγμα

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

Περιορισμοί

  • Κείμενο: Έως 85 χαρακτήρες
  • Επιλογές: 2-5 επιλογές
  • Μήκος επιλογής: Διατηρήστε λιγότερους από 30 χαρακτήρες το καθένα
  • TTL: Συνιστάται 7-30 ημέρες

Βέλτιστες πρακτικές

  • ✅ Κάντε μια σαφή ερώτηση
  • ✅ Παρέχετε ισορροπημένες επιλογές
  • ✅ Χρησιμοποιήστε απλή γλώσσα
  • ✅ Κρατήστε τις επιλογές συνοπτικές
  • ✅ Ρυθμίστε το κατάλληλο TTL (7+ ημέρες)
  • ❌ Μην κάνετε πολλές ερωτήσεις
  • ❌ Μην χρησιμοποιείτε τεχνική ορολογία
  • ❌ Μην προκαταλαμβάνετε τις απαντήσεις

Παραδείγματα ανά περίπτωση χρήσης

Ικανοποίηση πελατών (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"
  ]
}

Σχόλια προϊόντος

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

Ποιότητα εξυπηρέτησης

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

Σχόλια εκδήλωσης

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

Flash Call

Επαλήθευση τηλεφώνου χρησιμοποιώντας αυτοματοποιημένες κλήσεις αντί για κωδικούς SMS.

Χαρακτηριστικά

  • Οικονομική επαλήθευση
  • Ταχύτερα από SMS (1-3 δευτερόλεπτα)
  • Δεν υπάρχει ορατός κωδικός στις ειδοποιήσεις
  • Ανθεκτικό σε επιθέσεις ανταλλαγής SIM
  • Μόνο τηλεφωνική κλήση (χωρίς Telegram/Viber)

Περιπτώσεις χρήσης

  • Εγγραφή χρήστη
  • Επαλήθευση σύνδεσης
  • Επικύρωση αριθμού τηλεφώνου
  • Έλεγχος ταυτότητας δύο παραγόντων
  • Ανάκτηση λογαριασμού
  • Επιβεβαίωση συναλλαγής

Παράδειγμα

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

Πώς λειτουργεί

  1. Ο χρήστης εισάγει τον αριθμό τηλεφώνου
  2. Το API εκκινεί την κλήση flash
  3. Η κλήση τερματίζεται μετά από 1-2 κουδουνίσματα
  4. Η εφαρμογή καταγράφει αναγνώριση κλήσης
  5. Το αναγνωριστικό καλούντος επαληθεύτηκε με μοτίβο
  6. Έγινε έλεγχος ταυτότητας χρήστη

Βέλτιστες πρακτικές

  • ✅ Ρύθμιση σύντομου TTL (60-300 δευτερόλεπτα)
  • ✅ Εφαρμογή ανίχνευσης αναγνώρισης κλήσης
  • ✅ Παρέχετε εναλλακτικό SMS
  • ✅ Χειρισμός αιτημάτων άδειας
  • ✅ Δείξτε σαφείς οδηγίες
  • ❌ Μην χρησιμοποιείτε για διαφημιστικούς σκοπούς
  • ❌ Μην ορίζετε μεγάλο TTL

Παράδειγμα με Fallback

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

Επιλογή του σωστού τύπου

Δέντρο απόφασης

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)

Πίνακας σύγκρισης

Χαρακτηριστικό Συναλλαγή Promo Έρευνα Flash Call
Rich Media
Διαδραστική
Εξατομίκευση
Τυπικό TTL Ώρες Μέρες Εβδομάδα Λεπτά
Κόστος Μεσαία Μεσαία Μεσαία Χαμηλό
Ταχύτητα παράδοσης Γρήγορα Γρήγορα Γρήγορα Ταχύτερα

Παράδειγμα υλοποίησης

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

Επόμενα βήματα