Read → Classify → Check History → Prioritise → Route
Maintenance Triage and Dispatch
Reads each incoming maintenance request, classifies the right trade, checks the unit's history for repeat issues, sets priority against your rules, and routes the ticket to the correct queue ready for dispatch.
The Problem
The wrong tech showed up. Twice.
A request comes in: "Water on the bathroom floor." Your coordinator reads it, calls it plumbing, sets it as medium priority. The plumber shows up - it's actually a leaking AC condensate line. Wrong trade. Rescheduled. The resident calls twice. Two wasted visits.
What Changes
The right tech, the first time.
The agent reads the request, checks the unit's maintenance history, and finds that the AC condensate line was flagged six months ago. It assigns the ticket to HVAC instead of plumbing and sets priority to high because of potential water damage. The right tech shows up the first time.
Humans stay in control: Your coordinator approves every dispatch and overrides any call the agent gets wrong. The agent handles the reading, the trade classification, the history lookup, and the priority rules. It removes the guesswork on routing, not the decision to send.
HOW THE AGENT WORKS
HOW TO BUILD IT
Three levels of depth. Pick the one that matches where you are.
For the ops person who needs to understand what's involved and brief their team.
WHAT YOUR TEAM PROVIDES ONCE
- Your trade taxonomy - the categories and sub-categories work gets sorted into
- Priority rules - what counts as emergency, high, medium, low, and why
- Routing map - which trade goes to which queue, vendor, or in-house tech
- Required details per category - what a complete ticket needs before dispatch
- Escalation rules - when the coordinator gets pinged instead of auto-routed
For the IT person or technical lead who needs to scope the integration.
INQUIRY SOURCES
WORKFLOW ENGINE (N8N)
CONNECTS TO
Agent classifies and prioritises from the request text alone and posts the routed ticket to a shared queue or sheet. No history lookup, so repeat-issue matching is skipped. Still removes the manual triage step.
Agent reads live unit history and writes the routed work order straight back. Classification uses real repeat-issue data. Best experience.
For the person who wants to build this agent step by step. Each node below maps to an n8n workflow node.
You are an assistant that reads property maintenance requests and classifies them.
Read the request below and return:
- trade: one of [plumbing, hvac, electrical, appliance, general, pest, life_safety]
- sub_category: a short specific label (e.g. "water leak", "no cooling", "outlet dead")
- symptom: what the resident is actually reporting, in a few words
- location: room or area in the unit
- active_damage: true if water/electrical/safety damage may be ongoing, else false
- access_notes: any entry or pet instructions mentioned
- confidence: high / medium / low - how sure you are of the trade
If the trade is ambiguous between two options, set confidence to low and name both in sub_category.
Respond ONLY with valid JSON. No explanation.
--- REQUEST ---
{raw_message}"There's water on the bathroom floor near the toilet, been there since this morning. It's spreading toward the hallway. You can come anytime, no pets."
{
"trade": "plumbing",
"sub_category": "water leak - possible toilet or condensate line",
"symptom": "water pooling on bathroom floor, spreading",
"location": "bathroom",
"active_damage": true,
"access_notes": "anytime, no pets",
"confidence": "low"
}You are a maintenance dispatch assistant. Decide the final trade and priority.
Use the classification, the unit history, and the priority rules below.
- If the history shows this exact symptom was caused by a different trade before, prefer that trade and explain why.
- Set priority using PRIORITY RULES. Never set emergency unless active damage or a life-safety issue is present.
- Give a one-line reason a coordinator can read at a glance.
CLASSIFICATION:
{classification_json}
UNIT HISTORY:
{unit_history_formatted}
PRIORITY RULES:
{approved_priority_rules}
Respond ONLY with valid JSON:
{ "final_trade": "", "priority": "", "reason": "", "history_note": "" }{
"final_trade": "hvac",
"priority": "high",
"reason": "Water near bathroom matches AC condensate line flagged 6 months ago, not a plumbing leak. Active spread = high.",
"history_note": "Recurring: condensate line cleared on 2025-11-12, same symptom."
}- Single intake channel (portal webhook)
- LLM trade classification only
- Maintenance-history Google Sheet
- Fixed priority rules
- Routed ticket posted to a shared queue
- Coordinator alert by email
Full Video Walkthrough Coming Soon
From raw request to routed ticket - step by step.
Register to be notifiedEverything on this page is free to learn.
When you're ready to build — do it yourself or bring us in.
OTHER AGENTS IN LEASING & MARKETING
Maintenance Missing Details Collector
Parts and Materials Blocker Agent
Self-Help Troubleshooting Agent
Duplicate Ticket and Repeat Failure Linker
Frequently asked questions
This is 3 of 8 agents in Maintenance & Facilities. → · Explore all 10 departments →