Private betaRequest early access
The control layer for AI actions

When your AI takes a real action, a human signs off first.

Your AI keeps working on its own. When it hits something that needs human judgment, Ratifia routes the decision to the right person, captures the verdict, and hands the answer back — so your agent can keep going.

One call inside your workflow · No infrastructure to run · Every decision audited

Ratifia InboxDecision required
dcn_8F31A · claims-agent · via SDK

Issue a $12,400 payout for Claim #48213?

Policy
payouts > $5,000
Required
Finance · 2 reviewers
Evidence
Coverage verified · No fraud
AI
Recommends approval

One decision — wherever your humans already work.

ra·ti·fia/ˈra-tə-fē-ə/

verbto sign off on what your AI does — approve the action before it ships.

A play on ratify — to give something your formal stamp of approval.

The shift

AI is starting to act — not just answer.

An AI that drafts a claim summary is one thing. An AI that issues a $12,400 payout, changes a patient's care plan, deploys to production, emails a customer about a breach, or grants access permissions — that's something else.

issue a $12,400 payoutchange a care plandeploy to productionemail a breach noticegrant admin access

Some of those should happen on their own. Some shouldn't. Ratifia is where you draw the line — and prove where it was drawn.

Where it matters

The decisions you don't want a model making alone.

Ratifia was built for the actions with consequences — the ones a regulator, a customer, or an on-call engineer will ask about later.

Insurance
Issue a $12,400 payout?
The AI recommends approval based on claim evidence and coverage checks.
PolicyFinance approval required
Healthcare
Send this patient communication?
The AI generated a message containing sensitive clinical information.
PolicyClinical review required
Infrastructure
Rotate production credentials?
An agent detected exposure and wants to remediate automatically.
PolicySecurity approval required
How it works

One pause. One human. Then it keeps going.

No new agent architecture, and Ratifia never runs your code. Your workflow waits on the engine you already use — Ratifia steps in only when a policy says a person needs to decide.

Ratifia routes the decision to a person, waits, then resumes your workflow with the verdict.

For developers

One SDK call. Keep your engine.

You don't rebuild your agent. Add one line where a human should decide — Inngest, Temporal, Trigger.dev, or your own loop.

const decision = await ratifia.awaitApproval(ctx, {
  policy:  "payouts-over-5k",
  route:   { surface: "slack", channel: "#finance-approvals" },
  context: { blocks: [ toolCall, evidence, aiOutput ] },
})

if (!decision.approved) return escalate()
// ...your code resumes here, with the verdict
  1. 1
    Your workflow waits here
    At awaitApproval() — your engine holds the pause, for as long as a human takes.
  2. 2
    A human decides
    On any surface, with the full context and the policy that fired.
  3. 3
    The verdict comes back
    As decision — approved or not, plus who, when, and why.
  4. 4
    Your agent continues
    And the whole decision is recorded, forever.
Why enterprises trust it

Not confirm() for AI — a control plane you can defend later.

The simple loop is backed by the controls a security, compliance, or risk team asks about on the first call.

PolicyWhen is human authorization required?
RoutingWho gets asked, and on which surface?
IdentityWas the reviewer actually authorized?
QuorumHow many people must approve?
EvidenceWhat information did they see when they decided?
AuditWhat happened, who did it, and when?
RetentionCan we produce the record a year later?
ExportCan compliance take the evidence with them?
Every decision leaves a record:POLICY MATCHIDENTITY VERIFIED2 / 2 APPROVALSDECISION ID dcn_8F31ARECORDED 14:31:08 UTC
The real thing

Not an API that sends Slack messages. A system of record.

Behind every decision is an actual governance product — a reviewer inbox, policies, roles, and an immutable audit log.

app.ratifia.com/decisions

Inbox 4 awaiting · 1 expiring soon

Issue a $12,400 payout for Claim #48213?
claims-agent · Finance · quorum 1 / 2
22mPending
Send the breach-notification email to the customer?
support-agent · Email
5hPending
Rotate the production API key?
ops-agent · Inbox
8hPending
Deploy release 2.14 to production?
ci-bot · Slack
2:31 PMApproved
Delete inactive workspace org_5f2a?
ops-agent · Inbox
1:12 PMRejected

Put a human in the loop where it counts.

Get early access, or follow along as we build the control layer for AI actions in the open.

Product updates and the occasional deep dive on human-in-the-loop for AI. No spam — unsubscribe anytime.