Core concepts
A handful of nouns carry the whole model. Read them top to bottom — each builds on the one before it.
Integration
The connector namespace
A top-level namespace for a product or API you connect to — stripe, acmefx. It owns the base configuration and secrets for that vendor.
Integrations are platform-owned and made available to a tenant by explicit assignment.
Junction
The reusable unit
A named, versioned workflow that does one job against an integration — say acmefx.quote. A junction is the unit you author, version, and call. Junctions
can call other junctions, so larger flows compose from smaller, typed pieces.
JunctionVersion
An immutable snapshot
Every change to a junction produces a new version. Once a version leaves draft
it is frozen, so a published version can never shift under a caller. To
edit a frozen version you open a fresh draft, which clones the latest triggers and steps.
Trigger
The entry point
How a junction is invoked, plus its typed input and output contracts and its ordered step
list. A trigger has a kind: http
(a synchronous call), inbound
(a webhook), scheduled, signal, or manual.
Step
One unit of work
An individually testable action inside a trigger. Steps run in order, and each step's
output is addressable by later steps as {{steps.<name>.output}}.
Built-in step types cover authentication, shaping a value, making an HTTP call, branching
on a condition, and calling another junction.
Principal
The identity & tenancy unit
The single entity for who is calling and what they can configure. Principals form a
hierarchy of three tiers — admin (platform), org (your
customer), and an optional sub_account. Each principal has its own API keys,
and its configuration and secrets cascade down the hierarchy.
Lifecycle states
Every junction version moves through the same states. At most one version is
published
per junction at any time.
draft
Editable. Triggers and steps can change freely.
testing
Frozen and callable from staging — no production traffic.
published
Live in production. Exactly one per junction.
retired
Audit-only. Terminal — auto-set when a newer version publishes.
Template namespaces
Step configuration is templated with {{…}}
references.
Five namespaces are available at runtime:
{{input}}
|
The trigger's validated input payload. |
{{config}}
|
Merged configuration and secrets for the calling principal. |
{{junction}}
|
Metadata about the junction being run. |
{{system}}
|
Runtime values such as the current timestamp. |
{{steps.<name>.output}}
|
The output of an earlier step. |
Next: see how a run works end to end.