How to triage property maintenance requests with AI

Ops & Supply3 AI tools6 steps6 friction points

Property maintenance requests arrive constantly and from every direction — tenant emails, text messages, portal submissions, phone calls logged by your leasing team. Sorting them by urgency, routing them to the right vendor, and making sure nothing slips through the cracks is unglamorous coordination work that still directly affects tenant retention and asset value. Most operators handle it reactively, which means P1 emergencies and nuisance requests compete for the same attention at the same time.

The workflow feels like a natural fit for AI because so much of it is pattern recognition: a burst pipe is always urgent, a flickering hallway light usually isn't, and the gap between them should be answerable from the description alone. Categorizing, prioritizing, drafting vendor dispatches, and logging status updates are all text-in-text-out tasks where a language model could do real work — if you could get your incoming requests in front of it fast enough.

ChatGPT, Claude, and Gemini can handle the reasoning layer of this workflow today. Paste in a batch of maintenance tickets and a good prompt, and you'll get back a priority-ranked list with suggested categories and draft responses. The models understand maintenance urgency signals (water, electrical, HVAC, safety) without much coaching. Where you run into limits is everything around the reasoning: getting the requests in, keeping the output consistent, and connecting decisions to your actual vendor contacts and work order systems.

Ops & Supply3 AI tools6 steps6 friction points
AI walkthrough

How to do it with AI today

A practical walkthrough using ChatGPT, Claude, and other off-the-shelf LLMs — what they're good at, what you'll have to do by hand.

Tools that work for this
ChatGPTClaudeGemini
Step-by-step
1 Export or copy your open maintenance requests from wherever they currently live — your property management software, your Gmail inbox, a shared spreadsheet — and paste them into a single text block. Format matters: give each request a consistent structure (unit, description, date received) so the model can parse them reliably.
2 Open ChatGPT or Claude and paste a triage prompt that defines your urgency tiers. Be explicit: tell it what P1, P2, and P3 mean for your portfolio (e.g., active water leak = P1, HVAC failure in summer = P1, cosmetic issue = P3). The model will apply those definitions more consistently than general intuition.
3 Ask the model to output a structured table — columns for ticket ID, unit, category, priority tier, and recommended next action. Specify the format you want (markdown table or CSV) so you can paste it into a spreadsheet without reformatting.
4 For each P1 and P2 request, ask the model to draft a vendor dispatch message and a tenant acknowledgment message. Paste in your vendor list and any standing service agreements you want referenced, so the drafts reflect your actual contacts rather than placeholder text.
5 Copy the structured output into your master tracker (Google Sheets, Airtable, whatever you use). Update statuses manually as work orders progress — the model has no visibility into what happens after you close the chat.
6 When a new batch of requests comes in next week, repeat the full sequence from step one. The model retains nothing between sessions, so your triage logic lives in your prompt document, not in the tool.
Prompts you can copy
Here are 12 open maintenance requests from my residential portfolio. Categorize each as P1 (health/safety/active damage), P2 (functional but non-emergency), or P3 (cosmetic). Return a markdown table with columns: Unit, Issue Summary, Category, Priority, Recommended Action.
Draft a vendor dispatch email for this P1 plumbing ticket: [paste ticket]. My preferred plumber is Rodriguez Plumbing, (555) 210-4400. Response time expectation is 4 hours. Keep it under 100 words.
Draft a tenant acknowledgment for this maintenance request submitted at 9am today. Confirm receipt, give an estimated response window of 24 hours for P2 issues, and include our maintenance line number: (555) 800-1234.
Review these 20 maintenance requests and flag any that suggest a systemic issue — e.g., multiple units reporting the same HVAC problem or recurring leaks in the same building section. Summarize any patterns you see.
I have these open maintenance tickets sorted by priority. Which P2 tickets are most likely to escalate to P1 if not addressed within 48 hours, and why? Base your reasoning on the issue descriptions only.
Reality check

Where this gets hard

The walkthrough above works — until your numbers change, the LLM hallucinates, or you have to re-paste everything next month.

No live connection to your inbox or property management portal — every triage run starts with a manual export and copy-paste, which means urgent tickets wait until you sit down to do the batch.
The model forgets everything between sessions. Your triage logic, vendor list, and priority definitions live in a prompt document you maintain separately and re-paste every time.
Output structure drifts. The table format you carefully specified last Tuesday may look different this Tuesday unless you paste the exact same prompt — and even then, the model occasionally reformats columns or changes priority labels.
Nothing connects to your actual vendors or work order system. Drafting a dispatch email is useful, but sending it, logging it, and tracking the response all require you to switch tools manually.
Tenant acknowledgments go out on your schedule, not on request receipt. If a P1 comes in at 11pm and you run your triage batch at 9am, the tenant heard nothing for 10 hours.
No audit trail inside the AI tool. If a tenant disputes whether a request was acknowledged or when it was triaged, your record is a downloaded chat log — not a searchable, timestamped system of record.

Tired of the friction?

Starch runs the whole workflow on live data — no copy-paste, no hallucinated numbers, no re-prompting next month.

See the Starch version →
Starch alternative

The same workflow on Starch

Starch is an agentic operating system — it builds and runs the software that handles this workflow continuously, against your live inboxes and data, instead of waiting for you to run a prompt batch. For maintenance triage, that means a persistent app that receives requests, categorizes and prioritizes them in real time, and routes dispatch and acknowledgment messages without a manual trigger.

Connect Gmail or Outlook from Starch's integration catalog; Starch syncs your inbox on a schedule so incoming maintenance requests are read, categorized, and triaged automatically — no export, no copy-paste, no batching.
The Email Triage starter app is a working starting point for inbox-driven workflows. Describe your maintenance triage rules in plain English and the agent customizes it: 'Flag any email mentioning water, gas, or electrical as P1 and draft a vendor dispatch to my plumber and electrician contacts within 15 minutes of receipt.'
Customer Support Agent (coming soon) will handle multi-channel intake — email, chat, and portal submissions — routing tickets and sending tenant acknowledgments 24/7 using your own maintenance policies as the source of truth, and escalating P1s to you with full context.
Starch's Project Management app can serve as your live work order tracker. Tell it: 'Create a task for every P1 maintenance request, assign it to the relevant vendor contact, and mark it overdue if there's no status update within 4 hours.' The agent builds that workflow and keeps it running.
Automations connect the pieces without manual handoffs — a new P1 email triggers a vendor dispatch, a tenant acknowledgment, and a task in your tracker simultaneously, all from a single rule you describe once in natural language.
Everything persists with a timestamped record: when the request came in, when it was triaged, when the vendor was contacted, and when the task closed — so your audit trail is built into the system, not reconstructed from chat logs.
Get closed-beta access →
Toolkit

Starch apps for this workflow

Pick your role

See this workflow by operator

Run triage property maintenance requests on Starch

You're on the list! We'll be in touch soon.