Property managers use AI to triage maintenance by routing every request through one form or inbox, letting AI ask the follow-up questions a coordinator would (what, where, since when, a photo), then classify urgency and trade and draft the work order. Fixed safety rules override the AI for emergencies, and a person approves spend until accuracy is proven on past requests.
The costly part of a maintenance request is rarely the fix. It's the second and third message: which tap, how bad, is water coming through the ceiling, can you send a photo? AI is good at that questioning and never gets bored of it. It is less reliable at judging urgency from a vague description, which is exactly why the safety rules sit outside the model rather than inside it.
Write your urgency tiers down before the AI sees them
Most offices triage by instinct. An AI can't. The tiers, response times and examples must be written, agreed with your landlords where management agreements require it, and checked against the repair timescales your tenancy agreements and the housing law where you operate impose. A filled-in example:
| Tier | Meaning | Target | Examples |
|---|---|---|---|
| Emergency | Danger to people, or serious damage getting worse by the hour | Made safe within 4 to 24 hours (your policy) | Gas smell, electrics sparking, water through a light fitting, no heating in winter with a vulnerable occupant, insecure external door |
| Urgent | Essential service lost or significant damage | Within 3 to 7 days | No hot water, only toilet not flushing, fridge failed, active leak contained in a bucket |
| Routine | Inconvenient, not harmful | Within 28 days | Dripping tap, sticking window, broken cupboard hinge, extractor fan noisy |
| Planned | Wear, upgrades, landlord decision | Next inspection or budget cycle | Worn carpet, tired kitchen doors, garden fence panel |
| Tenant matter | Likely the tenant's responsibility under the tenancy | Advise the tenant | Blocked sink from food waste, lost keys, light bulbs |
Damp and mould deserve their own line in your policy. Reports that mention health symptoms, children or a recurring problem should move up at least one tier, and in some housing sectors the rules on how quickly landlords must respond to them have tightened, so check what applies to your portfolio. Treat any report of mould with health concerns as a person's decision, not the AI's.
The intake questions that make triage possible
Good triage depends on information tenants don't think to give. Keep a short question set per category, and let the AI ask only the questions whose answers are missing from the tenant's first message:
- Leaks: where is the water coming from, is it near anything electrical, is it constant or only when a tap or shower runs, can it be caught in a bucket, have you turned off the stopcock (and do you know where it is)?
- Heating and hot water: is it both or one, what does the boiler display show, what is the pressure gauge reading, is anyone in the home elderly, unwell or very young?
- Electrics: is there a burning smell, sparks or heat, has the fuse box tripped, does resetting it hold?
- Doors and locks: is the property secure right now?
- Appliances: which one, make and model if visible, error code, is it the landlord's appliance?
- Damp and mould: which rooms, how large an area, how long, any health effects?
Always ask for a photo or short video, and say why ("so we send the right trade first time"). Tenants are more willing when they can see the point.
The question set is a menu, not a script. The first version of one illustrative office's follow-up, sent in reply to "boiler's not working", asked all seven heating questions at once. Most tenants answered the first two and ignored the rest, including the one about vulnerable occupants, which was last. The revised rule: at most three questions per message, the one that could change the tier first. The follow-up the AI now sends:
Thanks, [first name]. So we send the right help:
1. Does anyone at home need extra care with the cold, such as a baby,
an older person or someone unwell?
2. Is it the heating, the hot water, or both?
3. What does the boiler display show? A photo of it is ideal.
A yes to question one moves the request up a tier before the other two are even answered.
Photos sometimes contradict the words, and the tier should follow whichever is worse. A tenant writes "small damp patch in the bedroom, not urgent". The photo, described by the AI, shows black mould across most of one wall behind a cot. The text says routine; the photo says a child is sleeping next to spreading mould, which your policy already treats as a person's decision. Tell the prompt to describe each photo in a separate field and set the tier from the text and the photo together, never from the text alone.
The triage prompt and the structured output it returns
For consistent results, don't ask for a paragraph; ask for fixed fields, ideally using the structured-output option in the API or automation tool you use, so every request comes back in the same shape. Consistency comes from fixed instructions and examples, not from settings like temperature, which some current models no longer support.
You triage residential maintenance requests for a property manager.
Use the urgency tiers and examples below. Return JSON only:
{
"category": "", "trade": "", "tier": "",
"tier_reason": "quote the words that justify the tier",
"confidence": "high|medium|low",
"safety_flag": true/false,
"questions_still_needed": [],
"tenant_advice_now": "only from the approved advice list, or empty",
"possible_tenant_responsibility": true/false,
"access_notes": ""
}
Rules: if unsure between two tiers, choose the higher one and set
confidence to low. Never promise a date. Never give DIY advice
beyond the approved list. Tiers and examples: [paste]
Approved advice list: [paste]
Request (text, and descriptions of any photos): [paste]
An illustrative request and response. The tenant writes: "The bathroom ceiling has a brown patch and it drips when the people upstairs shower. Been like this about a week. Photo attached." The model returns:
{"category": "leak", "trade": "plumber",
"tier": "urgent",
"tier_reason": "drips when the people upstairs shower; about a week",
"confidence": "medium", "safety_flag": false,
"questions_still_needed": ["Is there a light fitting or extractor
fan near the patch?", "Is the ceiling sagging?"],
"tenant_advice_now": "", "possible_tenant_responsibility": false,
"access_notes": "Leak likely from flat above; may need access there"}
That's a sensible result, with one fix a coordinator would make: the access note should trigger a message to the upstairs flat's landlord or managing agent too, which the AI can't know is a separate owner. Add a rule that any leak "from above" in a block creates a second task. The two unanswered questions are exactly right: if the answer to the first is yes, the tier jumps to emergency.
The prompt refers to an approved advice list. Keep it short, written by someone who knows the buildings, and limited to steps a tenant can take safely. A filled-in illustration:
APPROVED TENANT ADVICE (the AI may use these words, nothing else)
Leak, any size: turn off the water at the stopcock if you can reach
it safely. Catch drips in a bowl. Keep away from electrics.
Water near a light or socket: don't touch switches. Turn off the
electricity at the fuse box only if you can reach it without
going near the water.
Boiler pressure below 1 bar: follow the repressurising guide in your
welcome pack. If it drops again within 24 hours, tell us.
Fuse box tripped: reset it once. If it trips again, leave it off
and tell us which circuit.
Gas smell: leave the property, don't use switches, call the gas
emergency number, then call our out-of-hours line.
The list also settles the "possible tenant responsibility" field, which is where tone goes wrong most. A before and after for a blocked kitchen sink:
- AI draft: "This blockage appears to be caused by food waste, which is the tenant's responsibility, so you will be charged for any call-out."
- Approved version: "Sink blockages can often be cleared with a plunger. If that doesn't work, we'll send a plumber. If they find the cause is something your tenancy agreement makes the tenant's responsibility, we'll explain before any cost is passed on."
The first version decides a question nobody has investigated and invites a dispute. The second gives the tenant something to try and keeps the decision with a person.
Safety overrides that never depend on the model
Before the AI sees a message, a simple rule checks for words that force the emergency tier and a human alert. The list covers fire and electrics (smoke, burning smell, sparks, shock), gas and fumes (gas, carbon monoxide, a CO alarm going off), water (flooding, water through a ceiling, any water word near "light" or "socket", a collapsed ceiling), security (break-in, a door that won't lock) and vulnerability (no heating alongside a baby, an older or disabled occupant, illness or pregnancy). In Zapier this is a filter step, which uses no tasks; in Make, a router with a filter, which uses no credits; in most property software, a keyword rule.
A realistic mistake shows why this layer exists. In an illustrative test, a tenant wrote: "Water dripping from the kitchen light, is that a plumber or an electrician?" The model classified it as a leak, urgent tier, plumber, because the message was framed as a trade question. Water in a light fitting is an electrical emergency: isolate the circuit and don't touch the switch. The keyword rule (water word plus "light") caught it; the model alone did not. Rule-based and AI steps each have jobs, and AI versus rule-based automation explains how to split them in general.
The emergency reply is fixed text, written by you, never generated: the immediate safety step, the emergency number, and confirmation that someone is being alerted now. Then a person phones, day or night. For how out-of-hours emergency calls can be screened, see whether AI can triage emergency plumbing calls out of hours.
Routing to contractors and approving spend
Once a request has a tier and trade, routing is mostly lookup, and lookup is better done by rules than by AI. Keep a contractor matrix: trade, the area each contractor covers, working hours, emergency cover yes or no, rates, and which landlords have their own preferred contractors. The automation picks the contractor; the AI's job is drafting the work order clearly.
Blocks need one extra rule, because triage that looks at each request alone will get this wrong. Picture three flats in the same building reporting "no hot water" within 40 minutes one morning. Triage one at a time and three plumbers get booked for three flats, when the likely cause is a shared plant room or a communal supply that needs one engineer and a call to the building's managing agent. Before the AI classifies anything, group open requests from the same building and category within a few hours, and when there are two or more, route them to a coordinator as one possible communal fault.
A before and after on the work order itself. What a busy coordinator sends: "Leak at Flat 4, bathroom. Please attend." What the AI drafts from the triage record:
Bathroom ceiling leak, Flat 4. Brown patch approx 30cm, drips when the flat above uses the shower; started about a week ago; ceiling not sagging, no light fitting nearby (tenant confirmed). Likely source is the flat above; access to it is being arranged separately. Tenant available weekdays after 3pm; key held at office. Photos attached. Please quote before carrying out work over the approval limit.
The second version gets the right person, with the right expectations, on the first visit. Spend approval stays with people: most management agreements set a limit above which the landlord must approve, and the AI should flag "likely over limit" rather than decide. The landlord notification that follows is a separate draft, and writing landlord updates with AI covers how to report it back.
Test it on last quarter's requests before tenants meet it
Run the whole system in shadow mode first: it triages real requests, but only staff see the result, alongside their own decision. Even better, start with history. For an illustrative portfolio of 220 homes, a coordinator exports the last 100 closed requests, strips tenant names, and runs each original message through the prompt. The illustrative results against what actually happened:
| Outcome | Count | What it means |
|---|---|---|
| Same tier as the coordinator | 84 | Good agreement |
| AI one tier higher | 11 | Cautious; acceptable, costs some urgency |
| AI one tier lower | 4 | Review every one |
| Emergency missed | 1 | Caught by the keyword rule; fix the prompt anyway |
The four under-tiered requests were all heating faults where the message didn't say who lived there. The fix was adding "does anyone vulnerable live here?" to the heating questions. The standard to hold before going live is zero emergencies missed by the combined rules plus AI, across the whole test set. Piloting AI in shadow mode sets out how long to run it and what to compare.
This portfolio receives roughly 35 requests a week. If intake questioning and work-order drafting take a coordinator around 12 minutes a request today, and AI cuts that to 4 minutes of checking, the saving is close to five hours a week, before counting fewer wasted contractor visits from better information.
Buy it built in, or build your own?
Several property platforms now include AI triage. AppFolio offers a Maintenance Performer that handles intake, troubleshooting, emergency classification and dispatch under rules you set, and Fixflo's Aidenn triages repair reports and analyses photos. If your software has something similar, test it on the same 100 historic requests before switching it on; a built-in tool is easier to maintain than anything you assemble yourself.
If you build, the pieces are a form (or a shared inbox), an automation platform, an AI model and your contractor list. The model cost is small: a triage call of around 2,500 input tokens and 400 output tokens costs about a tenth of a cent on gpt-5.6-luna ($0.20 / $1.20 per million tokens) and under half a cent on Claude Haiku 4.5 ($1 / $5). Photos add tokens but, on those tiers, rarely take a request past a cent or two. The real cost is the set-up and the monthly review of how the rules are performing, which someone must own. For the ticket-triage pattern outside property, tagging, routing and prioritising support requests is a useful companion.
Whichever route, keep reading a sample. Ten triaged requests a week, checked by the most experienced coordinator, is what keeps the tiers honest as seasons and buildings change.
Seasons change the load more than the logic. In an illustrative portfolio, heating reports run at two or three a week through the warm months and jump to around twenty in the first cold week of the heating season. The triage itself copes; what breaks is everything around it. Urgent heating jobs queue behind each other, the two engineers with emergency cover are fully booked by Tuesday, and "within 3 to 7 days" quietly becomes ten. So the weekly check at the start of the heating season should ask two questions rather than one: were the tiers right, and did each tier's target actually get met? If the second answer is no, the fix is contractor capacity arranged before the cold arrives, not a better prompt. A diary reminder a month before the cold sets in, to confirm winter cover with your heating contractors costs nothing and prevents the worst week of the year.
Further reads
- How Much of a Property Manager's Week Can AI Take Over? — Where triage sits among the rest of a property manager's week.
- How to Handle Warranty Claims Faster With AI Triage — The same triage pattern applied to a different kind of claim.
- AI or Human Answering Service: Which Suits a Property Manager? — Who takes the emergency call when the triage says emergency.
- AI Inventory and Check-Out Reports: A Letting Agent's Guide — Repairs history feeds straight into check-out disputes.
- How to Check AI Is Doing Good Work, Not Just Fast Work — Measure triage accuracy, not just how fast work orders appear.
- AI for Letting Agents: Handle Tenant Queries Without Extra Staff — Handle the non-repair tenant questions that arrive alongside repairs.
- What Does It Cost to Integrate AI Into Your Existing Software? — Four ways to add AI to software you already run, what each costs to build and run, and a letting agency's three quotes compared per request.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: AppFolio product pages on its Maintenance Performer; Fixflo product pages on Aidenn AI repairs triage; OpenAI and Anthropic API pricing pages; Zapier help pages on task counting.