DEV Community

Cover image for OrcFlows: AI workflow automation that doesn't break at 3 a.m.
Bharath S
Bharath S

Posted on AI-assisted

OrcFlows: AI workflow automation that doesn't break at 3 a.m.

Durable execution, agents you can actually debug, and a real path from dev to prod — on a visual canvas, built in Go on Temporal.

TL;DR: OrcFlows is a workflow automation platform for people who run automations that matter. Every run is a durable Temporal workflow that survives crashes and deploys. AI agents leave a full decision trace. Changes are versioned, diffed, tested against evals and promoted through dev → staging → prod with approvals. There's a free plan, flat pricing, and no per-task fees. Try it at orcflows.com.


The 3 a.m. problem

Picture a small workflow. A webhook fires when an order comes in. Step one charges the card. Step two sends the welcome email. Step three pings #orders in Slack.

Now kill the worker between step one and step two. A deploy, an out-of-memory kill, a node that got rescheduled — it happens to everyone eventually. What happens next depends entirely on where your automation tool keeps its state. If the state lives in the process, you get one of two bad outcomes: the run vanishes (customer charged, never welcomed) or it restarts from the top (customer charged twice).

A lot of automation tooling grew up around simple SaaS webhooks, where "just retry it" is a fine answer. It stops being fine when a step moves money, emails a customer or deploys code — and it gets worse when an LLM is the one choosing the steps.

We built OrcFlows for the runs that fail at 3 a.m. and matter at 9 a.m.

What OrcFlows is

OrcFlows is a visual builder for automations and AI agents. You drag triggers, agents, tools and connectors onto a canvas — or describe the workflow in plain English and let the generator wire it up — and every run executes on a durable engine.

The OrcFlows canvas: a Slack trigger feeding an AI agent that has Slack and Hacker News tools attached

The canvas. A Slack message triggers an AI agent. The dashed amber lines are tools the agent is allowed to call.

The building blocks:

  • 30+ triggers — webhooks, schedules, Slack, Telegram, WhatsApp, email, GitHub, Stripe and more.
  • 120+ connectors — Slack, GitHub, Stripe, Gmail, Google Sheets, Notion, Jira, HubSpot, AWS, Azure, Kafka, MQTT, Snowflake, Postgres and others. Typed and authenticated, not webhooks in disguise.
  • An AI Agent node — a ReAct loop with tools, persistent memory and knowledge bases. Works with Claude, OpenAI, Groq, DeepSeek, OpenRouter, NVIDIA NIM, Ollama or any OpenAI-compatible endpoint — you bring your own keys.
  • Code and custom nodes — run Python, Node.js or shell in sandboxed Docker containers, or define your own node types without a redeploy.

That's the feature list every automation tool has. The rest of this post is about what's different underneath.

1. Durable by construction

Every OrcFlows run is a Temporal workflow, and every step is a Temporal activity. Temporal persists the full event history of the run — each step's input, output, retry and signal — so state never lives only in a process that can die.

Timeline comparing a restart-from-scratch retry, which charges the card twice, with OrcFlows resuming from its checkpoint

Same workflow, same crash. Without checkpoints the run starts over and charges the card twice. With them, the run resumes at step two.

What that buys you in practice:

  • Crashes and deploys don't lose work. If a worker dies mid-run, the run resumes from its last completed step. Steps that already finished are not run again.
  • Per-step retries. Each step has its own retry count and delay, so a flaky API or a rate limit is retried without re-running everything before it.
  • Waiting is free. A run can sit on an approval for days without holding a thread, a connection or a timer of yours.
  • Every run is replayable. The full event history is there for debugging — and for the retry button, which re-runs a failed execution while reusing the results of the steps that already succeeded.

The honest fine print: a step that was in flight when the worker died gets retried — that's how every durable system works. For side-effecting calls like charges and emails, pass an idempotency key wherever the target API supports one. What you don't get is the naive failure mode: finished steps running twice, or the whole run quietly disappearing.

2. Human approvals that can wait for days

Some steps shouldn't run without a person's sign-off: refunds over a threshold, production deploys, the email going to your biggest customer. An approval step parks the run and notifies someone in Slack, Telegram or the app. It resumes the moment they respond — or stops, if they reject.

A workflow waiting on approval in the OrcFlows app, and the matching Approve/Reject message in Telegram

Left: the run is parked at request-approval. Right: the same approval arrives in Telegram; one tap approves or rejects. Comments are written to the audit log.

Under the hood it's a Temporal signal, which is why the wait costs nothing and survives restarts. It's the same mechanism you can use for any "wait for an outside event" pattern.

3. Agents you can see inside

An agent that's great in a demo and odd in production is a debugging problem. So OrcFlows treats agent runs as data:

  • A full decision trace per run — every tool call with its input, output, duration and error, plus token usage and cost per step.
  • Session timelines — every turn of a conversation grouped into one view, so "why did the agent say that on turn three?" has an answer.
  • Persistent memory — agents recall earlier turns and prior runs from PostgreSQL-backed memory, keyed by session.

A session timeline showing two conversation turns, each with input, output and latency

A session timeline. Each turn is its own execution; the session ties them together.

Workflows can also be exposed to other AI clients: mark a workflow as MCP-enabled and it appears as a tool on your workspace's MCP server.

4. Ship automations like software

In a lot of automation tools, a workflow is just a row in a database that you edit live. That's how a one-word prompt change ends up in production at 4 p.m. on a Friday. OrcFlows gives workflows the same guardrails you'd expect for code.

Every save is a version — and you can diff any two.

A JSON diff between Version 1 and the current workflow, with one changed line highlighted; a banner says the prod promotion needs approval

One line of a prompt changed between versions. The banner shows the other guardrail: promoted to prod, but not live until an admin approves.

Environments with approval. Workflows carry a dev, staging or prod environment. Promoting snapshots the current version first, so it's reversible. Promoting to prod parks the workflow in pending_approval until an owner or admin signs off.

Simulate before you ship. Simulate replays real trigger data through your workflow with real AI reasoning and real branching — but connector, HTTP, browser and approval steps are stubbed or auto-approved. You see what the change would do without sending a stray Slack message or a real charge.

The Simulate menu, explaining that AI reasoning and branching run for real while connector, HTTP, browser and approval steps are stubbed

Simulate: replay the most recent execution's trigger data, or paste your own JSON.

Git as the source of truth, if you want it. Push workflow definitions to a repo you control and pull them back, so automation changes get reviewed in pull requests like everything else.

The Git Sync settings page connected to a GitHub repository

Git Sync: point it at a repo, branch and path prefix, store the token as a secret.

5. Evals with teeth

"Did that change make the agent better or worse?" shouldn't be answered by vibes. OrcFlows has evaluations built in:

  • Datasets of test cases — single turns or whole multi-turn conversations. Turn any past execution into a test case with one click, so a bug report becomes a permanent regression test.
  • Seven evaluator types — text match, numeric (with tolerance), JSON, similarity, tool-call trajectory, LLM-as-judge, and outcome checks that make their own independent request to verify real system state. That last one is for "the bot says the refund went through — did it?"
  • Real executions. Each dataset row runs the actual workflow through the same durable engine as production — nothing is mocked.
  • Multiple trials per row with pass@k and pass^k, because a flaky agent that passes once out of three isn't a passing agent.
  • Promotion gates. Set a minimum pass rate for a named evaluation, and promotion to staging or prod is refused until the latest run clears it. It's a CI check for automation.

Flow: edit, run the eval suite, gate on pass rate, promote, admin approval — with a blocked branch when the gate fails, and the seven evaluator types below

The promotion pipeline. A failing eval blocks the promotion; a passing one still needs an admin's approval for prod.

Everything else you'd expect

  • AI workflow generator. Describe the automation in English and get a complete workflow — nodes, expressions, data mappings, connections — that stays fully editable on the canvas.
  • Knowledge bases. Upload documents or point at URLs, then query them from workflows and agents.
  • Secrets. Stored encrypted at rest (AES-256-GCM) and referenced as {{ secret.NAME }}; never pasted into a workflow.
  • Teams and permissions. Roles with fine-grained permission overrides; organizations, SSO and audit logs on the Enterprise plan.
  • Coming from n8n? Import an n8n export and get a migration report: which nodes converted cleanly, which need a look, and which have no equivalent. Imported schedule and service-triggered workflows arrive disabled, so nothing fires before its secrets exist.
  • Speaks four languages — English, Spanish, French and Arabic.

Under the hood

Architecture diagram: triggers and the console feed a Go API server, which hands runs to Temporal, which dispatches to Go workers; PostgreSQL, Redis, object storage and Docker sandboxes hold state

Boring, proven parts, wired for durability.

Three components — a Go API server, a Go worker and a SvelteKit console — sit on top of Temporal, PostgreSQL and Redis. The worker listens on two task queues: a main queue for heavy steps like agents, code and document processing, and a fast queue for sub-second steps like transforms, HTTP calls and conditions. A 30-second LLM call never queues a 20-millisecond transform behind it.

Go isn't a marketing choice here. Workers are compiled binaries with small memory footprints, and concurrency is cheap.

Benchmarks (and their limits)

We load-tested the whole stack, not a hello-world endpoint. Locust ran 200 concurrent users for eight minutes across 20 endpoint types — auth, CRUD, triggers, executions, secrets, knowledge base. Every trigger started a live five-step durable workflow (set → HTTP → transform → condition → set), with each step persisted to PostgreSQL. The API, worker, Temporal, PostgreSQL 16 and Redis 7 all ran in Docker on a laptop.

Benchmark results: 216,474 requests, zero failures, 451 requests per second, and per-endpoint latency bars

Endpoint Median p99
GET /health 1 ms 32 ms
GET /workflows 2 ms 66 ms
POST /trigger (5-step durable workflow) 9 ms 180 ms
POST /workflows 15 ms 360 ms
POST /auth/login 63 ms 200 ms
All 20 endpoint types 3 ms 160 ms

Result: 216,474 requests, 0 failures, 451 requests/second sustained, and a 19 MB Go heap under full load.

Take it with the right grain of salt. It's our own test on one machine, and it measures the API and trigger path — not your workflow's downstream calls, and not LLM latency, which will dominate any agent run. Treat it as evidence that the engine won't be your bottleneck, not as a promise about your workload.

Pricing

Automation tools that charge per task punish you for automating more. OrcFlows doesn't: every plan includes unlimited executions.

Free Pro Enterprise
Price $0 $13 / month per workspace, flat Custom
Active workflows 10 Unlimited Unlimited
Team seats 3 20 Unlimited
Knowledge base storage 6 MB 1 GB Unlimited
Worker capacity Base 5× Free Higher
Also includes 120+ connectors, durable execution, community support Personalized support SSO / SAML, organizations, audit log, on-premise, SLA

Nothing breaks when you hit the Free plan's workflow limit: existing workflows keep running, you just can't activate an eleventh until you upgrade or deactivate one. You can also self-host the Community Edition on your own infrastructure — see the docs for setup.

Who it's for — and who it isn't

A good fit if you automate things where failure has a cost (payments, support, operations, DevOps), you're building AI agents and need traces and evals, you want automation changes reviewed and gated like code, or you've outgrown the reliability or the per-task bill of your current tool.

Not (yet) a fit if you need the long tail of thousands of niche SaaS integrations — OrcFlows has 120+ connectors plus HTTP and custom nodes to bridge gaps, but it isn't a marketplace of thousands. It's also in public beta: expect fast changes and some rough edges. And if all you need is a two-step zap between two popular apps, a lighter tool may serve you fine.

Try it

  1. Sign up free at orcflows.com — no credit card.
  2. Describe a workflow in English, or import an existing one from n8n.
  3. Add an eval before your first promotion to prod. Future you will be grateful.

Read the documentation, and tell us what breaks. OrcFlows is built in India, for the world.

Ship your first durable workflow today: orcflows.com

Top comments (0)