Les conditions et les filtres
Écrire la condition d'un lien, d'un déclencheur ou d'une attente, et le filtre d'une boucle — le format, ce qu'il accepte, et ce qu'il refuse.
Une condition (d'un lien, d'un déclencheur, d'une attente, d'un bloc d'une étape condition) et le filtre d'une boucle ont le format
des filtres de liste de l'API — voir Lire des listes —, écrit en JSON dans une chaîne :
{ "OperatorType": "and", "Operands": [
{ "PropertyName": "Status", "Comparison": "=", "Value": "Client" },
{ "OperatorType": "or", "Operands": [
{ "PropertyName": "City", "Comparison": "contains", "Value": "Paris" },
{ "PropertyName": "PostalCode", "Comparison": "startswith", "Value": "75" } ] } ] }Les règles
- Une feuille porte
PropertyName,ComparisonetValue.PropertyNameest une propriété directe du type filtré (Status,ParentCompanyId) : un chemin qui traverse une fiche liée (ParentCompany_Name) ne se lit pas — on filtre sur l'identifiant de la fiche liée. Exceptions : un champ personnalisé,CustomFields.suivi de son nom technique, et l'élément d'une collection interrogeable (ActionSummaries.Status). - Un nœud porte
OperatorType—and,orouNot; absent,and— et sesOperands. Un nœud n'a qu'un opérateur : « a et b ou c » s'écritor( and(a, b), c ). Tout autre opérateur est refusé. Comparison, en minuscules :=,<>,<,<=,>,>=,contains,notcontains,startswith,endswith,between(Value= les deux bornes, incluses),isinetisnotin(Value= une liste non vide). Absente, elle vaut=.Value: nullne s'emploie qu'avec=et<>.- Une fiche liée par une relation :
PropertyName=Relation[<code>|A](la fiche filtrée du côtéA),Comparison=isnotblank(au moins un lien),isblank(aucun),=ou<>(liée ou non à la fiche dont l'identifiant estValue),isinouisnotin. Dans le filtre d'une boucle, seulement en tête. - « Un élément d'une collection qui remplit toutes ces conditions » : un nœud dont
PropertyNamenomme la collection (ActionSummaries,MemberSummaries,FileSummaries,RecipientSummaries), ses opérandes portant sur l'élément. Deux feuilles posées à plat sur la même collection peuvent être satisfaites par deux éléments différents. Valuepeut être une variable ({{Total}}), et dans le filtre d'une boucle tout champ : « la carte du parcours » s'écritId = {{Transaction_PipelineItemId}}, « la fiche créée à l'étape 4 »Id = {{Flow_FlowAction[4]_Output_Id}}.- Une condition sur les variables (sujet
Variables, et toute condition d'un déclencheur sans fiche) nomme une variable dansPropertyName, déclarée ou remplie par un déclencheur ; elle se compare dans son type, etisblank/isnotblanks'y emploient.
Ce qui rend une condition fausse
- Un filtre ne s'élargit jamais : un critère qui ne se lit pas, ou un champ qui ne se résout pas, rend la condition fausse — jamais « vraie faute de mieux ». Sans fiche à juger, toute condition non vide est fausse.
- Une condition se juge sur la fiche en mémoire, une propriété calculée comprise ; le filtre d'une boucle se traduit en base,
où une propriété calculée est refusée. La publication le juge :
ConditionChampInconnu, avec le champ et le motif. - Ce format et aucun autre : un tableau de filtre écrit pour un autre outil (
["Name","startswith","…"]) est refusé (ConditionIllisible). - Il n'y a ni date relative (« il y a sept jours »), ni « utilisateur courant » :
{{Now}}et{{Today}}sont des dates fixes, résolues à l'exécution.