Testing
The Test panel lets you chat with your agent the way a customer would, before anything goes live. It always answers with the current draft, including edits you haven't published, so you can change a prompt block, ask the same question again and see the difference. Nothing you do in the Test panel reaches real customers.
Open the Test panel
Click Test in the header of any agent page that has it, such as Instructions or Tools. The panel opens on the right, next to your editor, so you can edit and test side by side. Its header shows Test · agent name and the draft number you're testing, like Draft v4.
You need the Editor role or higher to test. Viewers can ask the Copilot to run tests for them.
The draft saves first
Every time you send a message, the panel saves your unsaved edits first, so the reply uses exactly what's on screen. If the draft can't be saved, for example because a block has no title or text, the panel says Fix the incomplete blocks before testing. and doesn't send.
Send messages
- Type in Write as the customer… and press Enter, or click the arrow. Shift+Enter adds a new line. A message can be up to 4,000 characters.
- Attach files with the paperclip, or drag them onto the panel, to test how the agent handles photos and documents. See Files and attachments.
- While the chat is empty, the panel may show up to four example questions. The Copilot writes them when it sets up your agent. Click one to send it.
- Reset starts a new test conversation with an empty memory.
While the agent works, you watch the reply take shape:
- Thinking… until something arrives.
- Thinking, then Reasoning: the model's reasoning, for models that share it. It folds away once the answer starts. Click it to open it again.
- Each tool call as it runs, marked running…, then with a check or a cross and its time in milliseconds.
- The answer text as it's written.
After a reply, the bottom of the panel shows how many seconds it took, from your message to the finished reply.
Simulate: pretend to be someone else
The strip at the top of the panel sets facts for your test messages. Use it to try conditional prompt blocks and the customer profile without waiting for a real customer.
| Control | Options | What it changes | Default |
|---|---|---|---|
| Test as | Web widget, Telegram | The channel. Blocks with a Channel condition follow it. | Web widget |
| Hours | Real time, Open, Closed | Whether you're within business hours. Real time uses your actual Settings → Business hours. Blocks with a Business hours condition and the date-and-time context follow it. | Real time |
| Customer tags | Comma-separated, e.g. vip, wholesale | The customer's tags, for blocks with a Customer tag condition and the customer profile. Tags are lowercased, up to 20 tags of up to 40 characters each. | None |
| Customer name | Any name, e.g. Ayşe, up to 80 characters | The customer's name, for {{customer.name}} and the customer profile. With name protection on, the AI sees [NAME_1]. | None |
The language isn't a control in the Test panel. It's detected from each message you write, as with real customers: write in German to test a German-only block. See Language handling.
The settings apply to each message as you send it, so you can change them mid-conversation. For example, send a question with Hours set to Open, then switch to Closed and ask again.
Test each conditional block at least twice: once when its condition is true and once when it's false. The trace under each reply shows which blocks were sent.
Read the trace
Under every reply, a short trace line shows what the reply was built from:
| Part | Example | Meaning |
|---|---|---|
| Blocks | Blocks: Identity & tone, Returns | The prompt blocks sent with this reply. no blocks means none matched. |
| Facts | Web widget · language: Turkish · outside hours · #vip | The channel, detected language, business hours (open hours or outside hours) and customer tags the conditions were checked against. |
| protected | protected: [TCKN_1] [PHONE_1] | Personal-data placeholders used in this turn. The values are never shown. |
| Skills | Skills: refund-policy | Skills the agent loaded. See Skills. |
| Knowledge | Knowledge: Shipping FAQ #3 (0.82) | Knowledge passages added to the instructions, with their source, passage number and match score (higher is a closer match). See Knowledge. |
| Tools | Tools: order_status ✓ 200 · 412 ms | Each tool call: ✓ success or ✕ failure, the HTTP status when there is one, and how long it took. |
| Files | Files: photo.jpg (not shown to this model), price-list.pdf | The files the model got for this reply. |
Two notes can appear under a reply too:
- Fallback reply — the model couldn't answer. Every model failed, so the customer would have got your fallback reply. See Retries and time limits.
- Blocked by: a guardrail, for example Blocked by: Stay on topic. The guardrail's reply was sent instead of an answer. See Guardrails and privacy.
A reply that failed with no fallback reply shows The agent couldn't answer. Check the model and try again.
Tokens, timing and reasoning
For tokens, open the conversation in the Inbox and click Why? on the reply. It lists the skills, tool calls with their status and time, knowledge read, files and prompt blocks, and the reply's size and time, for example 2140 tokens · 3.2 s. If the model shared its reasoning, it's under Reasoning. Test conversations appear in the Inbox with the channel Test panel. See Inbox.
The trace doesn't name the model that wrote the reply. The agent's models are the ones in its Model section. If a reply looks wrong only sometimes, check whether your fallback model answered, by testing with Fallback set to None.
Preview the final prompt
Preview final prompt, above the prompt blocks on the Instructions page, shows exactly what the model receives as instructions in a given situation, built by the same code as a real reply. The link also shows its approximate size, like ≈ 1250 tokens.
The preview panel has the same simulate controls as the Test panel, plus Language, because there's no message to detect a language from. It lists every block as Included or Skipped for that situation, then the full text with variables filled in, guardrail and handoff rules, and the date and time.
The preview doesn't include knowledge passages (they depend on the customer's question) or the conversation history. A note at the bottom says how many earlier messages each reply adds. The preview doesn't run the model, so it uses no credits.
Tests use credits
Every test message is a real AI run, so it uses credits like a live reply: the model's work, plus any guardrail check, web search or team call it makes. Your balance updates after each message. When the workspace is out of credits, the panel shows You are out of credits. with a link to Plan & credits, and you can't send more test messages until you add credits. See Plans and credits.
Test conversations are never counted in Analytics.
Tests run your real tools. An HTTP tool or Function called in a test sends a real request to your system. A test that creates an order creates a real order. Use a test account or a staging URL while you build, or turn on approval for actions that change something. See Approvals.
Checklist before you publish
Go through this list in the Test panel before every publish that changes behavior:
- The basics. Ask the three questions your customers ask most. Are the answers right, short and in your tone?
- Both languages. Write one message in Turkish and one in English, or whichever languages your customers use. Does the agent answer in the customer's language?
- Conditional blocks. For each block with a condition, test with the condition true and false using Test as, Hours and Customer tags. Check Blocks in the trace.
- Tools. Ask questions that need each tool. Check Tools in the trace for ✓ and a sensible status. Then ask one the tool can't answer, like an order number that doesn't exist.
- Knowledge. Ask something only your knowledge sources answer. Check that Knowledge lists the right source.
- Personal data. Send a phone number or TC kimlik number. Check that the trace shows protected: and that the reply shows the value the way you chose.
- Guardrails. For each one you turned on, send a message that should trigger it and one that shouldn't. Look for Blocked by:.
- Handoff. Ask for a person, or act out your own trigger, and check that the conversation asks your team to join.
- Edge cases. Send a message with only a photo, a very long message and a rude message.
- Fallback. Read your Fallback reply once more. It's what customers get if everything fails.
- The diff. In Versions, click Compare with live and make sure every change is one you meant.
The Copilot can run test conversations for you and read what happened. Ask it, for example: "Test the agent with three tricky customer questions and tell me what went wrong."