Centre d'assistance

Langage de script d’une enquête (« CSL »)

CheckMarket offre un langage de script très puissant pour améliorer vos rapports, appelé le CheckMarket Scripting Language ou CSL.

À son niveau le plus élémentaire, le CSL est facile à utiliser. Vous pouvez l’utiliser pour ajouter des variables à vos enquêtes et rapports en les sélectionnant d’un menu déroulant.

À son niveau le plus avancé, notre langage de script vous donne une énorme liberté pour utiliser une logique complexe en vue de faire des calculs, de montrer ou de cacher certains blocs de texte ou d’images et beaucoup plus. Alors, mettez votre casquette de mathématicien et allons au fond des choses …

Concepts de base

Syntaxe

Les variables dans le langage de script sont entourées de doubles accolades, comme ceci : {{nomDuVariable}}. Elles sont insensibles à la casse, alors {{NomDuVariable}} est identique à {{nomDuVariable}}.

Hiérarchie

Les variables sont hiérarchiques, vous pouvez donc les parcourir en utilisant la notation par points. Voici quelques exemples :

  • Titre du rapport : {{report.title}}
  • Titre du filtre du rapport : {{report.filter.title}}
  • Titre du premier élément du rapport : {{report.elements.1.title}}
  • Titre de l’élément avec ID 123: {{report.elements.id-123.title}}
  • Etiquette de la première option de réponse de la question de la première source de données du premier élément de rapport : {{report.elements.1.data.1.question.answeroptions.1.label}}

Variables

Où pouvez-vous trouver les variables disponibles ?

 

  • Variables du rapport : dans le ReportBuilder, vous pouvez trouver ces variables dans l’éditeur de texte, en utilisant le bouton d’expansion expand icon dans le volet des propriétés sous ‘Commentaire’ à droite. Ici vous trouverez le menu ‘Variables’ :

Opérateurs avancés

Le langage de script soutient plus que juste des variables. En utilisant des opérateurs spéciaux, vous pouvez implémenter votre propre logique. Pour vous donner une idée, voice un exemple :

{{#if (eq element.title "Tableau croisé")}}
  Le titre de cet élément est Tableau croisé.
{{/if}}

Dans l’exemple ci-dessus, nous vérifions si le titre de l’élément est égal à « Tableau croisé ». Si tel est le cas, nous affichons ‘Le titre de cet élément est Tableau croisé’. Si ce n’est pas le cas, rien ne sera affiché.

Liste des opérateurs

Vous pouvez utiliser des opérateurs de bloc pour montrer / cacher du contenu en fonction de votre propre logique.

OpérateurDescription
ifUtilisez l’opérateur if (si) pour montrer du contenu, de manière conditionnelle. Si son argument renvoie false, null, «  », 0 ou [], le contenu ne sera pas visible.
{{#if (and title description)}}
  Ce texte sera seulement visible s'il y a un titre ET une description.
{{/if}}
if + elseSpécifiez le contenu else (autrement) à être affiché si la première condition n’est pas remplie.
{{#if contact}}
  <h1>{{contact.firstName}} {{contact.lastName}}</h1>
{{else}}
  <h1>Répondant inconnu</h1>
{{/if}}
else ifCombinez plusieurs blocs #if en utilisant else if (sinon). Le système évaluera chaque ‘if’ l’une après l’autre (par ordre d’apparence), jusqu’à ce qu’il en trouve une qui est vrai ou jusqu’à ce qu’il atteigne le ‘else’. Une fois que l’un des blocs ‘if’ est vrai, les autres seront ignorés,même s’ils sont également vrais.
{{#if contact}}
  <h1>{{contact.firstName}} {{contact.lastName}}</h1>
{{else if respondent.questions.yourName}}
  <h1>{{respondent.questions.yourName}}</h1>
{{else}}
  <h1>Répondant inconnu</h1>
{{/if}}
unlessUtilisez l’opérateur unless (sauf si) comme l’inverse de l’opérateur if. Son contenu sera affiché si la condition n’est pas remplie (si la valeur est false, null, «  », 0 ou []).
{{#unless response}}
  <h3 class="warning">Attention : Il n'y a pas de réponse !</h3>
{{/unless}}
eachParcourez une liste en utilisant l’opérateur intégré each (chaque). Dans le contenu, vous pouvez utiliser this (ceci) pour référer à l’élément parcouru, ou pour utiliser immédiatement des propriétés sous-jacentes.
<ul>
  {{#each report.elements}}
    <li>{{title}}</li>
  {{/each}}
</ul>
each + elseAvec un opérateur each (chaque), vous pouvez optionnellement fournir une section else (autrement) qui sera affichée seulement si la liste est vide.
{{#each report.elements}}
  <h2>{{title}}</h2>
{{else}}
  <p>Pas d'éléments dans cette liste !</p>
{{/each}}
commentairesUtilisez un bloc de commentaires pour ajouter une remarque interne, ou pour empêcher temporairement l’exécution de certain CSL.
{{!-- Tout ce qui se trouve à l'intérieur de ce bloc ne sera ni affiché ni exécuté --}}

 

En utilisant des opérateurs logiques vous pouvez vérifier et comparer des variables. Ces opérateurs sont utilisés le plus souvent endéans des opérateurs de bloc comme #if.

Des opérateurs logiques sont mis entre parenthèses, comme ça : (eq element.title « Tabeau croisé »). Le premier mot est l’opérateur, qui est suivi par les arguments. Les arguments peuvent être des variables, du texte brut ou des nombres. Le texte doit être mis entre des guillemets simples.

OperatorDescription
eqUtilisez l’opérateur eq (equal) pour vérifier si deux arguments sont égaux.
{{#if (eq element.title "Tableau croisé")}}
  Le titre de l'élément est Tableau croisé !
{{/if}}
neUtilisez l’opérateur ne (not equal) pour vérifier si deux arguments ne sont pas égaux.
{{#if (ne element.title "Tableau croisé")}}
  Le titre de l'élément n'est pas Tableau croisé !
{{/if}}
ltUtilisez l’opérateur lt (less than) pour vérifier si le premier argument est inférieur au deuxième argument.
{{#if (lt counter 12)}}
  La valeur du compteur ({{counter}}) est inférieure à 12 !
{{/if}}
gtUtilisez l’opérateur gt (greater than) pour vérifier si le premier argument est plus grand que le deuxième argument.
{{#if (gt counter 12)}}
  La valeur du compteur ({{counter}}) est plus grande que 12 !
{{/if}}
leUtilisez l’opérateur le (less or equal) pour vérifier si le premier argument est inférieur ou égal au deuxième argument.
{{#if (le counter 12)}}
  La valeur du compteur ({{counter}}) est inférieure ou égale à 12 !
{{/if}}
geUtilisez l’opérateur ge (greater or equal) pour vérifier si le premier argument est plus grand ou égal au deuxième argument.
{{#if (ge counter 12)}}
  La valeur du compteur ({{counter}}) est plus grande ou égale à 12 !
{{/if}}
containsUtilisez ceci pour vérifier si le texte du premier argument, contient le second argument.
{{#if (contains element.title "heureux")}}
Le titre de l'élément contient le mot "heureux".
{{/if}}
andUtilisez and (et) si tous les arguments doivent être vrai.
{{#if (and author publisher)}}
  Ce texte est seulement visible s'il y a un auteur ET un éditeur.
{{/if}}
orUtilisez or (ou) si l’un des arguments doit être vrai.
{{#if (or author publisher)}}
  Ce texte est seulement visible s'il y a un auteur OU un éditeur.
{{/if}}
notInverse le résultat. Renvoie vrai (true) si la condition intérieure est fausse et fausse (false) si la condition intérieure est vraie. Par exemple, vérifiez si un répondant est un contact. Cela reviendra vrai (true) s’ils ne sont pas un contact.
not contact

Utilisez des opérateurs mathématiques pour travailler avec des nombres. Vous pouvez faire des calculs ou réguler comment les nombres sont présentés.

OperatorDescription
addAdditionnez deux nombres ou plus.
10 + 5 = {{add 10 5}}
Résultat : 10 + 5 = 15
subtractSoustrayez deux nombres ou plus.
10 - 5 = {{subtract 10 5}}
Résultat : 10 - 5 = 5
multiplyMultipliez deux nombres ou plus.
10 * 5 = {{multiply 10 5}}
Résultat : 10 * 5 = 50
divideDivisez deux nombres ou plus.
10 / 5 = {{divide 10 5}}
Résultat : 10 / 5 = 2
averageMoyenne deux nombres ou plus.
The average of the numbers 1,2,3,4 = {{average 1 2 3 4}}
Result: (1+2+3+4) / 4 = 2.5
sqrtPrenez la racine carrée d’un nombre.
La racine carrée de 25 est {{sqrt 25}}
Résultat : La racine carrée de 25 est 5
powCalculez le premier argument élevé à la puissance du deuxième argument.
Trois à la puissance de deux est {{pow 3 2}}
Résultat : Trois à la puissance de deux est 9
modCalculez le reste après avoir divisé le premier argument par le second.
5 % 4 = {{mod 5 4}}
Résultat : 5 % 4 = 1
absObtenez la valeur absolue d’un nombre.
La valeur absolue de -10 est {{abs -10}}
Résultat : La valeur absolue de -10 est 10
roundArrondissez un nombre au nombre de chiffres spécifié. Si aucun nombre de chiffres n’est spécifié, le nombre est arrondi à 0 chiffres.
La première valeur arrondie est {{round 25.9999}},
la deuxième est {{round 12.123456 2}}
Résultat : la première valeur arrondie est 26, la deuxième est 12.12
floorArrondissez un nombre à l’unité inférieure entière la plus proche.
{{floor 25.9999}}
Résultat : 25
ceilingArrondissez un nombre à l’unité supérieure entière suivante.
{{ceiling 25.13}}
Résultat : 26
randomGénérez un nombre aléatoire entre les nombres spécifiés.
Un nombre aléatoire entre 5 et 10 est {{random 5 10}}
Résultat : Un nombre aléatoire entre 5 et 10 est p.ex. 8
random + excludeGénérez un nombre aléatoire, en excluant certaines valeurs. Vous pouvez exclure autant de valeurs que vous souhaitez.
Un nombre aléatoire entre 5 et 10,
à l'exclusion de 7 et 8, est p.ex. {{random 5 10 7 8}}
Resultat : Un nombre aléatoire entre 5 et 10,
à l'exclusion de 7 et 8 est p.ex. 9
countObtenez un compte du nombre d’éléments dans une liste (array).
Il y a {{count report.elements}} éléments dans ce rapport
Résultat : Il y a 3 éléments dans ce rapport
kFormatez un nombre en notation K.
{{k 12468}}
Résultat : 12K
decChoisissez explicitement le séparateur décimal.
{{dec 12.3 ","}}
Résultat : 12,3

Utilisez des opérateurs de date pour afficher ou manipuler les dates et les heures.

OpérateurDescription
currentDateRetournez la date et le temps actuel dans le format et le fuseau horaire du propriétaire de cette enquête.
Aujourd'hui c'est le {{currentDate}}.
Résultat : Ajourd'hui c'est le 08/17/2000 4:14 PM.
.isoAjoutez cela à n’importe quelle date pour obtenir la date au format ISO. Ce format est lisible par des machines. Utilisez-le pour le pré-remplissage.
Aujourd'hui c'est le {{currentDate.iso}}.
Résultat : Aujourd'hui c'est le 2000-08-17 16:14.
.utcAjoutez-le à n’importe quelle date pour obtenir la date au format ISO 8601 dans le fuseau horaire UTC. Ce format est lisible par des machines. Utilisez-le lors de l’envoi d’une date à une base de données ou à une API.
Aujourd'hui c'est le {{currentDate.utc}}.
Résultat : Aujourd'hui c'est le 2000-08-17T14:14Z.
.dateAjoutez-le à n’importe quelle date pour obtenir seulement la date et non pas le temps.
Aujourd'hui c'est le {{currentDate.date}}.
Résultat : Aujourd'hui c'est le 08/17/2000.
.relativeAjoutez à n’importe quelle date pour obtenir la date relative, décrite en mots.
You were born {{contact.dateOfBirth.relative}}.
Result: You were born 30 years ago.

Astuce : utilisez .relative.styled pour obtenir la date relative, avec la date d’origine comme info-bulle.

.timeAjoutez-le à n’importe quelle date pour obtenir seulement le temps et non pas la date.
Le temps maintenant est {{currentDate.time}}.
Résultat : Le temps maintenant est 4:14 PM.
.year
.month
.month.text
.day
.dayOfWeek
.dayOfWeek.text
.hour
Ajoutez-le à n’importe quelle date pour obtenir seulement cette partie de la date.
Vous êtes né(e) en {{contact.dateOfBirth.year}}.
Résultat : Vous êtes né(e) en 1970.
regionalSettings.timezoneOffsetHoursObtenez le décalage horaire entre le fuseau horaire local du propriétaire de l’enquête et UTC (Temps Universel Coordonné). Ceci est basé sur le profil utilisateur du propriétaire de l’enquête.
Mon décalage UTC est {{regionalSettings.timezoneOffsetHours}} heures.
Resultat : Mon décalage UTC est 4 heures.
dateFormatAffichez une date en utilisant un format spécifié.
Votre date de naissance : {{dateFormat contact.dateOfBirth "MMM d yy"}}
Résultat : Votre date de naissance : Feb 12 87

Quelques exemples des formats que vous pouvez utiliser :

i: 2000-08-17
I: 2000-08-17 16:32:32
a: 2000-08-17 16:32
d: 17/08/2000
D: jeudi 17 août 2000
f: jeudi 17 août 2000 16:32
F: jeudi 17 août 2000 16:32:32
g: 17/08/2000 16:32
G: 17/08/2000 16:32:32
m: 17 août
r: Thu, 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: jeudi 17 août 2000 14:32:32
y: août 2000
dddd, MMMM dd yyyy: jeudi, août 17 2000
dddd, MMMM dd: jeudi, août 17
M/yy: 8/00
dd-MM-yy: 17-08-00
dateAddAjoutez un certain intervalle de temps à une date.
Spécifiez la date, le nombre d’unités à ajouter (pour sous-traître, utilisez une valeur négative) et l’unité-même.
L’unité peut être l’une des suivantes (en anglais) : year, month, day, hour, minute et second.
Nous vous répondons avant le
{{dateFormat (dateAdd respondent.dateResponded 3 "day") "D"}}.
Résultat : Nous vous répondons avant le jeudi 17 août 2000.

Attention : la date sera toujours renvoyée en format ISO 8601. Utilisez dateFormat si vous souhaitez l’afficher de manière élégante.

dateDiffCalculez la différence entre deux dates.
Spécifiez la date de début et de fin, ainsi que l’unité. L’unité peut être l’une des suivantes (en anglais) : year, month, day, hour, minute et second.
Nous vous avons invité il y a
{{dateDiff contact.dateInvited currentDate "day"}} jours.
Résultat : Nous vous avons invité il y a 3 jours.
dateInTimeZoneAffichez une date dans un fuseau horaire spécifique.
{{dateInTimeZone respondent.dateResponded "Mountain Standard Time"}}
Résultat : 2020-12-09 10:05

Astuce: pour afficher la date dans un format plus facile à lire, utilisez également un opérateur dateFormat :

{{dateFormat (dateInTimeZone respondent.dateResponded "Mountain Standard Time") "g"}}
Résultat : 12/9/2020 10:05 (en fonction de vos paramètres de date et d'heure)

Tous les fuseaux horaires pris en charge se trouvent dans notre liste de fuseaux horaires.

Utilisez des opérateurs de texte pour modifier comment le texte sera montré.

OpérateurDescription
upperCaseConvertez le texte en majuscules.
{{upperCase "un texte"}}
Résultat : UN TEXTE
lowerCaseConvertez le texte en minuscules.
{{lowerCase "Un TEXTE"}}
Résultat : un texte
trimSupprimez les espaces au début et à la fin du texte.
{{trim "  Certain texte  "}}
Résultat : Certain texte
replaceRemplace une séquence de caractères dans une chaîne par un autre ensemble de caractères. Il accepte trois paramètres : le texte à fouiller, le texte à trouver et le texte de remplacement {{replace texteAFouiller TexteATrouver remplaceAvec}}
{{replace "J'adore le bleu." "bleu" "rouge"}}
Résultat : J'adore le rouge.

Cet opérateur est insensible à la casse et remplacera toutes les occurrences du paramètre de recherche.

splitDivise le texte en fonction d’un caractère et renvoie une partie. Il accepte trois paramètres : le texte à diviser, le caractère avec lequel diviser le texte (délimiteur), l’index de la pièce à rendre : {{split textToSplit characterToSplitOn index}}
Voici un exemple de chaîne délimitée par des virgules pour laquelle nous extrayons un deuxième élément :

{{split "Bleu,Rouge,Vert" "," 2}}
Résultat : Rouge.
leftExtrayez les premiers caractères d’un morceau de texte.
{{left "Un texte" 2}}
Résultat : Un
rightExtrayez les derniers caractères d’un morceau de texte.
{{right "Un texte" 3}}
Résultat : xte
substringExtrayez des caractères d’un morceau de texte. Cet opérateur accepte trois paramètres : le texte, l’index du premier caractère et le nombre de caractères à extraire. Omettez le dernier argument pour extraire le reste du texte.
{{substring "Un texte" 2}} / {{substring "Un texte" 2 5}}
Résultat : n texte / n tex
.unformattedRemove formatting from text.
{{survey.questions.myDataLabel.text.unformatted}}
Résultat : Exemple du texte avec une partie en italique.

Place this at the end of a variable pour supprimer le formatage HTML et afficher tout sous forme de texte brut.

urlEncodeRendez le texte approprié pour les URL.
{{urlEncode "Certain texte ?"}}
Résultat : Certain%20texte%3F

Ceci devrait être utilisé lors de l’utilisation de variables dans des URL pouvant contenir des espaces, des barres obliques ou d’autres caractères spéciaux. Les nombres n’ont pas besoin d’être encodés en url.
Utilsez ce paramètre par exemple dans un branchement vers une URL externe ou dans un lien placé sur la page de remerciement. Vous pouvez également ajouter ‘.urlEncoded’ à la fin de la variable. Par exemple:

{{survey.questions.myDataLabel.text.urlEncoded}}
jsonEncodeRendez le texte approprié pour JSON.
{{jsonEncode 'Test "123"'}}
Resultat : Test \"123\"

Ceci doit être utilisé lors de la création de JSON, et le texte peut contenir des barres obliques inverses, des guillemets doubles ou d’autres caractères spéciaux. Vous pouvez également ajouter ‘.jsonEncoded’ à la fin d’une variable. Par exemple :

{{survey.questions.myDataLabel.text.jsonEncoded}}
hashConvertissez le texte en un code de hachage de 64 caractères.
{{hash "Some text"}}
Résultat : 4C2E9E6DA31A64C70623619C449A040968CDBEA85945BF384FA30ED2D5D24FA3

Cet opérateur génère un hachage de 64 caractères à l’aide de l’algorithme de hachage SHA-256.
Si vous passez plusieurs valeurs, elles seront jointes en une seule chaîne, puis hachées. De cette façon, vous pouvez ajouter une soi-disant valeur aléatoire pour rendre vos hachages plus difficiles à deviner. Un exemple :

{{hash respondent.questions.name respondent.questions.birthdate "some salt value"}}

Utilisez des fenêtres modales et des popovers pour afficher des informations supplémentaires lorsque le répondant clique sur un lien. Utilisez des fenêtres modales pour un texte ou des images plus longs, utilisez des popovers pour de petites informations ou pour expliquer un mot.

Remarque : ces opérateurs ne sont supportés que dans l’interface d’enquête et dans les rapports.

OpérateurDescription
iconAffichez une petite icône. Specifiez un identifiant de Font Awesome.
{{icon "far fa-star"}}

Résultat :

modalAffichez un lien pour ouvrir une fenêtre modale.
Cliquez {{modal "ici" "Ce texte est à l'intérieur de la fenêtre modale"}}
pour plus d'informations.
Résultat : Cliquez ici pour plus d'informations. 
Résultat endéans la fenêtre modale : Ce texte est à l'intérieur de la fenêtre modale.

L’ajout d’une icône est également possible.

Cliquez {{modal "ici" "texte de la fenêtre modale." icon="fas fa-info-circle"}} !

Si votre texte à l’intérieur de la fenêtre modale est long, vous pouvez également utiliser la variante #modal :

{{#modal "click here"}}
Ce texte est plus long et peut contenir des balises,
des guillemets et des variables.
{{/modal}}
tooltipAffichez une info-bulle ou une bulle de texte lorsque vous déplacez votre souris sur quelque chose.
Ceci est une question {{tooltip "NPS" "Net Promotor Score"}}. 
Résultat : Ceci est une question NPS.
Résultat endéans l'info-bulle : Net Promotor Score

Remarque : comme il n’y a pas de souris sur le mobile, l’info-bulle est activée en cliquant dessus.

Par défaut, les info-bulles sont affichées au-dessus du lien. Vous pouvez modifier cette position en spécifiant « left » (gauche), « right » (droite) ou « bottom » (bas).

{{tooltip "Cliquez ici" "Affiché à droite" position="right"}}

L’ajout d’une icône est également possible. Ajoutez comme dernier paramètre, la classe FontAwesome de l’icône que vous voulez utiliser.

{{tooltip "Cliquez ici" "Votre texte" position="top" icon="fas fa-info-circle"}}

Si votre texte dans l’info-bulle est long, vous pouvez également utiliser la variante #tooltip :

{{#tooltip "Cliquez ici"}}
Ce texte peut être plus long et peut contenir
des balises, des guillemets et des variables.
{{/tooltip}}
popoverIdentique à une info-bulle, mais activée uniquement en cliquant, ne pas en déplaçant votre souris dessus.
Ceci est une question {{popover "NPS" "Net Promotor Score"}}. 
Résultat : Ceci est une question NPS.
Résultat endéans popover : Net Promotor Score
lightboxAffichez une petite version d’une image lorsque l’on clique dessus. Une grande version de l’image est affichée en remplissant l’écran et en atténuant le reste de la page.
{{#lightbox}}CheckMarket Logo{{/lightbox}}

Ajoutez {{#lightbox}} avant et {{/lightbox}} après l’image pour la rendre cliquable. Lorsque vous cliquez dessus, l’image s’affiche en plein écran. Ajoutez éventuellement plusieurs images dans la même lightbox pour créer une galerie.

Vous pouvez également afficher une image dans une lightbox sans utiliser d’image, mais en utilisant du texte à la place :

{{lightbox "CheckMarket logo" "https://www.checkmarket.com/wp-content/
uploads/2016/03/CheckMarket-logo.png"}}
qrCodeAfficher un code QR d’une URL ou d’un extrait de texte. Vous pouvez optionnellement fournir la taille en pixels. La taille maximale est de 270.
{{qrCode "https://www.checkmarket.com/" 100}}

Résultat :
QR code

Vous pouvez également utiliser des variables. Par exemple, si vous avez un code de bon de réduction, dans un champ personnalisé de contact appelé « Code_de_reduction », utilisez :

{{qrCode contact.customFields.Code_de_reduction 100}}

 

Voir larticle suivant pour plus d’exemples et d’informations :
Info-bulles, popovers et fenêtres modales

Utilisez des variables temporaires personnalisées pour diviser de grandes fonctions en parties plus petites. Ces variables ne sont enregistrées nulle part, elles ne sont disponibles que temporairement dans la même page.

OpérateurDescription
setEnregistrez une valeur temporaire. Vous devez spécifier un nom et la valeur.
{{set "maSomme" (add 1 2)}}

Pour enregistrer un gros morceau de texte, vous pouvez également utiliser la variante #set :

{{#set "monTexte"}}
Cet exemple de texte peut être plus long et peut contenir des balises,
des guillemets et des variables.
{{/set}}

Vous pouvez combiner du texte en faisant passer plusieurs valeurs comme ceci :

{{set "salutation" "Bonjour " contact.firstName " !"}}

Attention : aucun résultat ne sera affiché à ce moment. Utilisez la fonction dessous pour obtenir cette variable.

getObtenez une valeur temporaire en utilisant le nom que vous avez spécifié avec l’opérateur set.
{{get "maSomme"}}
Résultat : 3

Look up information from a contact list as if it was a database and return that information to surveys, notifications, reports.

OperatorDescription
contactListLookupDe nombreux utilisateurs veulent rechercher quelque chose dans une base de données. Cette fonction vous permet d’utiliser les listes de contacts comme une sorte de base de données. Par exemple, un employé entre son numéro d’employé et son service, son niveau et son responsable sont extraits d’une liste de contacts.
La fonction contactListLookup comporte 4 termes:
  1. Identifiant de la liste de contacts à rechercher
  2. Champ à rechercher
  3. Valeur à rechercher (insensible à la casse)
  4. Champ à retourner
{{contactListLookup 1234 "customFields.1" "Emp4574" "e-mail"}}
Résultat : pré[email protected]

Vous pouvez éventuellement spécifier un terme supplémentaire «contains» pour rechercher une correspondance partielle au lieu d’une correspondance exacte. Par exemple, «ACME» correspondrait également à «ACME Entreprise».

{{contactListLookup 1234 "customFields.2" "ACME" "email" "contains"}}
Résultat : [email protected]

Mais cela peut aller plus loin que les contacts (les personnes). Pensez de manière plus abstraite et vous pouvez rechercher n’importe quoi. Par exemple, placez une liste de magasins dans une liste de contacts et lorsque quelqu’un entre dans sa ville, vous renvoyez l’adresse de l’emplacement dans cette ville ou quelqu’un sélectionne son magasin et l’adresse e-mail du gérant du magasin est placée dans le champ « à » pour une notification d’un client mécontent. Tout type de recherche devient possible !

queryStringLookupExtrayez un paramètre de chaîne de requête à partir d’une URL.
{{queryStringLookup "https://example.com?code=123" "code"}}
Résultat : 123
USStateToAbbreviationObtenez l’abréviation d’un État américain donné.
{{USStateToAbbreviation "Texas"}}
Résultat : TX
USStateFromAbbreviationObtenez le nom d’un État américain à partir de son abréviation.
{{USStateFromAbbreviation "TX"}}
Résultat : Texas

Vous pouvez combiner tous ces opérateurs pour créer une logique plus avancée. L’exemple le plus courant consiste à combiner «and» (et), «or» (ou) et «not» (non). Pour ce faire, vous devez vraiment penser en termes de vrai (true) ou de faux (false). Chaque élément est évalué puis comparé à l’aide des opérateurs.

Par exemple :

{{eq 1 1}}

Ceci est vrai (true). 1 est égal à 1.

Utilisation de ‘et’ (and) :

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

Ceci est vrai (true). 1 est égal à 1 et 2 est égal à 2.

Utilisation de ‘ou’ (or) :

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

Ceci est vrai (true). 1 n’est pas égal à 1, mais 2 est égal à 2. ‘or’ (ou) est vrai si l’un des termes est vrai.

Utilisation de non (not) :

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

Ceci est faux (false). 1 n’est pas égal à 3 mais 2 est égal à 2. Le ‘not’ (non) inverse le résultat. Simplifié, le code peut alors être vu comme :

{{not (or false true)}}

Le ‘or‘ (ou) est vrai car l’un des termes est vrai, vous obtenez donc :

{{not (true)}}

‘Not’ (Non) fait que le vrai (true) devient faux (false) :

{{false}}

Exemples

Vous pouvez combiner tous ces opérateurs pour créer une logique plus avancée. Nous avons une page avec des extraits utiles ou du code CSL que vous pouvez utiliser dans vos enquêtes. Ils sont un excellent point de départ. Même si vous ne trouvez pas de code qui fait exactement ce que vous voulez, il y a souvent quelque chose que vous pouvez modifier légèrement pour obtenir ce que vous voulez.

Survey CSL snippets

Besoin d’aide ?

Notre langage de script CheckMarket offre d’énormes possibilités qui ne peuvent bien entendu pas toutes être couvertes gratuitement par notre service d’assistance. L’utilisation de notre langage de script (CSL) par vous-même est incluse dans toutes nos formules de prix et nous offrons des services de consultation par un spécialiste aux clients qui en ont besoin.

Voulez-vous créer des enquêtes / rapports avancés, mais le temps vous manque ? Laissez l’un de nos responsables de projet faire la rédaction pour vous !

Demandez une offre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.