Types de messages
L'API Cascade prend en charge quatre types de messages, chacun optimisé pour différents cas d'utilisation et canaux.
Aperçu
| Tapez | Objectif | Chaînes | Interactif |
|---|---|---|---|
transaction |
Notifications critiques | Tout | Non |
promo |
Campagnes marketing | Tout | Oui (boutons) |
viber_survey |
Sondages et commentaires | Viber, SMS | Oui (options) |
appel flash |
Vérification du téléphone | Appel téléphonique | Non |
Messages de transactions
Notifications critiques telles que les confirmations de commande, les mises à jour de compte et les alertes système.
Caractéristiques
- Livraison haute priorité
- Aucun contenu promotionnel
- Direct et concis
- Sensible au temps
- Acheminé via : Télégramme → Viber → RCS → SMS
Cas d'utilisation
- Confirmations de commande
- Notifications de paiement
- Alertes de compte
- Notifications de sécurité
- Mises à jour de livraison
- Réinitialisation du mot de passe
Exemple
{
"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
}
Bonnes pratiques
- ✅ Gardez les messages de moins de 160 caractères lorsque cela est possible
- ✅ Inclure les détails de la transaction pertinents
- ✅ Fournir des liens de suivi
- ✅ Utiliser un langage clair et professionnel
- ❌ Ne pas inclure de contenu marketing
- ❌ N'utilisez pas d'émojis de manière excessive
Exemples par cas d'utilisation
Confirmation de commande
{
"messageType": "transaction",
"text": "Order #12345 confirmed. Total: $99.99. Expected delivery: Jan 25."
}
Notification de paiement
{
"messageType": "transaction",
"text": "Payment of $150.00 to Merchant ABC successful. Transaction ID: TXN789. Balance: $850.00"
}
Alerte de sécurité
{
"messageType": "transaction",
"text": "New login detected from iPhone at 10:30 AM. Location: New York. If this wasn't you, secure your account immediately."
}
Mise à jour de livraison
{
"messageType": "transaction",
"text": "Your package is out for delivery! Expected arrival: 2-4 PM. Track: https://track.example.com/PKG123"
}
Messages promotionnels
Campagnes de marketing et de promotion avec des médias riches et des éléments interactifs.
Caractéristiques
- Prise en charge des médias riches
- Boutons interactifs
- Axé sur l'appel à l'action
- TTL plus long acceptable
- Acheminé via : Télégramme → Viber → RCS → SMS
Cas d'utilisation
- Lancements de produits
- Annonces de ventes
- Invitations à des événements
- Campagnes de newsletter
- Offres spéciales
- Notoriété de la marque
Exemple
{
"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
}
Avec des variables
{
"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"}
]
}
Bonnes pratiques
- ✅ Incluez un appel à l'action clair
- ✅ Utilisez un langage engageant
- ✅ Ajouter des paramètres de suivi aux URL
- ✅ Personnaliser avec des variables
- ✅ Test sur plusieurs canaux
- ❌ Ne spammez pas les clients
- ❌ N'utilisez pas de contenu trompeur
- ❌ Ne dépassez pas les limites de caractères
Exemples par cas d'utilisation
Lancement du produit
{
"messageType": "promo",
"text": "🎉 NEW ARRIVAL: iPhone 15 Pro now available! Pre-order today and get free shipping. Visit: https://store.com/iphone15"
}
Vente Flash
{
"messageType": "promo",
"text": "⚡ FLASH SALE: 2 hours only! Extra 30% off everything. Use code: FLASH30. Shop now: https://store.com/flash"
}
Invitation à un événement
{
"messageType": "promo",
"text": "You're invited! VIP Shopping Event on Jan 25 at 6 PM. Exclusive deals + refreshments. RSVP: https://events.com/vip"
}
Panier abandonné
{
"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%"
}
Enquête Viber
Sondages et enquêtes interactifs pour recueillir les commentaires des clients.
Caractéristiques
- 2 à 5 options de réponse
- Texte limité à 85 caractères
- Interface interactive sur Viber
- Repli sur SMS (sans interactivité)
- Format d'une seule question
Cas d'utilisation
- Enquêtes de satisfaction clients
- Commentaires sur les produits
- Évaluations de la qualité du service
- Etude de marché
- Commentaires sur l'événement
- Score net de promoteur (NPS)
Exemple
{
"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
}
Contraintes
- Texte : 85 caractères maximum
- Options : 2 à 5 choix
- Longueur de l'option : gardez moins de 30 caractères chacun
- TTL : 7 à 30 jours recommandés
Bonnes pratiques
- ✅ Posez une question claire
- ✅ Proposer des options équilibrées
- ✅ Utilisez un langage simple
- ✅ Gardez les options concises
- ✅ Définir le TTL approprié (7+ jours)
- ❌Ne posez pas plusieurs questions
- ❌ N'utilisez pas de jargon technique
- ❌ Ne biaisez pas les réponses
Exemples par cas d'utilisation
Satisfaction client (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"
]
}
Commentaires sur les produits
{
"messageType": "viber_survey",
"text": "How do you rate our new product?",
"surveyOptions": [
"⭐️ Excellent",
"⭐️ Good",
"⭐️ Average",
"⭐️ Poor",
"⭐️ Very Poor"
]
}
Qualité des services
{
"messageType": "viber_survey",
"text": "Was your support experience helpful?",
"surveyOptions": [
"Yes, very helpful",
"Somewhat helpful",
"Not helpful"
]
}
Commentaires sur l'événement
{
"messageType": "viber_survey",
"text": "Would you attend our events again?",
"surveyOptions": [
"Definitely yes",
"Probably yes",
"Not sure",
"Probably not",
"Definitely not"
]
}
Appel Flash
Vérification téléphonique à l'aide d'appels automatisés au lieu de codes SMS.
Caractéristiques
- Vérification rentable
- Plus rapide que les SMS (1 à 3 secondes)
- Aucun code visible dans les notifications
- Résistant aux attaques d'échange de carte SIM
- Appel téléphonique uniquement (pas de Telegram/Viber)
Cas d'utilisation
- Inscription des utilisateurs
- Vérification de connexion
- Validation du numéro de téléphone
- Authentification à deux facteurs
- Récupération de compte -Confirmation de transaction
Exemple
{
"id": "verify-user-12345",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300
}
Comment ça marche
- L'utilisateur saisit le numéro de téléphone
- L'API lance un appel flash
- L'appel se termine après 1 à 2 sonneries
- L'application capture l'identification de l'appelant
- Identification de l'appelant vérifiée par rapport au modèle
- Utilisateur authentifié
Bonnes pratiques
- ✅ Régler un TTL court (60-300 secondes)
- ✅ Mettre en œuvre la détection de l'identification de l'appelant
- ✅ Fournir une solution de secours SMS
- ✅ Gérer les demandes d'autorisation
- ✅ Afficher des instructions claires
- ❌ Ne pas utiliser à des fins promotionnelles
- ❌ Ne définissez pas de long TTL
Exemple avec repli
{
"id": "verify-001",
"fromName": "YourApp",
"toPhone": "+380XXXXXXXXX",
"messageType": "flashcall",
"ttl": 300,
"fallback": {
"messageType": "transaction",
"text": "Your verification code: 123456"
}
}
Choisir le bon type
Arbre de décision
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)
Matrice de comparaison
| Fonctionnalité | Transaction | Promo | Enquête | Appel éclair |
|---|---|---|---|---|
| Médias riches | ❌ | ✅ | ❌ | ❌ |
| Interactif | ❌ | ✅ | ✅ | ❌ |
| Personnalisation | ✅ | ✅ | ✅ | ❌ |
| TTL typique | Horaires | Jours | Semaine | Procès-verbal |
| Coût | Moyen | Moyen | Moyen | Faible |
| Vitesse de livraison | Rapide | Rapide | Rapide | Le plus rapide |
Exemple d'implémentation
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'
);
Prochaines étapes
- Envoyer des messages - Commencer à envoyer des messages en cascade
- Variables des messages - Personnaliser les messages
- API SMSBAT - Explorez les fonctionnalités de SMSBAT