Skip to Content
BibliothequesRESTfulCampagnes SMS 📨

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 :

  1. Campagnes standards : Envoi immédiat de messages
  2. Campagnes programmées : Envoi à une date et heure précises
  3. 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", "companyId": "YOUR_COMPANY_ID", "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", "companyId": "YOUR_COMPANY_ID", "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", "companyId": "YOUR_COMPANY_ID", "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.

NomDescriptionTypeFacultatifValeur par défaut
apiKeyClé APIStringNon-
companyIdIdentifiant de l’entrepriseStringNon-
nameNom de la campagneStringOui
contactsListe des contacts destinataires. Facultatif si groupsIds est renseigné.Array of Contact ObjectOui*
groupsIdsListe des identifiants de groupesArray of StringOui[]
textContenu du messageStringNon
senderIdNom d’expéditeur complet (ex: “My Sender”). Doit appartenir à l’entreprise et être approuvé.StringNon-
typeType de campagne”SMS” | “SCHEDULED” | “RECURRING”OuiSMS
⚠️

Le senderId est obligatoire. C’est le nom exact d’un expéditeur appartenant à l’entreprise et dont le statut est approuvé. Un nom inconnu, en attente d’approbation ou appartenant à une autre entreprise est rejeté avec l’erreur sender-not-found-or-not-approved : aucun expéditeur par défaut n’est substitué et aucun crédit n’est débité.

* contacts et groupsIds sont facultatifs pris séparément, mais la campagne doit aboutir à au moins un destinataire — sinon l’appel échoue avec l’erreur no-contacts.

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. Un numéro inconnu de l’entreprise est automatiquement enregistré comme nouveau contact — seuls phone et name sont alors persistés. Les champs firstName, lastName et sex ne servent qu’à la personnalisation du message de cette campagne ; pour les enregistrer, créez le contact au préalable.

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", "companyId": "YOUR_COMPANY_ID" }

Réponse

{ "success": true, "data": [ { "id": "6826f4b75393b60866510ab9", "isEnabled": true, "text": "test msg", "type": "SMS", "createdAt": "2025-05-16T08:17:59.608Z", "contactCount": 1, "creditUsed": 1, "scheduledDate": null, "user": { "fullName": "John Doe" }, "sender": { "name": "My Sender" }, "_count": { "contacts": 1, "groups": 0 } } ] }

L’expéditeur est renvoyé sous la forme d’un objet imbriqué sender: { name }. Une campagne créée avant la mise en place de l’expéditeur obligatoire peut avoir sender: null.

Paramètres de la liste

NomDescriptionTypeFacultatifValeur par défaut
apiKeyClé APIStringNon-
companyIdIdentifiant de l’entrepriseStringNon-
orderByChamp de tri”type” | “createdAt”OuicreatedAt
sortOrdre de tri”asc” | “desc”Ouidesc
pageNuméro de pageNumberOui-
countNombre d’éléments par page (minimum 5)NumberOui-

La pagination n’est pas encore appliquée côté serveur : page et count sont acceptés mais l’endpoint renvoie toutes les campagnes, triées selon orderBy et sort. La réponse ne contient donc ni totalCount, ni totalPage.

Bonnes pratiques

  1. Longueur des messages : Respectez les limites de caractères
  2. Personnalisation : Utilisez les variables disponibles (@nom_complet, etc.)
  3. Expéditeur : Utilisez le nom exact d’un expéditeur approuvé de l’entreprise
  4. Test : Vérifiez vos messages avant envoi
  5. Segmentation : Évitez les messages trop longs
  6. Programmation : Vérifiez les fuseaux horaires pour les campagnes programmées
  7. Répétitions : Testez les campagnes répétées sur un petit groupe
  8. 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.

Référence API Interactive

Chargement de la documentation API...
Last updated on