KEPLIN Docs

Étapes, décisions et attentes

Le catalogue des nœuds d'un workflow — conditions, écritures dans l'enregistrement, notifications, e-mails, scripts, attentes, boucles, parallélisme et jonctions.

Cette page parcourt tous les types d'étape que l'on fait glisser de la palette Nœuds vers la toile. Pour chacun : ce qu'il fait, ce qu'on y remplit et ce qui se passe à l'exécution.

Avant cela, une pièce qui revient dans presque tous : l'origine d'une valeur.

D'où vient une valeur

Chaque fois qu'une étape demande une valeur — le côté droit d'une condition, ce qu'on écrit dans un champ — l'interface propose les mêmes quatre origines :

Origine Ce qu'elle apporte
Valeur fixe Un texte saisi à la main (« Ganha », « 25000 »).
Champ de l'enregistrement Un champ de l'enregistrement dont l'exécution traite.
Variable Une des variables du processus.
Qui a lancé l'exécution Celui qui a fait démarrer le processus — Nom d'utilisateur (le username) ou Id de l'utilisateur.

C'est pour cela qu'un processus n'a pas besoin de code pour la plupart de ce qu'il fait : les décisions et les écritures se composent avec ces quatre pièces.

Condition

Ouvre deux chemins à partir d'une question. Elle a toujours deux sorties fixes : Vrai et Faux.

La boîte de dialogue Conditions de l'étape
La boîte de dialogue Conditions de l'étape

  1. Sélectionnez l'étape et ouvrez Conditions avec le bouton .
  2. Cliquez sur Ajouter une condition.
  3. Choisissez l'origine du côté gauche (normalement Champ de l'enregistrement), le champ, l'opérateur et le côté droit.

Les opérateurs sont les mêmes que ceux des filtres et des règles de mise en forme du reste de la plateforme :

Opérateur Signifie
eq / neq Égal à / différent de
gt / gte Supérieur à / supérieur ou égal à
lt / lte Inférieur à / inférieur ou égal à
contains Contient le texte
startsWith / endsWith Commence par / se termine par
isEmpty / isNotEmpty Est vide / n'est pas vide

« Toutes doivent être vérifiées. » — plusieurs conditions dans la même étape se combinent avec ET, jamais avec OU. Pour un OU, utilisez deux étapes de condition à la suite.

Sans aucune condition, « il passe toujours par « Vrai » » — utile pendant qu'on dessine, dangereux si cela reste ainsi.

Écrire dans l'enregistrement

Enregistre des champs dans l'enregistrement dont l'exécution traite. C'est l'étape qui referme le circuit : le processus a décidé, maintenant la fiche du CRM doit le refléter.

La boîte de dialogue Champs à écrire dans l'enregistrement
La boîte de dialogue Champs à écrire dans l'enregistrement

  1. Ouvrez Champs à écrire avec le bouton .
  2. Cliquez sur Ajouter un champ.
  3. Choisissez le Champ et l'origine de la valeur.

Dans l'exemple, l'étape Marcar como Ganha écrit fase = "Ganha" (valeur fixe) et responsavel = Qui a lancé l'exécution (le username de qui a lancé le processus).

Nota

L'écriture est faite « par le même GraphQL que l'app, avec l'autorisation de la personne qui a lancé l'exécution ». Autrement dit : les permissions comptent. Si celui qui a lancé le processus ne peut pas modifier cette entité, l'étape échoue — et elle échoue à raison, parce qu'un processus n'est pas une porte dérobée aux permissions.

Une étape sans aucun champ « ne fait rien » — l'interface le dit au lieu de le cacher.

Notifier

Envoie une notification dans l'app — la cloche de la navigation, en temps réel pour qui a une session ouverte, et dans la boîte de réception pour qui ne l'a pas.

Champ Notes
Utilisateurs Des comptes de l'app, choisis à la main.
Rôles Tous les utilisateurs qui ont ce rôle. Survit aux arrivées et aux départs des personnes.
Titre La ligne qui apparaît dans la notification.
Texte Le corps.

Dans le titre et dans le texte, vous pouvez insérer des valeurs de l'enregistrement ou de variables entre accolades : A oportunidade {titulo} foi rejeitada.

E-mail

Comme Notifier, mais la destination est l'e-mail, par le canal configuré dans les paramètres de l'app. Elle a deux champs de plus : le corps est en HTML, écrit dans un éditeur dédié, et elle peut emporter un rapport en pièce jointe.

L'étape E-mail sélectionnée, avec le panneau de propriétés
L'étape E-mail sélectionnée, avec le panneau de propriétés

Champ Notes
Utilisateurs / Rôles Les destinataires. Qui n'a pas d'e-mail reste de côté.
Objet Accepte {campo} comme le reste des messages.
Texte Ouvre un éditeur HTML avec le bouton (Corps de l'e-mail).
Joindre le rapport L'un des rapports de l'app, ou Sans pièce jointe.

Sur la pièce jointe : « le PDF est généré au moment de l'envoi, pour l'enregistrement de cette exécution » — ce n'est pas un fichier stocké, c'est le document de ce cas-là, fabriqué à cet instant-là. Voir le chapitre Rapports.

Atenção

Sans canal e-mail actif et sans SMTP complet dans les paramètres de l'app, l'étape n'arrive pas à envoyer. Configurez-le dans Paramètres de l'app → Notifications avant de mettre le processus en route.

Exécuter un script

Appelle un script Python de l'app, au milieu du processus. C'est la soupape de sécurité pour tout ce que le schéma ne fait pas : appeler un service externe, calculer une marge, valider contre un autre système.

L'étape Exécuter un script sélectionnée
L'étape Exécuter un script sélectionnée

Champ Notes
Script L'un des scripts de l'app.
Enregistrer dans La variable où est conservé ce que le script renvoie. Vide = « le résultat est ignoré ».

Le script « reçoit l'enregistrement, la clé et les variables dans les arguments » — pas besoin de les passer à la main. Ce qu'il renvoie reste dans la variable indiquée et devient disponible pour les étapes suivantes.

Si le script échoue, l'exécution reste en Échouée à cette étape, avec l'erreur conservée dans l'historique.

Attendre

Diffère le processus d'une durée fixe : Jours et Heures. « Zéro dans les deux = aucune attente. »

C'est la pièce du « préviens-moi dans trois jours s'il n'y a toujours pas de réponse ». L'exécution dort et est reprise automatiquement à l'heure dite, même si le serveur a redémarré entre-temps.

Attendre un événement

Diffère le processus jusqu'à ce que quelqu'un envoie un signal portant un nom convenu.

L'étape Attendre un événement sélectionnée
L'étape Attendre un événement sélectionnée

Le seul champ est le Nom du signal (dans l'exemple, dados-completos). « Celui qui envoie le signal écrit ce nom. Sans échéance : si personne ne l'envoie, le processus reste en attente. »

Le signal s'envoie de deux façons :

  • dans un événement d'écran (TypeScript) : keplin.workflow.signal("dados-completos", id)
  • dans un script (Python) : workflow.signal("dados-completos", key=id)

Sans indiquer l'enregistrement, le signal réveille tous les processus arrêtés sur ce nom ; avec l'enregistrement, seulement ceux de celui-ci. Zéro réveillé n'est pas une erreur — cela veut dire que personne n'attendait.

Dica

Il est courant de combiner Attendre un événement avec une flèche qui revient sur une tâche : la personne renvoie le dossier en demandant plus de données, le processus reste en attente du signal, et quand le commercial complète la fiche, le signal ramène le dossier à la même tâche. C'est exactement ce que fait l'exemple de cette documentation.

Boucle

Parcourt une liste, une valeur à la fois. Elle a deux sorties : Chaque (le corps de la boucle, qui s'exécute une fois par valeur) et À la fin (quand la liste est épuisée).

Champ Notes
Liste La variable contenant les valeurs à parcourir. « C'est en général une étape de script qui la produit. »
Enregistrer chaque valeur dans La variable qui reçoit la valeur du tour en cours.

Sans liste choisie, le schéma prévient : « Cette boucle n'indique pas quelle liste parcourir : elle sort directement par « À la fin ». »

Parallèle

Démarre plusieurs chemins en même temps. Chaque branche est une sortie du nœud.

La boîte de dialogue Branches en parallèle
La boîte de dialogue Branches en parallèle

  1. Ouvrez Branches en parallèle avec le bouton .
  2. Chaque ligne est une branche, avec un Libellé (ce qu'on lit dans le schéma) et un Identifiant.
  3. Reliez chaque sortie à la première étape de la branche correspondante.

Dans l'exemple, l'étape Fechar e comunicar ouvre deux branches : Registo (qui enregistre la phase) et Cliente (qui envoie l'e-mail). Aucune n'attend l'autre.

Jonction

Rassemble à nouveau les branches d'un Parallèle. C'est l'étape qui répond à « combien en attend-on ? ».

La Jonction sélectionnée, avec le panneau de propriétés
La Jonction sélectionnée, avec le panneau de propriétés

Attendre Ce qu'il fait
Toutes les branches Le processus ne continue que lorsque la dernière branche arrive.
La première décide Il continue avec la première arrivée — « les autres branches sont annulées dès qu'une arrive ».
Un certain nombre d'entre elles Il continue au bout du nombre de branches indiqué dans Combien.

Sous-workflow

Appelle un autre processus, sur le même enregistrement.

Champ Notes
Processus à exécuter L'un des workflows de l'app.
Attendre qu'il se termine Activé, ce processus s'arrête jusqu'à ce que l'autre se termine. « Désactivé, ce processus continue et l'autre s'exécute de son côté. »

« Il s'exécute sur le MÊME enregistrement, il doit donc porter sur la même entité » — un processus sur les opportunités ne peut pas appeler un processus sur les comptes. Et un processus ne peut pas s'appeler lui-même : « ce serait une récursion sans fin », et le schéma le signale.

Fin

Termine l'exécution. Elle a un seul champ, Résultat, un texte court comme aprovado, ganha ou perdida. « Il reste dans l'historique et c'est ce que le widget d'état affiche. »

Un processus peut avoir plusieurs nœuds de Fin — un par dénouement — et c'est ce qu'il faut faire : au lieu d'une Fin générique, une par résultat, pour que l'historique dise quelque chose à qui le lit des mois plus tard.

Comment se lit une étape sur la toile

Chaque boîte sur la toile montre trois choses : le nom de l'étape (ce que vous avez saisi dans Nom de l'étape, et ce qui apparaît dans l'historique), le type en petits caractères en dessous, et les sorties à droite, avec le nom de chacune. Un triangle ambre dans le coin signale une étape qui pose problème.

Dica

Donnez aux étapes des noms métier — « Aprovação da direcção », « Marcar como Ganha » — et non des noms techniques. C'est ce texte que vous lirez dans l'historique de chaque exécution quand quelqu'un demandera « où est bloqué ce dossier ? ».