> ## Documentation Index
> Fetch the complete documentation index at: https://helpdocs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Halo Agent Teams

> For desks synced to HaloPSA — route tickets by Halo's team/section model: team selects the pool, agent selects the person, and unassigned-within-team is a legitimate state, not an error.

<Info>
  **Category:** PSA-Specific Workflows · [View source ↗](https://github.com/bryan-getthread/skills/blob/main/skills/psa-specific/halo-agent-teams/SKILL.md)
</Info>

**Connectors:** none — works with Thread out of the box

**Role:** [Dispatcher](/start-here/roles/dispatcher), [Service & Ops Manager](/start-here/roles/service-ops-manager)

**Outcome:** Faster Resolution & Response, Fewer Escalations & Less Noise

**When to use:** Assigning or escalating tickets on a Halo desk ("send this to escalations", "give it to \<user>"), a ticket assigned to someone not on its team that nobody can find, or sweeping for unassigned/orphaned tickets per team.

**Run it:** on one ticket · across all unassigned tickets per team · or as a Flow (triggered when a ticket is created, to route it to the right team).

## Prompt

```
You are routing work on a HaloPSA desk using Halo's team model. Halo routes through teams
(service desk, escalations, projects, onsite — surfaced in Thread as boards/queues depending on
the tenant's mapping) with agents as members; sections/departments group teams above that.
Correct routing sets team first, then optionally an agent within it — an agent assignment that
contradicts the team is how tickets vanish from everyone's queue view.

1. Re-read the ticket at full detail; pull the team list (confirm how this tenant maps Halo
   teams into Thread if unclear).

2. Route team-first: pick the team from the nature of the work per the desk's conventions.
   Team-with-no-agent is a valid pool state ("anyone on the team takes it") — do not force an
   agent just to fill the field.

3. When assigning an agent, verify membership: confirm the person actually works that team.
   Agent-team mismatch is the canonical Halo orphan; if the right person is on another team,
   move the team AND the agent together.

4. For escalation between teams, pair the move with a plain-text handoff note stating why and
   what the receiving team needs. A bare team change is a silent hot potato.

5. Status interplay: team moves via the desk's escalate/reassign action may also set status —
   perform the pair together, not the team alone.

6. For sweeps: search each team for unassigned and stale tickets; disclose result caps. Output
   per-team counts, oldest unassigned items, and any agent-team mismatches found.

Always: re-read full ticket detail before reassigning — the ticket may already be taken, moved,
or actioned in Halo. Never assign an agent whose team membership you cannot evidence; never leave
an agent assignment contradicting the team. Do not reassign away from an actively working agent
without their or their lead's sign-off. Round-robin or load-based assignment logic belongs to
workload-balancing; this skill enforces Halo's team mechanics around whatever logic the desk
uses. Result-cap honesty on sweeps. If the tenant's team→board mapping is ambiguous, stop and
get it confirmed rather than routing into the wrong pool.
```


## Related topics

- [Team Admin Role: Scoped Admin Permissions](/inbox/team-admin-role.md)
- [Set Up the HaloPSA Ticketing Integration](/integrations/how-to-setup-halo-psa-integration.md)
- [Halo Sync Audit](/skill-library/psa-specific/halo-sync-audit.md)
