Passer au contenu principal
POST
/
campaigns
/
create
Créer une campagne
curl --request POST \
  --url https://api.wachap.com/v1/campaigns/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "type": "bulk_contacts",
  "listId": "<string>",
  "whatsappProfiles": [
    "<string>"
  ],
  "variations": [
    {}
  ],
  "messageDelay": {},
  "sendingWindows": [
    {}
  ],
  "timezone": "<string>",
  "scheduledAt": "<string>"
}
'

Créer une campagne

Créez une nouvelle campagne d’envoi de messages WhatsApp en utilisant une liste de contacts existante.

Endpoint

/v1/campaigns/create

Headers

Authorization
string
requis
Bearer token avec votre Secret Key (format: Bearer sk_...)

Body Parameters

name
string
requis
Nom de la campagne
type
string
requis
Type de campagne: bulk_contacts, bulk_groups, individual
listId
string
requis
ID de la liste de contacts à utiliser (Requis pour bulk_contacts)
whatsappProfiles
array
requis
Tableau des IDs de profils WhatsApp à utiliser
variations
array
requis
Variations de messages (spintax, A/B testing). Voir structure ci-dessous.
messageDelay
object
Délai entre messages: {min: 5, max: 10} (en secondes, défaut: 5-10s)
sendingWindows
array
Fenêtres d’envoi: [{start: "09:00", end: "18:00"}] (défaut: 24h/24)
timezone
string
Timezone: Africa/Abidjan, Europe/Paris, etc. (défaut: UTC)
scheduledAt
string
Date programmée (ISO 8601)

Structure de variations

{
  "id": "var_1",
  "type": "text",
  "content": "Bonjour {{name}}, {bienvenue|salutations} !"
}

Types de messages supportés

TypeDescriptionChamps requis
textMessage texte simplecontent
imageImage avec captioncontent (caption), mediaUrl
videoVidéo avec captioncontent (caption), mediaUrl
documentDocument PDF, etc.content (nom fichier), mediaUrl
audioMessage vocal/audiomediaUrl

Variables de personnalisation

  • {{name}} - Nom du contact
  • {{phone}} - Numéro du contact
  • {{email}}, {{city}}, etc. - Toute colonne de votre liste de contacts

Spintax (variation de texte)

Utilisez {option1|option2|option3} pour générer des variations aléatoires : {Bonjour|Salut|Hello} {{name}} → génère différentes salutations. Cela permet d’éviter la détection de spam et rend chaque message unique.

Exemples de requêtes

curl -X POST https://api.wachap.com/v1/campaigns/create \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VOTRE_CLE_SECRETE" \
  -d '{
    "name": "Promo Black Friday 2024",
    "type": "bulk_contacts",
    "listId": "65f1234567890abcdef12345",
    "whatsappProfiles": ["account_xxx"],
    "variations": [
      {
        "id": "var_1",
        "type": "text",
        "content": "{Bonjour|Salut|Hello} {{name}}, découvrez notre offre !"
      }
    ],
    "messageDelay": {"min": 5, "max": 10},
    "timezone": "Africa/Abidjan"
  }'

Exemple de réponse

{
  "success": true,
  "campaignId": "675c1234567890abcdef1234",
  "campaign": {
    "$id": "675c1234567890abcdef1234",
    "userId": "user_xxx",
    "name": "Promo Black Friday 2024",
    "status": "ready",
    "totalContacts": 1523
  }
}

Notes importantes

  • listId requis : Pour type: bulk_contacts, le listId est obligatoire.
  • Statut automatique : Si listId est fourni, le statut sera ready (prêt à lancer).
  • Multiples profils : Rotation automatique entre les profils WhatsApp fournis.

Codes d’erreur

CodeDescription
400MISSING_NAME, MISSING_TYPE, MISSING_LIST_ID, INVALID_TYPE
401INVALID_SECRET_KEY - Clé secrète invalide
404Liste de contacts non trouvée
500Erreur lors de la création

Autorisations

Authorization
string
header
requis

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Corps

application/json
name
string
type
enum<string>
Options disponibles:
bulk_contacts,
bulk_groups,
individual
listId
string
whatsappProfiles
string[]
variations
object[]
messageDelay
object
sendingWindows
object[]
timezone
string
scheduledAt
string

Réponse

200

OK