Ettiquetage des filtres
Explication
Pour gérer plusieurs cas dans votre scénario vous allez devoir mettre des filtres. Ces filtres conditionnent des actions en fonction de la présence ou non de certaines données.
Pour résumer, un filtre agit de cette manière : “si X condition est rempli, alors faire X action, sinon ne rien faire”.
Sur Make, une option filter existe entre les différents modules pour gérer ces conditions. Pour mieux comprendre comment lire ces filtres Predict_Flow propose une convention de nommage en fonction de différents filtres.
Convention de naming
TIP
FILTRE SUR UNE VARIABLE[variable]+condition
FILTRE SUR 2 VARIABLES[OPERATEUR][variable]+condition [variable]+condition
FILTRE SUR 3 VARIABLES ET PLUS[number_filters] CHECK topic 1, topic 2, topic 3...
Détails
SITUATION | DESCRIPTION | GESTION | EXAMPLE |
---|---|---|---|
1 seul filtre sur une variable | On filtre seulement sur une variable | [variable]+condition Variable : reprendre le nom exact de la variable utilisée. Condition : écrire la condition | [totalCount] = 1200€ [email] = john@doe.com |
2 filtres imbriqués avec AND et/ou OR (optionnel en fonction de la visibilité) | On filtre sur 2 variables | [OPERATEUR][variable]+condition [variable]+condition Pourquoi l’opérateur est-il au début ? Permet tout de suite de voir à la lecture quel est le type d’imbrication. S’il est plus loin, c’est possible qu’on ne puisse pas bien voir le AND ou le OR (ce qui nuirait à la lecture) Variante : on peut choisir l’option suivante sur les +2 filtres si la visibilité est meilleure. | [AND][totalCount] >= 1200€ [customer] = [email] Explication : On veut filtrer sur les clients qui ont dépensé une somme supérieure ou égale à 1200€ ET dont le client est égal à un mail récupéré en amont. |
Si plus de 2 filtres imbriqués, alors la méthodologie propose de choisir ce type de nommage :
TIP
[number_filters] CHECK topic 1, topic 2, topic 3
Exemples :
[7] CHECK mails, orders…
[3] CHECK subscriptions, webhook
L’objectif est de montrer ici la présence d’une condition complexe qui nécessitera pour la lecture une attention particulière et une lecture approfondie du filtre.
TYPE | DESCRIPTION | EXEMPLE |
---|---|---|
NUMBER | Nombres de filtres qui sont mis en place | [3] [7] |
CHECK | Permet d’avoir un terme qui correspond à ce que fait le filtre : il vérifie si les conditions sont remplis ou non. Il est noté en majuscule. | CHECK |
TOPIC | Le sujet dont il est question. Le mieux est de pouvoir le résumer par 1 mot et on sépare les sujets par une virgule. Attention, plus il y a de sujets, plus c’est difficile à maintenir. On ne les met pas entre crochets puisqu’il ne s’agit pas de variables récupérées précédemment. Si dans le cas contraire, vous devez utiliser des variables précédentes, alors la méthodologie impose de mettre de crochets pour bien distinguer. | mails mails, orders subscriptions, [mail] |
CONSIDÉRATIONS GÉNÉRALES :
- La variable est notée en minuscule
- Le filtre est de préférence noté en anglais, mais peut aussi l’être dans la langue natale de l’utilisateur finale (si cette cohérence est mise en œuvre tout au long su scénario).
TABLE DES FILTRES
NOM | NOMMAGE | EXEMPLE |
---|---|---|
Exist | exist | [email] exist |
Does not exist | !exist | [email] !exist |
Equal to | = | [email] = ”john@doe.fr" |
Equal to (case sensitive) | == | [email] == ”john@doe.fr" |
Contains | has | [email] has ”@” |
Contains (case sensitive) | has== | [email] has== ”@” |
Does not contain | !has | [email] !has ”@” |
Does not contain (case sensitive) | !has== | [email] !has== ”@” |
Does start with | start | [email] start ”John” |
Does start with (case sensitive) | start== | [email] start== ”John” |
Ends with | . | [email] . ”John” |
Ends with (case sensitive) | .== | [email] .== ”John” |
Does not end with | !. | [email] !. ”John” |
Does not end with (case sensitive) | !.== | [email] !.== ”John” |
Matches pattern | match | [email] match ”gmail” |
Matches pattern (case sensitive) | match== | [email] match== ”gmail” |
Does not match pattern | !match | [email] !match ”gmail” |
Does not match pattern (case sensitive) | !match== | [email] !match== ”gmail” |
Later than | > | [date] > now |
Earlier than | < | [date] < now |
Later than or equal to | >= | [date] >= now |
Earlier than or equal to | <= | [date] <= now |
Not equal to | != | [price] != [lastOrderPrice] |
Greater than | > | [order] > [lastOrderPrice] |
Less than | < | [order] < [lastOrderPrice] |
Greater than or equal to | >= | [order] <= [lastOrderPrice] |
Less than or equal to | <= | [order] <= [lastOrderPrice] |
Array length equal to | = | [result] = [lastArray] |
Array length not equal to | != | [result] != [lastArray] |
Array length greater than | > | [result] > [lastArray] |
Array length less than | < | [result] < [lastArray] |
Array length greater than or equal to | >= | [result] >= [lastArray] |
Array length less than or equal to | <= | [result] <= [lastArray] |
Examples
Contexte : Ajouter un nouveau client dans Hubspot (CRM) dès qu’une nouvelle commande est passée sur mon site e-commerce Shopify.
Voyons 3 cas possibles.
Filtrer sur 1 condition
Condition : Si le mail n’existe pas dans dans le CRM Hubspot, alors créer un nouveau contact
INFO
[email] exist
Filtrer sur 2 conditions
Condition : Si le mail existe et qu’il a déjà passé plus de 3 commandes, alors envoyer un email
INFO
[AND][email] exist [order_number] > 3
Filtrer sur plus de 3 conditions
Condition : Si les conditions suivantes sont remplies alors envoyer un message à l’équipe commerciale sur Discord.
- Le mail doit être égal à un mail récupéré dans une base de données ||
[mailPreviousModule] = [mailDatabase]
- [AND] La commande doit être ≥ 1200€ ||
[order] >= 1200€
- [AND] La commande doit être < 1500€ ||
[order] < 1500€
- [OR] Tous les mails sont = about@acme.com ||
[mail] = "about@acme.com"
- [OR] Toutes les commandes de -24h ||
[orders] < 24H
- [AND] Toutes les adresses emails doivent être différentes de gmail
[mail] is not @gmail
INFO
[6] CHECK mails, orders