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

# Get Technician Context

> Canonical source for technician working hours, today's calendar, workload, and expertise — the data a dispatch agent needs to assign tickets

The Get Technician Context tool feeds a dispatch agent a structured, pre-computed snapshot of your technicians — who's working today, when, how loaded they are, and who has the right expertise — so it can make a good assignment decision quickly without re-deriving any of it from raw PSA endpoints. It works for ticket-triggered runs and for scheduled (ticketless) sweeps; specifying the technician pool via the ticket's company or board team requires a ticket, while passing an explicit list of technicians works in either mode.

<Info>
  **Auto-injected** for any workflow whose PSA integration has its scheduling-equivalent permission group enabled at Read+ (ConnectWise Schedule Entries, Autotask Service Calls, Halo Appointments, ServiceNow Users and Groups). You'll see it in the toolbox automatically — no need to toggle it on manually. It pairs with the agent's **Dispatch Decision Framework** skill, which the agent loads to interpret the context.
</Info>

## What It Does

It returns, per technician:

* **Calendar** — weekday working hours (days flagged "Not working" when off), timezone, holidays, today's existing appointments
* **Workload** — open ticket count, recent assignment volume
* **Expertise** — the technician's [profile](/product/technician-profiles) plus PSA-configured skills (ConnectWise and Autotask; plus ConnectWise certifications), prior work on similar tickets, the relevant configuration items or technologies
* **Recent Neo assignments** — which tickets the agent recently dispatched to each technician, with timestamps, so it can round-robin fairly across the team and avoid handing consecutive tickets to the same person
* **Teams availability** *(optional)* — from your own M365 tenant: each technician's **live presence** (Available / Away / Busy / In a call / Offline / out-of-office), so the agent won't hand work starting now to someone who's away or on a break; plus their **shift rota** (upcoming Microsoft Teams Shifts), so the agent can prefer whoever is actually rostered on — now or for a future slot

The agent uses this to choose an assignee (or to decide the ticket should be escalated or left unassigned), then acts via the [PSA API](/agents/tools/psa/psa-api) — for example setting the ticket's owner or adding a schedule entry.

<Note>
  **Teams availability** is fetched only when the agent asks for it. **Presence** is a current-moment signal (who can take this *now*); **shifts** are the rota (who is scheduled on, now and for future slots). Both require the **Microsoft Teams — Technician Mapping & Availability** integration connected and technicians mapped to their Microsoft user; shifts also read the Teams you selected when mapping (your service-desk Teams). When a piece isn't available, the agent falls back to PSA calendar availability. It's the same signal as the Dispatch Ticket action's "Teams availability" setting, surfaced for agentic dispatch.
</Note>

## Why It Matters

Each PSA exposes "is this engineer working today" through a different chain of endpoints with non-obvious field names (e.g. ConnectWise's `mondayStartTime` / `sundayEndTime` on `schedule/calendars/{id}`, Autotask's `InternalLocationWithBusinessHours` + per-resource overrides, Halo's `api/Workday`). Asking the agent to reconstruct that on the fly is brittle: a misspelled field name or a missing day attribute leads to silent guesses ("probably Mon–Fri 09:00–17:00") and engineers scheduled outside working hours.

**Get Technician Context is the canonical answer to working-hours / availability questions.** Custom instructions that reference "engineer's working hours" or "calendar working days" should let the agent reach for this tool, not derive it from primitives.

## How to Use

1. Build a dispatch workflow (or start from a dispatch [recipe](/recipes/assign-technician-basic))
2. The tool is auto-enabled when your PSA scheduling perm is on — no extra toggle needed
3. In custom instructions, describe your routing rules — preferred boards, escalation thresholds, who handles what. Reference "engineer's working hours" / "calendar working days" naturally; the agent will fetch them via this tool
4. Review assignments in [Event History](/product/event-history) before turning off technician approval

<Tip>
  The richer your PSA data — skills on technician records, accurate schedules, configuration items on tickets — the better the agent's dispatch decisions. This tool only surfaces what your PSA (and connected calendars) already know.
</Tip>
