Checking your session…

Automations

Beyond conversations, the platform can run automations (workflows) — multi-step processes like "fetch listings, score them, email the matches" that run on a schedule or on demand. Automation definitions are platform-authored today (there is no self-serve definition-authoring endpoint); this chapter exists so the shapes you see in run output make sense, and so operator tooling is documented.

Run history for your apps' automations is visible in the dashboard (permission view_workflow_runs).

A definition's schedule is an ordered list of named steps, each with a task type. Established task types include httpRequest, sendEmail, sendSMS, workflow_bedrock (LLM step), data-shaping tasks (mapData, filterData, aggregateData, …) and control tasks (conditionalBranch, parallel, iterateArray, wait, invokeWorkflow).

compute runs a curated deterministic operation from a platform-owned registry — pure functions with no ambient authority, used where a pipeline needs exact, auditable logic rather than an LLM step (parsing, geometric evaluation, dedupe, delivery routing). Step shape:

args values support {{workflowInput.*}} and {{$.step.taskResult.*}} references, resolved against the run's state. Unknown op names fail the step loudly with the known-op list. Compute steps bill at the standard integration step rate (default 5 credits per step; automation step rates are operator-adjustable, so treat the numbers quoted here as defaults rather than fixed prices).

JSON
{ "name": "geo", "task": "compute",
  "input": { "op": "geoEvaluate", "args": { "listings": "{{$.parse.taskResult.listings}}" } } }

One registry op, taughtStep, runs an operator-taught calculation stored on an app — small pure functions (for example a custom result-scoring rule) taught in plain language through the platform's teaching assistant, which drafts the code.

The trust model is deliberate:

  • A taught step always lands as a draft and a draft never executes — pipelines treat it as absent.
  • Approval is an explicit act: in the dashboard (Settings → Skills → Taught calculations, where the exact code is displayed for review) or via the teaching assistant's confirm-gated approve step. Re-teaching an approved step demotes it back to draft.
  • Code is validated against a strict deny-list (no imports, no process/network/filesystem access, no async, no prototype access) both when drafted and again at execution — a step that fails validation will not run regardless of how it entered the configuration.
  • Execution is fully isolated: a locked-down context exposing only Math and JSON, with a copied input, a hard 1-second timeout and a bounded output size.
  • In a pipeline, taughtStep fails open: if the referenced step is missing, unapproved or errors, the step's input passes through untouched and the run continues. A broken taught calculation degrades a pipeline; it never breaks one.

Taught steps live in the app's configuration (visible under voiceChatTools.computeSteps in GET /apps/{appId} responses) with name, description, code, status (draft/approved) and approval timestamps.