HUMANLATCH by VerdictLayer
Developer docs · VerdictLayer
Add human approval to AI capabilities without rebuilding your app.
HumanLatch gives developers a simple integration point: propose a capability before execution, let policy decide the route, and only execute when the control plane allows it.
Why developers like it
Keep your runtime
Your app, bot, robot controller, or manufacturing system stays where it is. HumanLatch only handles the decision layer.
One pattern for many domains
The same flow works for cloud operations, support bots, robotics, and physical industrial controls.
Self-hosted or remote
Point your integration at a CE deployment you host or a remotely managed HumanLatch API.
How it works
Four steps between AI intent and real-world execution.
1. Define a capability
Pick the action your AI system wants to perform, like issuing a refund, changing IAM access, moving a robot, or overriding a line threshold.
2. Propose before executing
Send action_type, target, summary, payload, and context to HumanLatch instead of executing immediately.
3. Read the route
HumanLatch returns approved_auto, pending_approval, or blocked based on policy and risk evaluation.
4. Execute only if allowed
Your app runs the capability only when the decision says it can. Otherwise it waits for approval or stops.
Copy-paste example
The integration is one decision call before execution.
Developers do not need to rebuild their product around HumanLatch. They add one call before executing a sensitive capability.
import { HumanLatchClient } from "@humanlatch/sdk";
const humanlatch = new HumanLatchClient({
baseUrl: process.env.HUMANLATCH_URL!,
workspaceId: process.env.HUMANLATCH_WORKSPACE_ID!,
apiKey: process.env.HUMANLATCH_API_KEY!,
});
const decision = await humanlatch.proposeAction({
action_type: "support.refund.issue",
target: "order-10428",
summary: "Issue a refund above the autonomous threshold",
payload: { amount: 850, currency: "USD" },
context: {
environment: "production",
requested_by: "agent:support-bot",
domain: "chatbot",
},
});
if (humanlatch.isApproved(decision)) {
await issueRefund();
} else if (humanlatch.requiresApproval(decision)) {
await waitForApproval(decision.id);
} else {
throw new Error("Blocked by HumanLatch policy");
}Works across industries
The same approval pattern works beyond cloud tooling.
Cloud and DevOps
Example capability
aws.iam.policy_change
Require a human before risky infrastructure, identity, or security changes execute.
Chatbots and Customer Ops
Example capability
support.refund.issue
Let the bot handle low-risk work while escalating refunds, escalations, and account actions.
Robotics
Example capability
robot.motion.execute
Pause a motion or maintenance action until an operator approves it.
Manufacturing
Example capability
manufacturing.line.override
Escalate line overrides, quality changes, or safety threshold changes before execution.