Aller au contenu principal

Campagnes

Base path: /api/campaigns

GET /campaigns

Lister toutes les campagnes.

Auth: Admin

Query parameters: page, limit


POST /campaigns

Créer une nouvelle campagne.

Auth: Admin

ChampTypeObligatoireDescription
namestringOuiNom interne
subjectstringOuiObjet de l'email
blocksarrayOuiBlocs du constructeur d'email
segment_filtersobjectNonCritères de filtrage de l'audience

GET /campaigns/:id / PUT /:id / DELETE /:id

Obtenir, mettre à jour ou supprimer une campagne.


POST /campaigns/:id/send

Envoyer la campagne à tous les destinataires correspondants.

Auth: Admin

Crée un job d'email par destinataire dans job_queue. Le worker rend les blocks via MJML avant l'envoi.


Segments

GET /campaigns/segments / POST / DELETE /:id

Gérer les segments d'audience sauvegardés.

ChampTypeObligatoire
namestringOui
filtersobjectOui

Modèles

GET /campaigns/templates / POST / DELETE /:id

Gérer les modèles d'email sauvegardés.

ChampTypeObligatoire
namestringOui
blocksarrayOui

POST /campaigns/render-mjml

Rendre un email MJML en HTML pour la prévisualisation.

Auth: Admin

Request body: { "mjml": "<mjml>...</mjml>" }

Response: { "html": "<html>...</html>" }


Champs de filtre de segment

ChampTypeDescription
has_emailbooleanClients avec email uniquement
has_phonebooleanClients avec téléphone uniquement
labelstableau de stringsClients ayant l'un des labels indiqués
last_visit_days_agointegerClients sans visite depuis plus de N jours
min_total_spentnumberDépenses minimales en POS
max_total_spentnumberDépenses maximales en POS
birthday_monthstableau d'integersClients avec anniversaire dans les mois indiqués (1=jan, 12=déc)
service_category_idintegerClients ayant réservé dans cette catégorie de service
min_visitsintegerNombre minimum de rendez-vous complétés
max_visitsintegerNombre maximum de rendez-vous complétés
genderstringFiltrer par genre du client (ex. male, female)