La vie d’une campagne
Une campagne est créée en brouillon (draft). Elle se termine (ended) une fois sa date end_at dépassée. Une campagne qui n’a pas pu démarrer est failed, avec la raison dans failure_reason ; corrigez-la et relancez-la. Vous pouvez modifier une campagne en brouillon, échouée ou en pause ; mettez en pause une campagne programmée ou en cours avant de la modifier.
1. Créer la campagne
POST /campaigns
Les campagnes automatiques (
new_conversation) acceptent aussi once_per_contact (un contact ne reçoit le message qu’une fois), send_delay_minutes (attente après le début de la conversation) et min_inactive_minutes (attente que la conversation soit calme).
Messages
WhatsApp envoie un modèle approuvé, avec une valeur pour chacune de ses variables :
La
source d’une variable est :
field:firstname,field:lastname,field:name,field:email,field:phone,field:addressoufield:identifier: un champ du contact ;column:<clé>: une colonne du fichier importé, associée commevar:<clé>;text, avecvalue: le même texte pour tous.
fallback est utilisé quand le contact n’a pas de valeur, pour qu’aucun message ne parte avec une variable vide. Une campagne automatique peut envoyer un simple { "text": "..." } au lieu d’un modèle.
L’e-mail prend un subject et un corps html. Les textes acceptent @firstname, @<colonne> et @{clé|valeur par défaut}.
Audience
Un fichier de contacts
Envoyez un fichier.xlsx ou .csv avec une colonne de numéros de téléphone, puis associez ses colonnes et contrôlez-le :
1
Envoyer
IMP-XXXXX) et ses columns, avec leur en-tête, des valeurs d’exemple et une target devinée. Les numéros sans indicatif reçoivent celui de votre entreprise.2
Associer les colonnes
PATCH /campaign-imports/{id} avec le contenu de chaque colonne, par index : phone (une colonne, obligatoire), first_name, last_name, email, var:<clé> (une variable pour le message) ou ignore.3
Contrôler
POST /campaign-imports/{id}/check compte les numéros valides, les doublons fusionnés, les numéros invalides (avec leur ligne), les contacts désinscrits et les nouveaux contacts. Avec "marketing": true (par défaut), les contacts désinscrits sont exclus du compte. Un gros fichier est contrôlé en arrière-plan : appelez GET /campaign-imports/{id} jusqu’à ce que son status soit checked.2. Vérifier et estimer
Avant le lancement,GET /campaigns/{id}/checks liste ce qui doit être vrai :
senders), les messages (messages), le modèle (template), l’audience (audience), les variables (variables), les dates (dates) et le crédit (credit). Un contrôle block empêche le lancement ; un contrôle warn, non.
GET /campaigns/{id}/estimate donne le coût : les destinataires joignables par canal multipliés par le prix d’un message, qui dépend de sa catégorie (celle du modèle, sur WhatsApp) et du pays du destinataire.
3. Lancer
POST /campaigns/{id}/launch envoie maintenant, ou à start_at si cette date est future :
active et envoie à chaque nouvelle conversation.
4. Pause, reprise, duplication
GET /campaigns liste vos campagnes, les plus récentes d’abord, filtrables par status et name.