HelpStackDocs

Guides

Routing & handoff

This guide covers how conversations get to the right person. There are three pieces: assigning conversations to a teammate (by hand), letting the AI hand a conversation off to a human when it's out of its depth, and auto-routing new conversations to agents with rules. Together they make sure nothing slips through and every customer reaches someone who can help.

Sections#

Assigning conversations to agents#

Every conversation can be assigned to one teammate, so it's clear who owns it. Open a conversation and use the Assign dropdown in the header — it lists everyone in your organization who can handle conversations (owners, admins, and agents). Pick a person and the conversation is now theirs; the dropdown shows the current assignee so you always know who's on it.

Assigning is manual and always wins: even if a routing rule put a conversation on someone, you can reassign it at any time and your choice sticks. (Channel rules only run once, when a conversation is first created. Tag rules can move a conversation later, but only one that nobody has assigned by hand; once you assign it, or unassign it, yourself, no rule touches it again.)

The inbox: tiers, badges, and filters#

The conversations list is ordered to put what matters most at the top, rather than being strictly chronological. You'll see, in order:

  1. Conversations assigned to you that are unread — your own work, first.
  2. "Needs human" conversations that are unread — anything the AI has handed off and nobody has picked up yet.
  3. Everyone else, newest activity first.

Two badges help you scan:

  • You — marks conversations assigned to you.
  • Needs human — marks conversations the AI has escalated and that no agent has replied to yet. Once someone replies, the badge clears (the conversation has been picked up), even though the AI stays out of the thread.

If you'd rather not have the list reordered, use the filter chips at the top:

  • All (the default) — everything, in the tiered order above.
  • Mine — only conversations assigned to you.
  • Needs human — only the un-picked-up escalations.

Nothing is ever hidden — other agents' conversations stay visible and you can open any of them.

AI handoff to a human#

On channels where the AI replies automatically, it can decide a conversation needs a person — for example the customer is frustrated, the question is outside what it can answer, or the customer explicitly asks for a human. When that happens the AI hands off:

  • The conversation is marked "Needs human" and moves to the PENDING status.
  • It's routed to whoever the conversation is assigned to. If it isn't assigned to anyone, it goes to the shared "Needs human" queue for the whole team to see.
  • An ESCALATED notification is sent (see below).
  • The AI sends the customer one short, honest closing line — something like "I've flagged this for a teammate; they'll follow up as soon as they can." It never promises an instant reply.
  • The AI then goes quiet on that conversation. It won't reply again until a human explicitly hands it back.

From the customer's side, there's no jarring "you're being transferred" — just a friendly note that a person will follow up, and then your team takes over.

On Auto Prepare channels a teammate reviews every draft anyway, so the AI hands off less: only for a complaint, a dispute, a decision only a person can make, or when it has nothing useful to say. Otherwise it writes the full draft and leaves you a note on what to check (see AI replies). A handoff there does not stop the drafts either: every new message from the customer still gets a draft for your team to review.

Picking it up vs. handing it back

Two things happen, on purpose kept separate:

  • Replying picks it up. As soon as an agent sends the first reply, the conversation drops off the Needs human tier — it's been claimed. The AI still stays out of the thread; the human now owns it.
  • Resume AI hands it back. When you're done and want the AI to take over auto-replies again, click Resume AI on the conversation. Only then will the AI start answering on that conversation again. (Closing or archiving the conversation also clears the handoff.) While the AI is paused, a yellow banner above the conversation says so, with the Resume AI button right in it.

Either way, the AI will naturally engage again the next time the customer starts a new conversation.

The AI control tools#

The AI's built-in abilities come from five control tools (system tools) you can switch on or off in Settings → Tools, alongside your other agent tools:

  • request_human — lets the AI hand a conversation off to a human, as described above.
  • close_conversation — lets the AI close a conversation it has fully resolved. (It can't close a conversation that's been handed to a human.) If the customer writes back later, a fresh conversation simply starts.
  • save_customer_info — lets the AI remember details the customer shares about themselves, such as their email or an order number, and show them to your team.
  • add_agent_note — lets the AI leave an internal note for whoever reviews its draft, saying what to check before sending. Only used when a person reviews the draft. See AI replies.
  • no_reply_needed — lets the AI close out a message that needs no answer (a supplier invoice, a newsletter, a plain "thanks") without drafting one. The conversation stays in your inbox. See AI replies.

All five are on by default, and you can't delete them. If your team doesn't want one of these behaviours, turn the relevant tool off and it stops.

Auto-routing with rules#

If you'd rather not assign everything by hand, set up routing rules in Settings → Routing. A rule says, in effect, "new conversations on this channel go to this group of agents."

Each rule has:

  • A condition — match a whole channel type (for example, all Facebook conversations), a specific channel, or any combination, and optionally tags. Leaving a condition blank means "any".
  • An agent pool — the teammates the rule routes to. With more than one agent, conversations are shared round-robin (taking turns), so the load is split evenly. Inactive teammates are skipped automatically.
  • An order — rules are checked top to bottom, and the first one that matches wins. Use the up/down controls to arrange them, with your most specific rules above the broad catch-alls.

A few things to know:

  • Rules without tags run only when a conversation is first created. They never reassign existing conversations, and your manual assignments always take priority.
  • A rule with no channel and no tag condition matches every new conversation, so the editor warns you before you save one. Removing the last condition from an existing rule isn't allowed; delete it and create a catch-all rule instead if that's what you want.
  • No rules means manual only — if you haven't created any, nothing is auto-assigned and your inbox works exactly as before. Small teams can ignore routing entirely.
  • A rule's assignee also feeds the AI handoff: if the AI escalates a conversation that a rule routed to Jane, the "Needs human" alert goes straight to Jane instead of the whole team.

Routing by tags

If you use tags, a rule can also route on them. Pick one or more tags in the rule's Tags field and the rule matches a conversation that has any of them. Tags combine with the channel conditions: a rule for Facebook plus the tag Refund only matches refund conversations that came in on Facebook.

Tag rules work a little differently from channel rules:

  • They run when tags are applied, not when a conversation is created. A new conversation has no tags yet, so tag rules are skipped at that moment and your channel rules decide as usual. A few seconds later, when the AI tags the conversation (or a teammate adds or removes a tag by hand), the tag rules are checked top to bottom, and the first one that matches routes the conversation round-robin to its pool.
  • They never override you. A tag rule only moves a conversation that nobody has assigned yet or that a rule assigned. If someone on your team assigned it by hand, it stays where they put it, and if someone unassigned it by hand, it stays unassigned. Closed conversations are never moved.
  • They don't reshuffle needlessly. If the teammate a rule already picked is also in the matching tag rule's pool, they keep the conversation.
  • Each tag rule moves a conversation at most once. If the matching rule has already routed that conversation, nothing happens, even if the tag comes and goes. This keeps a conversation from bouncing between people as its tags change, for example a state tag like Waiting on customer that comes and goes.
  • The Tags field only appears when your plan includes conversation tagging, and only your active tags can be picked. If a tag on a rule is later archived, it stays on the rule (marked as archived) until you remove it yourself. A new tag rule applies from the next tag change on; it doesn't re-sort conversations already in your inbox.
  • The teammate a tag rule picks gets the usual Conversation assigned notification.
  • Sentiment tags can't be used. Tags in the Sentiment category are left out of the picker and refused if you try. How a model reads tone varies a lot between languages, so it makes a poor basis for who gets a conversation (see the note in the Tags guide).

The "Needs human" notification#

When the AI hands a conversation off, it fires the ESCALATED notification event. Like every other event, you control it in Settings → Notifications — turn it on or off per delivery channel (browser alert, push, email, Slack, Discord, and so on). Browser alert is on by default, so once you turn on sound and desktop alerts, escalations chime in your open HelpStack tab out of the box. See the Notifications guide for the full grid and how scopes work.