Skip to Content
BibliothequesDartCampagnes SMS 📨

Gestion des Campagnes SMS

Les campagnes SMS vous permettent d’envoyer des messages personnalisés à vos contacts. Notre SDK Dart supporte les campagnes standards, programmées et récurrentes.

Types de campagnes

  1. SMS : Envoi immédiat
  2. SCHEDULED : Envoi à une date et heure précises
  3. RECURRING : Envoi récurrent selon un planning défini

Utilisation

Après avoir initialisé votre SDK, utilisez la propriété campaign pour gérer vos campagnes.

Création d’une campagne standard

lib/services/campaign_service.dart
import 'package:mon_sms_pro/mon_sms_pro.dart'; Future<void> createCampaign() async { try { final res = await sms.campaign.create( text: 'Bonjour @nom_complet, bon début de semaine !', senderId: 'MonShop', contacts: [ ContactModel(phone: '22500000000', name: 'John Doe'), ContactModel(phone: '22500000001', name: 'Jane Doe'), ], groupsIds: ['group_1', 'group_2'], ); if (res.success) { print('Campagne créée: ${res.data?.id}'); } } catch (error) { print('Erreur: $error'); } }

Campagne programmée

Future<void> createScheduledCampaign() async { final res = await sms.campaign.create( text: 'Rappel : Votre rendez-vous est demain à 10h.', senderId: 'MonShop', contacts: [ContactModel(phone: '22500000000', name: 'John')], type: SMSType.scheduled, scheduledDate: DateTime(2024, 3, 20, 10, 0), ); if (res.success) { print('Campagne programmée !'); } }
⚠️

Les dates programmées doivent être des multiples de 15 minutes. Exemple : 10:00, 10:15, 10:30, 10:45.

Campagne récurrente

Future<void> createRecurringCampaign() async { final res = await sms.campaign.create( text: 'Rappel hebdomadaire !', senderId: 'MonShop', contacts: [ContactModel(phone: '22500000000', name: 'John')], type: SMSType.recurring, recurring: CampaignRecurringDayModel( monday: DateTime(2024, 3, 18, 9, 0), wednesday: DateTime(2024, 3, 20, 9, 0), friday: DateTime(2024, 3, 22, 9, 0), ), ); if (res.success) { print('Campagne récurrente créée !'); } }

Liste des campagnes par entreprise

Future<void> listCampaigns() async { final res = await sms.campaign.listByCompany( page: 1, count: 20, ); if (res.success) { for (final campaign in res.data ?? []) { print('${campaign.text} - ${campaign.type}'); } } }

Détails d’une campagne

Future<void> getCampaignDetails(String id) async { final res = await sms.campaign.get(id: id); if (res.success) { final details = res.data; print('Nom: ${details?.name}'); print('Contacts: ${details?.contacts.length}'); print('Crédits utilisés: ${details?.creditUsed}'); } }

Activer/Désactiver une campagne

Future<void> toggleCampaign(String id) async { final res = await sms.campaign.toggleEnable(id: id); if (res.success) { print('Statut modifié: ${res.data?.isEnabled}'); } }

Le SDK fournit sept méthodes pour les campagnes : create, list, listByCompany, get, update, toggleEnable et getContacts.

Documentation de l’API

sms.campaign.create

Crée une nouvelle campagne SMS.

NomDescriptionTypeFacultatif
textContenu du messageStringNon
senderIdNom d’expéditeur affiché sur le SMS (ex: ‘MonShop’). Doit être enregistré et actif.StringNon
nameNom de la campagneString?Oui
contactsListe des contacts destinatairesList<ContactModel>?Oui
groupsIdsIdentifiants des groupesList<String>?Oui
typeType de campagneSMSType?Oui (défaut: SMS)
scheduledDateDate de programmationDateTime?Oui
recurringConfiguration des répétitionsCampaignRecurringDayModel?Oui
companyIdIdentifiant de l’entreprise (auto-injecté depuis la config SDK)String?Oui

Si vous avez configuré companyId lors de l’initialisation du SDK, il sera automatiquement injecté dans les appels. Vous n’avez pas besoin de le passer manuellement.

Bonnes pratiques

  1. Longueur : Respectez les limites de caractères (160 GSM-7, 70 UCS-2)
  2. Personnalisation : Utilisez les variables @nom_complet, etc.
  3. Test : Testez vos messages avant envoi en masse
  4. Programmation : Utilisez des intervalles de 15 minutes
  5. Récurrence : Testez les campagnes récurrentes sur un petit groupe
Last updated on