CLOUDMORROW

Resources / User handbook

Roles, approvals and flows

Who is responsible for what, a yes or a no asked of them, and the procedures you build out of quills' actions.

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.