RunVouch / For agencies
The client's workflow went quiet in August. You heard about it in September.
You built the automation, handed it over, and you are still the one who gets called when it goes silent. The workflows live in instances you do not control, on schedules set months ago, for people who assume that no news is good news. RunVouch watches them from the outside and gives you something to show when the question comes.
Get a free keySee a live client pageTalk to us
The failure your error handling cannot see
A failed run is the easy case: the error workflow fires, Slack lights up, you fix it. The expensive case is the run that never happened. A workflow someone deactivated during a test, a schedule that did not survive an upgrade, a token that expired, a container that never came back after a reboot. None of those produce a failed execution, because none of them produce an execution at all. The execution list stays clean, the error workflow stays quiet, and the report the client pays for is simply not there. Weeks later they ask, and you are explaining instead of invoicing.
The same hole exists outside n8n. Cron does not care whether your job ran; it only cares that it fired the command. A headless agent that exits 0 after writing nothing looks exactly like a good night.
What RunVouch watches, per client
- MISSED. You declare the cadence and a grace window. Nothing checked in by then is an alert, whatever the reason.
- FAILED. Non-zero exit with the last lines of stderr, so you know what to open before you log in.
- NO_EVIDENCE. The run went green, but the file, row or URL it exists for did not change. This is the one that protects the client relationship: green is not done.
- BUDGET. A cap per run and per day. On a paid plan the next run is refused instead of billed, which matters when the workflow calls a model in a loop.
- RETRY_STORM, DRIFT, STALLED. The same tool call forty times, a job that suddenly finishes in a tenth of the usual time, a run that started and never ended.
What you hand the client
Two things they can check without taking your word for it. A status page per client on a link you share, with the last run and the 90-day record per job. And a proof per run: a hashed record fixed when the run ends, chained into a public daily file and anchored in Bitcoin through OpenTimestamps. Our own fleet runs on it in public: a real fleet page, and the mechanism is written out on verifiable agent runs. A client who has been burned before does not want a screenshot of a dashboard. They want a record that nobody could edit afterwards.
One page per client, two calls, nothing else to configure. Each job sits on exactly one page, so Acme never sees Globex:
curl -X POST https://api.runvouch.com/v1/fleets -H "X-API-Key: $RUNVOUCH_KEY" \
-d '{"slug":"acme","title":"Acme nightly jobs"}'
curl -X POST https://api.runvouch.com/v1/fleets/acme/agents -H "X-API-Key: $RUNVOUCH_KEY" \
-d '{"agent":"acme-nightly-report","label":"Nightly report"}'
The page is public JSON at /public/fleet/acme.json: run facts only, no cost, no evidence, no keys. Drop it in your own client portal or link it as is. Client pages are part of Team.
Setting it up on an instance you do not own
Every agent gets a ping URL. At the end of the client workflow, one HTTP Request node to the success URL; on the error path, one to the /fail URL. That is the whole integration, and it works on their cloud instance, their VPS or their laptop. Where you do control the machine, wrap the command instead and you get cost, duration and evidence for free:
rv agent acme-nightly-report --cadence 24h --cap-run-cost 2 --evidence rv run acme-nightly-report --evidence-file /srv/acme/report.html -- python build_report.py
Guides per platform: n8n, cron and systemd, Claude Code, everything else.
Where this is not the right tool
If you run one instance and you only need to hear about failed executions, n8n's own error workflow does that and costs nothing. If you need traces of every prompt and token to debug an agent's reasoning, you want an observability tool and we link to the comparison. RunVouch is the outside watch: it tells you that something did not happen, and it gives you the record that it did when it did.
What it costs
Free is three agents with all eight detectors and every alert channel, no card, enough to put your own worst job under it tonight. Solo is $19 a month for 50 agents and adds the cap that refuses the next run. Team is $99 for 1000 agents, a public status page per client, PagerDuty, CSV and JSON export for audits, and read-only dashboards for people who should not hold your key. Full detail on pricing.
Questions agencies ask
Does this replace the n8n error workflow?
No, and if one instance is all you run, the error workflow is free and enough. RunVouch watches from outside: it notices the run that never started, which is the failure an Error Trigger cannot see, and it does that across every client instance from one place.
Do I need access to the client's server?
No. Anything that can call a URL can report: an HTTP Request node at the end of the workflow, a curl line in their cron, or the rv wrapper if you do control the box. The client keeps their instance, you keep the watch.
What do I show a client who asks whether it ran?
A status page with the last 90 days per job, on your own link, and a proof file per run: a hashed record, chained into a public daily file and anchored in Bitcoin. They can verify it without trusting you or us.
What does it cost per client?
Free covers three agents, which is one small client or your own first test. Solo is $19 a month for 50 agents and adds the cost cap that refuses the next run. Team is $99 for 1000 agents, a status page per client, PagerDuty, API export and read-only dashboards for people who should not hold your key.