Profielexpressies

Een profielexpressie is een regel waarmee je beschrijft aan welke voorwaarden een profiel moet voldoen. Je gebruikt profielexpressies op verschillende plaatsen in de Marketing Suite, bijvoorbeeld om profielen te selecteren, te filteren of te ordenen.

Een eenvoudige profielexpressie ziet er bijvoorbeeld zo uit:

woonplaats = 'Amsterdam' OR woonplaats = 'Rotterdam'

In een profielexpressie kun je databasevelden, collectievelden en interesses gebruiken. Met operators, haakjes en functies kun je eenvoudige en complexe regels opbouwen.

Veldwaardes vergelijken

De volgende operators kun je gebruiken om veldwaardes te vergelijken:

  • =: is gelijk aan
  • !=: is ongelijk aan
  • <: is kleiner dan
  • >: is groter dan
  • <=: is kleiner dan of gelijk aan
  • >=: is groter dan of gelijk aan
  • LIKE: vergelijkt met een patroon
  • IN: vergelijkt met meerdere waardes
  • IS: controleert bijvoorbeeld op NULL

De meeste operators spreken voor zichzelf. De operator LIKE gebruik je om patronen te vergelijken. Daarbij kun je de wildcards * en ? gebruiken om respectievelijk meerdere tekens of één teken te matchen:

woonplaats LIKE '*dam*'

Met IN controleer je of een veld één van meerdere mogelijke waardes bevat:

woonplaats IN ('Amsterdam', 'Rotterdam')

Met IS controleer je bijvoorbeeld of een veld geen waarde heeft:

voornaam IS NULL

Boolean operators

Met boolean operators en haakjes combineer je meerdere vergelijkingen tot één expressie.

  • AND: aan beide vergelijkingen moet worden voldaan
  • OR: aan minstens één vergelijking moet worden voldaan
  • NOT: draait het resultaat om

Bijvoorbeeld:

(woonplaats = 'Den Haag' OR woonplaats = 'Utrecht') AND telefoonnummer LIKE '06*'

Stringfuncties

In een profielexpressie kun je ook functies gebruiken om tekstwaardes te bewerken.

  • concat(veld1, veld2, ...): plakt meerdere waardes aan elkaar
  • length(veld): geeft de lengte van een veldwaarde terug
  • lower(veld): zet tekst om naar kleine letters
  • upper(veld): zet tekst om naar hoofdletters
  • trim(veld): verwijdert witruimte aan het begin en einde
  • ltrim(veld): verwijdert witruimte aan het begin
  • rtrim(veld): verwijdert witruimte aan het einde
  • replace(veld, waarde, vervanging): vervangt tekst in een veldwaarde
  • substr(veld, start, lengte): haalt een deel van een tekst op

De functie substr() is 0-based. De eerste drie letters krijg je dus met:

substr(veld, 0, 3)

Je kunt de laatste parameter weglaten om de substring tot het einde op te halen. Ook kun je negatieve waardes gebruiken om vanaf het einde van de tekst te tellen. Bijvoorbeeld om te controleren of een plaatsnaam eindigt op dam:

substr(woonplaats, -3) = 'dam'

Datumfuncties

Voor datumvelden zijn speciale functies beschikbaar.

  • year(veld): haalt het jaartal uit een datumveld
  • month(veld): haalt het maandnummer op, waarbij januari gelijk is aan 1
  • day(veld): haalt de dag van de maand op
  • today(): geeft de huidige datum terug
  • now(): geeft de huidige datum en tijd terug
  • shift(veld, aantal, eenheid): verschuift een datum
  • format(veld, format): geeft een datum terug in een andere notatie

Je kunt deze functies bijvoorbeeld gebruiken om profielen te vinden van mensen die vandaag jarig zijn:

year(geboortedatum) = year(today()) AND month(geboortedatum) = month(today()) AND day(geboortedatum) = day(today())

Of van mensen die over een week jarig zijn:

year(geboortedatum) = year(shift(today(), 7, 'day')) AND month(geboortedatum) = month(shift(today(), 7, 'day')) AND day(geboortedatum) = day(shift(today(), 7, 'day'))

De functie shift() ondersteunt de eenheden year, month en day.

De functie format() ondersteunt onder meer de volgende procentcodes:

  • %Y: jaar in vier cijfers, zoals 2026
  • %y: jaar in twee cijfers, zoals 26
  • %m: maandnummer met voorloopnul
  • %c: maandnummer zonder voorloopnul
  • %d: dag van de maand met voorloopnul
  • %e: dag van de maand zonder voorloopnul
  • %H: uur van 00 tot 23
  • %i: minuten van 00 tot 59
  • %s: seconden van 00 tot 59

Daarmee kun je bijvoorbeeld ook controleren of iemand vandaag jarig is:

format(geboortedatum, '%Y-%m-%d') = format(now(), '%Y-%m-%d')