Stappen, beslissingen en wachtstanden
De catalogus van de knooppunten van een workflow — voorwaarden, schrijven naar het record, meldingen, e-mails, scripts, wachtstanden, lussen, parallellisme en samenkomsten.
Deze pagina loopt alle soorten stap langs die u van het palet Knooppunten naar het doek sleept. Voor elk: wat het doet, wat u invult en wat er tijdens de uitvoering gebeurt.
Eerst nog een onderdeel dat in bijna alle stappen terugkomt: de herkomst van een waarde.
Waar een waarde vandaan komt
Telkens wanneer een stap om een waarde vraagt — de rechterkant van een voorwaarde, wat er in een veld wordt geschreven — biedt de interface dezelfde vier herkomsten:
| Herkomst | Wat die meebrengt |
|---|---|
| Vaste waarde | Een met de hand getypte tekst ("Ganha", "25000"). |
| Veld van het record | Een veld van het record waarover de uitvoering gaat. |
| Variabele | Een van de variabelen van het proces. |
| Wie het gestart heeft | Wie het proces heeft laten starten — Gebruikersnaam (de username) of Id van de gebruiker. |
Daarom heeft een proces voor het meeste wat het doet geen code nodig: de beslissingen en de schrijfacties stelt u met deze vier onderdelen samen.
Voorwaarde
Opent twee wegen vanuit één vraag. Heeft altijd twee vaste uitgangen: Waar en Onwaar.

- Selecteer de stap en open Voorwaarden via de knop ….
- Klik op Voorwaarde toevoegen.
- Kies de herkomst van de linkerkant (normaal gesproken Veld van het record), het veld, de operator en de rechterkant.
De operatoren zijn dezelfde als die van de filters en de opmaakregels in de rest van het platform:
| Operator | Betekent |
|---|---|
eq / neq |
Gelijk aan / niet gelijk aan |
gt / gte |
Groter dan / groter of gelijk |
lt / lte |
Kleiner dan / kleiner of gelijk |
contains |
Bevat de tekst |
startsWith / endsWith |
Begint met / eindigt op |
isEmpty / isNotEmpty |
Is leeg / is niet leeg |
"Ze moeten allemaal opgaan" — meerdere voorwaarden in dezelfde stap worden met EN gecombineerd, nooit met OF. Voor een OF gebruikt u twee voorwaardestappen achter elkaar.
Zonder enige voorwaarde "gaat hij altijd via «Waar»" — handig tijdens het ontwerpen, gevaarlijk als het zo blijft.
Naar het record schrijven
Slaat velden op in het record waarover de uitvoering gaat. Het is de stap die de kring sluit: het proces heeft beslist, nu moet de fiche in het CRM dat weerspiegelen.

- Open Velden om te schrijven via de knop ….
- Klik op Veld toevoegen.
- Kies het Veld en de herkomst van de waarde.
In het voorbeeld schrijft de stap Marcar como Ganha fase = "Ganha"
(vaste waarde) en responsavel = Wie het gestart heeft (de username van wie
het proces begonnen is).
Nota
Het schrijven gebeurt "via hetzelfde GraphQL van de app, met de autorisatie van wie het gestart heeft". Oftewel: de rechten tellen. Mag wie het proces gestart heeft die entiteit niet wijzigen, dan mislukt de stap — en dat is maar goed ook, want een proces is geen achterdeur naar de rechten.
Een stap zonder enig veld "doet niets" — de interface zegt het in plaats van het te verbergen.
Melden
Stuurt een melding binnen de app — het belletje in de navigatie, in real time voor wie is ingelogd, en in de inbox voor wie dat niet is.
| Veld | Opmerkingen |
|---|---|
| Gebruikers | Accounts van de app, met de hand gekozen. |
| Rollen | Alle gebruikers met die rol. Overleeft het komen en gaan van mensen. |
| Titel | De regel die in de melding verschijnt. |
| Tekst | De inhoud. |
In de titel en de tekst kunt u waarden uit het record of uit variabelen tussen
accolades zetten: A oportunidade {titulo} foi rejeitada.
Hetzelfde als Melden, maar de bestemming is de e-mail, via het kanaal dat in de instellingen van de app is geconfigureerd. Het heeft twee velden meer: de inhoud is HTML, geschreven in een eigen editor, en er kan een rapport als bijlage mee.

| Veld | Opmerkingen |
|---|---|
| Gebruikers / Rollen | De ontvangers. Wie geen e-mailadres heeft, valt buiten de boot. |
| Onderwerp | Accepteert {campo} net als de rest van de berichten. |
| Tekst | Opent een HTML-editor via de knop … (Inhoud van de e-mail). |
| Rapport bijvoegen | Een van de rapporten van de app, of Geen bijlage. |
Over de bijlage: "de PDF wordt op het moment van versturen gegenereerd, voor het record van deze uitvoering" — het is geen bewaard bestand, het is het document van dat geval, op dat moment gemaakt. Zie het hoofdstuk Rapporten.
Atenção
Zonder actief e-mailkanaal en volledige SMTP in de instellingen van de app kan de stap niets versturen. Stel het in bij Instellingen van de app → Meldingen voordat u het proces laat draaien.
Script uitvoeren
Roept een Python-script van de app aan, midden in het proces. Het is de ontsnappingsklep voor alles wat het ontwerp niet doet: een externe dienst aanroepen, een marge berekenen, tegen een ander systeem valideren.

| Veld | Opmerkingen |
|---|---|
| Script | Een van de scripts van de app. |
| Opslaan in | De variabele waarin blijft wat het script teruggeeft. Leeg = "weggegooid". |
Het script "krijgt het record, de sleutel en de variabelen als argumenten" — u hoeft ze niet met de hand mee te geven. Wat het teruggeeft, blijft in de aangegeven variabele staan en is voortaan beschikbaar voor de volgende stappen.
Mislukt het script, dan blijft de uitvoering bij die stap op Mislukt staan, met de fout bewaard in de geschiedenis.
Wachten
Stelt het proces een vaste tijd uit: Dagen en Uren. "Nul bij beide = er wordt niet gewacht."
Het is het onderdeel van "waarschuw me over drie dagen als er nog geen antwoord is". De uitvoering slaapt en wordt op het juiste moment automatisch hervat, ook al is de server er tussendoor herstart.
Op een gebeurtenis wachten
Stelt het proces uit totdat iemand een signaal met een afgesproken naam stuurt.

Het enige veld is de Naam van het signaal (in het voorbeeld
dados-completos). "Wie het signaal stuurt, schrijft deze naam. Zonder vast
tijdstip: stuurt niemand het, dan blijft het proces wachten."
Het signaal stuurt u op twee manieren:
- in een schermgebeurtenis (TypeScript):
keplin.workflow.signal("dados-completos", id) - in een script (Python):
workflow.signal("dados-completos", key=id)
Zonder het record aan te geven wekt het signaal alle processen die op die naam stilstaan; met het record alleen die van dat record. Nul gewekte processen is geen fout — het betekent dat er niemand stond te wachten.
Dica
Het is gebruikelijk om Op een gebeurtenis wachten te combineren met een pijl terug naar een taak: de persoon stuurt het geval terug met een verzoek om meer gegevens, het proces blijft op het signaal wachten, en zodra de verkoper de fiche aanvult, brengt het signaal het geval terug bij dezelfde taak. Dat is precies wat het voorbeeld in deze documentatie doet.
Lus
Loopt een lijst door, één waarde tegelijk. Heeft twee uitgangen: Elk (het lichaam van de lus, dat één keer per waarde draait) en Aan het eind (wanneer de lijst op is).
| Veld | Opmerkingen |
|---|---|
| Lijst | De variabele met de waarden die doorlopen moeten worden. "Meestal is het een scriptstap die haar oplevert." |
| Elk opslaan in | De variabele die de waarde van de huidige ronde krijgt. |
Zonder gekozen lijst waarschuwt het ontwerp: "Deze lus zegt niet welke lijst er doorlopen moet worden: hij gaat er meteen uit via «Aan het eind»."
Parallel
Start meerdere wegen tegelijk. Elke vertakking is een uitgang van het knooppunt.

- Open Parallelle vertakkingen via de knop ….
- Elke regel is een vertakking, met een Label (wat u in het ontwerp leest) en een Identificatie.
- Verbind elke uitgang met de eerste stap van de bijbehorende vertakking.
In het voorbeeld opent de stap Fechar e comunicar twee vertakkingen: Registo (die de fase opslaat) en Cliente (die de e-mail verstuurt). Geen van beide wacht op de ander.
Samenkomst
Voegt de vertakkingen van een Parallel weer samen. Het is de stap die antwoord geeft op "op hoeveel wordt er gewacht?".

| Wachten op | Wat dat doet |
|---|---|
| Alle vertakkingen | Het proces gaat pas verder wanneer de laatste vertakking aankomt. |
| De eerste beslist | Gaat verder met de eerste die aankomt — "de andere vertakkingen worden geannuleerd zodra er één aankomt". |
| Een aantal ervan | Gaat verder na het aantal vertakkingen dat u bij Hoeveel aangeeft. |
Subworkflow
Roept een ander proces aan, over hetzelfde record.
| Veld | Opmerkingen |
|---|---|
| Proces om uit te voeren | Een van de workflows van de app. |
| Wachten tot het klaar is | Aan: dit proces stopt totdat het andere klaar is. "Uitgeschakeld gaat dit proces verder en draait het andere op eigen houtje." |
"Het draait op HETZELFDE record, en moet daarom over dezelfde entiteit gaan" — een proces over opportuniteiten kan geen proces over accounts aanroepen. En een proces kan zichzelf niet aanroepen: "dat zou eindeloze recursie zijn", en het ontwerp meldt dat.
Einde
Beëindigt de uitvoering. Heeft één enkel veld, Resultaat, een korte tekst
als aprovado, ganha of perdida. "Het blijft in de geschiedenis staan en
is wat de statuswidget toont."
Een proces mag meerdere knooppunten Einde hebben — één per afloop — en dat is precies wat u hoort te doen: in plaats van één algemeen Einde, één per resultaat, zodat de geschiedenis iets zegt tegen wie haar maanden later leest.
Hoe u een stap op het doek leest
Elk vak op het doek toont drie dingen: de naam van de stap (wat u bij Naam van de stap hebt getypt, en wat in de geschiedenis verschijnt), de soort in kleine letters daaronder, en de uitgangen rechts, met de naam van elk. Een amberkleurige driehoek in de hoek markeert een stap met problemen.
Dica
Geef de stappen namen uit het bedrijfsleven — "Aprovação da direcção", "Marcar como Ganha" — en geen technische namen. Het is die tekst die u in de geschiedenis van elke uitvoering gaat lezen wanneer iemand vraagt "waar staat dit geval stil?".