Roles, approvals and flows: how a procedure is said
A company has operating procedures: time off is asked for and the team lead says yes; an expense over a limit goes past whoever is responsible for expenses. A household has them too, smaller. Three things say them, each small, each useful alone:
- A role names who is responsible — Team lead, Expense Responsible, Product owner — without naming the person. It gives no access to any data; circles do that. A role is held everywhere, or within one circle, so Sales and Warehouse each have a Team lead of their own. A Quill that expects a role says so when it is installed, and the role appears, empty, for an administrator to fill.
- An approval is a yes or a no asked of whoever holds a role, about a record. Every one on the server, whichever Quill or flow asked it, is in one place, Waiting for you, and is answered once, with a word. The asker sees it under Asked by you until then and may withdraw it; the bell tells both sides.
- A flow is a procedure you build yourself: one trigger — a record made or changed, a Quill's action pressed, a schedule, or by hand — and a list of steps: press a Quill's action, ask a role, change or make a record, tell somebody, wait, stop. A step may run only on one answer or the other, which is how a straight list branches. A flow runs as you, over what you may reach, and each run says how far it got and why it stopped.
In the web app
Me → Administration → Roles: the roles, who holds each, and the Quill that asked for one. Open a role to give it to somebody — everywhere, or in one circle — and take it off again. Me → Waiting for you is every question asked of a role you hold, with Approve and Decline, and what you asked that is still open. Me → Flows: New flow, a name, the trigger, then Add a step for each step, dragged or moved into order; Run it now starts it by hand, and its runs are listed under it.
In the terminal app
Not yet: the terminal app has the records (a flow is a flow record) and
nothing drawn for them.
On the command line
cm role list
cm role add "Team lead"
cm role give team_lead alice --circle Sales
cm approvals # what waits for you, and what you asked
cm approve r_… --note "Enjoy"
cm decline r_…
cm flow list
cm flow run <flow> --on leave <id>
cm flow runs <flow>
Anything you type into a step may hold {{trigger.record.fields.what}},
{{approval.status}} or {{steps.<id>.<key>}} — what the run has
gathered so far — and an action a Quill declares may hand something back
to the flow that pressed it. The whole of it, for people who build Quills
and for the curious, is FLOWS.md.
From docs/MANUAL.md in the Cloudmorrow repository. Something wrong? A pull request there fixes it here.