Javascript in opvolgacties

In de opvolgactie-editor kun je twee soorten javascript-boxen gebruiken:

  • JavaScript-evaluatie
  • JavaScript-uitvoering

In beide boxen kun je javascript plaatsen. Deze code wordt uitgevoerd zodra de opvolgactie de box bereikt. De javascript-code in evaluatie-boxen eindigt vaak met een return-statement, waarmee wordt bepaald hoe de opvolgactie verder gaat. Bij een uitvoerings-box is de returnwaarde niet van belang omdat een uitvoerings-box geen uitgaande verbindingen kent.

In zowel evaluatie-boxen als uitvoerings-boxen kun je dezelfde soort code plaatsen. Feitelijk verschillen ze dus niet veel van elkaar. Het is echter goed gebruik om in een evaluatie-box alleen leesoperaties uit te voeren (zoals veldwaardes met elkaar vergelijken). De uitvoerings-boxen gebruik je voor operaties die wel dingen veranderen (zoals bijwerken van profielen, aanmaken van subprofielen of versturen van mailings).

Op de servers van Copernica

De javascript-code wordt uitgevoerd op de servers van Copernica. Dit is wellicht anders dan je gewend bent, omdat javascript meestal wordt gebruikt in webbrowsers om interactieve pagina's te maken. De scripts waar we het hier over hebben zijn echter server-side scripts die op de Copernica servers worden uitgevoerd.

Binnen een script heb je daarom ook geen toegang tot variabelen als 'window', en 'document', die je kent van scripts in de frontend. Daarvoor in de plaats zijn er variabelen als 'copernica', 'profile' en 'subprofile' die je kunt gebruiken om data vanuit de Copernica context te benaderen.

De javascript-context

In de javascript-code zijn allerlei variabelen beschikbaar waarin onder meer profielgegevens en triggergegevens staan. Deze variabalen kun je in je scripts gebruiken.

  • copernica: toegang tot globale functies en gegevens
  • profile: toegang tot het profiel
  • subprofile: toegang tot het subprofiel
  • destination: alias voor profile of subprofile
  • message: de gepersonaliseerde snapshot / het verzonden bericht
  • mailing: informatie over de mailing
  • template: informatie over de gebruikte template
  • document: informatie over het gebruikte document
  • link: informatie over de aangeklikte link
  • trigger: informatie over de aanleiding van de opvolgactie

Een eenvoudig voorbeeld

Je kunt een evaluatiebox maken waarin je de volgende code plaatst:

return profile.fields.language == 'NL';

Hieronder kun je bijvoorbeeld een box hangen om een Nederlandstalige opvolgmail te versturen. Naast dit eenvoudige voorbeeld, hebben we ook wat ingewikkelder voorbeelden:

Scripts in attributen

Je kunt ook rechtstreeks in de broncode van mailings scripts plaatsen. Dit doe je met het 'data-script' attribuut. Ook deze scripts worden uitgevoerd zodra iemand op een link klikt:

<a href="https://www.example.com" data-script="profile.fields.clicked = 'yes'">klik hier</a>

Dit zijn dezelfde soort scripts als de scripts voor opvolgacties. De variabelen en functies die je kan gebruiken voor opvolgacties zijn dus ook van toepassing op de scripts die aan links zijn gekoppeld.