Overview
When a service’s write permission is set to human approval, CelerFlow pauses the tool call and waits for a human to approve or deny it. This is the Human-in-the-Loop (HITL) flow.How it works
Agent calls a tool
The agent tries to call a tool that matches a service with
write_permission: human_approval (e.g., gmail_send).CelerFlow creates a confirmation request
The tool call is paused. A confirmation request is created with the tool name, service, parameter summary, and a 5-minute expiry.
Human is notified
The notification appears in one of these channels:
- Dashboard — the confirmation queue shows pending requests.
- Telegram / Slack — for OpenClaw agents, the notification is sent through the agent’s existing messaging channel with inline approve/deny buttons.
- WhatsApp / Telegram — for non-OpenClaw agents, the user sets up an approval channel by scanning a QR code in the dashboard.
Human decides
The reviewer sees the tool name, parameters, and context, then clicks Approve or Deny.
Confirmation request fields
| Field | Description |
|---|---|
tool_name | The tool being called (e.g., gmail_send). |
service_name | The service it belongs to (e.g., gmail). |
tool_args_summary | Sanitized parameters (truncated, no secrets). |
action_description | Human-readable description of the operation. |
status | pending, approved, denied, or expired. |
decision_channel | Where it was decided: dashboard, telegram, slack. |
expires_at | Auto-expires after 5 minutes. |
Approval channels for non-OpenClaw agents
OpenClaw agents already have messaging channels (Telegram, Slack, Discord). For agents connected via the MCP Gateway:- Open the agent’s settings in the dashboard.
- Select an approval method: Telegram, WhatsApp, or Dashboard only.
- For Telegram/WhatsApp, scan the QR code to connect the CelerFlow bot.
- Future approval requests are sent via that channel with inline buttons.
Human approval requires the Pro plan or higher. On the Free plan, only
allowed and blocked are available for write permissions.