n8n hits a wall.
Claude Routines hits a cap.
Rotor doesn’t.

Your workflow fails at 3am. Rotor retries it. You wake up to a completed run, not a Slack alert.

Start shipping$9 to start. 30-day money back.
$ npx rotor@latest init
rotor.sh/dashboard/runs

Runs

last 24h · 4,812 step-runs

outbound-sequencerCompleted
412 sent · 1m 04s
enrichment-dagRunning
step 3/5 · 12s
hubspot-syncRetrying
attempt 2/3
attribution-rollupCompleted
daily · 2m 18s
reply-classifierCompleted
88 replies · 0.9s
rotor.sh/dashboard/runs/r_8f2a

enrichment-dag · 02:14:07

Retrying
Completedfetch leads · HubSpot
1.2s
Retryingenrich · Apollo
rate-limited, retrying in 4s
Completedscore ICP · Claude
3.1s
Runningdraft email · Claude
Runningsend · Lemlist
queued

Step retries automatically · state resumes after crash · no manual replay

Built to work with the stack you already run.No rip-and-replace. No new dashboards to babysit.

Claude Code
HubSpot
Salesforce
Apollo
Clay
Lemlist
Slack
Gmail

Cron dies silently. n8n bills explode. Claude Routines hits a wall.

GTM engineers waste nights babysitting infrastructure that was never built for production.

Silent failures at 3am

Your cron job died six hours ago. You find out when a prospect asks why they got nothing.

Bills that spike without warning

n8n's per-task pricing looked fine at 10 workflows. At 10,000 it looked like a SaaS bill.

Secrets stuck in a .env on a VPS

One breach, every integration. Rotating means SSHing into a box and hoping nothing breaks.

Built for GTM engineers.
Designed for production pipeline.

Your Claude Code–authored agents run on real infrastructure with real observability. Retries, approvals, and a complete audit trail of every outbound message, enrichment call, and CRM write.

Outbound Sequencer

RUNNING

Drafts multi-step email sequences, waits for replies, and escalates to your inbox when a prospect engages.

Claude
HubSpot
Slack

Enrichment DAG

12S

Hits Apollo, Clay, and LinkedIn in parallel, merges the results, and pushes an ICP score into HubSpot.

Claude
HubSpot
Slack

Attribution Rollup

3M

Reconciles Lemlist opens, HubSpot deals, and Shyft pipeline signals into a single daily report.

Claude
HubSpot
Slack

Claude Code–native, from scaffold to deploy

Outbound run · acme.com

Enrich from HubSpot

1.2s

Score ICP via Claude

3.1s

Draft personalized email

4.7s

Wait for Slack approval

2m

Send via Lemlist

0.4s

Connect the stack you already run

Approvals, guardrails, and full audit trail

Built for the 2am retry.
Designed for pipeline scale.

When Apollo rate-limits, when an LLM call 500s, when your sender's webhook fails — Rotor resumes where it stopped. Your RevOps engineer sleeps.

rotor.sh/dashboard/runs/r_8f2a

enrichment-dag · 02:14:07

Retrying
Completedfetch leads · HubSpot
1.2s
Retryingenrich · Apollo
rate-limited, retrying in 4s
Completedscore ICP · Claude
3.1s
Runningdraft email · Claude
Runningsend · Lemlist
queued

Step retries automatically · state resumes after crash · no manual replay

rotor.sh/dashboard/runs

Runs

last 24h · 4,812 step-runs

outbound-sequencerCompleted
412 sent · 1m 04s
enrichment-dagRunning
step 3/5 · 12s
hubspot-syncRetrying
attempt 2/3
attribution-rollupCompleted
daily · 2m 18s
reply-classifierCompleted
88 replies · 0.9s

Workflow Studio

Design enrichment DAGs, outbound sequences, and attribution rollups in TypeScript. Hot-reload locally, deploy with one command.

Agent Orchestration

Chain Claude, GPT, and Gemini calls with tool use, pause for human review, branch on replies. Multi-agent where it earns its complexity.

Outbound agent

Drafts, waits for approval in Slack, sends via Lemlist.

Starter templates

Workflow Automation

Lead to close, no handoffs. Branch on replies, wait for webhooks, resume where you left off.

Integration Fabric

HubSpot, Salesforce, Apollo, Clay, Lemlist, Slack, Gmail — plus any MCP server you already use.

Human-in-the-Loop

Approve AI-drafted emails in Slack or your terminal. Bulk approve with filters. Your brand stays safe.

Your secrets don't belong in a .env file.

AES-256-GCM encrypted vault. Per-environment overrides. Railway sync. Built into your workflow runtime, not bolted on.

Encrypted at rest, masked forever

AES-256-GCM. Never stored in plaintext. Never logged. Masked in the UI the moment you save. Audit trail on every access.

${{ secrets.KEY }} at dispatch time

Secrets resolve when the step runs, not when you deploy. Rotate without touching your code. The next run picks up the new key automatically.

${{ secrets.HUBSPOT_API_KEY }}
●●●●●●●●resolved ✓

Per-environment overrides

Base secrets plus dev, staging, and prod layers. Single-level inheritance. One vault, three environments.

Railway sync

Push vault secrets to Railway env vars on cron or on-change. One-time import also supported.

Secret rotation

Version increment on rotate. Late-binding resolution means the next run picks up the new key automatically.

Governed AI.
Pipeline you can defend.

Every outbound message, every enrichment call, every CRM write is logged, reviewable, and rolls back cleanly. Your CFO, CMO, and compliance lead sleep too.

rotor approve
$ rotor approvals list --pending
2 messages waiting for review
[1] outbound-sequencer → j****@acme.com
“Hi Jordan — saw Acme just shipped SSO…”
guardrails: DNC ✓ brand-tone ✓ PII ✓
$ rotor approvals approve 1
✓ approved · sent via Lemlist · logged to audit trail

Audit Trail

Every agent action logged with input, output, and timestamp. Export to CSV, Snowflake, or your warehouse for the compliance team.

Recent Activity

Outbound send

0.4s

Sent personalized email to j****@acme.com via Lemlist

Apollo enrichment

FAILED

Rate limited after 3 retries on domain lookup

Claude draft

RUNNING

Drafting personalized opener from ICP signals

Slack approval

WAITING

Pending approval from @daan before send

Attribution rollup

2m

Merged Lemlist opens into HubSpot deal activity

HubSpot sync

FAILED

401 from HubSpot API token expired, retrying

Reply classifier

RUNNING

Classifying inbound reply from prospect as interested

Role-Based Access

Decide who can launch outbound, who can approve, and who can see pipeline. SSO and SAML on Team and Enterprise.

Role
Launch
Approve
Deploy
View
Admin
Approver
Developer
Viewer

Approval Queue

AI-drafted emails wait in Slack or your terminal until a human clicks approve. Bulk-approve with filters.

Pending
Approved

Guardrail Engine

Block sends to customers, competitors, or do-not-contact lists. Enforce brand tone. Reject PII in prompts.

DNC list

Blocked recipients

Block any send to an email or domain on your do-not-contact list. Checked first, cheapest gate.

j****@churned.com

competitor.io

Bring your own model.
All of them.

Rotor doesn't care which LLM you call. OpenAI. Claude. Gemini. Your fine-tune. Workflows survive when models change. Switch in one line, not one rewrite.

Route classify-reply to one provider. Lead-research to another. Code-gen to a third. One workflow. One bill. Zero vendor lock-in on the model layer.

OpenAI
Claude
Gemini
Your fine-tune

Built for the engineer who runs GTM.

Pick your circumstance. Find your workflow.

Canvas refugee

Pain

n8n worked until the bill hit $200/mo and the canvas hit its ceiling.

How they use Rotor

Rewrites in TypeScript, ships in 60 seconds, pays for step-runs not per-task.

See how →

Routines cap-hitter

Pain

Claude Routines: 15 runs/day, no retries, no persistent state.

How they use Rotor

Sub-minute schedules, durable step state, no daily cap.

See how →

Cron box babysitter

Pain

Hetzner box dies at 3am, no retry, no state, no audit.

How they use Rotor

step.sleep + auto-retry, resume from last completed step.

See how →

AI agent builder

Pain

Agent acts unsupervised, no approval gate, no audit trail.

How they use Rotor

Approval queues, guardrail engine, full audit log on every send.

See how →

Stop babysitting cron. Start shipping.

$9 to start. 30-day money back.

$9 to start. 30-day money back.

Pay for the work,
not the seats.

One number per tier. No per-task pricing. No surprise bills. Hard caps protect you from runaway loops.

  • Workspace vault for your secrets

  • Unlimited seats from Starter up

  • Durable retries that resume from the last completed step

Hobby

$9/mo

For solo builders escaping n8n.

Start shipping
  • 5,000 step-runs / month
  • 1 workspace, 1 seat
  • 5 connections
  • Workspace vault, MCP, CLI, API
  • 1 month log retention
  • Community Discord support

Starter

$29/mo

For GTM engineers running real workflows.

Start shipping
  • 20,000 step-runs / month
  • 1 workspace, unlimited seats
  • Unlimited connections
  • Everything in Hobby
  • 3 month log retention
  • Email support (48h)

Pro

Most popular
$99/mo

For small RevOps teams.

Start shipping
  • 100,000 step-runs / month
  • 1 workspace, unlimited seats
  • Everything in Starter
  • 6 month log retention
  • Workflow versioning + rollback
  • Email support (24h)
  • Team invitations (viewer / developer / approver)
  • Self-serve billing portal
  • DLQ depth alerts
  • Self-healing workflows — Beta (50 heal-runs / mo included)

Scale

$299/mo

For teams putting Rotor in production.

Start shipping
  • 250,000 step-runs / month
  • 1 workspace, unlimited seats
  • Everything in Pro
  • 12 month log retention
  • SSO, audit log, RBAC
  • Custom webhook domain
  • Priority support (4h)
  • Self-healing workflows — Beta (200 heal-runs / mo included)

Frequently Asked Questions

Stop babysitting cron. Start shipping.

Your workflows retry themselves. Your pipeline runs unattended. You sleep.

Start shipping$9 to start. 30-day money back.
Read the docs →