Expressions

Les expressions sont utilisées dans Selligent by Zeta pour une large gamme d'objectifs, notamment pour placer des données dans du contenu (messages, templates, notifications mobiles, SMS), des composants Journey et des listes.

Pour atteindre un tel objectif :

  • il est possible d'utiliser des expressions manuelles.
    Celles-ci adoptent la syntaxe suivante : [%function%].
    Pour un aperçu de l'ensemble des fonctions Selligent by Zeta disponibles, consultez ce document.

    Exemple d'expression manuelle dans un composant Texte d'un contenu pour convertir la valeur du champ MAIL dans la liste principale en capitales (pour la personnalisation) :

    Exemple d'expression manuelle dans un composant Texte d'un contenu pour afficher une valuer par défaut 'Unemployed' si le champ 'JOB' dans la liste principale contient aucune donnée (pour la personnalisation). Dans d'autres cas, la valeur du champ 'JOB' est affichée :
    [%if( eq( [MASTER.JOB],''), 'Unemployed',[MASTER.JOB])%]

    Exemple d'expression manuelle dans un composant Données d'un Custom Journey à utiliser comme valeur à enregistrer dans un champ d'une liste :


 

  • les expressions visuelles peuvent être utilisées
    • dans l'éditeur de personnalisation — elles sont utilisées pour ajouter des champs de personnalisation dans du contenu.
    • Exemple de champ de personnalisation utilisant la fonction 'Uppercase' :

    • à travers l'éditeur de contrainte — elles sont utilisées dans du contenu (p. ex. contrainte de visibilité ou en-tête conditionnel d'e-mail).
    • Exemple de contrainte pour vérifier si un élément de sélection de données contient le texte 'phone' — le résultat est 'oui (true)' ou 'non (false)' (utilisation possible par exemple comme contrainte de visibilité pour afficher ou masquer certains contenus) :

    • à travers le créateur de contraintes — elles sont utilisées pour segmenter une liste.
    • Exemple :

Quelle syntaxe utiliser et pourquoi ?
Examinons les exemples suivants :
[%[MASTER.NAME]%] — renvoie la valeur du champ NAME
[%'MASTER.NAME'%] — renvoie la valeur de texte MASTER.NAME

 

Les expressions peuvent être utilisées aux endroits suivants de contenus (messages, templates, notifications mobiles, SMS) :

  • dans les champs d'en-tête tels que les champs De et À, le résumé court et l'objet
  • dans le contenu proprement dit
  • comme source pour un composant Image
  • dans des URL de lien et des paramètres de lien
  • dans des contraintes de visibilité

Les expressions peuvent également être utilisées en mode source, en utilisant l'attribut de l'expression. La syntaxe est légèrement différente selon l'endroit où l'expression est utilisée :
Contrainte de visibilité — contains([MASTER.NAME],'Andrew') (exemple : <img expression="all(contains([MASTER.NAME], 'Andrew'))") />
Section de contenu — [%[MASTER.NAME]%]

 

Les expressions peuvent aussi être utilisées dans des composants Journey :

Le créateur de contraintes est également utilisé pour créer des contraintes de segmentation de liste dans le chapitre Listes.
À côté des expressions générales, il existe des expressions spécifiques qui peuvent uniquement être utilisées au sein du créateur de contraintes.
Ces expressions sont répertoriées ici.

 

Expressions permettant d'obtenir des données

  • [%[SCOPE.FIELDNAME]%] — Obtenir des données de profil (liste d'audiences ou profil étendu 1:1) de la base de données.
  • [%requestValue('FIELDNAME')%] — Récupérer des informations à partir de valeurs. Il s'agit par exemple des valeurs utilisées dans les composants Formulaire (tels que les zones de texte), ou encore dans les composants Journey (tels que les composants Données ou Événements), etc.
  • [%requestValue('PARAMETER')%] — Lors de la récupération d'un paramètre.Par exemple, utilisé sur une page ou dans un composant de données dans un journey.
    Notez que lorsque plusieurs valeurs de paramètres existent, vous devez utiliser loadValue pour charger une valeur spécifique (voir ci-dessous).
  • [%componentValue('SCOPE.VARIABLE')%] — Utiliser un composant personnalisé ou un canal personnalisé avec des paramètres de sortie. La variable correspond au nom du paramètre de sortie (par exemple pour afficher la valeur sur une page).
  • [%label('DICTIONARY_NAME','LABEL_NAME')%] — Utiliser des libellés de dictionnaires, avec les traductions correspondantes. Notez que cette expression ne peut pas être utilisée comme valeur d'une libellé dans un dictionnaire.
  • [%eventValue('EVENTVALUE')%] — Utiliser les événements personnalisés. Notez que cette expression ne peut pas être utilisée comme valeur d'une libellé dans un dictionnaire.
  • [%eventValue('FIELDNAME')%] — Ajouter des valeurs de champ transactionnel à un message. Notez que cette expression ne peut pas être utilisée comme valeur d'une libellé dans un dictionnaire.
  • [%VARIABLE.VARIABLE_NAME%] — Utiliser des variables dans un e-mail/une page.
  • [%itemValue('SELECTION_NAME', index, 'FIELDNAME')%] — Récupérer des données d'une sélection de données à des fins de personnalisation (exemple : pour afficher une image à partir d'une sélection de données, in a Repeater). Notez que l'index correspond au nombre de lignes dans la sélection de données, la première ligne portant le chiffre 0.
  • [%loadValue(VALUE1, VALUE2, DefaultValue)%] — Charger des valeurs, comme les valeurs de paramètre dans un composant Entrée d'un journey ou des valeurs de zone combinée dans un formulaire.
  • [%journeyLookupValue('LIST_API_Name', 'FIELDNAME')%] — Vous pouvez sélectionner la propriété Charger les données dans le composant Recherche d'un Custom Journey. Si cette option est sélectionnée, les données chargées sont disponibles dans les composants du journey qui suivent le composant Recherche et pour la personnalisation des messages (seulement des pages) y relatifs via cette expression. Notez que cette expression ne peut pas être utilisée comme valeur d'une libellé dans un dictionnaire.
    • [%journeyLookupValue('LIST_API_Name', 'FIELDNAME', 'MY_SCOPE')%] — L'expression journeyLookupValue peut aussi s'utiliser avec un paramètre tiers, le scope. Le scope doit être utilisé quand plusieurs composant Recherche utilisés dans le même Custom journey effectuent une recherche sur une même liste. Le scope peut alors renvoyer les données correctes du composant Recherche adéquat..
  • [%cartValue('PRICE')%][%cartValue('Products',0,'PRICE')%] — Quand un journey Abandon du panier est généré, Site envoie les informations à Selligent concernant le panier ayant généré ce journey. Il indique également les produits se trouvant dans le panier abandonné (ID, prix et quantité). Vous pouvez utiliser ces données pour la personnalisation des messages et dans les contraintes de visibilité. Si aucune donnée de panier de Sitene se trouve dans le champ sélectionné, la valeur par défaut est récupérée de la liste de sélection de données. L'expression cartValue est disponible pour chaque champ de la sélection de données. Toutefois, seules les options de prix et de quantité sont aujourd'hui prises en charge.
    - Utilisation à l'intérieur d'un répéteur : [%cartValue('PRICE')%]
    - Utilisation à l'extérieur d'un répéteur : [%cartValue('Products',0,'PRICE')%]
  • [%listValue('LISTNAME.FIELDNAME')%] — Recherche et renvoie la valeur d'un champ dans la liste de recherche (scope actuel) ou dans toute liste liée (1:1 ou 1:N).
    Exemple: La liste de recherche (scope actuel) est la liste d'audiences principale, avec une liste liée « Preferences » contenant un champ « Interests » duquel nous cherchons à obtenir la valeur.
    -> listValue([Preferences.Interests]) renvoie la valeur « fashion ».
    (l'utilisation courante de listValue se fait dans le Créateur de contraintes, en comparant les valeurs des champs de listes liées).
  • [%profileValue('LISTNAME.FIELDNAME')%] — Recherche et renvoie la valeur d'un champ dans la liste d'audiences (ou dans une extension de profil 1:1 de cette liste d'audiences).
    Exemple: Le scope actuel est la liste « Produits » (liste de données non liée à la liste d'audiences principale). Nous cherchons à obtenir l'e-mail du contact à partir de la liste d'audiences.
    -> profileValue([MASTER.MAIL]) renvoie la valeur 'john.doe@selligent.com'
    (l'utilisation courante de profileValue se fait dans le Créateur de contraintes, en comparant les valeurs des champs de la liste avec la liste d'audiences (non liée)).
  • [%jsonValue(FIELD,JSON Key)%] — Pour utiliser les données renvoyées dans un champ de liste d'événements personnalisés de type JSON (tableau).
    - field = une expression renvoyant le champ JSON, par exemple : eventValue('FAVORITESHOPS')
    - JSON key = le chemin pour accéder à la clé spécifique dans le JSON (tableau). Utilisez « . » comme séparateur et « [x] » comme opérateur d'indexation (basé sur zéro).
    Exemple:
    A Custom Events field called FAVORITESHOPS contains the JSON structure as displayed above.
    - Pour obtenir la « ville » du premier élément du tableau ADDRESS, utilisez : [% jsonValue(eventValue('FAVORITESHOPS'), 'ADDRESS[0].CITY') %]
    - Pour obtenir la « ville » du deuxième élément du tableau ADDRESS, utilisez : [% jsonValue(eventValue('FAVORITESHOPS'), 'ADDRESS[1].CITY') %]

 

Expressions à l'intérieur de balises HTML

Le code HTML doit toujours être valide. Les attributs de balise doivent remplir les conditions suivantes :

  • le code HTML doit avoir un format valide (c.-à-d. utilisation html par défaut ; balises html (telles que <head> et <body>) avec ouverture et fermeture correctes de toutes les balises, utilisation de dénominations correctes, etc.)
  • chaque attribut dans la balise HTML doit avoir une valeur

Les expressions peuvent aussi être utilisées à l'intérieur des balises HTML. Une expression permet d'évaluer la valeur de cet attribut particulier.

Exemple:
<input type="text" name="SURNAME" placeholder="[% if(eq([MASTER.LANGUAGE],'FR'),'Monsieur','Mister') %]" id="inputText-1">

Dans cet exemple, le champ de saisie affiche un espace réservé avec la valeur 'Monsieur' si le champ LANGUAGE de la liste principale a la valeur 'FR' (french) pour l'utilisateur. Sinon, 'Mister' est affiché comme espace réservé.

Remarque:
Le HTML importé est la seule exception où un préfixe expr: est utilisé pour signifier l'utilisation de la syntaxe Selligent.
Exemple :
Le fichier HTML importé contient un lien comme celui-ci : <a href="https://www.google.com"
target="_blank">
Après importation dans Selligent, cela devient : <a expr:href="LINK(101)">
Le lien sera ajouté à l'onglet Liens de votre message.

Expressions booléennes

Les expressions booléennes ne doivent pas être utilisées pour afficher directement le résultat. Elles ne renvoient que les valeurs « vrai » ou « faux ».

Les expressions booléennes sont utiles dans le contexte suivant :

  • dans une expression IF
  • Exemple : [% if(isnumeric([MASTER.cardid]), 'Votre id de carte est correct', 'Votre id de carte est incorrect. Il doit correspondre à une valeur numérique.')) %]
    => Si la valeur d'id de carte est numérique, le premier message s'affiche. Dans le cas contraire, le second message s'affiche..

  • dans une contrainte de visibilité — Vous trouverez de plus amples informations sur les contraintes de visibilité ici.
  • Example : <sg:content expression="all(eq(tobool([VARIABLE.Loyal]),tobool('true')))" >
    =>Le contenu de texte ne s'affiche que lorsque la variable booléenne Loyal est définie sur « vrai ».

  • dans une expression d'un composant Fractionnement — Vous trouverez de plus amples informations sur le composant Fractionnement ici.

 

Liste des expressions booléennes Selligent:

  • contains
  • startswith
  • endswith
  • notcontains
  • isdate
  • eq (égal)
  • ne (non égal)
  • lt (plus petit que)
  • gt (plus grand que)
  • le (inférieur ou égal)
  • ge (supérieur ou égal)
  • between
  • and / all
  • or / any
  • not
  • isempty
  • isnotempty
  • containstag
  • tobool
  • chkmail / ismail
  • isnumeric
  • regex
  • InWebContext()

Remarque : Voir le document Fonctions pour savoir comment utiliser, entre autres, l'ensemble des expressions booléennes.

 

Validations sur les expressions

Lors de la validation d'un journey, le volet Validation affiche un message d'avertissement si une expression inconnue ou incorrecte est détectée.

Remarque : Les avertissements ne bloquent pas l'exécution du journey en cours, contrairement aux erreurs.