Event-driven workflows.
Built for production.

Design AI-assisted automations as visual graphs. Trigger them with events, webhooks, or schedules. Run them on infrastructure you own.

workflows / order-routing v.42 · snapshot 7f3c
Live · 12 runs/min Run Deploy
Trigger
Webhook
POST /hooks/orders
Filter
High-value
amount > $250
AI Agent
Classify intent
claude-3.5 · 4 tools
Switch
Route by tag
3 branches
Slack
Notify #ops
channel · C03Q1
SendGrid
Email buyer
tpl_purchase_v3
Sheets
Log row
orders!A:F
 1,284 successful  3 in DLQ p95 · 412ms
01 · The problem What teams settle for today

Existing tools force a trade-off. SaaS automation is fast but locked-in and fragile. In-house orchestration is reliable but slow to build.

The platform engineers we built this for were burned by Zapier rate limits, brittle Lambda chains they hand-wrote, and AI step patterns that read like afterthoughts. Quantum Workflows is the answer to all three.

Vendor lock-in

SaaS automation that owns your data, your keys, and your rate limits.

Missing AI primitives

Legacy engines that bolt AI on as a "Webhook to OpenAI" step. Not a node, not a contract.

No version control, no audit

Mutating live flows from a UI with no immutable snapshot and no execution history.

02 · What it is Three pillars, not thirty

A visual graph editor on top of a serious runtime.

01 Visual graph editor

Compose workflows as DAGs.

34 node types across triggers, control flow, transformers, actions, and AI — drag, wire, and version. Every change is an immutable snapshot.

34node types
7categories
snapshot history
02 AI-native execution

AI as a first-class node.

AI Agent + MCP Client nodes with Anthropic, OpenAI, Gemini. pgvector RAG. Response caching. Per-execution cost ledger. Not a "call this webhook" hack.

3providers · A · O · G
pgvectornative RAG
$ledgercost per run
03 Production-grade runtime

Built to run, not to demo.

RabbitMQ-backed distributed execution. Step memoization. Dead-letter queues. Immutable graph snapshots. Full execution history. SSE status streaming.

RabbitMQ3.13 · DLQ
p95< 500ms
60sgraceful shutdown
03 · Node library 34 nodes · 7 categories

Every node is a contract. Typed inputs, typed outputs, versioned schemas.

Hover any node for a one-line description. Need something else? The Code node is sandboxed JS, the HTTP node hits anything you can reach, and the MCP Client picks up any MCP server.

Triggers
3 nodes
3

How runs start: domain events, schedules, or inbound webhooks.

Event
Domain event by name + topic
Cron
Schedule expressions · UTC + TZ
Webhook
Inbound HTTP · HMAC verify
Control flow
8 nodes
8

Wire conditional paths, splits, joins, sequences, and occurrence rules.

Filter
Boolean expression gate
Switch
Multi-branch routing
Fork
Parallel sub-paths
Merge
Wait + combine inputs
Join
Synchronise on label
Sequence
Ordered serial steps
Occurrence
Nth-time within window
Interval
Sliding-window rate guard
Transformers
4 nodes
4

Shape data between steps without hand-rolling glue functions.

Data Mapper
Declarative field mapping
Augment
Merge enrichment lookups
Lookup
Key/value or table fetch
Code
Sandboxed JS · 1s CPU cap
Patterns
4 nodes
4

Higher-order patterns: loops, state aggregation, change detection.

Loop
For-each · batch-aware
State Aggregator
Rolling reductions
Change Detection
Diff vs last snapshot
Collection
Group · partition · window
Actions
8 nodes
8

First-class integrations — and HTTP for everything else.

HTTP Request
Auth · retry · timeouts
SendGrid
Transactional email
Resend
Transactional email
Twilio
SMS · WhatsApp
Slack
Channels · DMs · blocks
Google Drive
Files · permissions
Google Sheets
Append · update · read
Google Analytics
Server events · UA + GA4
Workflow
5 nodes
5

Compose, pause, throttle, and persist across runs.

Sub-workflow
Call another workflow
Request Callback
Pause · wait for resume
Delay
Sleep · timer · backoff
Quota
Per-tenant rate ceiling
Graph State
1 GB persistent KV
Advanced · AI
2 nodes
2

Reasoning steps with provider choice, tool calling, and RAG.

AI Agent
Multi-provider · tool calling · RAG
MCP Client
Bring any MCP tool surface
04 · AI-native, with receipts The AI Agent node, specifically

AI is a node. Not a glowing brain.

The AI Agent is a typed node with a tool registry, a retrieval surface, and a streaming trace. It plays by the same execution and observability rules as every other node.

01
Multi-provider
Anthropic · OpenAI · Gemini — switch at the node level
02
Tool calling
Bind any workflow node as a tool the model can invoke
03
RAG · pgvector
Knowledge Bases backed by pgvector, namespaced per workspace
04
Document parser
PDF · DOCX · PPTX sidecar — ingested before retrieval
05
Response caching
Deterministic prompts memoise · cache HIT shows in the trace
06
Per-execution cost ledger
Tokens, dollars, and provider, attached to every run
Live trace · agent_run #c8a91
stream $0.0042 spent
+0.00s
agent.invokeinvoke
model · claude-sonnet-4 · stream
+0.12s
rag.knowledge_base.searchtool
pgvector · top_k 6 · namespace=playbooks
+0.38s
http.get(/inventory/sku)tool
cache HIT · ttl 14m
+0.41s
sheets.append(orders)tool
row=2148
+0.93s
reasoningthought
decided to escalate · confidence 0.82
+1.08s
agent.returnfinal
intent=escalate · 1.42s · 4,182 toks · $0.0042
> intent=escalate · routing to ops...
claude-sonnet-4 3 tool calls cache HIT × 1 1.42s · 4,182 toks
05 · Reliability Versioned · Observable · Resilient

The three things you check before any tool runs in production.

Versioned. Immutable graph snapshots

Every save mints a new snapshot. Active runs keep their snapshot for the entire execution — you can edit a flow without breaking the runs already in flight.

Snapshot id
sha256 · content-addressed
Schema
graph_state · 1 GB · per workflow
Rollback
point-in-time · single click
Observable. Full execution history

Every node-level input, output, and decision is recorded. SSE status streams to the editor live. Audit logs feed your warehouse — no scraping required.

Status
SSE · 200ms tick
Retention
90 d standard · custom on self-host
Egress
Postgres · CDC · webhook
Resilient. DLQ · memoization · idempotency

RabbitMQ dead-letter queue catches every failed message. Step memoization replays runs without re-billing AI. Idempotency locks prevent double-fires.

DLQ
RabbitMQ 3.13 · ack timeout 30s
Memoize
per-step key · 24h Redis TTL
Shutdown
graceful · 60s drain window
06 · Integrations First-class · plus the rest of the internet

First-class for the obvious ones. HTTP and Code for the rest.

We won't pretend to have 600 boutique integrations. We implement the ones our customers actually run on, and the HTTP / Code / MCP triad covers the long tail.

Slack
channels · DMs
SendGrid
email
Resend
email
Twilio
SMS · WhatsApp
Google Drive
files
Google Sheets
rows · cells
Google Analytics
server events
Anthropic
claude
OpenAI
gpt · o-series
Gemini
gemini
MCP
any tool surface
+ HTTP · Code
everything else
✓ OAuth flows handled in-product ✓ Secrets stored in AWS Secrets Manager ✓ Per-tenant credential scopes
07 · How it works Architecture at a glance

One ingestion API. One queue. Workers that scale horizontally and shut down gracefully.

The ingestion API stamps an event, drops it on RabbitMQ, returns an id. The execution engine fans work out to workers that hydrate state from Postgres and Redis. The whole loop is observable, and every step is memoized.

Client App SDK TypeScript · Zod Ingestion API event · webhook · cron RabbitMQ topic · DLQ Execution Engine graph · snapshots Workers horizontal · 60s drain DLQ replay-safe PostgreSQL 15 + pgvector Redis Stack memoize · TTL 24h Observability SSE · audit · cost ledger
event flow state hydrate failure → DLQ node_22 · postgres_15 · redis_stack · rabbitmq_3.13

Self-hosted from day one. Your data, your infrastructure.

We're onboarding a small cohort of platform teams. Tell us about the workflows you'd move first and we'll get you a self-hosted instance in a week.

Thanks — message received.

We'll be in touch within a business day.