Gestion des Campagnes SMS
Les campagnes SMS vous permettent d’envoyer des messages personnalisés à un groupe de destinataires. Notre API REST offre une solution complète pour créer et gérer vos campagnes, avec support pour les messages standards, programmés et répétés.
Fonctionnalités
- Envoi de messages personnalisés
- Support des messages programmés
- Support des messages répétés
- Gestion des groupes de destinataires
- Personnalisation des expéditeurs
- Suivi des campagnes
Types de campagnes
Notre API supporte plusieurs types de campagnes :
- Campagnes standards : Envoi immédiat de messages
- Campagnes programmées : Envoi à une date et heure précises
- Campagnes répétées : Envoi récurrent selon un planning défini
Limites des messages
Les SMS sont soumis à des limites de caractères selon l’encodage utilisé :
- GSM-7 : 160 caractères par message
- UCS-2 : 70 caractères par message (pour les caractères spéciaux)
- Messages longs : Segmentation automatique (153 caractères par segment)
Important : Incluez l’indicatif du pays sans le symbole (+) avant le numéro de téléphone. Exemple : “22500000000” pour un numéro ivoirien.
Utilisation
Après avoir initialisé votre API, vous pouvez utiliser les endpoints suivants pour gérer vos campagnes SMS.
Création d’une campagne
POST /v1/campaign/create
Content-Type: application/json
{
"apiKey": "YOUR_API_KEY",
"name": "Ma campagne",
"contacts": [
{
"id": "contact_1",
"phone": "22500000000",
"sex": "M"
},
{
"phone": "2250101010101"
}
],
"groupsIds": ["group_1", "group_2"],
"text": "Bonjour !",
"senderId": "My Sender",
"type": "SMS"
}
Création d’une campagne programmée
POST /v1/campaign/create
Content-Type: application/json
{
"apiKey": "YOUR_API_KEY",
"name": "Rappel rendez-vous",
"contacts": [
{
"id": "contact_1",
"phone": "22500000000",
"name": "John Doe"
}
],
"groupsIds": ["group_1"],
"text": "Rappel : Votre rendez-vous est demain à 10h.",
"senderId": "My Sender",
"type": "SCHEDULED",
"scheduledDate": "2024-03-20T10:00:00Z" // Date et heure d'envoi de la campagne
}
Important : Les dates programmées doivent être des multiples de 15 minutes. Par exemple : 10:00, 10:15, 10:30, 10:45.
Création d’une campagne répétée
POST /v1/campaign/create
Content-Type: application/json
{
"apiKey": "YOUR_API_KEY",
"name": "Rappel hebdomadaire",
"contacts": [
{
"id": "contact_1",
"phone": "22500000000",
}
],
"groupsIds": ["group_1"],
"text": "Rappel hebdomadaire : N'oubliez pas votre séance.",
"senderId": "My Sender",
"type": "RECURRING",
"recurring": {
"monday": "2024-03-18T09:00:00Z", // Jour et heure de l'envoi de la campagne
"wednesday": "2024-03-20T09:00:00Z", // Jour et heure de l'envoi de la campagne
"friday": "2024-03-22T09:00:00Z" // Jour et heure de l'envoi de la campagne
}
}
Important : Les heures de répétition doivent être des multiples de 15 minutes. Par exemple : 09:00, 09:15, 09:30, 09:45. La date n’a pas d’importance, c’est la heure qui compte.
Documentation de l’API
POST /v1/campaign/create
Crée une nouvelle campagne SMS avec les paramètres spécifiés.
Nom | Description | Type | Facultatif | Valeur par défaut |
---|---|---|---|---|
apiKey | Clé API | String | Non | - |
name | Nom de la campagne | String | Oui | |
contacts | Liste des contacts destinataires | Array of Contact Object | Non | |
groupsIds | Liste des identifiants de groupes | Array of String | Oui | [] |
text | Contenu du message | String | Non | |
senderId | Nom d’expéditeur complet (ex: “My Sender”) | String | Non | |
type | Type de campagne | ”SMS” | “SCHEDULED” | “RECURRING” | Oui | SMS |
Structure des contacts
{
"id": "string",
"phone": "string",
"name": "string",
"firstName": "string",
"lastName": "string",
"sex": "M" | "F"
}
Seul le numéro de téléphone (phone
) est obligatoire. Tous les autres champs
sont optionnels. Si un contact n’existe pas, il sera automatiquement créé avec
les informations fournies.
Liste des campagnes
Vous pouvez récupérer la liste de vos campagnes avec leurs détails de base.
POST /v1/campaign/list
Content-Type: application/json
{
"apiKey": "YOUR_API_KEY",
}
Réponse
{
"success": true,
"data": [
{
"id": "6826f4b75393b60866510ab9",
"name": "[SMS du 16/4/2025 à 8:17]",
"text": "test msg",
"type": "SMS",
"scheduledDate": null,
"createdAt": "2025-05-16T08:17:59.608Z",
"contactCount": 1,
"senderIdId": null,
"userId": "6825b3719d7998c64a253cc1"
}
],
"totalCount": 1,
"count": 1,
"page": 1,
"totalPage": 1
}
Paramètres de la liste
Nom | Description | Type | Facultatif | Valeur par défaut |
---|---|---|---|---|
apiKey | Clé API | String | Non | - |
orderBy | Champ de tri | ”firstName” | “lastName” | “phone” | “createdAt” | Oui | createdAt |
page | Numéro de page | Number | Oui | 1 |
limit | Nombre d’éléments par page | Number | Oui | 10 |
Bonnes pratiques
- Longueur des messages : Respectez les limites de caractères
- Personnalisation : Utilisez les variables disponibles (@nom_complet, etc.)
- Expéditeur : Choisissez un senderId reconnu
- Test : Vérifiez vos messages avant envoi
- Segmentation : Évitez les messages trop longs
- Programmation : Vérifiez les fuseaux horaires pour les campagnes programmées
- Répétitions : Testez les campagnes répétées sur un petit groupe
- Intervalles : Utilisez des intervalles de 15 minutes pour les campagnes programmées et répétées
Cas d’utilisation
- Campagnes marketing
- Notifications clients
- Alertes et rappels
- Communications internes
- Service client
- Rappels de rendez-vous
- Alertes de sécurité
FAQ
Comment personnaliser mes messages ?
Utilisez les variables comme @name dans votre texte pour personnaliser automatiquement chaque message.
Comment gérer les messages longs ?
Les messages dépassant la limite de caractères sont automatiquement segmentés, chaque segment étant facturé séparément.
Puis-je envoyer à des groupes ?
Oui, utilisez le paramètre groupsIds
pour envoyer à des groupes de contacts prédéfinis.
Comment programmer une campagne ?
Utilisez le type “SCHEDULED” avec le paramètre scheduledDate
pour définir la date et l’heure d’envoi.
Comment créer une campagne répétée ?
Utilisez le type “RECURRING” avec le paramètre recurring
pour définir les jours et heures de répétition.