Skip to main content

FAQs About Ticket Assignment and Logic

Common doubts and questions you might have about how tickets are created, handled, assigned and the like.

Updated this week

What This Guide Covers

Spur's shared inbox isnt just a place where messages land. It's a thoughtfully designed ticketing system built to handle the chaos of real customer conversations across WhatsApp, Instagram, Facebook, and your website.

Whether you're a solo operator or running a team of 10, the system adapts. AI handles the repetitive stuff. Humans jump in when it matters. Tickets get assigned, reassigned, or left unassigned based on intentional rules, not random logic.

This guide walks you through how it all works, including the edge cases most platforms dont even think about.


How Tickets Get Created

Every time a customer messages you on any channel, a ticket gets created automatically.

One conversation = one ticket.

If the same person messages you on WhatsApp, Instagram, and Facebook, you get three separate tickets. Why? Because those are three separate conversations. The system doesnt merge them. It treats each channel independently.

What this means for your team:


If "Jack" hits you up on Instagram and also on WhatsApp, you wont automatically know its the same Jack unless he tells you. The system doesnt cross reference phone numbers or usernames across platforms. So if Jack says "Hey, Im the same Jack who messaged on WhatsApp," your agent will have to connect the dots manually.

Why it's designed this way:


Because customers dont always use the same number or handle across channels. Forcing a merge would create more confusion than clarity. Instead, Spur gives you clean, isolated tickets per channel so nothing gets tangled.


How Tickets Get Assigned

Spur's assignment logic is built around one principle: whoever replies, owns the ticket.

Heres how it works in practice:

AI Handles It First (If Enabled)

If you've turned on the AI agent for a channel, it responds first. The ticket stays with the AI until one of two things happens:

  1. The customer confirms the AI helped them (ticket closes)

  2. The customer asks for a human (ticket escalates)

Important: The AI doesnt close tickets on its own. If you have the "Did I help?" setting enabled, the AI will explicitly ask before closing. If the customer says "yes" or "got it" or "all good," the ticket closes. If they say "no" or "I need more help," it stays open, The AI attempts to help them more, and if they still say "I want a human to be brought in the loop," it will open the ticket and assign the default assignee human to take over.

If the "Did I help?" setting is off, the ticket stays with the AI unless the customer says something like "I need to talk to a human" or "agent." When that happens, the AI uses the escalate to human action (if enabled) and hands it off.

Where does it go when escalated?

  • If you have a default assignee set, it goes to them.

  • If you dont, it drops into Unassigned and waits for someone to grab it.

Humans Take Over

When a human agent replies to a ticket, it gets assigned to them. Doesnt matter if it was with the AI before, or with another agent, or sitting in Unassigned.

Reply = assignment.

Example:
Agent A is handling a ticket. Agent B jumps in and replies. Now its Agent Bs ticket.

Does Agent A get notified?
Nope. They come back later, check their inbox, and realize its gone. They can go to the "All" tab and see it got reassigned because someone else responded.

Why it works this way:
Because in real teams, people jump in to help without asking permission. The system reflects that. Whoever's actively engaging with the customer should own the ticket.

Two Agents Reply at the Same Time

Both messages go through. The ticket gets assigned to whoever sent the last message—even if its just a one second difference.

Does anyone get a warning?
No. Agents have to coordinate on their own. If they both reply within the same second, one of them will back off once they realize.

Why it's designed this way:
Because blocking replies would slow things down. The system prioritizes speed over preventing overlap.


What Happens When Tickets Reopen

If a customer replies to a closed ticket, it reopens and a new ticket is opened in the same chat. Simple.

Example:

  • 3pm: Customer asks a question. AI helps them. They say "thanks." Ticket closes.

  • 5pm: Customer replies "actually, I need more help." New ticket opens.

Does it create a new ticket?
Yes, new ticket, but same conversation/chat. Doesnt matter if its 2 hours later, 3 days later, or 50 days later.

Who gets assigned when it reopens?

  • If it was closed by the AI, the AI picks it back up.

  • If it was closed by a human, the ticket first comes to the AI as a new opportunity for it t help them if you have AI activated on your workspace, if not, it will go to the default assignee.


What Happens When Someone Gets Removed from the Workspace

If a ticket is assigned to Agent A, and Agent A gets offboarded, the ticket goes back to Unassigned.

The system doesnt reassign it to someone else automatically. Your team has to manually grab it.


What Working Hours Actually Do

Working hours dont affect assignment logic at all.

Heres what they do affect:

If a message comes in during working hours, the customer gets one type of auto reply (e.g., "Hey, well get back to you shortly").

If a message comes in outside working hours, they get a different message (e.g., "Were offline right now, but well reply when we're back").

In both cases, the ticket still opens. It still goes to the default assignee (if set) or Unassigned (if not).

Example:
Agent A is handling a ticket at 6pm. Your working hours end at 8pm. The customer replies at 11pm. The ticket stays with Agent A. It doesnt get reassigned just because working hours ended.

Why it works this way:
Because working hours are for customer expectations, not internal workflows. If an agent is already handling something, they should keep handling it.


What Happens If Theres No Default Assignee

If you dont set a default assignee, every escalated ticket goes to Unassigned.

Do agents get notified?
No. No badge. No ping. No email.

They have to check the Unassigned tab manually and grab tickets themselves.

Why it's designed this way:
Because some teams want full control over who picks what. Setting a default assignee is optional. If you dont want one, the system wont force one.


What Happens Across Multiple Channels

If a customer messages you on WhatsApp, Instagram, and Facebook, you get three separate tickets.

Does the system tell you its the same person?
No. You have to figure it out manually.

Can you merge contacts?
No. Each channel creates its own contact. If Jack messages from two different WhatsApp numbers, you get two separate "Jack" contacts. You can rename them (Jack Phone 1, Jack Phone 2) if you want, but theres no way to merge them.

Why it works this way:
Because customers use different numbers and handles for different things. Forcing a merge would cause more problems than it solves.


What If Your Team Is Drowning in Messages?

The system doesnt have a "you're underwater" alert.

If 500 messages come in at once, your team has to deal with it. Theres no automatic priority queue or overflow warning.

What you can do:

  • Set a default assignee so things dont pile up in Unassigned

  • Use AI to handle the easy stuff

  • Train your team to check Unassigned regularly


Why This System Works

Most platforms treat tickets like static objects. Spur treats them like conversations.

The assignment rules arent arbitrary. They're designed around how real teams actually work:

  • Whoever replies, owns it = no bottlenecks

  • AI handles the repetitive stuff = humans focus on what matters

  • Tickets reopen instead of duplicating = clean conversation history

  • No forced merges across channels = less confusion

This isnt just a shared inbox. Its a ticketing system built for the busiest of scenarios.


Quick Reference

Scenario

What Happens

Customer messages on 3 channels

3 separate tickets

AI helps, customer confirms

Ticket closes

Customer replies to closed ticket

Same ticket reopens

Two agents reply at once

Last reply wins the assignment

Agent gets offboarded

Ticket goes to Unassigned

Message comes in after hours

Ticket still opens, assignment unchanged

No default assignee set

Everything goes to Unassigned

Customer uses a new number

New contact, no merge


Need help setting this up? Hit us on chat.

Did this answer your question?