Assign To (human)
Hand the conversation to one named teammate, or spread it across the workspace by round robin or fewest open contacts, with an optional timeout message if nobody answers.
Getting here
Automate → Workflows, open a workflow, click + on the canvas, then pick Assign To (human) under Add Steps.
Before you start
- An owner, admin or agent can add this step and save the workflow. Publishing that workflow — the thing that makes it run on live conversations — is an owner or admin action.
- Building and running workflows depends on your plan; see pricing.
- Somebody for the step to pick. The pool is every member of the workspace — you included — so a workspace of one assigns everything back to itself.
- Nothing outside Inchat has to be connected. The step only writes to the conversation.
Set up
- Open the workflow and click + where the assignment belongs — usually at the end of the path that needs a person.
- Pick Assign To (human).
- In Action, choose Assign to a specific user to name someone, or Assign to a user in the workspace to let the step pick.
- Naming someone: choose them under Assign To. Letting the step pick: choose Assign to users round robin or Assign to the user with least open contacts under Assignment Logic.
- Optional, under Advanced Settings: cap how many open contacts a teammate may already be holding, and switch on Add Timeout Branch with the message to send if the assignee has not answered in time.
- Save the step, then publish the workflow. A saved but unpublished workflow assigns nobody.
Fields
- Action
- What the step does: name one teammate, hand to an AI agent, hand to a team, let the workspace rota pick, or clear the assignee.
- Default: Assign to a specific user
- Limits: The AI-agent and team choices save a different step type; they have their own articles.
- Assign To
- The teammate who gets the conversation.
- Limits: Shown only for Assign to a specific user.
- Assignment Logic
- Assign to users round robin takes the next teammate after the current assignee — the first one when there is no current assignee, or when a cap took them out of the pool; Assign to the user with least open contacts takes whoever is holding fewest.
- Limits: Shown for the workspace and team choices, not when you name a person.
- Only assign to online users
- Intended to skip teammates who are away.
- Default: off
- Limits: Changes nothing today — see Limits.
- Only assign to users with fewer than … open contacts assigned to them
- Skips any teammate already holding that many open conversations or more, counted across the whole workspace.
- Limits: Offered and saved only together with an Assignment Logic; ignored when you name a person.
- Add Timeout Branch
- Queues a message to the customer if the assignee has not answered them by the time the timeout passes.
- Default: off; 10 minutes when switched on
- Limits: Queues nothing if the message box is left empty. What the drawer builds here is a message — see Limits for what a flow written by Build with AI can put in this arm.
How it works
- The step writes the teammate onto the conversation's assignee, which is what the Inbox's assignee filter and the assignee column read.
- Before that write it checks the teammate is still a member of this workspace, so a workflow naming somebody who has left fails instead of assigning the thread to a person who can no longer open it.
- Assign to a specific user takes the person you named and nobody else: if they are not on the workspace member list the step picks no one.
- Assign to users round robin sorts the teammates it may pick by their user id and takes the one after the conversation's current assignee, wrapping round at the end. With no assignee yet — or when the current one is not in the pool, because a cap or a departure took them out of it — it takes the first.
- Assign to the user with least open contacts counts how many open conversations each teammate holds in this workspace and takes the lowest, breaking a tie by user id so two runs of the same flow do not disagree.
- Those open-contact counts are per workspace — not per channel, not per team.
- Unassign clears the assignee and changes nothing else — status, tags and the thread itself stay as they were. It does drop out of the old assignee's own view: sending it back to the unassigned queue is the point of the action.
- A Timeout Branch does not pause the run. The step queues the timeout message for later and the flow carries straight on to the next step.
- When that timeout comes due, a job that runs about once a minute first checks whether the assignee has sent the customer anything on the thread since the assignment. If they have, the timeout is cancelled and nothing is sent.
- An internal note does not count as answering — only a message the customer receives cancels the timeout.
When it fails
- Nobody to pick: with an Assignment Logic set and no teammate inside the caps, the step fails, the conversation keeps whatever assignee it already had, and the step's line in the run log reads no teammate available to assign.
- The named teammate has left the workspace: the step fails with that assignee is no longer a member of this workspace, and again the conversation keeps its previous assignee rather than gaining an unreachable one.
- A failed assignment does not end the run. One step is recorded as failed and the flow moves to the next one, so a message, a tag or a close placed after it still happens — on a conversation whose owner did not change. On a thread that had nobody, that means nobody; on one round robin was moving off a teammate, it means that teammate still has it.
- You read the reason in the workflow's Activity tab: pick the run under Execution log and the failed step carries its own line of text.
- Saving is refused before any of that if neither a teammate nor an Assignment Logic is set — Pick a teammate or a distribution rule for Assign To.
Limits
- Only assign to online users has no effect on this step. The list the switch filters marks every workspace member as available, so nothing is skipped. Presence is read by the Inbox's own automatic assignment under Settings → Conversations, not here.
- The step does not check channel access. Unlike automatic assignment, it can hand a conversation to a teammate whose channel allowlist does not include that channel, and they will not be able to open it.
- It does not notify the assignee. Nothing is pushed when the step runs, and there is no assigned-to-you notification anywhere in the product. Whether a later message reaches them depends on the thread — on whether it is left waiting for a person, and then on their notification setting, their availability and whether they muted it. When somebody has to be told, use Escalate: it pauses the AI and pages a human.
- It sends the customer nothing. Unless a later step or the timeout message speaks, the customer sees no change at all.
- It does not pause the AI agent. A thread assigned by a workflow is still a thread the AI may answer on — Escalate or Pause AI / Unassign is what stops that.
- In the drawer the timeout branch is one message and nothing else. The box builds a single Send a Message, and with the toggle on and the box empty nothing is queued at all. A workflow written by Build with AI can put other steps in that arm — an assignment, a tag — and they do run, but the drawer only ever shows the text of the arm's first step, and typing in that box replaces the whole arm with one message. Edit such a step somewhere else, or expect to lose the rest of the arm.
- Round robin remembers only the conversation's current assignee. It is not a rota kept for the workspace, so two fresh unassigned conversations both go to the same first teammate.
Best practices
- Put the assignment after the tag or the internal note that says why somebody has it. A thread that lands in a queue with no context is a thread that gets read twice.
- On the path where the AI did not answer, assign first and put Escalate after it. The AI Reply step already pages whoever holds the thread when it declines; what Escalate adds is the AI pause — and placed after the assignment, both it and the push are addressed to the person you just gave the thread to.
- Escalate and this step answer different questions — *look at this now* against *this is yours* — and most paths that need a person want both: the assignment first, so the escalation has somebody to address.
- Use fewest open contacts rather than round robin on a queue that starts cold: round robin hands every unassigned thread to the same person.
- Set the timeout message to something the customer benefits from reading — an apology for the wait beats a nudge aimed at your own team, because the customer is who receives it.
Use cases
- A customer asks for a person after the AI has answered: assign to the workspace by fewest open contacts with a two-minute timeout message so nobody waits in silence, then Escalate so the AI stops and the page is addressed to the teammate who now has it.
- A payment slip arrives: move the deal to its next stage, then assign the thread to the one teammate who checks transfers.
- Out of business hours, Date & Time sends the flow to a template; inside them, it assigns round robin to the next teammate on the list.
- A high-value deal stage is reached: assign the named account owner rather than the rota.
FAQ and troubleshooting
- Does the contact leave the workflow once it is assigned to a person?
- No. Assigning records who owns the conversation and the run carries on to the next step — a wait, a question or a message placed after it still happens. Put an End step after the assignment if the flow should stop there.
- The step says it failed. Where did the conversation go?
- Nowhere. It keeps the assignee it had before, and the rest of the run still executed. Open the workflow's Activity tab, pick the run under Execution log, and the failed step's line gives the reason.
- Why does round robin keep choosing the same teammate?
- Round robin steps off the conversation's current assignee, and a new conversation has none — so every unassigned thread starts at the first teammate by user id. Assign to the user with least open contacts spreads a cold queue evenly.
- I switched on Only assign to online users and it still assigns to people who are away.
- That is what the step does today: it treats every workspace member as available. The automatic assignment under Settings → Conversations is the one that reads presence.
- Does the teammate get a notification when a workflow assigns them a conversation?
- Not for the assignment itself — nothing is pushed at that moment, and there is no assigned-to-you notification anywhere in the product. The thread does appear under their assignee filter in the Inbox. Whether a later message pushes to them is a property of the thread: a turn the AI answers by itself is meant to stay quiet, and their notification setting, availability and mute all still apply. Do not rely on it — when somebody has to be told, put Escalate after the assignment, so the page has an assignee to address.
- Can the timeout branch pass the conversation to somebody else?
- Not from the drawer: the box there sends the one message you typed, and only if the assignee has not already answered the customer. A workflow written by Build with AI can put an assignment in that arm and it does run. What does not work is a second Assign step further down the flow — the run does not wait at the first one, so the second takes effect seconds later instead of on timeout.
Related
- Assign To (team) — Route the conversation into a team's queue, and optionally also hand it straight to one member of the workspace by round robin or fewest open contacts.
- Assign To (AI) — Pin the conversation to one named AI agent for its next replies, overriding whatever would otherwise decide which agent answers.
- Escalate — Pause the AI on this thread and page a human right now — the safety net at the end of a path the AI could not, or should not, finish alone.
- Pause AI / Unassign — Silence the AI on this conversation and clear its agent binding, with no page, no note and no message — a quiet, workflow-internal hold meant to be lifted by a later Assign To (AI) step.
- Create a Task — Put an item with the thread attached onto the workspace's Tasks list — the thing that survives the end of a shift, which an internal note does not.
- Workflows: how a flow runs — A workflow is one trigger, optional conditions and an ordered list of steps; only a published workflow runs, and this article explains how a run starts, forks, pauses, fails and stops.
Reading this with an AI assistant? Plain Markdown version.