Scriban

Scriban is een scripttaal waarmee binnen Ternair berekende waardes kunnen worden gegenereerd. Met Scriban kun je bijvoorbeeld een voorletter afleiden uit een voornaam, een dynamische systeemdatum vastleggen of het aantal dagen tot een verjaardag berekenen.

Scriban-scripts worden binnen het Snapshot blok ingevoerd via Mapping > + > Berekende waarde. De uitkomst van het script wordt vervolgens als kolom in het snapshot opgenomen.

Algemene werkwijze
De scripts in dit document zijn herbruikbare voorbeelden. Pas ze als volgt aan op de eigen situatie:
  • Vervang de tekst tussen vierkante haken (bijvoorbeeld [VELDNAAM] of [GEBOORTEDATUM]) door de exacte naam van het bronveld uit de dataset.

  • Plaats het volledige script (inclusief de openings- en sluittekens {{ en }}) in het invoerveld van Berekende waarde.

Let op: Veldnamen zijn hoofdlettergevoelig. Een verkeerd geschreven veldnaam zorgt voor een leeg of onverwacht resultaat.

Voorletter bepalen uit een voornaam

Toepassing: genereer de eerste letter van een voornaam in hoofdletter, gevolgd door een punt (bijvoorbeeld Jan → J.). Handig voor een formele aanhef in e-mailings.

{{ vNaam = [VELDNAAM]

 

  if vNaam | string.whitespace

  else

    (vNaam | string.slice 0 1 | string.upcase ) | string.append "."

  end

}}

 
Toelichting: vervang [VELDNAAM] door de kolomnaam waarin de voornaam staat. Het script controleert of het veld een waarde bevat; zo ja, dan wordt de eerste letter genomen, omgezet naar hoofdletter en voorzien van een punt. Is het veld leeg, dan blijft ook de voorletter leeg.

Systeemdatum vastleggen

Toepassing: vastleggen wanneer een proces draait of een mutatie plaatsvindt — bijvoorbeeld voor logging-doeleinden.

Variant A – op seconde-niveau:

{{

    date.now | date.to_string '%Y-%m-%d %H:%M:%S'

}}

 
Variant B – op milliseconde-niveau:

{{

    date.now | date.to_string '%Y-%m-%d %H:%M:%S:%L'

}}

 
Toelichting: beide scripts geven de huidige systeemdatum en -tijd terug. De milliseconde-variant voegt :%L toe voor extra precisie en is bruikbaar wanneer meerdere mutaties binnen dezelfde seconde uniek herkenbaar moeten zijn.

Aantal dagen tot een verjaardag

Toepassing: bereken hoeveel dagen het nog duurt tot de eerstvolgende verjaardag van een contact. Handig om campagnes te triggeren voor contacten die binnen een bepaalde periode jarig zijn.

{{ vDatum = [GEBOORTEDATUM]

 

  if (vDatum != NULL)

 

    bday = date.parse vDatum

    now = date.now

 

    bday_this_year = date.parse (date.now.year) + '-' + (bday.month) + '-' + (bday.day)

    bday_next_year = date.parse (date.now.year + 1) + '-' + (bday.month) + '-' + (bday.day)

    next_bday = bday_this_year > now ? bday_this_year : bday_next_year

 

    days_until_next_bday = math.floor ((next_bday - now).total_days)

    days_until_next_bday

 

  else

    NULL

  end

}}

 
Toelichting: vervang [GEBOORTEDATUM] door het veld waarin de geboortedatum staat. Het script controleert eerst of de verjaardag dit jaar nog komt; zo niet, dan rekent het door naar volgend jaar. Vervolgens wordt het aantal hele dagen tussen vandaag en die verjaardag teruggegeven. Is het veld leeg, dan is de uitkomst NULL.

Datum relatief ten opzichte van vandaag (gisteren of morgen)

Toepassing: bereken een datum relatief tot vandaag — bijvoorbeeld voor het ophalen van data van gisteren of het bepalen van een vervaldatum in de toekomst.

{{

    AddMinusDays = -1   # Pas dit getal aan: negatief = verleden, positief = toekomst

    date.add_days date.now AddMinusDays | date.to_string "%Y-%m-%d"

}}

 
Wijzig de waarde van AddMinusDays om de gewenste datum te bepalen. Bijvoorbeeld:
  • -1 = gisteren

  • 1 = morgen

  • -7 = een week geleden

  • 30 = over 30 dagen


Aantal dagen sinds een datum

Toepassing: bereken hoeveel dagen er verstreken zijn sinds een specifieke datum. Veelgebruikt bij RFM-analyses, bijvoorbeeld om te bepalen hoeveel dagen geleden een klant voor het laatst een aankoop heeft gedaan.

{{ (date.now - [DATUM]).days }}

 
Toelichting: vervang [DATUM] door het datumveld waarmee gerekend moet worden. Het script geeft het aantal hele dagen tussen vandaag en die datum terug.

Copyright © 2026 Ternair.