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
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.
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 :
time, subscriber, tags, now
Variables pour la vérification de l'exécution d'un Événement dans la campagne d'envoi :
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)
Description des variables
- 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é