Skip to main content

Overview

When a human (concierge, support agent, account manager) needs to handle a WhatsApp conversation directly, you can pause the AI agent for that specific phone number. The agent stops processing inbound messages until the pause expires or is manually resumed. This is a per-conversation pause — other conversations continue to be handled by the agent normally.

How it works

  1. A pause is created (manually via API, on outbound message, or by agent proposal)
  2. Any inbound message from that phone number is skipped — no agent run is triggered
  3. The pause auto-expires after a configurable duration (default: 30 minutes)
  4. Every manual outbound message resets the timer — the agent stays paused as long as the human is actively responding
  5. The pause can be resumed early via API

Creating a pause

Via API

Via outbound message

When you send a message through the API (dashboard, SDK, or direct API call), WhatsRB automatically creates or extends a pause for that phone number. This means the agent stays silent while a human is actively responding. Only messages with triggered_by: "api" trigger this behavior. Auto-replies from agents (triggered_by: "auto_reply") do not pause the conversation.

Via agent proposal

An agent can propose a human takeover by including a system.conversation.pause action in its output:
WhatsRB intercepts this action, creates the pause, and removes it from the webhook payload — your backend never sees it. It’s a system action.
system.conversation.pause and system.noop.skip are automatically available to all agents — they don’t need to be in allowed_actions. All system.* actions are internal and never appear in webhooks.

Checking pause status

Resuming a pause

Configuring the default duration

Each business account has a human_takeover_duration setting (in minutes, default: 30):

Listing active pauses

Webhook events

Two new events are fired: Pauses that expire naturally do not fire conversation.resumed — the agent simply starts processing inbound messages again on the next one.

conversation.paused payload

Behavior summary

Human takeover is per-conversation (phone number), not per-agent. When a pause is active, all agents are paused for that number.