> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dexnotify.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Campagnes e-mail et SMS

> Un message marketing vers vos listes, du brouillon au rapport.

Une campagne envoie **un même message** à une ou plusieurs [listes](https://docs.dexnotify.com/contacts/listes.md) de contacts, sur un canal : `email` ou `sms`. Elle ne vise que les contacts **joignables** — une adresse ou un numéro, et pas de désinscription — et elle ajoute d’elle-même le moyen de se désinscrire.

Dans le dashboard : **Campagnes › E-mail et SMS**, avec un éditeur visuel à blocs, des modèles prêts à l’emploi et un aperçu sur mobile. Tout ce que fait le dashboard se fait aussi par l’API.

## Le cycle de vie

```text theme={null}
draft → scheduled → preparing → sending → sent
  ▲         │                      │  ▲
  └─────────┘ unschedule      pause│  │resume (e-mail)
                                   ▼  │
                                  paused
cancelled : depuis scheduled, preparing, sending ou paused
```

**1. Créer le brouillon**

```bash theme={null}
curl -X POST https://api.dexnotify.com/api/v1/marketing-campaigns \
  -H "x-api-key: $DEXNOTIFY_CLE" -H "content-type: application/json" \
  -d '{
    "name": "Soldes de novembre",
    "channel": "email",
    "audience": { "listIds": ["6702…"], "excludeListIds": ["6703…"] },
    "email": {
      "subject": "{{prenom|Bonjour}}, -20 % ce week-end",
      "preheader": "Sur toute la boutique, jusqu’à dimanche",
      "fromName": "Votre Marque",
      "fromEmail": "news@votremarque.sn",
      "replyTo": "contact@votremarque.sn",
      "html": "<html><body><h1>-20 %</h1><p>Bonjour {{prenom|à vous}}…</p></body></html>"
    }
  }'
```

Pour un SMS : `"channel": "sms"` et `"sms": { "sender": "MAMARQUE", "text": "…", "unsubscribeMention": true }`.

Un contact présent dans une liste visée **et** dans une liste exclue n’est pas visé.

**2. Estimer et tester**

`GET /api/v1/marketing-campaigns/{id}/estimate` rend les contacts joignables, ceux qui sont exclus et pourquoi (pas d’adresse, désinscrits, supprimés) et, pour un SMS, les unités estimées.

`POST /api/v1/marketing-campaigns/{id}/test` envoie un essai, variables rendues, à quelques adresses ou numéros. Son objet est préfixé `[Test]`.

**3. Envoyer ou programmer**

```http theme={null}
POST /api/v1/marketing-campaigns/{id}/send
POST /api/v1/marketing-campaigns/{id}/schedule   { "scheduledAt": "2026-11-15T09:00:00Z" }
```

Programmée, une campagne se ramène en brouillon par `/unschedule`.

**4. Suivre**

`GET /api/v1/marketing-campaigns/{id}` rend le statut et les statistiques ; `/report` les ouvertures et clics par heure et les liens cliqués ; `/recipients` le résultat de chaque destinataire d’une campagne e-mail.

Portées : `campaign:write` pour composer, tester, envoyer, programmer, mettre en pause ou annuler ; `campaign:read` pour lire, estimer et suivre.

## Ce qu’il faut avant d’envoyer

| Canal | Prérequis |
| - | - |
| E-mail | `fromEmail` sur un [domaine vérifié](https://docs.dexnotify.com/email/domaines.md), un objet et un contenu |
| SMS | un [nom d’expéditeur](https://docs.dexnotify.com/sms/expediteurs.md) approuvé (ou `DEXCHANGE`) et un [solde](https://docs.dexnotify.com/sms/solde.md) suffisant |

## Les autres actions

| Route | Effet |
| - | - |
| `PATCH /api/v1/marketing-campaigns/{id}` | modifie un brouillon |
| `POST …/pause`, `POST …/resume` | suspend puis reprend une campagne e-mail en cours |
| `POST …/cancel` | annule une campagne programmée ou en cours ; ce qui est parti reste parti |
| `POST …/duplicate` | copie une campagne en brouillon |
| `DELETE /api/v1/marketing-campaigns/{id}` | supprime un brouillon ou une campagne annulée |

## Statistiques

Pour une campagne e-mail : envoyés, remis, ouverts, cliqués, rebonds, plaintes, désinscriptions. Pour une campagne SMS : envoyés, remis, échecs et unités, comme pour un [envoi groupé](https://docs.dexnotify.com/sms/statuts.md).

> [!NOTE]
>
> Les ouvertures sont indicatives : certaines messageries chargent les images d’office, d’autres les bloquent. Fiez-vous plutôt aux clics.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.