Automation that starts where the data changes
A flow triggers on a posted document, an inbound mail or a schedule, then reads, decides, writes back and tells someone. Every run is recorded node by node.
Open a flow
The reminder nobody has to remember
Cron in a real timezone, open items straight out of the ledger, and a draft waiting in the account manager's own Outlook, not a mail the system sent on their behalf.
The order that arrives as an email
A flow can own an address. The message, its sender and its attachments become the run's input, and a reply node answers on the same thread, so the customer never learns there was a robot.
The step that waits for a person
A flow is allowed to stop. When the next move belongs to someone, the run holds at that node with the input it received still readable, and carries on from the answer, not from the beginning.
The run that stopped at the node that failed
No partial success reported as success. A failed run stops exactly where it broke with that node's input still there to read, and a second trigger arriving mid-run is retried rather than dropped.
Overdue reminder · weekly
PUBLISHED · RAN 07:00 · 2.4 s
Schedule
Mon 07:00 · Europe/Copenhagen
Read Business Central
Cust. Ledger Entry · Open = true
For each customer
group by Customer No.
Branch
balance > credit limit
AI structured
tone + language from last reply
Draft in Outlook
contact on the customer card
Notify in the portal
account manager · total
Run log
RUN 4812
- 07:00:00flowTrigger · schedule · Mon 07:00 Europe/Copenhagen
- 07:00:00noderead · Cust. Ledger Entry (21) · Open = true · Due Date < today
- 07:00:01tool412 rows · 37 customers
- 07:00:01nodefor each · 37 iterations
- 07:00:02nodebranch · 9 over credit limit · 28 within
- 07:00:02nodeai structured · {tone, language} per customer
- 07:00:04nodeoutlook__create_draft · 9 drafts, unsent
- 07:00:04flowRun complete · 11 nodes · 2.4 s
Why this is not a scheduler
- It starts on the event
Business Central pushes, we do not poll
The signed extension installed in your tenant pushes events as they happen (a document posted, a record changed), so a flow starts at the moment the data moved, not at the next sweep.
- It is a real graph
Branches, loops, break and continue
Not a chain of if-cards. The graph is validated when it is saved: an unreachable node, a missing connection, a type that cannot flow into the next step. A flow that would not run cannot be published.
- Every run is a recording
What each node received and returned
A failure is read, not reproduced. Dry-run walks the whole graph and reports what each node would do before anything is written anywhere.
Name the thing someone does every Monday
Most flows worth building are already written down somewhere as a procedure. Bring that, and we will wire it while you watch.
Or write to us at hello@uni4c.ai