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

# Maintenance request tracking

> Route incoming maintenance requests to the right vendor or team based on urgency, category, and property rules

Maintenance is the day-to-day heartbeat of property management, and how quickly and effectively you handle requests directly impacts tenant satisfaction and retention. When requests come in through portals, phone calls, and emails, they need to be categorized, prioritized, assigned to the right vendor or team, and tracked to completion. Manual triage is slow, inconsistent, and prone to losing requests in the shuffle — especially during high-volume periods like seasonal transitions.

Wayak automates the maintenance workflow from intake to resolution. A playbook triggers on each new request, categorizes it, assigns priority based on your rules, routes it to the appropriate vendor, and escalates if the resolution timeline is exceeded. An agent gives property managers real-time visibility into open requests, vendor performance, and cost tracking.

***

## What you need

<CardGroup cols={2}>
  <Card title="Data sources" icon="database">
    * **Property management system** — maintenance request tickets, unit details, tenant information, and request history
    * **Vendor management database** — approved vendor list, service categories, response time SLAs, and contract terms
    * **Accounting database** — maintenance budgets, work order costs, and invoice history
  </Card>

  <Card title="Knowledge spaces" icon="book-open">
    * **Maintenance procedures** — upload your triage rules, priority definitions (emergency, urgent, routine, cosmetic), routing logic by category and property, and escalation timelines
    * **Vendor contracts** — upload active vendor agreements with scope of work, pricing, response time commitments, and contact information
  </Card>
</CardGroup>

**Semantic layer:** Define these in your ontology before setting up the agent.

| Component | Name                          | Definition                                                                                                                                   |
| --------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Object    | Maintenance Request           | Maps to the `requests` table in the property management system. Represents a tenant-submitted work order with category, priority, and status |
| Object    | Vendor                        | Maps to `vendors` in the vendor management database. Represents an approved service provider with category, SLA, and availability            |
| Metric    | Average Resolution Time       | Mean elapsed hours from request submission to completion, segmented by priority and category                                                 |
| Metric    | First-Contact Resolution Rate | Percentage of requests resolved on the first vendor visit without a return trip                                                              |
| Dimension | Category                      | Classifies requests by type (plumbing, electrical, HVAC, appliance, structural, cosmetic)                                                    |
| Dimension | Priority                      | Ranks requests as emergency, urgent, routine, or cosmetic based on triage rules                                                              |

<Tip>
  See [building a semantic layer](/quickstart/build-semantic-layer) for a step-by-step guide.
</Tip>

***

## Agent setup

<Steps>
  <Step title="Create the agent">
    Go to **Agent Space** → **New agent**.

    | Field    | Value                                                                                                                                                           |
    | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Name** | Maintenance Coordinator                                                                                                                                         |
    | **Role** | Property Maintenance Specialist                                                                                                                                 |
    | **Goal** | Triage incoming maintenance requests, track resolution progress, provide vendor performance data, and answer maintenance-related queries from property managers |
  </Step>

  <Step title="Set the description">
    > You are a property maintenance coordinator who manages work orders across a multi-property portfolio. You categorize and prioritize requests using defined triage rules, assign them to the appropriate vendor based on category, location, and SLA requirements, and track each request to resolution. You flag overdue requests for escalation and monitor vendor performance against contractual SLAs. You provide clear status updates and cost summaries to property managers.
  </Step>

  <Step title="Scope data access">
    Grant access to:

    * Property management system (maintenance requests, unit details, tenant information)
    * Vendor management database (vendor list, SLAs, contracts)
    * Accounting database (maintenance budgets, work order costs)
    * Maintenance procedures knowledge space
    * Vendor contracts knowledge space
    * Maintenance Request and Vendor objects, Average Resolution Time and First-Contact Resolution Rate metrics
  </Step>

  <Step title="Add skills">
    <AccordionGroup>
      <Accordion title="Request status lookup">
        **Trigger:** User asks about the status of a specific request or all open requests.

        1. Query the property management system for the specified request or all open requests.
        2. Pull the assigned vendor and their response timeline from the vendor management database.
        3. Calculate elapsed time and compare against the priority-based SLA from the maintenance procedures knowledge space.
        4. Flag any requests that have exceeded their SLA or are approaching the deadline.
        5. Return a status summary with request ID, category, priority, assigned vendor, elapsed time, SLA status, and next action.
      </Accordion>

      <Accordion title="Vendor performance review">
        **Trigger:** User asks about vendor performance or reliability.

        1. Query completed maintenance requests for the requested vendor or all vendors over the specified period.
        2. Calculate average resolution time, first-contact resolution rate, and SLA compliance rate.
        3. Pull cost data from the accounting database and compare against contracted pricing.
        4. Rank vendors by performance within each service category.
        5. Return a performance report with metrics, rankings, and recommendations for contract renewal or replacement.
      </Accordion>

      <Accordion title="Maintenance cost analysis">
        **Trigger:** User asks about maintenance spending or budget tracking.

        1. Query work order costs from the accounting database for the specified property or portfolio.
        2. Break down costs by category, vendor, and priority level.
        3. Compare actual spending against the maintenance budget.
        4. Identify the top cost drivers and any unusual spending patterns.
        5. Return a cost analysis with total spend, budget variance, category breakdown, and top cost items.
      </Accordion>
    </AccordionGroup>
  </Step>
</Steps>

***

## Automation

### Playbook: Maintenance request routing

<Steps>
  <Step title="Set the trigger">
    Set the trigger to **Event — New record** on the `requests` table in the property management system. The playbook fires each time a tenant submits a maintenance request.
  </Step>

  <Step title="Build the workflow">
    The workflow triages, assigns, and tracks each new request:

    1. **Query** the request details including the tenant's description, unit, property, and any attached photos.
    2. **Action** — categorize the request using keyword matching against the triage rules in the maintenance procedures knowledge space (e.g., "water leak" maps to plumbing/emergency, "paint peeling" maps to cosmetic/routine).
    3. **Action** — assign priority based on the category and description per the triage rules.
    4. **Condition** — if the priority is "emergency," skip normal routing and immediately alert the on-call maintenance team.
    5. **Action** — for non-emergency requests, query the vendor management database for approved vendors in the request's category and property location. Select the vendor with the best SLA compliance and availability.
    6. **Action** — create the work order assignment in the property management system with the vendor, priority, and SLA deadline.
    7. **Delivery** — notify the vendor, tenant, and property manager.
  </Step>

  <Step title="Configure delivery">
    * **Email to vendor** — send the work order with property address, unit number, request details, photos, and SLA deadline
    * **Email/SMS to tenant** — confirm receipt with the assigned vendor, expected response time, and a tracking reference number
    * **Slack** — post emergency requests to `#maintenance-urgent` immediately; post a daily digest of all new requests to `#maintenance`
  </Step>

  <Step title="Test and activate">
    Click **Run now** to test with a recent request, then toggle to **Active**.
  </Step>
</Steps>

***

## What's next

<CardGroup cols={2}>
  <Card title="Occupancy optimization" icon="arrow-right" href="/use-cases/real-estate/occupancy-optimization">
    Analyze vacancy patterns and market conditions to optimize pricing and lease-up strategies.
  </Card>

  <Card title="All Real Estate use cases" icon="list" href="/use-cases/real-estate">
    See the full list.
  </Card>
</CardGroup>
