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( companyId: 'company_id', 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’entrepriseString?Oui

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