Voorwaarden, schakelaars en vertragingen
Laat een flow splitsen met Als / anders en Schakel, laat hem wachten, zoek records op, loop door lijsten en vraag goedkeuring
Laatst bijgewerkt op
Met de stappen in de groep Logica bepaal je welke kant een flow op gaat en wanneer. Ze sturen de acties erna. Alleen Goedkeuring vragen maakt zelf iets aan, een taak.
| Stap | Wat het doet | Uitgangen |
|---|---|---|
| Als / anders | Splitst op voorwaarden | Ja, Nee |
| Schakel | Kiest een tak op de waarde van een veld | Een per tak en Standaard |
| Vertraging | Wacht een vaste tijd of tot een datum | Volgende |
| Nu open? | Kijkt of je nu open bent | Open, Gesloten |
| Wachten tot open | Wacht tot het volgende openingsuur | Volgende |
| Wachten tot gesloten | Wacht tot het volgende sluitingsuur | Volgende |
| Hoogstens één keer per periode | Houdt herhalingen tegen | Doorgaan, Al uitgevoerd |
| Record opzoeken | Haalt een record op met zijn id | Gevonden, Niet gevonden |
| Voor elk | Doet de stappen erna per item in een lijst | Voor elk, Klaar |
| Wachten tot | Wacht tot voorwaarden kloppen | Voldaan, Verlopen |
| Wachten op een gebeurtenis | Wacht tot er iets gebeurt in Tillor | Ontvangen, Verlopen |
| Goedkeuring vragen | Vraagt een collega om goed te keuren | Goedgekeurd, Afgewezen, Verlopen |
Als / anders
Splitst de flow in twee wegen op basis van de gegevens. Het is hetzelfde principe als het filter bij Alleen wanneer van de trigger, maar nu midden in de flow.
De stap heeft twee uitgangen: Ja (de voorwaarden kloppen) en Nee (ze kloppen niet).
- Voeg een Als / anders-stap toe
- Klik bij Voorwaarden op Voorwaarde toevoegen
- Kies het veld met de knop Variabele, of typ het pad zelf, bijvoorbeeld
invoice.paymentStatus - Kies de vergelijking (is, is niet, bevat, is groter dan, is kleiner dan, is een van, is leeg of is niet leeg) en vul de waarde in
- Verbind de uitgang Ja en eventueel Nee met een vervolgstap
Een Als / anders-stap heeft minstens één voorwaarde nodig. Anders meldt Tillor Voeg een voorwaarde toe. Bij meerdere voorwaarden kies je tussen Alle moeten kloppen en Minstens één moet kloppen. De vergelijkingen werken zoals beschreven bij Alleen wanneer.
Je hoeft niet beide uitgangen te verbinden. Leidt een uitgang nergens naartoe, dan eindigt de uitvoering daar. Een flow die alleen bij Ja iets doet, is dus prima.
Je kunt ook velden gebruiken van eerdere stappen. Na een API-verzoek kun je bijvoorbeeld kijken naar response.status of response.data.paymentStatus.
Schakel
Kies Schakel als je meer dan twee wegen nodig hebt. De stap kijkt naar de waarde van één veld en kiest de tak die daarbij hoort.
- Kies bij Veld het veld waar je naar wilt kijken, bijvoorbeeld
occupation.occupationType - Klik bij Takken op Tak toevoegen. Vul de Tak (de naam die op de uitgang komt te staan) en Gelijk aan (de waarde die het veld moet hebben) in
- Herhaal dit voor elke tak
- Verbind elke uitgang met een vervolgstap
Elke tak krijgt een eigen uitgang onder de stap. Daarnaast is er altijd een uitgang Standaard. Die wordt gebruikt als geen enkele tak past.
- Het veld moet precies overeenkomen met de waarde, inclusief hoofdletters
- Past meer dan één tak, dan wint de eerste in de lijst
- Een tak zonder waarde bij Gelijk aan telt niet mee
- Je kunt maximaal 8 takken instellen, plus Standaard
- Is het veld leeg of bestaat het niet, dan gaat de flow via Standaard
Waarden van keuzevelden staan in de notatie van Tillor. Een bezetting van het type huurcaravan heeft bijvoorbeeld de waarde RENTAL_CARAVAN, een betaalde factuur PAID.
De lijst bij Veld toont de velden van de gebeurtenis en van eerdere stappen. Velden uit het antwoord van een API-verzoek verschijnen pas in de lijst als Tillor een voorbeeld van dat antwoord kent. Zie Een API-antwoord gebruiken.
Vertraging
Met Vertraging laat je de flow wachten voor hij verdergaat. Dat gebruik je voor dingen als een week later nog eens kijken.
Bij Wachten kies je een van twee manieren.
Een vaste tijd
Kies Een vaste tijd en vul bij Duur een aantal en een eenheid in: seconden, minuten, uur, dagen of weken. Seconden zijn niet exact. De flow kan een paar seconden later verdergaan.
Een vertraging van 0 doet niets, daarom meldt Tillor Een vertraging van 0 doet niets.
Tot een datum
Kies Tot een datum als de wachttijd afhangt van een datum uit de gegevens, zoals de vervaldatum van een factuur of de einddatum van een reservering.
| Veld | Wat je invult |
|---|---|
| Datum | Een veld met een datum, bijvoorbeeld invoice.dueDate. De lijst toont alleen velden die een datum zijn |
| Ten opzichte van die datum | Ervoor of Erna |
| Verschuiving | Hoeveel tijd voor of na die datum, in minuten, uur, dagen of weken. Bij 0 gaat de flow precies op die datum verder |
Voorbeelden:
- Datum
invoice.dueDate, Erna, Verschuiving 1 dag: de flow gaat een dag na de vervaldatum verder - Datum
reservation.checkIn, Ervoor, Verschuiving 2 dagen: de flow gaat twee dagen voor aankomst verder
Ligt dat moment al in het verleden, of is de datum leeg, dan gaat de flow meteen verder.
Wat er tijdens het wachten gebeurt
- De uitvoering krijgt de status Wacht. Op het tabblad Uitvoeringen staat wanneer hij verdergaat (Gaat verder over …). Lange wachttijden, zoals weken, zijn geen probleem
- Na de vertraging leest Tillor de gegevens opnieuw, zodat de stappen erna de actuele toestand zien. Zie hieronder
- Pauzeer je de automatisering tijdens het wachten, dan stopt de uitvoering zodra de wachttijd voorbij is. Hij gaat niet verder en krijgt de status Geannuleerd. Zet je de automatisering aan voordat de wachttijd voorbij is, dan gaat de uitvoering gewoon verder
- Verwijder je de automatisering, dan stoppen de wachtende uitvoeringen
- Pas je de flow aan terwijl een uitvoering wacht, dan werkt die uitvoering af met de flow zoals hij was toen hij startte
Gegevens worden opnieuw gelezen
Een uitvoering onthoudt de gegevens van het moment van de gebeurtenis, maar leest de records die erbij horen opnieuw voordat hij verdergaat. Dat zijn het record van de gebeurtenis (bijvoorbeeld de factuur) en de records waar dat naar verwijst (bijvoorbeeld de klant).
Een voorbeeld: een automatisering stuurt een herinnering voor een factuur, wacht 7 dagen en controleert dan met Als / anders of invoice.paymentStatus niet PAID is. Is de factuur in die week betaald, dan ziet de voorwaarde de betaalde factuur en gaat de flow via Nee.
Er zijn twee uitzonderingen:
- Bestaat het record niet meer, bijvoorbeeld omdat een bezetting is verwijderd, dan houdt de uitvoering de kopie van het moment van de gebeurtenis
- Gegevens die een eerdere stap opleverde, zoals het antwoord van een API-verzoek, worden niet opnieuw opgehaald. Wil je zulke gegevens ververst na een vertraging, doe dan een nieuw API-verzoek
In een test wordt niets opnieuw gelezen
Een testuitvoering slaat vertragingen over en werkt met de voorbeeldgegevens die je zelf invult. Wat er na een echte vertraging gebeurt, zie je pas in een echte uitvoering.
Nu open?
Kijkt of je organisatie op dit moment open is en splitst de flow in Open en Gesloten. Er is niets in te stellen. Tillor gebruikt de uren onder Instellingen > Openingsuren, met seizoensperiodes, feestdagen en uitzonderingen. Zie Organisatie-instellingen.
Gebruik het bijvoorbeeld om buiten de openingsuren een andere tekst te sturen of een taak aan te maken. Wil je liever wachten tot je weer open bent, gebruik dan Wachten tot open. Wil je wachten tot je sluit, gebruik dan Wachten tot gesloten.
Wachten tot open
Laat de flow pauzeren tot het volgende openingsuur en gaat daarna verder. Je organisatie is al open? Dan gaat de flow meteen verder. Er is niets in te stellen.
- Het openingsuur komt uit Instellingen > Openingsuren, in de tijdzone van je organisatie
- Is er de komende maand geen enkel openingsuur, dan gaat de flow meteen verder in plaats van te blijven wachten
- Tijdens het wachten krijgt de uitvoering de status Wacht. Wat er daarbij gebeurt, staat bij Vertraging
Wachten tot gesloten
Laat de flow pauzeren tot het volgende sluitingsuur en gaat daarna verder. Je organisatie is al gesloten? Dan gaat de flow meteen verder. Er is niets in te stellen.
- Het sluitingsuur komt uit Instellingen > Openingsuren, in de tijdzone van je organisatie
- Blokken die op elkaar aansluiten, zoals 9:00–12:00 en 12:00–17:00, tellen als één stuk. De flow wacht tot het einde van dat stuk
- Tijdens het wachten krijgt de uitvoering de status Wacht. Wat er daarbij gebeurt, staat bij Vertraging
Hoogstens één keer per periode
Laat de flow alleen door als hij deze stap voor hetzelfde record binnen de periode nog niet passeerde. Zo stuur je een klant niet elke dag dezelfde herinnering.
| Veld | Wat je invult |
|---|---|
| Periode | Hoe lang eerdere uitvoeringen meetellen, in minuten, uur, dagen of weken. Standaard 1 dag |
| Per | Waarop je telt. Leeg betekent per record dat de flow startte, zoals de factuur of de reservering. Vul een variabele in, bijvoorbeeld {customer.id}, om per klant of per terrein te tellen |
De stap heeft twee uitgangen: Doorgaan als de flow er in de periode nog niet doorheen kwam, en Al uitgevoerd als dat wel zo was. Verbind Al uitgevoerd met een andere stap, of laat hem leeg zodat de uitvoering daar eindigt.
Let hierop:
- Alleen uitvoeringen van dezelfde automatisering tellen mee, en alleen als ze via Doorgaan door deze stap kwamen
- Start de flow zonder record, bijvoorbeeld bij Elke dag op een uur, vul dan zelf een variabele in bij Per. Zonder die waarde is elke uitvoering nieuw en houdt de stap niets tegen
- De uitvoering die nu loopt, telt zelf niet mee
Een voorbeeld: Periode 7 dagen en Per {invoice.customerId} laat per klant hoogstens één keer per week een herinnering door, ook als die klant meerdere vervallen facturen heeft.
Record opzoeken
Laadt een record op basis van zijn id, zodat de stappen erna de velden ervan kunnen gebruiken. Dat is handig als de gebeurtenis alleen een id meegeeft, zoals het bericht in een inboxgesprek.
| Veld | Wat je invult |
|---|---|
| Recordtype | Klant, Reservering, Bezetting, Factuur, Betaling, Terrein, Taak, Document, Toegangsmiddel, NFC-tag, Meter, Inboxgesprek of Inboxbericht. Standaard Inboxbericht |
| Id | Het id van het record, bijvoorbeeld {messageId}. Verplicht |
De stap heeft twee uitgangen: Gevonden en Niet gevonden. Bestaat het record niet of is het id leeg, dan gaat de flow via Niet gevonden.
Na Gevonden staan de velden van het record in variabelen die beginnen met found en dan het type: {foundCustomer.firstName}, {foundInvoice.displayId}, {foundReservation.checkIn}, {foundTerrain.name}, {foundInboxMessage.direction}. De andere typen heten foundOccupation, foundPayment, foundTask, foundAccessMethod, foundNfcTag, foundMeter en foundInboxThread. Ook de records waar het naar verwijst staan erbij, een niveau diep, zoals {foundReservation.customer.firstName}. Alles staat in de lijst achter de knop Variabele.
Een tweede opzoeking van hetzelfde type vervangt de eerste. Let op bij Taak: dat gebruikt dezelfde naam foundTask als Taak zoeken, en de laatste van de twee wint. Hetzelfde geldt voor Document en foundDocument van Document zoeken.
Variabelen mappen
Kopieert waarden naar nieuwe variabelenamen, zodat latere stappen één vorm kunnen gebruiken - handig als één flow start via Inkomende webhook ({body.…}) en via Factuur is vervallen ({invoice.…}).
| Veld | Wat je invult |
|---|---|
| Mappings | Rijen met Doelvariabele (bijv. invoice) en Bron (bijv. {foundInvoice} of {body.invoiceId}) |
De stap heeft één uitgang: Volgende. Is de bron precies één variabele tussen accolades, bijvoorbeeld {foundInvoice}, dan kopieert Tillor het hele record (object). Anders vult Tillor de bron in als tekst, zoals Factuur {foundInvoice.displayId} in meta.label.
Gemiddelde webhook-test: Inkomende webhook → Record opzoeken (Factuur, id {body.invoiceId}) → Variabelen mappen (invoice ← {foundInvoice}) → dezelfde voorwaarden en goedkeuring als bij de schedule-trigger.
Voor elk
Voert de stappen na Voor elk een keer uit voor elk item in een lijst, bijvoorbeeld voor elke openstaande factuur van een klant. De flow zelf gaat verder via Klaar.
| Veld | Wat je invult |
|---|---|
| Lijst | Toegangsmiddelen van een klant, NFC-tags van een klant, Openstaande facturen van een klant, Geboekte reserveringen van een klant, Bezettingen van een klant, Documenten van een klant (alleen actieve) of Meters van een terrein. Standaard Toegangsmiddelen van een klant |
| Van | De klant of het terrein waarvan je de lijst wilt, bijvoorbeeld {customer.id} of {occupation.terrainId}. Verplicht |
De stap heeft twee uitgangen met een eigen betekenis:
- Voor elk leidt naar de stappen die je per item wilt doen
- Klaar is hoe de flow zelf verdergaat
Zo werkt het:
- Elk item krijgt een eigen uitvoering, die de stappen na Voor elk doorloopt tot het einde van die tak. Je ziet ze op het tabblad Uitvoeringen, dat alleen de laatste 20 toont
- Het item staat in de variabele
item, bijvoorbeeld{item.id}. Variabelen van de gebeurtenis en van eerdere stappen blijven beschikbaar - De flow wacht niet tot de items klaar zijn. Meteen nadat ze gestart zijn, gaat hij verder via Klaar. Een uitkomst van een item kun je dus niet in de stappen na Klaar gebruiken
- Er worden hoogstens 100 items verwerkt, de oudste eerst. Staan er meer in de lijst, dan worden de overige niet verwerkt
- Is de lijst leeg of het veld Van leeg, dan start er niets en gaat de flow meteen verder via Klaar
- Openstaande facturen van een klant zijn geboekte facturen waar nog iets van openstaat. Geboekte reserveringen van een klant zijn reserveringen met de status Geboekt
Een voorbeeld: een factuur vervalt en je wilt voor elke openstaande factuur van die klant een betaallink maken. Kies Openstaande facturen van een klant, vul {invoice.customerId} in bij Van en zet achter Voor elk een stap Betaallink aanmaken met {item.id} als factuur.
Wachten tot
Controleert voorwaarden telkens opnieuw tot ze kloppen, of stopt na een tijd. Gebruik het als je niet weet wanneer iets gebeurt maar wel waarop je wacht, bijvoorbeeld tot een factuur betaald is.
| Veld | Wat je invult |
|---|---|
| Tot | Een of meer voorwaarden, op dezelfde manier als bij Als / anders |
| Controleren elke | Hoe vaak Tillor opnieuw kijkt, in minuten, uur, dagen of weken. Minstens 5 minuten. Standaard 1 uur |
| Stoppen met wachten na | Hoe lang de stap maximaal wacht. Standaard 7 dagen |
De stap heeft twee uitgangen: Voldaan (de voorwaarden kloppen) en Verlopen (de wachttijd is voorbij zonder dat ze klopten).
Let hierop:
- De eerste controle gebeurt meteen. Kloppen de voorwaarden al, dan gaat de flow direct verder via Voldaan. Heb je geen voorwaarde ingevuld, dan klopt het altijd
- Bij elke controle leest Tillor de records van de gebeurtenis opnieuw, zoals bij een vertraging. Een voorwaarde als
invoice.paymentStatusisPAIDziet dus de betaling zodra ze er is - Een interval onder de 5 minuten wordt 5 minuten
- Tijdens het wachten krijgt de uitvoering de status Wacht. Voor pauzeren en wijzigen van de flow geldt hetzelfde als bij Vertraging
Wachten op een gebeurtenis
Laat de flow pauzeren tot er iets gebeurt in Tillor, bijvoorbeeld dat de factuur betaald is.
| Veld | Wat je invult |
|---|---|
| Gebeurtenis | Waar je op wacht. Dezelfde lijst als bij de trigger. Verplicht |
| Alleen voor hetzelfde record | Gaat alleen verder als de gebeurtenis over het record gaat dat de flow startte. Standaard aan |
| Stoppen met wachten na | Hoe lang de stap maximaal wacht. Standaard 7 dagen |
De stap heeft twee uitgangen: Ontvangen (de gebeurtenis kwam) en Verlopen (de wachttijd is voorbij zonder gebeurtenis).
Let hierop:
- Met Alleen voor hetzelfde record aan telt bijvoorbeeld alleen de betaling van de factuur waarmee de flow startte. Zet je het uit, dan laat elke gebeurtenis van dat type de flow verdergaan
- Start de flow zonder record, bijvoorbeeld bij Elke dag op een uur, dan telt elke gebeurtenis van dat type
- Een gebeurtenis die een stap van een automatisering zelf veroorzaakt, telt ook mee. Wachtende flows gaan dus ook door op werk van Workflow
- Na Ontvangen staan de gegevens van de gebeurtenis die je afwachtte in de variabelen, zonder de collega die haar veroorzaakte. Wacht je op
invoice:paid, dan geeft{invoice.paymentStatus}daarna de nieuwe stand - Tijdens het wachten krijgt de uitvoering de status Wacht. Voor pauzeren en wijzigen van de flow geldt hetzelfde als bij Vertraging
Goedkeuring vragen
Maakt een taak aan met twee knoppen, Goedkeuren en Afwijzen, en wacht op de beslissing. Zo bouw je een moment in waarop een mens meekijkt, bijvoorbeeld voordat de flow een klant blokkeert of een factuur boekt.
| Veld | Wat je invult |
|---|---|
| Taaktitel | De titel van de taak. Verplicht |
| Beschrijving | Zeg je collega wat er gecontroleerd moet worden |
| Toewijzen aan | Kies een of meer collega's |
| Stoppen met wachten na | Hoe lang de stap maximaal wacht. Standaard 3 dagen |
De stap heeft drie uitgangen:
| Uitgang | Wanneer |
|---|---|
| Goedgekeurd | Iemand klikte op Goedkeuren |
| Afgewezen | Iemand klikte op Afwijzen, of de taak werd verwijderd |
| Verlopen | De wachttijd is voorbij zonder beslissing |
Let hierop:
- De knoppen staan op de taakkaart, in de takenlijst en in de taak zelf. Zo'n taak heeft geen vinkje: je kunt ze niet gewoon voltooien, alleen goedkeuren of afwijzen. Na de beslissing staat de taak op Voltooid met het label Goedgekeurd of Afgewezen
- Beslissen kan wie aan de taak is toegewezen, en beheerders
- De taak krijgt prioriteit Hoog en wordt gekoppeld aan de records van de gebeurtenis, zoals de klant of de factuur. Ze staat op naam van Workflow
- Kies je niemand bij Toewijzen aan, dan kan alleen een beheerder beslissen. Wijs dus iemand toe
- Na Verlopen blijft de taak bestaan
- Latere stappen kunnen
{approvalTask.id},{approval.decision}(approvedofrejected) en{approval.decidedBy.name}gebruiken - Tijdens het wachten krijgt de uitvoering de status Wacht. Voor pauzeren en wijzigen van de flow geldt hetzelfde als bij Vertraging
In een test kies je zelf de uitgang
Een testuitvoering kan niet weten of je open bent, wat een collega beslist en of een record bestaat. Onder Wat gebeurt er bij deze stappen? kies je daarom zelf de uitgang van Nu open?, Hoogstens één keer per periode, Record opzoeken, Voor elk, Wachten tot, Wachten op een gebeurtenis en Goedkeuring vragen. Bij Voor elk loopt de test door de uitgang die je kiest, Voor elk of Klaar, niet door allebei.