Testing and connecting an agent

Last updated

Watch the walkthrough

Test in the playground

Open the Playground tab in the designer and chat with your agent as if you were the customer. Every conversation you run is saved automatically — click History to revisit the last 20 test sessions for the agent, so you can compare behaviour before and after a change.

Under each reply, Nodes visited lists the steps the agent walked through, and FAQs used lists the questions from your AI Knowledge the reply drew on — only the ones it actually used, so you can check that a question was answered from the FAQ you expect. The same two things appear under the agent’s replies in live conversations — see Replying and adding private notes. If the agent notices a problem in your flow along the way — for example a product step searching the catalogue with a variable that holds a yes/no answer instead of a product — a Flow warning line appears there too, naming the step and the variable so you can fix it before publishing.

Nodes visited and FAQs used under a Playground reply

Playground test history

Test with photos, voice notes and PDF documents

Attach a photo, a voice note or a PDF in the Playground, the same way a customer would send one. Under the file, the chat shows what the agent read: an AI description of what is in the picture, the transcript of what was said, or an AI summary of the document. It is the same text your team sees on a live conversation, so you can check that the agent understood an order list, a screenshot, a spoken request or a quotation before it replies. The rest of the test conversation uses that reading too, so follow-up messages behave as they would with a real customer.

Photo description and voice transcript in the Playground

PDF documents work well for quotations, order forms, invoices, receipts, bank slips and booking confirmations: the agent picks out the items, amounts, dates and reference numbers, and a collect step can take its answer straight from the document. Scanned PDFs are read too. Other file types, such as Word, Excel or ZIP files, reach your team as files but are not read by the agent, and a very large PDF is passed on without a summary. A file that is damaged, password-protected or not really a PDF isn’t guessed at: the agent is told it couldn’t read the file, and no summary appears under it.

AI summary of a PDF quotation in the Playground

Record a voice message

Press the microphone beside the paperclip to speak to your agent instead of typing, the way a customer sends a voice note. The text box turns into a recording strip while you talk.

  1. Click the microphone and allow the browser to use it if asked.
  2. Say what the customer would say. The strip shows the sound and the time recorded.
  3. Click the blue Send voice message button (the arrow) to stop and send it in one go, or Discard recording (✕) to throw it away.

The microphone beside the paperclip, and the recording strip with ✕ and Send

The clip appears in the chat as a playable voice message, and once the agent replies, what it heard appears under the clip. Anything already typed in the box goes out with the clip as the same message. If the browser has blocked the microphone, the Playground asks you to allow it; the paperclip still takes a recorded file.

A sent voice message with the transcript under it and the agent's reply

Test as a real customer

By default the Playground plays an anonymous customer with no record, no ad and no labels, as an everyday chat would: routes that need an ad or a label stay hidden, and the agent knows nothing about who is asking. To test the flow exactly as a particular customer would experience it, click Scenario above the chat and describe who you are playing:

  • Load from a conversation — type a conversation number and the customer’s contact details, labels and the ad they arrived from, with its headline and text, fill in for you.
  • Contact — search for an existing contact, or type a name, phone number, email and any contact attributes by hand.
  • Ad — the Meta ad the customer clicked. Its Meta ad ID makes routes reserved for an ad behave as they would live, and its Ad headline and Ad text are read by the agent with the customer’s first message, as they would be live.
  • Labels — the labels on the customer’s conversation or contact.
  • Inbox — the inbox the conversation arrives on. The flow keeps time in that inbox’s timezone, and the Outside business hours text on End and Send message steps follows that inbox’s hours.
  • Time — a pretend moment for the conversation, so greetings, opening hours and other time-aware replies behave as they would then. The Testing as strip shows the inbox and time you picked.

Press Apply and the conversation restarts as that customer. A Testing as strip above the chat shows who you are playing, and whenever your route conditions hide a branch or send the customer straight down one, a note in the chat says which routes were affected. Conditions that read contact details — such as skipping the phone question when a number is already on file — use the record you entered.

Scenario dialog in the Playground

Inbox and time in the Scenario dialog

  • Reset keeps the scenario, so you can rerun the same customer in one click; Clear scenario in the dialog returns to the anonymous tester.
  • Changing the scenario restarts the test conversation — a real customer’s details are fixed from their first message.
  • History shows which customer each saved test session played as.

Routes hidden or forced for the scenario

See what the agent read from an ad

When the scenario carries an ad, its card shows above your first test message, as it does on a live conversation. Click Show more to read the whole ad text: the part the agent read shows as usual, and anything past the agent’s Meta ad text (characters) setting is greyed out under Not read by the bot. The agent stops at the last whole word inside that limit.

Ad card above the first Playground message, with the unread part greyed out

  • Only WhatsApp ads send their text. Facebook and Instagram ads send their headline only, so leave Ad text empty to test them.
  • On a live conversation, what the agent read of the ad the first time is kept: changing the setting later does not change what it reads in that conversation.

Try a different answer from an earlier reply

Under every reply of the agent except the latest one, click Answer differently from here to go back to that point of the test. The messages after it are set aside, a note in the chat marks where the test continues, and the details the agent had collected up to that reply are kept. Type a different answer and the conversation carries on from that step, so you reach a later branch of your flow without typing the opening again.

Answer differently from here under a Playground reply

  • The branch is saved as its own test session in History, starting with the messages you kept, and the Conversation panel shows the labels and details as they were at that reply.
  • If you saved the flow after that reply, a second note warns that the step you are continuing from may have moved.
  • The latest reply and a reply that ended the flow offer no such button. Type your next message, or press Reset to start over.

For developers: a scripted test run through the API or the MCP tools can continue an earlier run from one of its turns in the same way. See Branch a test run.

See which automations ran

When the agent changes the test chat in a way one of your automation rules listens for, such as adding a label, the rule runs on the test chat as it would on a live conversation. A line under the agent’s reply names each rule: Automation ran, with how many outside actions were held back, or Automation skipped (Testers only) for a rule switched to Testers only.

Automation ran and Automation skipped lines under a Playground reply

Open Conversation under the chat. Automations lists every rule that ran on this test chat, with what each action did:

  • done — the action changed the test chat: a label, the assignee or team, priority, status, a private note, or AI attributes.
  • would have run (not sent from a test) — the action would reach someone outside the test: a webhook, an email, a message, a Google Sheet row or a message sequence. Nothing is sent. Click What it would have sent to see the address and the filled-in text.
  • skipped: Testers only — the Playground’s test customer is never on your tester list, so these rules stay off here.

The Automations list in the Conversation panel, with a webhook and a team email held back

Reset starts a new test chat, and the list starts empty again.

Connect inboxes

Click Inboxes in the designer header and select which inboxes the agent should handle — each inbox can only be assigned to one flow agent. A chat the agent is paused in stays paused when you move its inbox to another agent, untick the inbox and tick it back, or delete the agent: the new agent stays quiet in that chat until someone resumes it. Per inbox you can also set:

  • Pause when a human replies — when a teammate answers (from the dashboard or the connected app), the agent steps back automatically instead of talking over them. It stays quiet for the agent’s Pause duration after handoff, and with No auto-resume it stays quiet until someone resumes it. Messages the app sends on its own, such as WhatsApp Business greeting and away messages, count as replies too.
  • Answer what came in during the pause — shown once Pause when a human replies is on. When the pause ends, the agent answers a customer message that arrived during it and that nobody answered. See Answer what came in during the pause below.
  • Resume when a customer returns — when the agent is paused in a chat and the customer writes again after a long quiet spell, the agent answers again. See Resume when a customer returns below.
  • Active hours — the agent works this inbox only between the start and end times you set, every day, in the inbox’s timezone. A window that runs past midnight, such as 6:00 PM to 8:00 AM, is fine.
  • Labels — pick labels, or type a word to match every label containing it, then choose how the agent treats them. Don’t reply to these labels keeps the agent away from customers who have one, so VIPs or complaint cases stay human-handled. Only reply to these labels has the agent reply only to customers who have one, so a new customer gets no reply until a teammate or an automation adds the label. The conversation’s and the contact’s labels both count, and the check runs on every message: add or remove a label mid-chat and the agent starts or stops at the next message. Comment replies, and chats opened by a comment reply, are not limited by Only reply to these labels.
  • Only reply to chats from ads — the agent only replies to chats that started from a Meta ad. Pick From one of these ads and list the ad IDs, or From any ad to cover every ad. Chats opened by a comment reply still get the agent.
  • Ignore WhatsApp group chats — the agent stays out of group conversations.

An inbox in the Inboxes dialog with Active hours on and Labels set to Only reply to these labels

Outside an inbox’s active hours the agent stays quiet for everyone on that inbox: new customers are not taken into the flow, customers already partway through get no further replies from the agent, and no follow-ups go out. If the inbox has an out-of-office message, that plays instead. The agent badge at the top of each conversation reads Outside active hours with the window, so your team knows the silence is intended, and the bot button in the reply box still makes the agent answer when you want it to — see Replying and adding private notes.

Conversation badge reading Outside active hours

Answer what came in during the pause

A customer often writes again a few seconds after your teammate replies, while the agent is paused. Without this switch the agent never goes back to that message, so the customer waits until they write once more. Switch on Answer what came in during the pause for the inbox and the agent answers it when the pause ends.

Pause when a human replies and Answer what came in during the pause switched on for an inbox

  • The agent answers when the pause runs out, or when someone resumes it.
  • It answers only if the customer wrote last and nobody on your team replied after them. Internal notes don’t count as a reply, and the agent never reads them.
  • It reads the recent chat first, including your team’s replies and any voice notes or photos sent during the pause. Several messages are answered in one reply.
  • Only a pause that started with a team reply counts. After the agent hands a chat over, it stays quiet as before.
  • A message more than a day old is left for your team.

Resume when a customer returns

A chat the agent was paused in, because a teammate replied or someone paused it, stays paused for good with No auto-resume. A customer who comes back months later would then get no answer. Switch on Resume when a customer returns for the inbox and set Days without a customer message (60 to start with). When the customer writes again after at least that many days without a message from them, the agent answers this new message.

Resume when a customer returns switched on for an inbox, with Days without a customer message set to 60

  • Only the customer’s own messages count. Replies from your team don’t reset the wait.
  • The chat shows a note: “Flow agent … resumed — the customer wrote again after … days”.
  • After that the agent follows its usual rules. A chat that stopped mid-flow continues at its open question with earlier answers kept. A finished flow starts over, unless the agent keeps chatting after the flow ends.
  • The inbox’s out-of-office message is not sent on top of the agent’s reply.

Publish

Click Publish and choose who can talk to the agent:

  • Public — everyone messaging the connected inboxes.
  • Testers only — only your workspace testers: the people listed under Settings → Account Settings → Testers, shown in the dialog as Workspace testers so you can add someone before you publish. Use it to trial the agent on a live channel before opening it up. The same list covers message sequences and automation rules switched to Testers only — see Account (general) settings.

If the agent is set to hand off silently (a blank handoff message), the first publish shows what customers will experience and asks you to confirm before going live.

Once customers start talking to the agent, the flame button in the designer toolbar shows which steps they reach and where they drop off — see See where customers go.

Publish dialog

Start a test over with ##reset

Anyone on the workspace tester list can restart a test from their own phone. Send ##reset as a message on its own in the chat with the agent (capitals don’t matter). The agent confirms with “Flow reset — your next message starts the flow from the beginning.”, and your next message is treated as a brand-new customer’s first message, in the same chat. You don’t need a new number or a new chat to see the opening again.

A reset clears the labels the flow’s steps added, the AI columns filled in from that test run, and the submission it recorded. Other labels and the contact’s details stay as they are.

##reset works whether the agent is published to Testers only or Public, as long as you are on the tester list. From anyone who is not on the list, it is an ordinary message.

Behaviour settings

The Settings button in the designer header controls how the agent behaves in conversation:

  • Keep answering after the flow ends — the agent stays available for questions once the flow finishes, instead of going quiet.
  • Answer FAQs on the first message — if a customer’s very first message matches your AI Knowledge, the agent answers it with the flow’s opening: your greeting goes first, then the answer, then the rest of the flow. When the flow opens with a question, or an AI conversation step runs before the greeting, the answer comes first.
  • Continue the flow after an FAQ answer — on by default: after answering a question from your AI Knowledge or product catalogue, the agent carries on — it asks its pending question again, or plays the greeting and opening question when the question was the customer’s first message. Turn it off to have the agent stop after the answer and wait for the customer’s next message; the flow then starts (or resumes) on the next message that isn’t a question.
  • Ignore the language of Meta pre-filled messages — off by default. When a customer arrives from a Meta ad, or taps the WhatsApp button on one of your Facebook posts, their first message is usually the pre-filled text, in the ad or post’s language rather than their own. Turn this on and that message neither sets nor changes the conversation language: the opening is sent as you wrote it, and the agent follows the language the customer types from their next message. A customer who asks for a language in that message, such as “please reply in Chinese”, still gets it. Messages customers type themselves count as usual.
  • Let AI rewrite messages — the agent rewords flow and FAQ messages to match the tone you configured in AI Knowledge → Behaviour, and words each FAQ answer around what the customer asked, using the details they gave, such as how long they have lived in a house or the service they named. When an answer only covers a case that isn’t theirs, such as paying now when they will pay tomorrow, the agent adds that your team will confirm their time once they have done it. Facts, prices, dates, and links are never changed.
  • Try to help before handing off — before passing a conversation to your team, the agent checks whether it can still help: it may ask one clarifying question, or answer using only what your flow and AI Knowledge actually say. It never invents information, and customers who ask for a human are always handed off immediately. Off by default — turn it on per agent when you’re ready. You can also list details for the agent to collect first — see below.
  • Pause duration after handoff — how long the agent stays quiet after a handoff before resuming (15 minutes to 24 hours, or never).
  • Re-ask limit for collect steps — how many times the agent asks again for a required detail before moving on.
  • Delay before replying — an optional pause so responses feel less instant.
  • Show typing before messages — on by default: the agent pauses briefly between its messages, and on WhatsApp numbers linked by QR code (Normal WhatsApp Web Link) the customer sees “typing…” first. This human-like pace helps keep those numbers from being flagged by WhatsApp. Turn it off where instant messages matter, such as payment details followed by a QR code: the agent then sends all the messages of a reply one right after another. On numbers linked by QR code, a short pause still follows a picture and separates the messages of a follow-up. Delay before replying still applies before the reply starts.
  • Quiet hours for follow-ups — no follow-up messages between the start and end times you set, in the inbox’s timezone. A follow-up due in that window goes out when it ends.
  • Facebook post context — how much of a post’s text the agent sees when replying to comments on it.
  • Meta ad text (characters) — how much of a Meta ad’s text the agent reads with the customer’s first message. The ad’s card on the conversation greys out the rest under Not read by the bot.

The dialog also lists Business hours for every inbox connected to the agent, with its schedule and timezone, so you can set the hours that the Outside business hours text on End and Send message steps follows without leaving the designer — see The handoff message.

Flow agent settings

Details to collect before handing off

When Try to help before handing off is on, a list called Details to collect before handing off appears under it. Add the details your team needs to act on a handover — a phone number, a preferred callback time, an order reference — each with a short note on what to ask for, and press Save.

When the agent has to hand over a routine question it cannot answer, it asks for these details once, all in one message, in the customer’s language, and makes clear they are optional. Whatever the customer replies, the conversation goes to your team next, with a private note Collected before handoff that shows their question and each detail; anything skipped is marked not provided. The details also appear in the flow’s submissions like any other collected detail.

The agent never puts this ask in front of an urgent customer: someone who asks for a person, or is clearly upset, is handed off straight away. Details the flow already collected are not asked for again, and if the customer goes quiet for 15 minutes the handover happens anyway with whatever was shared.

Details to collect before handing off in the agent's Settings

If the agent ever stops replying with an error about limits, check your plan’s AI credit usage — the agent pauses when the account’s credit limit is reached and resumes once it renews or is raised.

If a reply fails because of a temporary service hiccup, the agent hands the conversation to your team with a note in the conversation, then quietly tries once more a few minutes later — unless someone has already replied or paused it. You can also make the agent reply on demand with the bot button in the conversation reply box — see Replying and adding private notes.