Qu'est-ce que les Expressions ?
Une expression a l'apparence d'une chaîne d'une certaine syntaxe. Elle sera «exécutée» sur le serveur dans un contexte concret, et le résultat de l'exécution sera l'une des deux valeurs booléennes : vrai ou faux (true / false).
De fait, une expression répond à la question : faut-il envoyer maintenant cet e-mail précis à cet abonné précis ?
Pour les e-mails déclencheurs, de telles questions sont en règle générale absentes — il faut toujours les envoyer. Mais pour les e-mails marketing, tout est plus complexe. La nécessité de l'envoi dépend des données que possède l'abonné (par exemple, un e-mail avec des idées de cadeaux pour le 8 mars est plus logique à envoyer à un public masculin, et non féminin), des e-mails qu'il a reçus auparavant et de la façon dont il a interagi avec eux.
Toutes ces règles complexes (logique métier) peuvent être présentées sous la forme d'une séquence de vérifications et de comparaisons, dont l'exécution nous mènera à la réponse «Oui» ou «Non» — la valeur booléenne déjà mentionnée true / false.
Dans notre système, de telles Expressions sont disponibles à plusieurs endroits et peuvent avoir un ensemble différent de variables auxquelles on peut accéder à l'intérieur de l'expression.
Syntaxe de base
À l'intérieur d'une expression, on peut utiliser différents types de données :
10— nombre entier3.14— nombre décimaltrue— valeur booléenne truefalse— valeur booléenne falsenull— valeur spéciale null"Hello"— chaînesubscriber.id— accès à une propriété de l'objet"World"— une autre façon d'écrire une chaîne["new", "paid", "shipped"]— tableau de chaînes
Opérateurs de comparaison
==— égal à!=— différent de<— inférieur à<=— inférieur ou égal>— supérieur à>=— supérieur ou égal
Opérateurs mathématiques
+— addition-— soustraction*— multiplication/— division
Opérateurs logiques
and— ET logiqueor— OU logiquenot— négation logique
Fonctions
rand(from, to)— prend deux arguments numériques : from et to. Renvoie un entier aléatoire compris entre le premier argument et le second. Peut être utilisé pour déclencher une expression uniquement pour un certain pourcentage de cas
On peut également utiliser des parenthèses pour modifier la priorité d'exécution, comme cela se produit habituellement dans les formules mathématiques : ce qui est entre parenthèses est exécuté en premier.
Quelques exemples
subscriber.address_country in ["UA", "PL", "NL"] — renverra true uniquement dans le cas où le pays de l'abonné est l'un de ceux indiqués.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — l'abonné a son anniversaire ce mois-ci et il aura 18 ans.
rand(1, 100) > 25 — renverra true dans 75 % des cas
Variables disponibles
L'ensemble des variables disponibles dépend de l'endroit où l'Expression est appliquée.
Variables pour la condition d'entrée dans la campagne d'envoi des abonnés depuis la base : base, time, subscriber, tags, now
Variables pour la vérification de l'exécution d'un Événement dans la campagne d'envoi : base, time, subscriber, tags, now, url (uniquement pour l'événement de clic sur un lien), url_md5 (uniquement pour l'événement de clic sur un lien)
Variables pour vérifier l'exécution de l'Événement dans les Bases d'abonnés : base, time, subscriber, tags, now
Description des variables
- base — objet contenant les données de la base de l'abonné, une description détaillée des champs est disponible sur cette page
- time — nombre entier, heure actuelle au format Unix timestamp
- subscriber — objet avec les données sur l'abonné, la description détaillée des champs est indiquée sur cette page
- tags — tableau de chaînes qui contient les tags de l'abonné, par exemple
["tag1", "tag2", "tag3"] - now — objet spécial de l'heure actuelle, qui possède la méthode
format. Par exemple,now.format("Y")renverra l'année actuelle sous la forme d'une chaîne de quatre caractères - url — lien HTTP sur lequel le clic a été effectué
- url_md5 — chaîne MD5, c'est-à-dire la valeur MD5 du lien sur lequel le clic a été effectué