Use GOVENANT and n8n together — govern the RPA & workflow agents, not the framework. From bot logs to proof of delivery.
An automation CoE runs 1,200 n8n and UiPath workflows — invoicing, onboarding, data sync — increasingly with an LLM step in the middle.
Execution logs show jobs “succeeded,” but success means the job ran, not that the downstream effect happened. As bots turn agentic, the audit trail that made RPA trustworthy is quietly eroding — and exceptions are a number the dashboard omits.
Runs map to duty-runs, schedules to duties, exceptions to an honest miss log. The sweep — read-only over the execution store — finds a nightly sync that “succeeded” for weeks while writing zero rows, and puts the exception rate back on the board where it belongs.
The substrate: The execution record: runs → duty-runs, schedules → duties, exceptions → an honest miss log. Append-only engines are nearly there already.
The path — Native substrate: The platform already produces records that map to the standard — the sweep reads what it already keeps.
| GOVENANT shape | n8n source |
|---|---|
| Action ledger / duty-run | execution_entity (Postgres) — every run n8n already records |
| Duty | workflow_entity — each workflow is a recurring responsibility |
| Independent watchdog | The n8n error-workflow — writes misses independently of the run’s self-report |
| Verified outcome | success flag AND the downstream effect (rows written, record changed) — add the effect check where the workflow’s real result can be verified |
| Miss | Failed, unfinished, or “succeeded-but-wrote-nothing” executions |
-- n8n already records every run. Workflows are duties; executions are duty-runs.
create or replace view gov_duty_run as
select w.name as duty, e.id as run_ref, e."startedAt" as ran_at,
(e.finished and e.status = 'success') as ran_ok
from execution_entity e
join workflow_entity w on w.id = e."workflowId";
-- Activity vs. delivery per workflow (join your effect check for true 'delivered'):
create or replace view gov_delivery_summary as
select duty, count(*) as runs,
count(*) filter (where ran_ok) as ran_ok
from gov_duty_run group by duty; The substrate shapes and acceptance tests are open (CC BY 4.0): developer integration · the portable schema.
Platforms with append-only execution history can reach the standard’s Tier-1 substrate requirements faster than any other class — for some engines the ledger requirement is already met. Wear the Built-on badge with a real mapping; publish levels to the registry with probe logs; claim nothing the record can’t reproduce.
This example is a worked mapping with read-only code — adapt the object/field names to your environment. It will never say “supported” or “certified” before a working example lands and its record is public — progress lives in the GitHub issue. Holding our own examples to the standard’s claims discipline is the product.
All sample projects · Govern RPA & workflow agents · All integrations · Run the audit