Voice DNA · 5 min read

The Advanced Part Is Refusing: Confidence, Queues, Grounding

The PostEngage teamEngineering and support ·

Beginner setups are judged on the replies that go out. Mature setups are judged on the ones that do not, and almost all the remaining engineering — yours, not ours — lives on that side.

A reply can end up in four states. Sent. Held for review. Never generated in the first place. Or generated and then blocked. Beginners configure the first. This post is about the other three.

Never generating is better than generating and checking

The strongest control you have is the one that runs before any model is involved.

If a message is about a refund, a complaint, somebody's health, a legal question, or a quantity-dependent quote, the right number of generated replies is zero. Not a cautious reply. Not a reply that hedges. None. And the place to enforce that is the trigger, using negative keywords — the same field where not interested lives.

This is unglamorous and it is more reliable than anything downstream, for a simple reason: a reply that was never composed cannot leak. It also costs nothing, because a credit is spent only when the AI writes a new reply. Templated replies are free and unlimited, so a category you route to a fixed "let me check and come back to you" is free forever.

Grounding: the reply should be traceable to something you gave it

The failure that damages trust fastest is not a clumsy sentence. It is a specific, confident, invented fact — a delivery date, a discount eligibility, a stock level — delivered in a register that makes it sound authoritative.

Grounding is the discipline of only letting a generated reply assert things that came from material you provided. When the model cannot ground what it is about to say, the correct behaviour is not to soften the claim. It is to stand down and let your own template go instead.

That trade is worth stating plainly, because it is a trade. The customer gets a slightly less specific answer, quickly, that is true. The alternative is a beautifully specific answer that is wrong, and you find out about that one from a screenshot.

An ungrounded reply is not a worse reply. It is a different kind of object, and it should not be treated as a draft of a good one.

Practically, this means the material you provide is doing more work than the voice profile. The profile decides how the reply reads. What you gave it decides what the reply is allowed to say.

Low confidence goes to a queue, not to the customer

When the system is not confident, the reply is held for review rather than sent.

The review queue, showing generated replies held back for a person to approve or edit.
A queue is only a safety mechanism while somebody clears it. An unread queue is a slower version of no queue.

The queue is where most advanced setups quietly fail, and it fails for operational reasons rather than technical ones. Four rules keep it honest:

  1. One named owner. A queue that belongs to a team belongs to nobody. The person who owns it should be the person whose replies are the reference, if you can arrange that.
  2. A time box, not a target. Ten minutes, twice a day. Not "clear it when you can", which becomes never by Thursday.
  3. Small enough to clear in that box. If it is not, the triggers are too wide. Narrow them rather than hiring the queue more time.
  4. Understand that items expire on their own. Instagram allows a reply within 24 hours of the person's most recent DM, and 7 days for a comment. A queue item that sits for two days is not pending. It is dead, and the customer has moved on.

That last one is the part people are slowest to internalise. The window is not our rule and no setting extends it. A review queue is a same-day mechanism by construction.

Blocked is the last thing that happens, and it happens to good replies too

Ten checks run before any send, in a fixed order: kill_switch, connection, takeover, window, dedupe, cooldown, quiet_hours, rate_budget, credits, content_safety. The first failure stops the send and the reason is recorded against the run.

The ten checks in their fixed order, from kill switch through to content safety.
Order matters. Cheap, certain checks run before expensive, judgemental ones, and the only check that can read the finished text runs last.

content_safety sits at the end because it is the only check that needs the finished text to exist before it can judge it. Everything above it can be decided from the state of the account and the thread.

Which means a reply can be perfectly in your voice, correctly grounded, and still stopped. That is the system working. Read those rows rather than dismissing them — a content_safety stop on a message type you thought was routine usually means the trigger is catching something you did not intend.

Use the queue as a diagnostic

The queue is telling you something beyond "check this reply".

The same question landing in it repeatedly means a template is missing. Write the answer once and that question stops costing you both a credit and a review.

A whole category landing in it means it should not be generated at all. Move it to negative keywords.

Everything landing in it means the material you provided is too thin for the questions being asked, and no amount of extra voice reference will change that. Reference material governs register, not knowledge — a distinction the deep dive goes into.

Nothing ever landing in it is worth a look too. Either your triggers are genuinely narrow, which is good, or they are so wide that everything reaching the model is trivially answerable, which is usually not what is happening.

The one-line version

At this level the question is no longer "how do I make it sound like me". It is "what is the smallest set of messages this should touch, and what happens to everything else".

Answer the second question well and the first one mostly takes care of itself. If you are still on the first, start with what to feed it. If you want the check sequence explained on its own terms, that is documented here.

One email when we publish.

No drip sequence, no “quick question” follow-up. Unsubscribe is one click and we honour it immediately.

Try it on your own posts

Free forever. Three minutes to set up.

Start free