Module · Workflows

Visual when you want to see it.
Conversational when you want to ship it.

Workflows is a programmable execution graph — not a no-code automation editor. 228+ blocks. Type-aware variable references. Sub-agents in their own sandboxes. Triggers from 50+ services.

G gmail · trigger
GH github · trigger
J jira · trigger
A classifier-agent
T tables.upsert
K knowledge.index
S slack.notify
228 blocks

Every integration is a block

Typed inputs and outputs. Conditional sub-blocks. Basic / advanced modes. Extensible registry — add a new one.

50+ triggers

Inbound, not just outbound

Webhooks and polling for Gmail, GitHub, Calendly, Cal.com, Fathom, Gong, Sheets — workflows start when reality changes.

Type-aware vars

<Block.output> survives

References resolve at execution. Coercions live in tools.config.params — not tools.config.tool.

Block anatomy

Each block is a real, declarative object.

Conditional visibility. Dependency clearing. Per-mode UI. Hosted-key OAuth. The block authors don't reinvent the form layer for every new tool.

Browse the registry
blocks/blocks/linear.ts
export const linearBlock = {
  type: "linear",
  name: "Linear",
  category: "engineering",
  icon: LinearIcon,
  subBlocks: [
    { id: "action", type: "select", options: ["create", "update"] },
    { id: "team", type: "team-picker",
      condition: { action: "create" } },
  ],
  tools: ["linear/issues"],
  inputs: { title: "string", body: "string" },
  outputs: { id: "string", url: "string" },
};

Wire 228+ integrations into agent logic.