Ga naar hoofdinhoud

Campagnes

Base path: /api/campaigns

GET /campaigns

Alle campagnes ophalen.

Auth: Admin

Query parameters: page, limit


POST /campaigns

Nieuwe campagne aanmaken.

Auth: Admin

VeldTypeVerplichtBeschrijving
namestringJaInterne naam van de campagne
subjectstringJaE-mailonderwerp
blocksarrayJaArray van e-mailbouwstenen
segment_filtersobjectNeeDoelgroepfilter criteria

GET /campaigns/:id

Enkele campagne ophalen.


PUT /campaigns/:id

Campagne bijwerken.


DELETE /campaigns/:id

Campagne verwijderen.


POST /campaigns/:id/send

Campagne versturen naar alle overeenkomende ontvangers.

Auth: Admin

Bouwt de ontvangerlijst op basis van segment_filters en zet per ontvanger een e-mail job in de job_queue. De worker rendert de blocks array via MJML vóór verzending.


Segmenten

GET /campaigns/segments

Opgeslagen doelgroepsegmenten ophalen.

POST /campaigns/segments

Doelgroepsegment opslaan voor hergebruik.

VeldTypeVerplicht
namestringJa
filtersobjectJa

DELETE /campaigns/segments/:id

Segment verwijderen.


Sjablonen

GET /campaigns/templates

Opgeslagen e-mailsjablonen ophalen.

POST /campaigns/templates

E-mailsjabloon opslaan.

VeldTypeVerplicht
namestringJa
blocksarrayJa

DELETE /campaigns/templates/:id

Sjabloon verwijderen.


POST /campaigns/render-mjml

MJML e-mail renderen naar HTML voor voorbeeld.

Auth: Admin

Request body:

{ "mjml": "<mjml><mj-body>...</mj-body></mjml>" }

Response:

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

Segmentfilter velden

VeldTypeBeschrijving
has_emailbooleanAlleen klanten met een e-mailadres
has_phonebooleanAlleen klanten met een telefoonnummer
labelsarray van stringsKlanten met een van de opgegeven labels
last_visit_days_agointegerKlanten die meer dan N dagen geleden voor het laatst kwamen
min_total_spentnumberMinimale totale besteding via POS
max_total_spentnumberMaximale totale besteding via POS
birthday_monthsarray van integersKlanten met verjaardag in opgegeven maanden (1=jan, 12=dec)
service_category_idintegerKlanten die een dienst in deze categorie hebben geboekt
min_visitsintegerMinimum aantal afgeronde boekingen
max_visitsintegerMaximum aantal afgeronde boekingen
genderstringFilter op geslacht van de klant (bijv. male, female)