Steps and connections
Triggers
Kind (trigger.kind) | Fields |
|---|---|
node_event — When something happens | workspaces (list), node_types (list), event_kinds (Created, Updated, Deleted), paths (globs; ** crosses folders), property_filters (a property → value or { $eq, $ne, $in, $exists, $gt, $lt } map, matched before a run exists), ignore_automation_writes (boolean). |
schedule — Before or after a date | anchor (the subject set: self, parent or a reference over a workspace, path glob and type filter), the date property, offset_days, window_hours, timezone. |
cron — On a repeating schedule | cron (five fields), timezone. |
http — When something calls this URL | None. The address is minted on first compile and shown in the editor; the request body is the run’s input and its node_path, when present, becomes the subject. |
manual — Only when I run it | None. Run now asks for a subject. |
A condition on the automation (REL) runs after a run has started; prefer the trigger’s own filters.
Steps
Every step has uuid (its id), label, and optionally condition (a REL guard evaluated before the step runs) and on_error.
| Element type | Fields |
|---|---|
studio:StepFunction — Run a function | function_ref (envelope), arguments (object; templates allowed in any string). |
studio:StepAgent — Ask an agent | agent (envelope), instruction (template), output_schema (JSON schema object), output_key; decide + min_confidence; tools + max_iterations; compete + competitors (list of envelopes) + referee (envelope) + referee_instruction + max_rounds. |
studio:StepHumanTask — Ask a person | assignee_mode (specific, or a resolver), assignee (envelope into raisin:access_control), task_type (action, review, input, approval), prompt (template), options (list of { label, value }), due_in_hours. |
studio:StepChat — Talk it through | agent, participant_mode, participant, system_prompt (template), max_turns, allow_ai_end, output_schema. |
studio:StepWebhook — Call a URL | url, method, headers, body (object or template). |
studio:StepWait — Wait | duration_seconds or until (template resolving to a date). |
References are envelopes: { raisin:ref: <path or id>, raisin:workspace: <workspace> }.
Connections
kind | Fields | Followed when |
|---|---|---|
next | label | Always. Several out of one step run in parallel. |
condition | condition (REL) or label (when the source decides) | The condition is true, or the agent chose this label. |
error | The step failed. Compiled with no hidden retries in front of it. | |
timeout | The step’s deadline passed. |
Every connection has id, source and target (step ids).
Conditions
Conditions are REL expressions over the run’s variables:
steps.review.action == 'send'
steps.classify.structured_output.priority == 'urgent' && steps.read.awaiting_reply
visits.draft < 3
steps.__subject.subject.status != 'archived'
Operators: ==, !=, <, <=, >, >=, &&, ||, !, string and number literals, property access with .. A property that does not exist is null; compare against it rather than calling methods on it.
Shapes
| You want | Draw |
|---|---|
| A branch | Several condition connections out of one step; a next connection as the fallback. |
| Parallel work | Several next connections out of one step. |
| A join | Several connections into one step. It runs once every incoming branch has arrived. |
| A loop | A condition connection back to an earlier step, bounded with visits.<id> < N. |
| An error path | An error connection; add a timeout one beside it for a step that may never answer. |
| A retry with backoff | An error connection into a Wait step, then a connection back, bounded by visits. |
What the health check refuses or warns about
| Code | Meaning |
|---|---|
decide_no_branches (error) | A step that chooses has no condition connections to choose from. |
decide_one_branch (warning) | Only one branch — the agent has nothing to decide. |
guard_on_failure_edge (error) | A condition on an error or timeout connection; failure paths are unconditional. |
error_edge_without_timeout (warning) | A function step recovers from failure but not from never answering. |
timeout_edge_no_deadline (warning) | A person step has a timeout path but no deadline. |
chat_no_participant (error) | A conversation with nobody to talk to. |
compete_too_few, compete_no_referee (error) | A competition needs two competitors and a referee. |
| unbounded cycle (warning) | A loop with no condition connection on it. |
Errors stop compilation; warnings compile.
Pilot documentation. Studio is in a partner pilot. Screens and YAML shown here are current as of the version noted on each page; tell your Maravilla contact when something does not match what you see.