A logic block is an array of steps. Each step has a type and a config. Steps run in order and write named outputs that later steps read.
Entity operations
- get_entity — fetch a single record by key.
- list_entities — query records with filters.
- create_entity — insert a record.
- update_entity — update a record.
- delete_entity — delete a record.
Control flow & data
- condition — branch on a boolean expression.
- loop — iterate over a list, running nested steps per item.
- set_variable — assign a computed value to a named variable.
- formula — compute derived values with built-in functions.
- transform — map and reshape step outputs.
External calls
- webhook — call an external HTTPS endpoint (a domain allowlist is enforced).
- connector — call a platform-defined connector action using the tenant's stored credentials.
AI steps
- ai_call — a single AI provider call: classify, extract, summarize, generate, decide, translate — including comparing across options.
- run_crew — delegate to a deployed multi-agent crew.
Example — a decision gate
s1: ai_call intent=decide outputFormat=boolean
contextFields=[{label: content, value: {{input.text}}}]
instructions="Does this contain any PII?"
s2: condition field={{s1.decision}} operator=== value=true
then: [s3_redact] else: [s4_pass] Mix freely
Steps compose — a loop can contain a connector call; a condition can gate a create_entity; a run_crew step can hand off to a crew that itself triggers other logic blocks. Keep each step doing one thing.
AI Call
ai_call in depth — intent, context, output, and config.
Formulas
The full built-in function library, with real syntax.
Variable types
Scalar, entity, and collection — how create_variable/set_variable work.
The connector step
Configuring a connector call inside a logic block.
Variables & templating
How {{...}} references flow between steps.