Turn verification and holding the reply

Conversa Labs

Conversa Labs

Last updated on Jul 27, 2026

Overview

Between the moment the Bot finishes writing and the moment the contact receives the message, there is now a checkpoint. It runs on every delivery path β€” text, voice, and also the tools that talk to the contact directly β€” and does two things:

  1. It checks the surface of the reply. Leaked internal markup, phrases and personal data blocked in the configuration, the wrong language, unresolved template fields ({contact.name}, [NAME]), a link/phone/price that appears nowhere in what the account has on record nor in what that turn looked up, a near-identical repeat of the previous message, and size caps.
  2. It reconciles what the reply claims with what the turn executed. If the message says "I've booked you" and the calendar tool never ran β€” or ran and failed β€” the claim does not hold up.

When something is caught, the platform has a ladder of reactions, from lightest to heaviest:

Reaction What happens
Remove the fabricated token Only the link/phone/price that does not hold up is removed; the rest of the sentence stays.
Delete the sentence The unsupported claim is deleted and a neutral line saying it will confirm and get back replaces it. It is deletion, not rewriting.
Redo once The Bot redoes the turn with the correction pointed out. Limited to one redo per turn.
Hold The reply does not go out. It waits for a person to approve. This is the option you switch on under "Hold the reply" (below).
Block Nothing goes out (for example, a human took over the conversation mid-turn, or the message would be an exact duplicate).

Read the limits section before presenting this to your team. This layer does not make the Bot incapable of being wrong. It removes the most common forms of "I already did it" when the doing never happened β€” and there are ways of writing that get past it.

Prerequisites

  • Maestro enabled and a Bot configured on the inbox.
  • The per-module tools the Bot uses must be enabled β€” their execution is the evidence reconciliation compares against. No execution, nothing to compare with.
  • Account records up to date (products, prices, domains, teams). That is what makes a fabricated link or price recognizable; whatever is not on record tends to be treated as fabricated.
  • Administrator permission to change the Bot's hold policy.
  • To hold: somebody on duty to approve. With nobody watching the queue, holding is the same as not replying.

Step by step

The check is automatic and has no on/off switch. What you configure is the hold.

  1. Open the Bot configuration (the Maestro agent) used by the inbox.
  2. Find "Hold the reply for human approval".
  3. Pick one of the three options (detailed in the next section). The default is Always deliver.
  4. As soon as you move away from "Always deliver", the screen shows a highlighted warning: while the reply is held, the contact waits. Read it before saving β€” that is the real cost of the option.
  5. Save.
  6. To follow up: a held reply creates a private note on the conversation and enters the approval queue in the Maestro panel, alongside the other approvals.
  7. When reviewing you can approve (the reply goes out exactly as it was), edit and send (your version goes out) or reject (nothing is sent; the conversation can optionally be handed off to a human).

Settings & options

The three hold options

Option What happens Honest cost
Always deliver (default) The reply goes straight to the contact. The check still runs and still corrects the text β€” it just holds nothing. None. Nobody waits.
Hold when the reply claims something the turn did not do Only replies with an unsupported claim are held. Everything else is delivered right away. The contact waits exactly in the cases that matter β€” which are also the cases where the reply would have been wrong.
Hold every reply for human approval Every reply waits for a person, including "hi, how can I help?". The contact waits on every message. In practice this is human support with an AI draft.

What "hold" means, without euphemism: while held, the message does not exist on any channel. The contact sees no typing indicator, gets no notice, receives nothing β€” they see silence until somebody approves. If the hold happens at 7pm and the queue is only checked at 9am, the contact waited all night.

That is why the default is Always deliver, and why the warning appears the moment you change the option. Turn holding on when:

  • somebody is on duty watching the approval queue during the hours the Bot answers; and
  • the cost of a wrong claim is higher than the cost of the delay (money, health, legal, calendar commitments).

If you have nobody on duty, the most balanced combination is usually Always deliver plus the automation trigger Reply claimed an action that never ran alerting a supervisor. The contact does not wait, and someone chases the damage within minutes.

What the check hands back to the conversation

  • The delivered message already comes corrected (sentence deleted, fabricated token removed).
  • Internal failures become private notes β€” they never reach the contact.
  • The automation triggers about the AI let you react automatically (label, assign, alert). See the article under "See also".

Use cases

  • Clinic / provider with a full calendar: "Hold when the reply claims something the turn did not do", with the front desk watching the queue during business hours. The patient never receives an appointment that does not exist; on every other message the reply is immediate.
  • Billing and payment links: same option. A payment link claimed but never generated is the kind of mistake that produces support tickets, not sales.
  • 24h operation with no night shift: Always deliver. Holding overnight protects nobody β€” it turns a rare mistake into guaranteed silence.
  • New Bot, first week in production: some teams switch Hold every reply on for a few days, with one dedicated person, purely to calibrate tone and instructions. It is expensive and does not scale; use it as a trial period, not as a permanent setting.
  • Account with lots of branded content (links, prices): keep the records up to date before enabling holds, otherwise you will be manually approving correct replies whose legitimate link simply was not on record.

Tips, limits & best practices

This is the most important section of the article. Use these words with your team β€” promising more than the platform delivers costs more than the gap the promise would hide.

Do not describe this as "the AI can no longer hallucinate". That is false. The Bot can still assert something wrong, and can still do it in a way that gets past the check.

Reconciliation is lexical. It recognizes ways of writing, not meaning. The patterns cover the direct, first-person way of saying something was done ("I've booked", "it's scheduled", "I created", "I sent the link") in Portuguese, English and Spanish. Paraphrase escapes. An indirect sentence, a roundabout one, a very long one, passive voice, or an unusual phrasing gets through reconciliation β€” including when it asserts exactly the same thing.

This is a design choice, not a bug to be fixed later: the false-positive limit is hard. Sentences in the future tense and questions ("can I book you for tomorrow?", "I'll check and confirm") never trigger a claim, because deleting those would break legitimate conversations all the time. The price of that safety is precisely the lower recall.

Other limits, equally honest:

  • Seven families of claim are recognized: booking, record created, document sent, payment link, handoff to a human, price quoted and promised follow-up. Outside those seven, there is no reconciliation at all.
  • The reference is the current turn, not the state of the system. If the action happened by another route (an agent did it by hand at the same moment, or a slow process finished afterwards), the reply may be corrected "unnecessarily".
  • Deleting the sentence is not rewriting. What remains can read dry. Better than a false promise, but do not expect elegance.
  • Fabricated links and prices depend on what the account has on record. A legitimate domain that is not on record may be removed by mistake until you add it β€” that is an expected false positive, and the fix is to add it.
  • The check does not validate real-world facts. It does not check whether the information is correct, whether the reasoning makes sense, or whether the policy the Bot quoted exists. It verifies one thing only: whether the reply asserts a result that the turn does not support.
  • Holding does not fix what got through. If the claim was written in a way reconciliation does not recognize, the "Hold when the reply claims something the turn did not do" option holds nothing β€” the reply goes out normally. Anyone who wants a total barrier needs "Hold every reply", with the cost that carries.
  • Redo is limited to once per turn. A turn that was already corrected and fails again is softened or held, not redone indefinitely.

Best practices:

  • Treat failure private notes as a work queue: a logged failure is a contact waiting.
  • Actually enable the tools the Bot needs. A disabled tool produces exactly the scenario the check corrects β€” and frustrates the contact just the same.
  • For sensitive actions, prefer human approval of the action (hybrid autonomy) over holding the reply β€” it is cheaper, because it prevents the problem before the text exists.
  • Review weekly where the check acts most. Repetition at the same point almost always means an ambiguous instruction or a broken integration, not "bad AI".

Troubleshooting

  • "The contact got 'I'll confirm and get back to you', but the action worked": the action probably completed outside the turn. Confirm in the module and reply to the contact; nothing needs to be undone.
  • "The Bot claimed something that did not happen and it got through": known limit β€” the phrasing fell outside the recognized patterns. Keep the excerpt, make the Bot's instructions more direct at that point, and if the risk is high turn that step into an action with human approval.
  • "I turned holding on and the contact was left with no reply": that is the documented behavior. While held, the reply does not go out. Check the approval queue; if nobody watches it during those hours, go back to Always deliver.
  • "The reply came out clipped/dry": the offending sentence was deleted. If it happens often on the same topic, adjust the instructions so the Bot does not promise a result before executing it.
  • "A legitimate link of ours disappeared from the message": the domain is not on the account's records. Add it and the problem stops.
  • "The Bot answered in the wrong language and the message did not go out": the check treats a language mismatch as a surface problem. Pin the language in the Bot configuration if your operation is monolingual.
  • "Where do I see what was held?": on the conversation, via the private note, and in the approval queue of the Maestro panel β€” the same place as the other approvals.

See also