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

# Building work orders

> View, filter, create, and manage building-level work orders in AssetOps

At the [building level](/products/assetops/quickstart/usage-workflow#building-level), **Work orders** is the hub for planned and unplanned maintenance. Open a building from [Buildings](/products/assetops/resources/buildings), then select **Work orders** in the sidebar.

When AssetOps is enabled, you can also open **Work orders** from the [KODE OS building sidebar](/products/kode-os/assetops/work-orders) without leaving KODE OS.

Work orders can come from corrective requests, [schedules](/products/assetops/schedules/schedules-overview), or integrations. Learn how work types differ in [Work order basics](/products/assetops/quickstart/work-orders).

***

## Work order list

The work orders page shows status summary cards, a searchable table, and actions to create or manage work.

<Frame caption="Work orders list with status cards, Focus mode toggle, search, and table columns">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-orders-list.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=6b034fbb339bb6c8887a05735c0df4b8" alt="Building Work Orders page with status summary cards, Focus Mode toggle, search bar, and work order table" width="1024" height="577" data-path="images/assetops/assetops-building-work-orders-list.png" />
</Frame>

### Status summary cards

Select a card to filter the table by that status. Counts update based on your current filters.

| Status          | Description                             |
| --------------- | --------------------------------------- |
| **Open**        | Created but not yet started             |
| **In progress** | Currently being worked on               |
| **On hold**     | Paused                                  |
| **For review**  | Completed work awaiting review          |
| **Completed**   | Finished work                           |
| **Failed**      | Work that did not complete successfully |
| **Cancelled**   | Cancelled work orders                   |
| **Overdue**     | Past due date and not completed         |

### List actions

* **Search** — Filter the table by text across visible fields
* **Focus mode** — Toggle to show only urgent work. See [Focus mode](#focus-mode).
* **Filters** — Open custom filter criteria. See [Custom filters](#custom-filters).
* **+ Create work order** — Start a new work order. See [Create a work order](#create-a-work-order).
* **Edit** and **Delete** — Available when you select one or more rows
* Vertical ellipsis menu — Additional list actions such as **Export**

Select row checkboxes to enable bulk **Edit** or **Delete**. See [Bulk edit work orders](#bulk-edit-work-orders).

### Export

Open the vertical ellipsis menu in the list header and select **Export** to download work order data.

<Frame caption="Work order table columns include title, status, work type, asset, and schedule with horizontal scroll for more fields">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-orders-list-columns.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=10881dfc426185047001ffa45ce78ed9" alt="Work orders table showing Title with WO ID, Status, Work Type, Asset, Located In, Priority, and Schedule columns" width="1024" height="141" data-path="images/assetops/assetops-building-work-orders-list-columns.png" />
</Frame>

Use the column control at the right edge of the header row to show or hide columns. Scroll horizontally to view fields that do not fit on screen.

### Table columns

| Column                | Description                                                                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Title**             | Work order name as a link, with work order ID below (for example, `WO-10171`). An external-link icon opens the linked Cloud BMS device when applicable. |
| **Status**            | Current lifecycle status (for example, **Open**, **In progress**)                                                                                       |
| **Work type**         | Program type (for example, preventive maintenance, corrective maintenance, inspection)                                                                  |
| **Asset**             | Asset the work applies to                                                                                                                               |
| **Located in**        | Building area or location hierarchy for the work                                                                                                        |
| **Priority**          | Priority level from [Priority & SLA](/products/assetops/portfolio/priority-sla)                                                                         |
| **Schedule**          | Source schedule name and ID when the work order came from a schedule (for example, `SCH-02238`)                                                         |
| **Tasks**             | Task count or summary for work on the order                                                                                                             |
| **Deficiency**        | Linked deficiency or inspection finding when applicable                                                                                                 |
| **SLA status**        | SLA state (for example, on track, warning, breached)                                                                                                    |
| **Created date**      | Date the work order was created                                                                                                                         |
| **Start date & time** | Scheduled or actual start                                                                                                                               |
| **Due date & time**   | Target completion date and time                                                                                                                         |
| **Logged time**       | Total time logged on the [logged time](/products/assetops/work-orders/work-orders-overview#logged-time) section of the detail page                      |
| **Assignee**          | User assigned to the work                                                                                                                               |
| **Team assigned**     | Team assigned to the work                                                                                                                               |
| **Category & issue**  | [Category](/products/assetops/resources/categories) and issue type                                                                                      |
| **Follow up**         | Indicates whether follow-up work is required or pending                                                                                                 |

Select a **Title** link to open the [work order detail page](#work-order-detail-page).

***

## Focus mode

**Focus mode** is a preset view on the work orders list. It shows work orders that require immediate attention, including:

| Category          | Description                                                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
| **SLA breached**  | Work orders that missed an SLA target defined in [Priority & SLA](/products/assetops/portfolio/priority-sla) |
| **Warnings**      | Work orders flagged with SLA or timing warnings before breach                                                |
| **High priority** | Work orders marked as high priority                                                                          |

Enable the **Focus mode** toggle on the work orders list to limit the table to these items. Turn the toggle off to return to the full list. Combine Focus mode with [status summary cards](#status-summary-cards) or [custom filters](#custom-filters) when you need a narrower view.

***

## Custom filters

Custom filters narrow the list using field-based criteria.

<Steps>
  <Step title="Open the filter panel">
    On the work orders list, select **Filters**.
  </Step>

  <Step title="Select criteria">
    Choose one or more filters.

    | Filter          | Description                                             |
    | --------------- | ------------------------------------------------------- |
    | **Category**    | Work order category (for example, HVAC, plumbing)       |
    | **Issue type**  | Issue type within a category                            |
    | **Assign team** | Team assigned to the work order                         |
    | **Assignee**    | User assigned to the work order                         |
    | **Vendor**      | Vendor assigned to the work order                       |
    | **Asset**       | Asset associated with the work order                    |
    | **Area**        | Area associated with the work order                     |
    | **Due date**    | Due date range                                          |
    | **Region**      | Geographic or organizational grouping (portfolio lists) |
  </Step>

  <Step title="Apply">
    Select **Apply** to update the table.
  </Step>
</Steps>

<Tip>
  Combine status cards and custom filters for precise views. For example, filter **In progress** work in the **HVAC** category.
</Tip>

***

## Bulk edit work orders

Update multiple work orders at once from the list at the building or [portfolio](/products/assetops/portfolio/work-orders) level. Bulk updates run as a **batch**: AssetOps processes each selected work order individually. Valid items complete even when some rows fail. Failed rows stay available to review and export with the failure reason (for example, an invalid status transition, a permission restriction, or a field restriction).

When you start a batch, a popup confirms that processing started. If another bulk update is already running, the new job is queued. A badge shows whether the batch finished fully or stopped because of an interruption such as a network error.

Review bulk activity for the last seven days in the building **Bulk History**. Each entry shows who triggered the update, how many items succeeded, and how many failed. Export the failure report from the history view to inspect row-level errors.

<Frame caption="Bulk History shows the last seven days of batch updates with status, counts, and export">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-orders-bulk-history.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=a81efdde18f5e0a1e6b61c56770b2aee" alt="Work Orders page with Bulk History panel listing complete and failed bulk updates for the last seven days" width="1756" height="1045" data-path="images/assetops/assetops-building-work-orders-bulk-history.png" />
</Frame>

<Steps>
  <Step title="Select work orders">
    Use row checkboxes or the header checkbox to select work orders. **Edit** and **Delete** appear in the toolbar.
  </Step>

  <Step title="Open bulk edit">
    Select **Edit** to open the **Edit Work Orders** modal.

    <Frame caption="Edit Work Orders applies only the fields you check to every selected row">
      <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-orders-bulk-progress.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=66107c71c5922aeb4bc5c44d08a887c4" alt="Edit Work Orders dialog with checkboxes for Status, Due Date and Time, Priority, Category, Assignee, Team Assigned, Start Date and Time, Vendor, and Estimated Time" width="755" height="721" data-path="images/assetops/assetops-building-work-orders-bulk-progress.png" />
    </Frame>
  </Step>

  <Step title="Choose fields and save">
    Enable the checkbox for each field you want to change, enter values, then select **Update Work Orders**. The batch applies checked fields to each selected work order that passes validation.
  </Step>

  <Step title="Review results">
    Confirm the batch status in the progress popup. Open the seven-day **Bulk History** to export failed items and read failure reasons.
  </Step>
</Steps>

<Warning>
  Bulk **Delete** permanently removes selected work orders and cannot be undone. Review your selection before you delete.
</Warning>

<ParamField path="Status" type="Dropdown">
  Lifecycle status for selected work orders. Supports bulk completion when the status transition is valid.
</ParamField>

<ParamField path="Due date" type="Date">
  Target due date and time for selected work orders.
</ParamField>

<ParamField path="Priority" type="Dropdown">
  Priority level for selected work orders.
</ParamField>

<ParamField path="Assignee" type="Dropdown">
  User assigned to the selected work orders.
</ParamField>

<ParamField path="Team assigned" type="Dropdown">
  Team assigned to the selected work orders.
</ParamField>

<ParamField path="Completion date" type="Date">
  Completion date for selected work orders. Use when completing work in bulk, including HSSE workflows.
</ParamField>

<ParamField path="Enter status note" type="Field">
  Optional note recorded with a status change.
</ParamField>

***

## Create a work order

Create corrective and other generic work orders for **assets** or **areas**. [Routing and dispatch](/products/assetops/resources/routing-dispatch) can assign teams automatically when you select a category and issue type.

<Steps>
  <Step title="Select + Create work order">
    On the work orders list, select **+ Create work order**.
  </Step>

  <Step title="Configure general details">
    Complete required fields.

    <Frame caption="Create work order form with title, work type, asset, category, priority, and description">
      <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-create-general.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=7dcdd93f1210b5e8a990a2079dde4bc7" alt="Create Work Order form with Title, Work Type Corrective Maintenance, Asset, Area, Category, Issue Type, Priority, Description, and Attachments upload" width="1024" height="680" data-path="images/assetops/assetops-building-work-order-create-general.png" />
    </Frame>

    <ParamField path="Title" type="Field" required>
      Work order name.
    </ParamField>

    <ParamField path="Work type" type="Dropdown" required>
      Program type (for example, corrective maintenance).
    </ParamField>

    <ParamField path="Asset" type="Dropdown">
      Asset the work applies to. Leave blank to target an area only.
    </ParamField>

    <ParamField path="Area" type="Dropdown">
      Building area for the work.
    </ParamField>

    <ParamField path="Category" type="Dropdown" required>
      [Category](/products/assetops/resources/categories) for the work.
    </ParamField>

    <ParamField path="Issue type" type="Dropdown" required>
      Issue type within the category.
    </ParamField>

    <ParamField path="Priority" type="Dropdown" required>
      Priority level for SLA tracking.
    </ParamField>

    <ParamField path="Description" type="Field">
      Rich text description with formatting options.
    </ParamField>

    <ParamField path="Attachments" type="Field">
      Upload supporting files.
    </ParamField>

    <Warning>
      If you select an asset, the area is assigned automatically. To create work for an area only, leave **Asset** blank.
    </Warning>
  </Step>

  <Step title="Configure assignment and timeline">
    Set assignment and dates.

    <Frame caption="Assign team, assignee, vendor, start and due dates, and estimated time">
      <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-create-assignment.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=9b865bf9b3c49b8b37e62f65643e664f" alt="Create Work Order assignment section with Assign Team, Assignee, Vendor, Start Date and Time, Due Date and Time, and Estimated Time hours and minutes" width="1024" height="680" data-path="images/assetops/assetops-building-work-order-create-assignment.png" />
    </Frame>

    <ParamField path="Assign team" type="Dropdown">
      Team for the work order. Routing rules may prefill this field.
    </ParamField>

    <ParamField path="Assignee" type="Dropdown">
      One or more users assigned to the work.
    </ParamField>

    <ParamField path="Vendor" type="Dropdown">
      External vendor for the work.
    </ParamField>

    <ParamField path="Start date & time" type="Date" required>
      When work is scheduled to start.
    </ParamField>

    <ParamField path="Due date & time" type="Date">
      Target completion date and time.
    </ParamField>

    <ParamField path="Estimated time" type="Field">
      Planned duration in hours and minutes.
    </ParamField>
  </Step>

  <Step title="Save">
    Select **Save** to create the work order.
  </Step>
</Steps>

<Info>
  When you create work orders from the [portfolio level](/products/assetops/portfolio/work-orders), you must select the target building manually. The form fields match the building-level flow.
</Info>

***

## Work order detail page

Select a work order **Title** from the building list to open its detail page. From the [portfolio work orders](/products/assetops/portfolio/work-orders) list or the [KODE OS Work orders](/products/kode-os/assetops/work-orders) module, select the **Title** link or the external-link icon beside the title to open the same detail page in building context. The header shows the work order name, ID badge (for example, `WO-10203`), and actions for comments and more options.

Three tabs organize the page:

| Tab             | Purpose                                              |
| --------------- | ---------------------------------------------------- |
| **Details**     | General information, task checklist, and logged time |
| **Attachments** | Files linked to the work order                       |
| **Follow-ups**  | Related and external follow-up work orders           |

### Header actions

#### Comments

Select the comment icon in the header to open the **Comments** panel. A badge shows how many comments exist on the work order.

The panel lists comments in chronological order. Each entry shows the author, date, and message text. The system can add automated comments when status changes occur (for example, when a task moves to **Not applicable** and the work order status updates to **In progress**).

To add a comment:

1. Enter text in **Add comment**.
2. Use the formatting toolbar for bold, italic, underline, links, and lists as needed.
3. Select **Comment** to post.

Close the panel to return to the work order detail view.

#### More actions

Open the vertical ellipsis menu in the header for additional actions.

| Action                   | Description                                                          |
| ------------------------ | -------------------------------------------------------------------- |
| **Status history**       | Timeline of status changes for this work order                       |
| **Schedule run history** | Work orders generated from the linked schedule run (when applicable) |
| **Delete**               | Remove the work order                                                |

##### Status history

The **Status history** modal lists changes from newest to oldest. The current status is marked **Current**. Each entry includes:

* **Status** name (for example, **Open**, **In progress**)
* **Date and time** of the change
* **User** who made the change, when applicable
* **Note** explaining the change, including automated notes when a task status triggers a work order status update

Select **Close** to return to the work order page.

##### Schedule run history

For work orders created from a schedule, **Schedule run history** lists related work orders from the same schedule run.

| Column                | Description                             |
| --------------------- | --------------------------------------- |
| **Number**            | Work order ID (for example, `WO-04385`) |
| **Status**            | Current status of that work order       |
| **Start date & time** | Start date and time for the run         |
| **Due date & time**   | Due date and time for the run           |

Use **Search** to find entries. Select the external-link icon on a row to open that work order. Select **Close** when finished.

### Details tab

<Frame caption="Work order detail page with Details tab, general information, schedule log and asset links, and task progress">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-details.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=fdc5f8e87db24f340b6fcc89c43f54ed" alt="Work order Details tab for WO-10203 showing Completed status, start due and completion dates, Schedule and Log link, Asset link, and Tasks section with 6 of 6 completed progress bar" width="1024" height="633" data-path="images/assetops/assetops-building-work-order-details.png" />
</Frame>

#### General information

Select the <Icon icon="pencil" size="15" /> icon to edit general fields.

| Field                      | Description                                                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Status**                 | Lifecycle status (for example, **Open**, **In progress**, **Completed**)                                                                         |
| **Start date & time**      | When work is scheduled or started                                                                                                                |
| **Due date & time**        | Target completion date and time                                                                                                                  |
| **Completion date & time** | When the work order was completed                                                                                                                |
| **Work type**              | Program type (for example, preventive maintenance, corrective maintenance)                                                                       |
| **Assignee**               | User assigned to the work                                                                                                                        |
| **Team assigned**          | Team assigned to the work                                                                                                                        |
| **Estimated time**         | Planned duration for the work order                                                                                                              |
| **Schedule and log**       | Link to the source [schedule](/products/assetops/schedules/schedules-overview#schedule-detail-page) log when the work order came from a schedule |
| **Asset**                  | Link to the linked [asset](/products/assetops/assets/assets) record                                                                              |
| **Located in**             | Building area for the work                                                                                                                       |
| **Vendor**                 | Assigned vendor                                                                                                                                  |
| **Created by**             | User who created the work order                                                                                                                  |
| **Created at**             | Creation date                                                                                                                                    |

#### Tasks

The **Tasks** section lists checklist items from [task templates](/products/assetops/resources/task-templates) or custom tasks. A progress bar and counter show how many tasks are complete (for example, `6/6 Completed`).

<Frame caption="Task checklist with status dropdowns and view description actions">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-tasks.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=633818344f8c3b314a3cce75e7a6fc02" alt="Work order Tasks section with checklist items, To Do status dropdowns, and View Description buttons" width="1024" height="665" data-path="images/assetops/assetops-building-work-order-tasks.png" />
</Frame>

* Select **Update multiple** to change status and compliance for several tasks at once
* Use each task **Status** dropdown to set **To do**, **Done**, or **Not applicable**
* Select **View description** or **View attachments** for task-level details

##### Set task to done

When you mark a task **Done**, complete the compliance form.

<Frame caption="Set Task to Done modal with Compliant, Corrective action taken, and required Note">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-task-done.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=baf8d4e35fd12309793358d3d061741d" alt="Set Task to Done modal with Compliant No selected, Corrective Action Taken Yes, and Note required validation" width="425" height="452" data-path="images/assetops/assetops-building-work-order-task-done.png" />
</Frame>

| Field                       | Description                                                       |
| --------------------------- | ----------------------------------------------------------------- |
| **Compliant**               | Whether the item inspected meets requirements (**Yes** or **No**) |
| **Corrective action taken** | Whether corrective work was performed when not compliant          |
| **Note**                    | Required notes about the result                                   |

##### Set task to not applicable

<Frame caption="Set Task to Not Applicable requires a note">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-task-not-applicable.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=bc08dc09e4c6faf17126519162b4a628" alt="Set Task to Not Applicable modal with required Note field" width="470" height="299" data-path="images/assetops/assetops-building-work-order-task-not-applicable.png" />
</Frame>

Enter a required **Note** explaining why the task does not apply, then select **Save**.

##### Update multiple tasks

<Frame caption="Update Multiple Tasks bulk-updates status, compliance, and notes">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-update-multiple-tasks.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=acfe0cd36dee4be63c6ccab6a8e4137c" alt="Update Multiple Tasks page with Mark All as Done and Compliant and per-task Done status and compliance fields" width="1024" height="660" data-path="images/assetops/assetops-building-work-order-update-multiple-tasks.png" />
</Frame>

Select **Update multiple** from the **Tasks** section. For each task, set **Status**, **Compliant**, **Corrective action taken** (when required), and **Note**. Use **Mark all as done and compliant** for a quick pass, **Reset all** to clear changes, or **Save changes** to apply.

#### Logged time

The **Logged time** section tracks hours spent on the work order.

When no time is recorded, the section shows:

* **No time logged yet**
* *Start tracking your work hours to monitor progress.*

Start a timer or add time entries from this section to log work against the order. Logged time rolls up to the **Logged time** column on the [work order list](#table-columns) and supports labor reporting on the [building dashboard](/products/assetops/building/dashboard).

### Attachments tab

<Frame caption="Attachments tab with Upload and file cards">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-attachments.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=e33c33b4f7aee26e53186bc61a10d4e5" alt="Work order Attachments tab with Upload button and attachment card showing date uploader and filename" width="1024" height="450" data-path="images/assetops/assetops-building-work-order-attachments.png" />
</Frame>

* Select **Upload** to add files
* Each card shows upload date, uploader, and file name
* Use the row menu for file actions

### Follow-ups tab

<Frame caption="Follow-ups tab lists internal and external follow-up work orders">
  <img src="https://mintcdn.com/kodelabs/E_jpUki-mggVLzq3/images/assetops/assetops-building-work-order-follow-ups.png?fit=max&auto=format&n=E_jpUki-mggVLzq3&q=85&s=23a3b95d86b79ecfb61089663d039099" alt="Work order Follow-ups tab with follow-up cards showing title WO ID status and Created At plus External Follow-ups section" width="1024" height="637" data-path="images/assetops/assetops-building-work-order-follow-ups.png" />
</Frame>

**Follow-ups** shows child work orders that continue work from the parent order. Select **+ Create** to add a follow-up. Each card shows title, work order ID, **Status**, **Created by**, and **Created at**.

**External follow-ups** lists follow-up work pushed to external systems (for example, a CMMS), with statuses such as **Sent**.

<Note>
  Follow-up work orders inherit the same asset or area as the parent work order when the parent was created for a specific target.
</Note>

***

## Related modules

<CardGroup cols={2}>
  <Card title="Schedules" icon="calendar" href="/products/assetops/schedules/schedules-overview" arrow={true}>
    View schedules that generate preventive and inspection work orders.
  </Card>

  <Card title="Assets" icon="box" href="/products/assetops/assets/assets" arrow={true}>
    Open assets linked to work orders.
  </Card>

  <Card title="Categories" icon="tags" href="/products/assetops/resources/categories" arrow={true}>
    Configure categories and issue types for corrective work.
  </Card>

  <Card title="Teams" icon="users" href="/products/assetops/resources/teams" arrow={true}>
    Assign teams to work orders and schedules.
  </Card>

  <Card title="Work order fields" icon="table" href="/products/assetops/reference/work-order-fields" arrow={true}>
    Look up statuses, columns, and field definitions in one place.
  </Card>
</CardGroup>
