HUMANLATCH by VerdictLayer

Developer docs · VerdictLayer

Easy integration

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.