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

text
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.