Skip to content

Assign Chat Thread Task

Overview

The Assign Chat Thread task hands a WhatsApp or SMS conversation to a specific team member, exactly as if someone had assigned it by hand in the CRM inbox. It can also mark the conversation as done, or re-open one that was closed.

This is how you route conversations automatically: triage an inbound message, decide who should own it, and assign it — the agent sees it appear in their inbox immediately.

When to use this task:

  • Route inbound WhatsApp or SMS to the right team by keyword or by client.
  • Distribute conversations evenly with a Round Robin task.
  • Close a conversation automatically once a workflow has fully answered it.
  • Re-open a conversation when a customer replies to a closed thread.

It assigns an existing conversation; it never creates one

The task looks the thread up by contact number and channel. If no conversation exists for that number it reports so and does nothing — it will not start a new thread.

Configuration

Builder fields

The Field column is the label as it appears in the task builder; Key is the name the value is stored under and referenced by.

Field Key Type Default Notes
Channel channel_type select whatsapp Options: WhatsApp · Text
Contact Number contact_number text –
Assign To User user_id select – Options: Automation Trigger
Mark As Done mark_done select – Options: Leave unchanged · Mark as done · Mark as not done
Field Required Default Notes
Channel No whatsapp whatsapp or sms. Anything else is rejected.
Contact number Yes – The customer's number. Usually mapped from the trigger's from_number.
User Yes – The CRM user to assign the conversation to.
Mark as done No unchanged Leave unset to keep the current state, set to mark done, or clear to re-open.

Mark as done

Three-state, and the distinction matters:

Setting Effect
Not set Assignment only; the resolved state is untouched.
Mark done Assigns and resolves the conversation.
Mark not done Assigns and re-opens a resolved conversation.

Leaving it unset is the right default for routing — you are deciding who owns this, not whether it is finished.

Contact number

The number is matched flexibly, so a number stored in a slightly different format still finds the thread. Map it straight from the trigger:

Contact number: {{task_46171_from_number}}

Output Fields

Field Description
{{task_ID_thread_id}} The conversation that was assigned.
{{task_ID_assigned_user_id}} The user it was assigned to.
{{task_ID_run}} true when the assignment succeeded.
{{task_ID_run_text}} e.g. Assigned the whatsapp conversation with +27… to user 12 and marked it as done.
{{task_ID_error}} On failure only — the underlying error.

The CRM inbox updates live when this task runs; the assigned agent does not need to refresh.

Real-World Examples

Route by keyword

WhatsApp Message Received
  └─ If Statement            message contains "invoice"
      ├─ true ─ Assign Chat Thread   channel whatsapp, user = accounts
      └─ false ─ Assign Chat Thread  channel whatsapp, user = support

Even distribution across a support team

Text Message Received
  └─ Round Robin             cycle through the support user IDs
      └─ Assign Chat Thread  channel sms, user = the round robin output

Round Robin guarantees an even spread, unlike a random pick.

Assign to the client's account manager

WhatsApp Message Received
  └─ If Statement            client_id is not empty
      └─ Assign Chat Thread  user = the client's responsible user

Close out an automated answer

WhatsApp Message Received
  └─ AI Prompt               answer the question
      └─ WhatsApp Business   send the reply
          └─ Assign Chat Thread   user = bot user, mark as done

Best Practices

  • Map the number from the trigger, not from a CRM field — the thread is keyed on the number the customer actually messaged from.
  • Leave "mark as done" unset when routing. Assigning and closing in one step hides the conversation from the person you just gave it to.
  • Use Round Robin, not Random, for fair distribution. Random can give one agent several in a row.
  • Set the channel explicitly. It defaults to WhatsApp, which is wrong for an SMS workflow.
  • Handle the no-conversation case with an If Statement on run if the workflow can be reached by a contact who has never messaged.

Troubleshooting

Message Cause and fix
No <channel> conversation found for <number>. No thread exists for that number on that channel. Check the channel setting — an SMS workflow left on the WhatsApp default is the usual cause.
Unsupported channel: x (expected 'whatsapp' or 'sms'). The channel field holds something else. Only those two are valid.
No contact number provided. The number mapping resolved to empty. Check the upstream task's output.
No valid user to assign the conversation to. The user field is empty or not a valid user ID.
Could not assign the conversation. The thread was found but the assignment failed. Check the user still exists and is active.
No task mapping provided. The task has no saved configuration.

Frequently Asked Questions

Can I assign to a team rather than a person? No — assignment is to one user. Use Round Robin over the team's user IDs.

Does the agent get notified? The conversation appears in their inbox immediately. Add an Email or SMS task if you want a push notification too.

What if the conversation is already assigned to someone else? It is reassigned to the user you specify.

Can I unassign a conversation? Not with this task — it always assigns to a user. Unassign in the CRM inbox.

Does marking done send the customer anything? No. It only changes the conversation's state in the inbox.