Skip to main content
The Conversations Agent is your assistant for the Conversations tab. Open that tab and the chat sidebar switches to it. It knows about your contacts, their conversation history, and the state each conversation is in, so it can help you triage the inbox and prepare replies.
It can only draft — it never sends. When you ask it to reply to a customer, it hands you a draft to review and send yourself from the conversation view. There is no tool for it to send a message, so “just send it” won’t work. This is deliberate: a message going out on your WhatsApp number is always your decision.

Don’t confuse it with the AI in your bot

These are two different things that both involve conversations, so it’s worth separating them clearly.
  • The Conversations Agent (this page) talks to you, in the Paige sidebar, while you read your inbox. It helps you find contacts, understand context, and draft replies.
  • The AI in your bot talks to your customers, on WhatsApp, as part of the bot you deploy.
The Conversations Agent works on conversations that already exist in your inbox. It doesn’t change how your bot behaves — for that, use the Code Agent.

Open the Conversations Agent

Open the Conversations tab in the dashboard. The chat sidebar switches to the Conversations Agent automatically, ready to answer questions about your contacts and messages.
“Show me contacts waiting in handover.”
“What did the customer on +2782… last say?”
“Draft a reply letting them know their order ships tomorrow.”

What it can do

Find contacts

List and search your contacts by name, phone, or conversation state — and see at a glance who’s still inside the 24-hour messaging window.

Read history

Pull the recent messages for a contact so it has the context it needs before suggesting or drafting a reply.

Change states

Move a single conversation — or a batch at once — into a different state, such as handing a conversation over to a human.

Draft replies

Compose a reply for you to review, copy, and send yourself. It never sends on its own.

Propose a template send

When the 24-hour window has closed, it can put an approved template in front of you, filled in and ready — you press the button.

Propose a new template

If no template fits, it can draft one and hand it to you to submit to Meta.

The tools it uses

The agent has nine built-in tools it uses behind the scenes to complete your requests.

list_contacts

Lists contacts with optional filters (state, search, pagination). Each contact is tagged with a computed in_24h_window field so you can see instantly who you can still message freely.

get_contact_messages

Fetches recent messages for a contact, so the agent can read the conversation before drafting a reply.

list_conversation_states

Returns every unique conversation state currently in use across your inbox.

update_conversation_state

Changes the state of a single conversation. Can’t update conversations that have ended.

bulk_update_state

Changes the state for many conversations in one call — capped at 100 per call.

draft_message

Returns a draft reply for a contact. It never sends — you copy the draft and send it from the conversation view.

propose_template_send

Puts an approved template, with its placeholders filled in, into an approval card in the chat. Nothing is sent until you press the button on that card.

propose_template_create

Drafts a new template — name, category, body, example values — into an approval card. Submitting it to Meta is your click, not the agent’s.

tag_contacts

Adds or removes tags on one contact, and writes the change immediately — no card. Tagging a whole group is the Broadcasting agent’s job.

Tagging someone mid-conversation

With a conversation open, just ask: “tag them as vip”, “mark this person as a lead”, “take the trial tag off them”. The tags in the thread header update as it writes. There’s no approval card here, unlike a template send. One contact is a small, obvious change you can undo with a tap in the tag editor, so a card would be ceremony rather than safety. The limit is structural, not a matter of the agent behaving well: this tool takes one contact, never a list, so there is no way for it to tag your whole address book. Tagging a group means going to the Broadcasts tab, where the Broadcasting agent works out who matches, tells you how many people that is, and waits for you to approve.
It tags people who already exist. If the contact isn’t in your list, you get told so — the agent never creates a contact as a side effect of tagging one.

Proposals are cards, not actions

The two propose_* tools don’t do anything by themselves. They render a card in the chat, and your browser performs the send or the submission when you press its button — under your own session, with your own permissions. That’s a structural guarantee rather than a promise about the agent’s behaviour: there is no tool that sends a template or creates one, so a confused or misled agent has nothing to call. The worst it can do is put a card in front of you that you decline.

The 24-hour window and handover

Two rules gate what the agent can do, and both exist to keep you on the right side of WhatsApp’s messaging policy.

Drafting is gated by both the window and handover

Before it will draft a message, draft_message checks two conditions — and both must be true:
  1. The contact is inside the open 24-hour window. WhatsApp only lets you send a free-form message within 24 hours of the customer’s last inbound message. Outside that window you need a pre-approved template, so the agent won’t draft a free-form reply.
  2. The conversation is in a handover state. Handover means the bot has stepped back so a human can reply. If the conversation isn’t in handover, the agent tells you to enable handover first.
If either condition fails, the agent explains which one and stops — it won’t hand you a draft that couldn’t be sent anyway.

Moving a conversation into handover is checked too

When you ask the agent to move a conversation into handover, that change runs an eligibility check first: the contact has to be inside the open 24-hour window. If they’re outside it, the move is refused with a clear reason, because there’d be no way to reply to them free-form once handed over.
Bulk changes re-check every conversation individually. bulk_update_state handles up to 100 conversations per call, and when you’re moving them into handover it runs the same eligibility check on each one. Some may succeed while others are refused — the agent reports back which conversations it updated and which it couldn’t, with the reason for each.

What it can’t do

The Conversations Agent works only with your existing conversation data. It can’t send a message, submit a template to Meta, delete a contact or conversation, change your bot’s code, or reach any system outside your inbox. It can propose a template send or a new template, but you are the one who presses the button. Ask it to write or fix bot behavior and it’ll point you to the Code Agent.