Activepieces

activepieces.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

An open-source automation platform in the Zapier mould: triggers, actions and a visual flow, with a self-hosted option and pieces written in TypeScript.

Promptfree, for everyone, and the only version there is
Build me an automation runner that replaces a hosted Activepieces: triggers, actions, a flow I can read, and a run history that tells me exactly what happened.

Read this first: the product you are replacing is open source, so the honest options are to self-host it or to build the narrow thing you actually need. Choose the second only when your flows are few and specific — then this is a fortnight, and it is yours forever.

STACK
- Node 20+ with Fastify
- SQLite through better-sqlite3, WAL mode
- Workers in the same process at first, moved out when they need to be
- Server-rendered interface, the flow drawn as SVG
- Caddy in front

THE DATA MODEL
- flows: id, name, version, is_active, trigger_json, steps_json, created_at
- flow_versions: id, flow_id, version, definition_json, published_at — a running flow is pinned to a version, so editing never changes a run in flight
- runs: id, flow_id, flow_version, trigger_payload_json, status, started_at, finished_at, error, dedupe_key
- step_runs: id, run_id, step_id, attempt, status, input_json, output_json, error, started_at, finished_at, ms
- connections: id, name, kind, credentials_encrypted, expires_at, refreshed_at
- schedules: id, flow_id, cron, timezone, next_at, last_at
- queue: id, run_id, step_id, run_at, attempts, locked_by, locked_at
- Every step's input and output stored. When a flow does the wrong thing at three in the morning, the payload at each step is the only thing that answers why

TRIGGERS
- Webhook: a URL per flow, with an optional shared secret and signature check, answering 200 immediately and queueing the run
- Schedule: a cron expression with a time zone, with the daylight-saving cases decided and tested
- Polling: fetch a source on an interval and emit one run per new item, with the cursor stored and deduplication by an item identifier — polling that re-emits everything after a restart is the classic disaster
- Manual, with a payload typed by hand, which is how a flow is tested

ACTIONS
- HTTP request with full control of method, headers, body, timeout and retry
- Branch on a condition, loop over a list with a concurrency limit, delay, and stop with a message
- Code: a small JavaScript step run in a sandbox with a timeout, no filesystem and no network unless declared
- A handful of real integrations, each written as a piece with a declared schema for its inputs and outputs. Build the three you need, not thirty you do not

DATA BETWEEN STEPS
- Reference earlier output with a simple path expression, resolved against the run's accumulated state
- The editor shows real sample data from the last run beside every field, so a path is picked rather than typed. This is the single biggest difference between a usable flow builder and a frustrating one
- Types checked where the piece declares them, with a clear error before the run rather than a crash inside it

RELIABILITY, WHICH IS THE PART PEOPLE UNDERESTIMATE
- Every step retried with exponential backoff and jitter, with a per-step policy and a maximum
- Retry only what is safe: a non-idempotent action needs an idempotency key, and the piece declares whether it has one
- Deduplication on the trigger, so the same webhook delivered twice runs once
- A run that fails permanently goes to a dead-letter list with everything needed to replay it, and replay is one button
- The queue is a table with a locked_by and a lease, so a crashed worker's work is picked up rather than lost

THE INTERFACE
- The flow as a vertical list of steps with branches drawn beside them — a node-and-wire canvas is more work and less readable for the flows most people build
- A run view: every step with its input, output, duration and error, expandable
- A list of runs filterable by status, with the failures first
- Dark and light

SECRETS
- Connections encrypted at rest with a key from the environment, decrypted only in the worker
- OAuth refresh handled with a lock so two workers never refresh at once and invalidate each other
- Secrets redacted from every stored payload and every log, by key name and by value match

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, ENCRYPTION_KEY, SESSION_SECRET, WEBHOOK_SECRET
- Migrations on boot, each once
- Old step payloads pruned on a schedule with the retention stated, because they are the bulk of the data
- Nightly backup off the machine, restore script
- Health endpoint reporting queue depth and the oldest unlocked item

WHAT MATTERS MOST
Retries, deduplication and the stored step payloads. Build the queue with leases and the dedupe key before any integration, then kill the process mid-run and confirm nothing is lost and nothing is duplicated. An automation tool that occasionally sends an email twice is a tool you stop trusting with anything that matters.

Give me the repository, migrations, .env.example, two seed flows, and a README with deploy steps behind Caddy.

What you lose

  • A library of integrations somebody keeps working as each vendor changes its API
  • A visual flow, which matters when the person maintaining it is not a developer
  • Run history with the payload at every step

If you would rather not build

  • Windmill, if you prefer scripts to canvases

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$25/mo—15 Aug 2026

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Activepieces

$0

The product itself, self-hostable, with pieces written in TypeScript.

activepieces/activepiecesfree · open source

n8n

$0

Workflow automation with a much larger integration library.

n8n-io/n8nfree · open source

Why this verdict

our own opinion · changed only by a person

80/100

Verdict yes at 80. Replay from the original payload is the feature that makes a home-made automation stack usable; it is the first thing people forget.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 3/day
views012330 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Activepieces

answered from the record above

Is Activepieces free?

No — the plan we track is $25 a month. Plus from around $25/month billed monthly on the cloud; the software is free to self-host under an MIT core.

Can you replace Activepieces by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 80 out of 100, build time one session. Read what you lose before you decide.

How much does Activepieces cost?

$25 a month on Plus — $300 a year. Recorded 9 Aug 2026.

What do you lose by replacing Activepieces?

A library of integrations somebody keeps working as each vendor changes its API; A visual flow, which matters when the person maintaining it is not a developer; Run history with the payload at every step. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Activepieces?

Yes: Activepieces, n8n. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 17 in Automation & notifications

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc