Helpcentrum

CheckMarket Scripting Language (CSL)

CheckMarket biedt een krachtige scriptingtaal aan om je enquêtes en rapporten te verbeteren, zogenaamd de CheckMarket Scripting Language of CSL.

Op haar meest elementaire niveau is de CSL laagdrempelig en eenvoudig te gebruiken. Je kan de scriptingtaal gebruiken om variabelen in je rapport te plaatsen door ze te selecteren in een drop-down menu.

Op haar meest geavanceerde niveau, geeft onze CSL je enorme vrijheid om complexe logica te gebruiken teneinde berekeningen te maken, bepaalde tekstblokken of afbeeldingen te tonen of te verbergen en zo meer. Zet dus je technisch denkhoedje op en laten we erin vliegen … !

Basisbegrippen

Syntax

Variabelen in deze scriptingtaal worden ingesloten door dubbele accolades, zoals deze: {{eenVariabele}}. Deze zijn niet hoofdlettergevoelig, dus {{EenVariabele}} is hetzelfde als {{eenVariabele}}.

Hiërarchie

De variabelen zijn hiërarchisch, je kunt er dus doorheen navigeren door een puntnotatie te gebruiken.
Bijvoorbeeld:

  • Rapporttitel: {{report.title}}
  • Rapportfiltertitel: {{report.filter.title}}
  • Titel van het eerste rapportelement: {{report.elements.1.title}}
  • Titel van het rapportelement met ID 123: {{report.elements.id-123.title}}
  • Label van de eerste antwoordoptie van de vraag van de eerste databron van het eerste rapportelement: {{report.elements.1.data.1.question.answeroptions.1.label}}

Variabelen

Waar vind je de variabelen die beschikbaar zijn?

  • Enquêtevariabelen: vind je achter de knop ‘variabelen’ op de takenbalk in de tekstbewerker van je vragen, e-mails, meldingen, …
    Er is ook een uitgebreide lijst van alle enquêtevariabelen.

 

  • Rapportvariabelen: vind je in de teksteditor van de ReportBuilder door rechts in het eigenschappenvenster onder ‘Opmerkingen’ op de knop Uitvouwen expand icon te klikken. Vervolgens opent zich een teksteditor met het menu Variabelen:

Geavanceerde operatoren

Deze scriptingtaal ondersteunt meer dan enkel variabelen. Door gebruik te maken van speciale operatoren kan je je eigen logica inbouwen. Om je een idee te geven, hieronder een voorbeeld:

{{#if (eq element.title "Kruistabel")}}
  De titel van dit element is Kruistabel.
{{/if}}

In bovenstaand voorbeeld kijken we na of de titel van het rapportelement gelijk is aan “Kruistabel”. Als dit correct is, tonen we “De titel van dit element is Kruistabel”. Als dit niet het geval is, tonen we niets.

Lijst van operatoren

Je kunt blokoperatoren gebruiken om inhoud te tonen/verbergen, afhankelijk van je eigen logica.

OperatorOmschrijving
ifGebruik de if-helper om een blok voorwaardelijk weer te geven. Als de voorwaarde false, null, “”, 0 of [] retourneert, wordt het blok niet getoond.
{{#if (and title description)}}
  Deze tekst wordt enkel getoond als er een titel én een omschrijving is.
{{/if}}
if + elseSpecificeer een else-blok dat dient te worden weergegeven als niet aan de eerste voorwaarde is voldaan.
{{#if contact}}
  <h1>{{contact.firstName}} {{contact.lastName}}</h1>
{{else}}
  <h1>Ongekende respondent</h1>
{{/if}}
else ifCombineer meerdere #if blokken met else if. Het systeem zal elke ‘if’ in volgorde evalueren tot het er één vindt die voldoet aan de voorwaarde (die dus ‘waar’ is) of tot het de ‘else’ (anders) blok bereikt. Zodra één van de ‘if’ blokken waar is, dan worden de daaropvolgende blokken genegeerd, zelfs als deze ook voldoen aan de voorwaarden.
{{#if contact}}
  <h1>{{contact.firstName}} {{contact.lastName}}</h1>
{{else if respondent.questions.yourName}}
  <h1>{{respondent.questions.yourName}}</h1>
{{else}}
  <h1>Ongekende respondent</h1>
{{/if}}
unlessGebruik de unless-helper als omgekeerde van de if-helper. De inhoud wordt dan weergegeven als niet aan de voorwaarde is voldaan (als de waarde false, null, “, 0 of [] is).
{{#unless response}}
<h3 class="opgelet">Opgelet: Er is geen antwoord!</h3>
{{/unless}}
eachBlader door een lijst met de ingebouwde each-operator. In het blok kan je dit gebruiken om te verwijzen naar het doorzochte element of om onmiddellijk onderliggende eigenschappen te gebruiken.
<ul>
  {{#each report.elements}}
    <li>{{title}}</li>
  {{/each}}
</ul>
each + elseSamen met een each-operator, kan je optioneel een else-sectie voorzien die enkel getoond word als de lijst leeg is.
{{#each report.elements}}
  <h2>{{title}}</h2>
{{else}}
  <p>Geen elementen in deze lijst!</p>
{{/each}}
opmerkingenGebruik een opmerkingenblok om een interne opmerking toe te voegen, of om CSL tijdelijk niet uit te voeren.
{{!-- Alles binnen dit blok wordt niet getoond of uitgevoerd --}}

 

Door gebruik te maken van logische operatoren kan je variabelen vergelijken en controleren. Deze operatoren worden het vaakst gebruikt binnen blokoperatoren zoals #if.

Logische operatoren worden ingesloten tussen haakjes, zoals: (eq element.title “Kruistabel”). Het eerste woord is de operator, gevolgd door de voorwaarden. De condities kunnen variabelen, platte tekst of nummers zijn. Tekst moet tussen enkele aanhalingstekens geplaatst worden.

OperatorOmschrijving
eqGebruik dit om te controleren of twee condities gelijk zijn.
{{#if (eq element.title "Kruistabel")}}
  De elementtitel is Kruistabel!
{{/if}}
neGebruik dit om te controleren of twee condities niet gelijk zijn.
{{#if (ne element.title "Kruistabel")}}
  De elementtitel is niet Kruistabel!
{{/if}}
ltGebruik dit om te controleren of de eerste voorwaarde kleiner is dan de tweede.
{{#if (lt counter 12)}}
  De teller-waarde ({{counter}}) is kleiner dan 12!
{{/if}}
gtGebruik dit om te controleren of de eerste voorwaarde groter is dan de tweede.
{{#if (gt counter 12)}}
  De teller-waarde ({{counter}}) is groter dan 12!
{{/if}}
leGebruik dit om te controleren of de eerste voorwaarde gelijk of kleiner is dan de tweede.
{{#if (le counter 12)}}
  De teller-waarde ({{counter}}) is kleiner dan of gelijk aan 12!
{{/if}}
geGebruik dit om te controleren of de eerste voorwaarde groter dan of gelijk is aan de tweede.
{{#if (ge counter 12)}}
  De teller-waarde ({{counter}}) is groter dan of gelijk aan 12!
{{/if}}
containsGebruik dit om te controleren of de tekst van de eerste voorwaarde, de tweede voorwaarde bevat.
{{#if (contains element.title "gelukkig")}}
De elementtitel bevat het woord "gelukkig".
{{/if}}
andGebruik dit als alle condities waar moeten zijn.
{{#if (and share filter)}}
  Deze tekst is enkel zichtbaar als dit een share is én er een filter actief is.
{{/if}}
orGebruik dit als een van de condities waar moet zijn.
{{#if (or share filter)}}
   Deze tekst is enkel zichtbaar als dit een share is
   óf als er een filter actief is.
{{/if}}
notKeert het resultaat om. Retourneert true als de innerlijke conditie false is en false als de innerlijke conditie true is.
Bijvoorbeeld: je wilt controleren of een respondent een contactpersoon is. Er wordt true geretourneerd als het geen contact is.
not contact

Gebruik wiskundige operatoren om met getallen te werken. Je kunt berekeningen uitvoeren of bepalen hoe cijfers dienen te worden weergegeven.

OperatorOmschrijving
addTel twee of meer getallen op.
10 + 5 = {{add 10 5}}
Resultaat: 10 + 5 = 15
subtractTrek twee of meer getallen af.
10 - 5 = {{subtract 10 5}}
Resultaat: 10 - 5 = 5
multiplyVermenigvuldig twee of meer getallen.
10 * 5 = {{multiply 10 5}}
Resultaat: 10 * 5 = 50
divideDeel twee of meer getallen.
10 / 5 = {{divide 10 5}}
Resultaat: 10 / 5 = 2
averageGemiddelde twee of meer getallen.
The average of the numbers 1,2,3,4 = {{average 1 2 3 4}}
Result: (1+2+3+4) / 4 = 2.5
sqrtTrek de vierkantswortel uit een getal.
De vierkantswortel van 25 is {{sqrt 25}}
Resultaat: De vierkantswortel van 25 is 5
powBereken het eerste getal tot de macht van het tweede.
Drie tot de tweede macht is {{pow 3 2}}
Resultaat: Drie tot de tweede macht is 9
modBereken de rest na deling van het eerste getal door het tweede.
5 % 4 = {{mod 5 4}}
Resultaat: 5 % 4 = 1
absGeef de absolute waarde van een getal weer.
De absolute waarde van -10 is {{abs -10}}
Resultaat: De absolute waarde van -10 is 10
roundRond een getal af op het aantal opgegeven cijfers. Als er geen cijfers zijn opgegeven, wordt het getal afgerond op 0 cijfers na de komma.
De eerste afgeronde waarde is {{round 25.9999}}, de tweede is {{round 12.123456 2}}
Resultaat: De eerste afgeronde waarde is 26. De tweede is 12.12
floorRond een getal af naar beneden naar het dichtstbijzijnde gehele getal.
{{floor 25.9999}}
Resultaat: 25
ceilingRond een getal af naar boven naar het volgende gehele getal.
{{ceiling 25.13}}
Resultaat: 26
randomGenereer een willekeurig getal tussen de gespecificeerde cijfers.
Een willekeurig getal tussen 5 en 10 is {{random 5 10}}
Resultaat: Een willekeurig getal tussen 5 en 10 is bijvoorbeeld 8
random + excludeGenereer een willekeurig getal en sluit daarbij specifieke waarden uit. U kunt zoveel waarden uitsluiten als u wenst.
Een willekeurig getal tussen 5 en 10, 
waarbij 7 en 8 worden uitgesloten {{random 5 10 7 8}}
Resultaat: Een willekeurig getal tussen 5 en 10,
waarbij 7 en 8 worden uitgesloten, is bijvoorbeeld 9
countToon een telling van het aantal items uit een lijst (array).
Er zijn {{count report.elements}} elementen in dit rapport.
Resultaat: Er zijn 3 elementen in dit rapport
kFormatteer een nummer in een K-notatie.
{{k 12468}}
Resultaat: 12K
decKies expliciet een decimaal scheidingsteken.
{{dec 12.3 ","}}
Resultaat: 12,3

Gebruik deze operatoren voor het tonen of bewerken van datums en tijden.

OperatorOmschrijving
currentDateGeef de huidige datum en tijd weer in de datumnotatie en tijdzone van de enquête eigenaar.
Vandaag is het {{currentDate}}.
Resultaat: Vandaag is het 08/17/2000 4:14 PM.
.isoVoeg toe aan elke datum om de datum in ISO-indeling te krijgen. Dit formaat is machinaal leesbaar. Gebruik dit bij pre-filling.
Vandaag is het {{currentDate.iso}}.
Resultaat: Vandaag is het 2000-08-17 16:14.
.utcVoeg toe aan elke datum om de datum in ISO 8601-indeling in de UTC-tijdzone te krijgen. Dit formaat is machinaal leesbaar en kan gebruikt worden bij het verzenden van een datum naar een database of API
Vandaag is het {{currentDate.utc}}.
Resultaat: Vandaag is het 2000-08-17T14:14Z.
.dateVoeg toe aan elke datum om alleen de datum weer te geven zonder de tijd.
Vandaag is het {{currentDate.date}}.
Resultaat : Vandaag is het 08/17/2000.
.timeVoeg toe aan elke datum om alleen de tijd weer te geven zonder de datum.
Het is nu {{currentDate.time}}.
Resultaat: Het is nu 4:14 PM.
.relativeVoeg toe aan elke datum om de relatieve datum weer te geven, met woorden beschreven.
Je bent {{contact.dateOfBirth.relative}} geboren.
Resultaat: Je bent 30 jaar geleden geboren.

Tip: gebruik .relative.styled om de relatieve datum weer te geven, met de originele datum als tooltip.

.year
.month
.month.text
.day
.dayOfWeek
.dayOfWeek.text
.hour
Voeg toe aan elke datum om een deel ervan weer te geven.
Je bent geboren in {{contact.dateOfBirth.year}}.
Resultaat: Je bent geboren in 1970.
regionalSettings.timezoneOffsetHoursToon het tijdsverschil tussen de tijdzone van de enquête-eigenaar en UTC (gecoördineerde wereldtijd). Dit is gebaseerd op het gebruikersprofiel van de eigenaar van de enquête.
Mijn tijdsverschil met UTC is {{regionalSettings.timezoneOffsetHours}} uur.
Resultaat: Mijn tijdsverschil met UTC is 4 uur.
dateFormatToon een datum in een opgegeven formaat.
Jouw geboortedatum: {{dateFormat contact.dateOfBirth "d MMMM yyyy"}}
Resultaat: Jouw geboortedatum: 12 februari 1987

Enkele voorbeelden van formaten die je kunt gebruiken:

i: 2000-08-17
I: 2000-08-17 16:32:32
a: 2000-08-17 16:32
d: 17-8-2000
D: donderdag 17 augustus 2000
f: donderdag 17 augustus 2000 16:32
F: donderdag 17 augustus 2000 16:32:32
g: 17-8-2000 16:32
G: 17-8-2000 16:32:32
m: 17 augustus
r: do, 17 aug 2000 16:32:32 GMT
s: 2000-08-17T16:32:32
t: 16:32
T: 16:32:32
u: 2000-08-17 16:32:32Z
U: donderdag 17 augustus 2000 14:32:32
y: augustus 2000
dddd, dd MMMM yyyy: donderdag, 17 augustus 2000
dddd, dd MMMM: donderdag, 17 augustus
M/yy: 8-00
dd-MM-yy: 17-08-00
dateAddTel een tijdspanne op bij een datum.
Benodigde parameters: datum, aantal tijdseenheden die je wilt toevoegen (aftrekken kan d.m.v. een negatieve waarde) en de tijdseenheid zelf.
De tijdseenheid moet één van deze zijn (in het Engels): year, month, day, hour, minute en second.
Voor {{dateFormat (dateAdd respondent.dateResponded 3 "day") "D"}} 
krijg je zeker een antwoord van ons.
Resultaat: Voor donderdag 17 augustus 2000 krijg je zeker een antwoord van ons.

Opmerking: de datum wordt steeds teruggegeven in het ISO 8601 formaat. Gebruik dateFormat om de datum op een andere manier weer te geven.

dateDiffBereken het verschil tussen twee datums.
Benodigde parameters: startdatum, einddatum en tijdseenheid.
De tijdseenheid moet één van deze zijn (in het Engels): year, month, day, hour, minute en second.
We hebben je {{dateDiff contact.dateInvited currentDate "day"}} 
dagen geleden uitgenodigd.
Resultaat: We hebben je 3 dagen geleden uitgenodigd.
dateInTimeZoneToon een datum in een specifieke tijdzone.
{{dateInTimeZone respondent.dateResponded "Mountain Standard Time"}}
Resultaat: 2020-12-09 10:05

Tip: om de datum te tonen in een formaat dat makkelijker leesbaar is, gebruik dan ook een dateFormat operator:

{{dateFormat (dateInTimeZone respondent.dateResponded "Mountain Standard Time") "g"}}
Resultaat: 9/12/2020 10:05 (afhankelijk van je datum- en tijdinstellingen)

Alle ondersteunde tijdzones kan je vinden in onze lijst van tijdzones.

Gebruik deze operatoren om tekst weer te geven of te bewerken.

OperatorOmschrijving
upperCaseZet de tekst om in hoofdletters.
{{upperCase "Een beetje tekst"}}
Resultaat: EEN BEETJE TEKST
lowerCaseZet de tekst om naar kleine letters.
{{lowerCase "Een beetje TEKST"}}
Resultaat: een beetje tekst
trimVerwijder witruimte aan het begin en aan het einde van tekst.
{{trim "  Een beetje tekst  "}}
Resultaat: Een beetje tekst
replaceVervangt een reeks tekens in een tekenreeks door een andere reeks tekens. Het accepteert drie parameters: de te doorzoeken tekst, de te zoeken tekst en de vervangende tekst: {{Replace teDoorzoekenTekst teZoekenTekst vervangDoor}}
{{replace "Ik ben dol op blauw." "blauw" "rood"}}
Resultaat: Ik ben dol op rood.

Deze operator is hoofdlettergevoelig en vervangt alle aangetroffen gevallen van de zoekparameter.

splitSplitst tekst aan de hand van een teken en geeft één gedeelte terug. Het accepteert drie parameters: de tekst om te splitsen, het teken dat gebruikt wordt om te tekst te splitsen (scheidingsteken), het volgnummer van het gedeelte om terug te geven: {{split tekstOmTeSplitsen tekenOmOpTeSplitsen volgnummer}}
Hier is een voorbeeld van een door komma’s gescheiden tekenreeks waarvoor we een tweede item extraheren:
{{split "Blauw,Rood,Groen" "," 2}}
Resultaat: Rood.
leftExtraheer de eerste tekens uit een stuk tekst.
{{left "Een beetje tekst" 2}}
Resultaat: Ee
rightExtraheer de laatste tekens uit een stuk tekst.
{{right "Een beetje tekst" 3}}
Resultaat: kst
substringExtraheer een gedeelte uit een stuk tekst. Deze operator accepteert drie parameters: de tekst, de index van het eerste teken en het aantal te extraheren tekens. Laat de laatste parameter weg om de rest van de tekst volledig te extraheren.
{{substring "Een beetje tekst" 3}} / {{substring "Een beetje tekst" 3 6}}
Resultaat: n beetje tekst / n beet
.unformattedVerwijder opmaak uit tekst.
{{survey.questions.myDataLabel.text.unformatted}}
Resultaat: Voorbeeldtekst met een cursief gedeelte.

Zet dit achter een variabel om alle HTML-opmaak verwijderen en alles als platte tekst weergeven

urlEncodeMaak tekst geschikt voor URLs.
{{urlEncode "Een beetje tekst?"}}
Resultaat: Een%20beetje%20tekst%3F

Gebruik dit wanneer je variabelen gebruikt in URLs die mogelijk spaties, schuine strepen of speciale karakters gebruiken. Getallen dienen niet omgezet (url-geëncodeerd) te worden.
Je kunt deze parameter bijvoorbeeld gebruiken bij een vertakking naar een externe URL of bij een link op de dankpagina. Je kan ook ‘.urlEncoded’ toevoegen aan het einde van een variabele. Bijvoorbeeld:

{{survey.questions.myDataLabel.text.urlEncoded}}
jsonEncodeMaak tekst geschikt voor JSON.
{{jsonEncode 'Test "123"'}}
Resultaat: Test \"123\"

Gebruik dit wanneer je met JSON werkt, en de tekst backslashes, dubbele aanhalingstekens of andere speciale karakters kan bevatten. Je kan ook ‘.jsonEncoded’ toevoegen aan het einde van een variabele. Bijvoorbeeld:

{{survey.questions.myDataLabel.text.jsonEncoded}}
hashConverteer tekst naar een hashcode van 64 tekens.
{{hash "Een beetje tekst"}}
Resultaat: 9EFE0BC991AA6171819D0BB24746287EA3A62006930F63D07802F6F5986269BD

Deze operator genereert een hash van 64 tekens, gebruik makend van het SHA-256 algoritme.
Als je meerdere waarden meegeeft, dan worden deze samengevoegd tot één stuk tekst en daarna verwerkt tot hash. Op deze manier kan je een zogenaamde ‘salt’ toevoegen om de hash sterker te maken (moeilijker te raden). Een voorbeeld:

{{hash respondent.questions.name respondent.questions.birthdate "een waarde als salt"}}

Gebruik popups of popovers om extra informatie te tonen wanneer de respondent op een link klikt. Gebruik popups voor langere tekst of afbeeldingen, gebruik popovers voor korte stukjes informatie of om een woord te verduidelijken.

Opmerking: deze operatoren zijn enkel beschikbaar in de enquête-interface en rapporten.

OperatorOmschrijving
iconToon een icoontje. Gebruik dezelfde benaming als bij Font Awesome.
{{icon "far fa-star"}}

Resultaat:

modalToon een link om een pop-up venster te openen.
Klik {{modal "hier" "tekst in pop-up."}} voor meer informatie.
Resultaat: Klik hier voor meer informatie. 
Resultaat in het pop-up venster: Deze tekst bevindt zich in de pop-up.

Een icoon toevoegen is ook mogelijk.

Klik {{modal "hier" "tekst in pop-up" icon="fas fa-info-circle"}}!

Als de tekst binnen het pop-up venster lang is, kan je ook de variant #modal gebruiken:

{{#modal "klik hier"}}
Deze tekst kan langer zijn en kan opmaak, aanhalingstekens en variabelen bevatten.
{{/modal}}
tooltipToon een tooltip of tekstballon wanneer je de muis over iets beweegt.
Dit is een {{tooltip "NPS" "Net Promotor Score"}} vraag. 
Resultaat: Dit is een NPS vraag.
Resultaat in de tooltip: Net Promotor Score

Opmerking: aangezien er geen muis is bij mobiele apparaten, wordt een tooltip daar geactiveerd door te klikken.

Tooltips worden standaard boven de link getoond. Je kunt de locatie echter kiezen door één van volgende opties mee te geven: left, right, top of bottom.

{{tooltip "Klik hier" "Dit wordt rechts getoond" position="right"}}

Een icoon toevoegen is ook mogelijk. Voeg de FontAwesome-klasse van het icoontje dat je wilt gebruiken toe als laatste parameter.

{{tooltip "Klik hier" "Tekst hier" position="top" icon="fas fa-info-circle"}}

Als de tekst binnen de tooltip lang is, kan je ook de variant #tooltip gebruiken:

{{#tooltip "Klik hier"}}
Deze tekst kan langer zijn en kan opmaak, aanhalingstekens en variabelen bevatten.
{{/tooltip}}
popoverEen pop-over is hetzelfde als een tooltip, maar kan enkel geactiveerd worden door te klikken, niet via een mouse-over.
Dit is een {{popover "NPS" "Net Promotor Score"}} vraag.
Resultaat: Dit is een NPS vraag.
Resultaat in de pop-over: Net Promotor Score
lightboxToon een kleine versie van een afbeelding. Door erop te klikken wordt een grote versie van de afbeelding getoond die het gehele scherm vult, de rest van de pagina wordt gedimd.
{{#lightbox}}CheckMarket Logo{{/lightbox}}

Plaats {{#lightbox}} vóór en {{/lightbox}} ná de afbeelding om ze klikbaar te maken. Als erop geklikt wordt, wordt de afbeelding over het hele scherm weergegeven. Je kan optioneel meerdere afbeeldingen binnen dezelfde lightbox plaatsen om een afbeeldinggallerij te maken.

Je kan ook een afbeelding in een lightbox tonen door tekst toe te voegen i.p.v. een afbeelding:

{{lightbox "CheckMarket logo" "https://www.checkmarket.com/wp-content/
uploads/2016/03/CheckMarket-logo.png"}}
qrCodeToon een QR code van een URL of tekst. Je kan optioneel de grootte (in pixels) bepalen. In onderstaand voorbeeld gebruiken we 100 pixels. De maximumgrootte is 270.
{{qrCode "https://www.checkmarket.com/" 100}}

Resultaat:
QR code

Je kan ook variabelen gebruiken. Als je bijvoorbeeld een couponcode hebt in een gepersonaliseerd veld van je contacten genaamd ‘coupon’, gebruik dan:

{{qrCode contact.customFields.coupon 100}}

 

Zie volgend artikel voor meer voorbeelden en informatie:
Tooltips, popovers en modale vensters

Gebruik tijdelijke variabelen om grote functies in kleinere delen te splitsen.

Deze variabelen worden nergens opgeslagen, ze zijn enkel tijdelijk beschikbaar binnen dezelfde pagina.

OperatorOmschrijving
setBewaar een tijdelijke waarde. Je dient een naam en een waarde te specificeren.
{{set "mijnSom" (add 1 2)}}

Om een langere tekst te bewaren kan je ook de variant #set gebruiken:

{{#set "mijnTekst"}}
Deze voorbeeldtekst kan langer zijn en opmaak, aanhalingstekens en variabelen bevatten.
{{/set}}

Je kan tekst combineren door meerdere waarden door te geven, zoals hier:

{{set "begroeting" "Hallo " contact.firstName "!"}}

Opmerking: op dit moment wordt er nog niets weergegeven. Gebruik onderstaande functie om deze variabele op te halen.

getHaal een tijdelijke waarde op, gebruik makend van de naam die je eerder via de set operator hebt gegeven.
{{get "mijnSom"}}
Resultaat: 3

Verkrijg informatie van een contactlijst alsof een het een database is en gebruik deze informatie in enquêtes, meldingen en rapporten.

OperatorOmschrijving
ContactListLookupVeel gebruikers willen iets opzoeken in een database. Dankzij deze functie kan je contactlijsten gebruiken als een soort database. Een voorbeeld: een werknemer geeft zijn unieke werknemersnummer in, en zijn departement, functie en manager worden opgehaald uit een contactlijst.
De ContactListLookup operator heeft 4 argumenten:
  1. ID van contactlijst om te doorzoeken
  2. Veld om in te zoeken
  3. Waarde om te zoeken (niet hoofdlettergevoelig)
  4. Veld om terug te geven
{{ContactListLookup 1234 "customFields.1" "Emp4574" "email"}}
Resultaat: [email protected]

Je kunt indien gewenst een extra argument “contains” toevoegen, om een gedeeltelijke match te vinden i.p.v. een exacte overeenkomst. Bijvoorbeeld, “ACME” zou ook overeenkomen met “ACME Onderneming”.

{{contactListLookup 1234 "customFields.2" "ACME" "email" "contains"}}
Resultaat: [email protected]

Dit kan verder gaan dan contacten (personen). Denk meer abstract en je kunt eender wat opzoeken. Een voorbeeld: maak een contactlijst van winkellocaties, en wanneer iemand zijn stad ingeeft, geef je het adres van een winkel in deze stad. Of iemand selecteert een winkel en het mailadres van de manager wordt gebruikt voor een melding van een ontevreden klant. Eender welke opzoeking wordt mogelijk!

queryStringLookupExtraheer een querystring parameter uit een URL.
{{queryStringLookup "https://example.com?code=123" "code"}}
Resultaat: 123
USStateToAbbreviationToon de afkorting van een staat van de VS.
{{USStateToAbbreviation "Texas"}}
Resultaat: TX
USStateFromAbbreviationToon de naam van een staat van de VS, met behulp van de afkorting.
{{USStateFromAbbreviation "TX"}}
Resultaat: Texas

Je kan al deze operatoren combineren om geavanceerde logica te creëren. Het meest voorkomende voorbeeld, is de combinatie  van ‘and’, ‘or’ en ‘not’. Als je deze gaat gebruiken, moet je denken in termen van waar of onwaar. Elk item wordt geavalueerd en vergeleken door middel van de operators.

Een voorbeeld:

{{eq 1 1}}

Dit is waar. 1 is gelijk aan 1.

Bij gebruik van and:

{{and (eq 1 1) (eq 2 2)}}

Dit is waar. 1 is gelijk aan 1 en 2 is gelijk aan 2.

Bij gebruik van or:

{{or (eq 1 2) (eq 2 2)}}

Dit is waar. 1 is niet gelijk aan 1, maar 2 is gelijk aan 2. ‘or’ is waar als één van de voorwaarden waar is.

Using not:

{{not ( or(eq 1 3) (eq 2 2))}}

Dit is onwaar. 1 is niet gelijk aan 3, maar 2 is gelijk aan 2. De ‘not‘ keert het resultaat om. Als we de code vereenvoudigen kan de code er als volgt uit zien:

{{not (or false true)}}

De or operator is waar omdat één van de voorwaarden waar is. Je krijgt dus:

{{not (true)}}

Not zorgt ervoor dat waar onwaar wordt:

{{false}}

Voorbeelden

Je kunt al deze operatoren combineren om meer geavanceerde logica te creëren. We hebben een pagina met handige CSL-code voorbeelden die je in je enquêtes kunt gebruiken. Zelfs als je geen code vind die precies doet wat je wilt, zijn deze snippets een prima startpunt dat je minimaal kunt wijzigen om te bereiken wat je wilt.

Survey CSL snippets

Hulp nodig?

De CheckMarket Scripting Language biedt zeer vele toepassingsmogelijkheden, die wij uiteraard niet allemaal gratis kunnen ondersteunen. Het eigen gebruik van onze scriptingtaal (CSL) is inbegrepen in al onze prijsformules, en daarnaast bieden onze specialisten graag ondersteuning aan klanten die dat wensen.

Wil je geavanceerde enquêterapporten maken maar heb je hier zelf geen tijd voor? Heb je hulp nodig met het programmeren van een enquête of een rapport? Laat gerust een van onze projectmanagers dit voor je doen.

Vraag een prijsofferte 

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.