לדלג לתוכן

סוגי הודעות

Cascade API תומך בארבעה סוגי הודעות, שכל אחד מהם מותאם למקרי שימוש וערוצים שונים.

סקירה כללית

הקלד מטרה ערוצים אינטראקטיבי
עסקה הודעות קריטיות הכל לא
פרומו קמפיינים שיווקיים הכל כן (כפתורים)
viber_survey סקרים ומשוב Viber, SMS כן (אפשרויות)
שיחת הבזק אימות טלפוני שיחת טלפון לא

הודעות עסקה

התראות קריטיות כמו אישורי הזמנה, עדכוני חשבון והתראות מערכת.

מאפיינים

  • משלוח בעדיפות גבוהה
  • ללא תוכן פרסומי
  • ישיר ותמציתי
  • רגיש לזמן
  • מנותב דרך: טלגרם → 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 תווים במידת האפשר
  • ✅ כלול פרטי עסקה רלוונטיים
  • ✅ לספק קישורי מעקב
  • ✅ השתמש בשפה ברורה ומקצועית
  • ❌ אל תכלול תוכן שיווקי
  • ❌ אל תשתמש באימוג'י בצורה מוגזמת

דוגמאות לפי מקרה שימוש

אישור הזמנה

{
  "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 ארוך יותר מקובל
  • מנותב דרך: טלגרם → 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"}
  ]
}

שיטות עבודה מומלצות

  • ✅ כלול קריאה ברורה לפעולה
  • ✅ השתמש בשפה מושכת
  • ✅ הוסף פרמטרי מעקב לכתובות אתרים
  • ✅ התאמה אישית עם משתנים
  • ✅ בדיקה במספר ערוצים
  • ❌ אל תשלח ספאם ללקוחות
  • ❌ אל תשתמש בתוכן מטעה
  • ❌ אל תחרוג ממגבלות התווים

דוגמאות לפי מקרה שימוש

השקת מוצר

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

מכירה בזק

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

שיחת הבזק

אימות טלפוני באמצעות שיחות אוטומטיות במקום קודי SMS.

מאפיינים

  • אימות חסכוני
  • מהיר יותר מ-SMS (1-3 שניות)
  • אין קוד גלוי בהתראות
  • עמיד בפני התקפות החלפת SIM
  • שיחת טלפון בלבד (ללא טלגרם/Viber)

מקרי שימוש

  • רישום משתמש
  • אימות כניסה
  • אימות מספר טלפון
  • אימות דו-גורמי
  • שחזור חשבון
  • אישור עסקה

דוגמה

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

איך זה עובד

  1. המשתמש מזין מספר טלפון
  2. API יוזם קריאת פלאש
  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)

מטריצת השוואה

תכונה עסקה פרומו סקר שיחת פלאש
מדיה עשירה
אינטראקטיבי
התאמה אישית
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'
);

השלבים הבאים