HUMANLATCH by VerdictLayer
Integration patterns
Use HumanLatch with the systems you already run.
These examples show common ways to place HumanLatch between an AI system and a consequential action: deployment workflows, tool execution, operator approvals, and event-driven orchestration.
CI/CD control
GitHub Actions and Terraform
Check a Terraform apply with HumanLatch before the workflow reaches production. Your pipeline can proceed automatically for low-risk changes, pause for approval, or fail closed when policy blocks the action.
This is a practical starting point for infrastructure teams that want approval gates without rebuilding their deployment workflow.
- name: Ask HumanLatch before apply
run: |
curl -X POST "$HUMANLATCH_URL/api/v1/actions/propose?workspace_id=$WORKSPACE_ID" -H "Authorization: Bearer $HUMANLATCH_API_KEY" -H "Content-Type: application/json" -d '{
"action_type": "terraform.apply",
"target": "prod-eks-cluster",
"summary": "Apply Terraform changes to production EKS",
"context": {"environment": "production", "requested_by": "agent:github-actions"}
}'Runtime safety
Agent tool wrappers
Wrap the real tool or executor boundary so an agent can request an action, but HumanLatch decides whether the live capability should be allowed to run.
This pattern works well for assistants, copilots, and agent frameworks that already call tools programmatically.
const verdict = await humanlatch.proposeAction({
action_type: toolName,
target,
summary,
payload,
context: { environment: "production", requested_by: "agent:assistant" },
})
if (verdict.status !== "approved_auto") {
return { blocked: true, status: verdict.status, id: verdict.id }
}
return await executeRealTool(payload)Operator workflow
Slack approval loop
Send pending approvals to Slack with the summary, target, and risk context so reviewers can make a decision quickly and return the system to a known state.
This is useful when teams already live in Slack and want HumanLatch to fit into their normal approval workflow.
Pending action: terraform.apply Target: prod-eks-cluster Risk: 50 Reason: production context Buttons: [Approve] [Reject] [Open in HumanLatch]
Event-driven orchestration
Webhook resume pattern
Use webhooks to resume orchestration after a human decision instead of polling for status forever. Your system receives the approval or rejection event and continues from there.
This keeps long-running workflows simpler and makes the approval step feel like part of the system rather than an external interruption.
POST /action.approved
{
"id": "action-123",
"action_type": "terraform.apply",
"decided_by": "user-456",
"note": "Approved for maintenance window"
}