🇪🇸 Español 🇬🇧 English 🇧🇷 Português

Trigger: Assignment Changed

Fire a workflow every time a conversation's assigned agent or team changes, great for real-time handoff alerts.

Jul 11, 2026

The Assignment Changed trigger fires a workflow whenever the user or team assigned to a conversation changes — whether an agent claimed it manually, auto-assign routed it, or another workflow reassigned it. It's the building block for notifying the new owner in real time.

When it fires

Right after a conversation's assignment (user or team) is updated.

Trigger configuration

  • New assignee (user): only fire when assigned to a specific user.
  • New team: only fire when assigned to a specific team.
  • Previous assignee: filter by who held the conversation before the change.
  • Only when assigning (not on unassign): enable to skip the cases where a conversation ends up unassigned.

Available variables

  • $assignment.previous_user_id, $assignment.new_user_id
  • $assignment.previous_team_id, $assignment.new_team_id
  • $assignment.changed_at
  • Conversation variables ($conversation.id, $conversation.status, $conversation.channel_type…) and contact variables ($contact.name, $contact.phone…).

Example workflow

"Ping the agent who just got a chat": Assignment Changed trigger (Only when assigning = on) → "Send internal message" action to user $assignment.new_user_id in Team: "You were assigned conversation #{{$conversation.id}} from {{$contact.name}}."

Tips

  • Combine it with the New team filter to send different alerts depending on which team receives the case (Sales, Support, Billing).
  • To catch "hot" reassignments (agent to agent, bypassing routing), leave the user filters empty and branch on $assignment.previous_user_id inside the workflow logic.

Troubleshooting

If the workflow doesn't fire when auto-assign runs, check that auto-assign is actually updating the assignee field (not just suggesting one) — the trigger reacts to the real data change, not a suggestion.

Was this helpful?

Related articles