Skip to main content
A workflow in Frayme is a directed graph that turns events into decisions. Nodes are the building blocks; edges define the order and the conditional routing.

What lives at the top of a workflow

Each workflow declares:
FieldPurpose
idStable identifier.
nameHuman label shown in the workflow list.
descriptionOne-paragraph product summary.
statusdraft · active · archived
versionMonotonic integer — bumped on every save.
createdBy / createdAt / updatedAtAuthorship + edit history.
parametersTop-level tunables shared across nodes (thresholds, callback URLs, feature flags).
nodesThe list of nodes (see node reference).
edgesDirected connections — source, target, optional sourceHandle, optional label.

Node taxonomy

Flow control

input, output, split, decisionTable, assignment, condition

Computation

rule, scorecard, code, ai

Integration

dataSource, customApi

Human + outcome

manualReview, action

Variables and templating

Every node writes outputs to the run context. Downstream nodes read them via {{path.to.variable}} interpolation.
{{input.declared_country}}                ← workflow input
{{sumsub_identity.review_answer}}         ← upstream dataSource output
{{ai_risk_synthesis.risk_band}}           ← upstream AI output
{{workflow_run_id}}                       ← system-injected
Full reference in Variables & templating.

Parameters

Top-level parameters are the tunable surface — what compliance can change without touching the graph.
[
  { "name": "max_address_length", "type": "integer", "value": 100 },
  {
    "name": "false_positive_confidence_threshold",
    "type": "integer",
    "value": 85,
  },
  {
    "name": "notification_callback",
    "type": "string",
    "value": "https://api.example.com/webhook",
  },
]
Parameters are referenced like variables ({{params.max_address_length}}) and are version-controlled together with the graph.

Runs and history

Every execution writes to the workflow’s run history with per-node input, output and elapsed time. The Workflow Run Inspector replays this for any run.

Editing safely

1

Branch the graph

Use the Workflow Editor’s “Duplicate as draft” to fork a workflow into a draft you can edit freely.
2

Test with fixtures

Pin a known-good input from a recent run. Click “Test workflow” — every node executes against the fixture without writing decisions.
3

Promote

When the draft passes, flip status: active and the engine cuts over on the next event. The old version stays addressable via version for replay.