Routines
A routine is a task a specialist taught once, that Vocion runs for every row it is given. Every routine has a person, its expert, who answers its exceptions.
The specialist records the task in Slate on the real system and says why each step happens. Vocion turns the recording into a routine. Its expert answers what one example cannot settle and approves it. From then on Vocion runs it for every row of a list, many at once, each in a browser of its own. A run holds before anything the approved routine does not allow, asks the expert when a rule says so, and reads back every change it made.
Turn it on
# workspace.yaml
plugins: [routines]
Or Apps → Routines in the Marketplace. Routines run as browser runs, so the browser has to be set up. To teach from a recording, connect Slate on Connections. The app opens at /dashboard/routines.
From recording to report
| Step | What happens |
|---|---|
| Teach | Share a Slate link in chat ("Teach a routine from this recording"), or press Teach a routine on /dashboard/routines. That opens the site in a new tab; record it with Slate, and Vocion picks up the finished recording on its own. |
| Draft | The Routine analyst reads the transcript, what was on screen and the frames that matter. It drafts the steps, each linked to its moment in the recording, the rules, when to ask the expert, what is never allowed, the inputs, what to read back, and how to check the whole list. It ends with questions for the expert. |
| Approve | The expert answers the questions and approves the version. Runs are pinned to a version. A later correction is a new draft version. The live one is never edited. |
| Run | Hand it a list. One browser run per row, up to 10 at once per workspace, the rest queued. Inputs every row shares, such as the sign-in, are given once. Remember these for this routine on the Run it form keeps them on the routine, sealed, so a later batch, even one asked for in chat, needs no password. |
| Escalate | A run that meets an escalation point stops and asks the expert one question, with the page as evidence and the recommended answer first. It is docked in the conversation the batch came from, and listed on Needs you. The answer goes back to the run, which carries on. |
| Receipt | Each change is read back after it is saved and checked against the row. A run that stopped after a change it cannot confirm is an unknown outcome. It is never replayed, and the expert checks it by hand. |
| Reconcile | When the routine adds records to a system, one read-only run lists that system's records afterwards. Records that are not on the list become a finding: deactivate them, delete them, or leave them. The expert's answer runs as its own batch, and only that change is allowed. |
| Report | Results verified by read-back, the escalations and how each was answered, time against doing it by hand (from the recording), run cost and the findings, filed as an artifact. |
Trust
Each routine has its own trust, set on the routine page. The browser engine enforces it, so a page cannot talk the model past it.
| Trust | What it means |
|---|---|
| Drafted | Every click that would change something waits for a person. |
| Approved | The changes the routine names, such as Add user or Enroll, run without a person. Anything else still waits. |
| Autonomous | Earned after 20 verified runs of the version. |
At Approved, a delete, a deactivate or a send still waits, unless the expert's answer to a finding approved exactly that change.
The queue
/dashboard/routines/batches/<id> shows a batch: a tile for each run with its live picture, the step it is on and why, and what it is waiting on, with the answers as buttons. A finished tile shows its receipt. A batch started from chat opens in the pane beside it, with a chip under the answer that says where it stands ("17 of 20 done · 2 escalated").
What it guarantees
- Nothing is done twice. Each row is keyed by the routine's key inputs, such as an email. A row the routine already did is skipped, with where it was done.
- Every row has its own browser. Rows share no cookies or storage, and the browser closes when the run ends.
- Restarts are pauses. A routine run is a browser run, so it picks up from its checkpoint after a deploy. An answer given meanwhile is kept for it.
- Passwords stay sealed. A batch's password, or the sign-in a routine remembers, is sealed under the workspace's key, reaches each run as
{{password}}, and is never shown to the model. The chat tools know which inputs are saved and never ask for a saved password.
In a workflow
Each version comes with a workflow.yaml a workspace can keep. A workflow step with action: routine.run and input: {routine, rows, shared} starts a batch.
Try it
On /dashboard/routines, Try the practice routine adds "Add a user and enroll them (practice)", taught and approved on a practice training console with made-up people. Run it for the practice roster runs it for 20 people. Two of them escalate, the session expires once along the way, and the check afterwards finds three users who are not on the roster.
Settings
| Variable | Default | Purpose |
|---|---|---|
VOCION_ROUTINE_CONCURRENCY | 10 | Routine runs at once per workspace |
VOCION_SLATE_TOKEN | — | A Slate token for local demos, used when neither the workspace nor the person has connected Slate |
Next
- The full guide in vocion-core, with the tools and the code.
- Browser runs: what each row runs on.
- Asks and approvals: how a decision reaches a person.