Skip to content

Aiguillage ​

Envoie le mail sur la première branche dont les conditions sont satisfaites, sinon sur la branche « sinon ».

L’Aiguillage envoie une branche vers l’une de plusieurs sorties nommées. Chaque règle a un nom, une liste de conditions et un réglage « Combinaison » (toutes les conditions ou au moins une). Les règles sont évaluées dans l’ordre et la première satisfaite l’emporte ; les suivantes ne sont pas évaluées. Si aucune ne l’est, l’exécution continue par otherwise.

Les conditions utilisent les mêmes champs et opérateurs que le nœud Condition (Si) : email.<champ> ou un chemin data.<chemin> produit en amont. Pour une simple décision oui/non, le nœud Condition est plus simple. Pour orienter selon le sens d’un mail plutôt que selon la valeur d’un champ, utilisez Catégoriser.

En bref ​

  • Type : flow.switch · version 1
  • Catégorie : Logique
  • Nature : Étape — s’exécute pendant une exécution
  • Effet : Sans effet externe (none) — rien n’est écrit hors de Mankomail ; rejouable sans risque
  • Exige un mail porteur : Non
  • Connexion : Aucune
  • Entrées : main
  • Sorties : Calculées depuis les paramètres (avec les paramètres par défaut : otherwise)

Paramètres ​

rules ​

Règles — Chaque règle donne son nom à une sortie du nœud. La première règle satisfaite gagne ; les suivantes ne sont pas évaluées.

  • Type : Liste d’éléments (collection)
  • Requis : Non
  • De 1 à 20 éléments
  • Chaque élément a :
    • name — Nom de la branche
      • Type : Texte (string)
      • Requis : Oui
      • 120 caractères au plus
      • Exemple : Urgent
      • Expressions : {{ }} refusé
    • match — Combinaison
      • Type : Un choix (options)
      • Requis : Oui
      • Défaut : all
      • Options :
        • all — Toutes les conditions
        • any — Au moins une condition
    • conditions — Conditions
      • Type : Liste d’éléments (collection)
      • Requis : Non
      • De 1 à 50 éléments
      • Chaque élément a :
        • field — Champ. Un champ du mail (email.subject, email.from.domain, email.attachments.mimeTypes) ou un chemin dans les données de travail (data.categorize_1.category, data.extract_text_1.count). Exemple : « a une PJ PDF » = email.attachments.mimeTypes contient application/pdf.
          • Type : Texte (string)
          • Requis : Oui
          • 200 caractères au plus
          • Exemple : email.attachments.mimeTypes
        • op — Opérateur
          • Type : Un choix (options)
          • Requis : Oui
          • Défaut : contains
          • Options :
            • eq — est égal à
            • neq — n’est pas égal à
            • contains — contient
            • startsWith — commence par
            • endsWith — finit par
            • gt — est supérieur à
            • lt — est inférieur à
            • exists — est renseigné
            • matchesDomain — appartient au domaine
            • isEmpty — est vide
        • value — Valeur
          • Type : Texte (string)
          • Requis : Non
          • 2000 caractères au plus
          • Affiché quand : op ne vaut aucune de exists, isEmpty
        • caseSensitive — Respecter la casse. Par défaut la comparaison ignore la casse ; les accents restent significatifs.
          • Type : Oui / non (boolean)
          • Requis : Non
          • Défaut : false
          • Affiché quand : op ne vaut aucune de exists, isEmpty, matchesDomain

Sorties ​

Calculées depuis les paramètres.

  • otherwise — Emprunté quand aucune règle n’est satisfaite. Toujours présent.
  • case:<rule name> — Un port par règle, à son nom (une règle nommée Urgent dessine le port case:Urgent). Emprunté quand cette règle est la première dont les conditions sont satisfaites.

Données produites ​

Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).

  • {{ data.<step>.branch }} — string. Le nom de la règle satisfaite, ou null quand la branche otherwise a été empruntée.
  • {{ data.<step>.matched }} — boolean. true quand une règle a été satisfaite, false quand la branche otherwise a été empruntée.

Example ​

Orienter les mails de fournisseurs selon le domaine de l’expéditeur. Renseignez rules ainsi :

1. name: Transporteur   match: any   conditions: email.from.domain  appartient au domaine  transporteur.example
                                                  email.subject      contient               suivi
2. name: Comptabilité   match: all   conditions: email.attachments.mimeTypes  contient  application/pdf

Le nœud dessine trois sorties : case:Transporteur, case:Comptabilité et otherwise. Un mail de notifications.transporteur.example prend case:Transporteur même s’il porte aussi un PDF, car la première règle l’emporte. En aval, {{ data.<step>.branch }} vaut Transporteur.

Tips ​

  • L’ordre des règles compte. Placez les règles les plus précises en premier.
  • Le nom de la règle devient le nom du port : il ne peut donc pas contenir d’expression {{ }}. Renommer une règle renomme son port : reconnectez la branche ensuite.
  • Deux règles de même nom partagent le même port et mènent donc à la même branche.
  • Une règle sans nom est ignorée : elle ne dessine aucun port et n’est jamais évaluée.
  • Les comparaisons de texte ignorent la casse par défaut ; un chemin data. inexistant compte comme vide, exactement comme dans le nœud Condition.