Property management · AI automation
Maintenance emergencies triaged in each company's own words
Resident maintenance requests, owner questions and viewing requests all land in one place, and a routine request looks the same as an urgent one.
One engine reads each property company's own emergency words, skips scheduling for emergencies and routes requests to the right person.
This is a concept build. Kestrel Property Management is a fictional business. The code is real: open the demo and try the steps below.
The everyday problem
Each request is read in the company's own words, and emergencies jump the line.
The hard part
- Emergencies that differ by business
Kestrel lists 'no heat', 'carbon monoxide' and 'cannot lock'. Dune Lake lists 'locked out', 'hurricane' and 'evacuation'.
- An emergency offered a calendar
Emergencies skip slot picking and go to the emergency route.
- The wrong person gets the job
Assignment prefers the right skill, then the right area, and takes whoever has the most room. If nobody fits, it widens to the whole team.
- Two viewings for one slot
The database refuses the second booking. The request is kept.
How it runs
How a maintenance request finds the right person.
Sample run- Step 1: Request arrives. Resident or guest, chat or form.
- Step 2: Read urgency. Each company's own list: no heat, carbon monoxide, locked out, hurricane.
- Step 3: Emergency? Emergencies skip scheduling.If this fails: Routine: offered a slot.
- Step 4: Pick the team member. Right skill and area preferred; the least loaded wins.If this fails: Nobody free: held in the office queue.
- Step 5: Hold the slot. Viewing and service slots cannot collide.If this fails: Slot just taken: pick another, request kept.
- Step 6: Office board. The intake steps in the audit log.
Tap “On fail” to see what happens when a step breaks.
Edge cases we handled
| When | What the system does | Try it |
|---|---|---|
| A resident writes 'no heat and it's freezing tonight'. | Read as an emergency. Scheduling is skipped. | no heat and it's freezing tonight |
| A guest is locked out of a vacation home. | Read as an emergency on that company's list. | No phrase to try |
| Everyone with the right skill is full. | Held in the office queue, and logged. | No phrase to try |
| Two people book the same slot. | The second is asked to pick another. The request is kept. | No phrase to try |
Guardrails and hand-off
Guardrails
- Emergency words come from each company's own knowledge file.
- Emergencies never wait for a calendar slot.
- The database decides who gets a slot.
When a person takes over
Emergencies go to the emergency route for the office, with the request and its score. Anything the rules cannot place waits in the office queue.
Not in this build yet
We would rather you hear it from us.
- Fair Housing rules and three-audience routing exist as written assistant instructions, not in the running demo.
- There is no AppFolio or Buildium connection.
- Vendor dispatch is logged only. No vendor is contacted.
Try it yourself
Type:
no heat and it's freezing tonightExpect: Read as an emergency. Scheduling is skipped.
Open the chat on the demo site. The chat button appears once you have scrolled a little, or after about 20 seconds. Please don't type real personal details.
Built with
- TypeScript
- Next.js
- React