---
title: "Create a maintenance work order"
description: "The New Maintenance Workorder modal carries every field a work order can hold: title, description, group, priority, asset, one assignee, due date, recurrence, time estimate, notes, required and created parts, images and files. Only a title and a group are required, and Create stays disabled until both exist. Everything else is optional at create time and editable afterwards from the work-order drawer."
category: "Work orders"
source_url: "https://www.iotflows.com/docs/maintain/create-a-work-order/"
---
# Create a maintenance work order

A fully specified work order: who, what machine, when, and with which parts.

The **New Maintenance Workorder** modal holds every field a work order can carry. Two are required, a title and a group.

The rest are chips along the bottom of the modal, all optional now and all editable later in the [work-order drawer](/docs/maintain/work-order-detail/). This page goes through them in the order the modal presents them.

For the shortest path through this modal, see [Quickstart: create and close your first work order](/docs/maintain/quickstart/). For reporting a problem from the floor instead of planning the work, see [Submit a maintenance request](/docs/maintain/submit-a-request/).

## 1. Open the create form
1. On the web, select **Maintain** in the top navigation. The board opens at `/<organization>/maintenance`.
2. Select the blue **+** above the board. The modal opens with the cursor already in the title field.

Two shortcuts reach the same modal. In the **Calendar** view, drag across the days the job should run and the modal opens with the due date, the due time and the time estimate already filled from what you dragged. On a phone, **Create maintenance order** on the maintenance screen opens it unchanged.

![The New Maintenance Workorder modal, with a title field, a description area, a wrapped row of chips reading Group, Priority, Due Date, Asset, Assignee, Estimate, Notes, Required Parts, Create/Release Parts, Images and Files, and a grayed-out Create button at the bottom right](/images/maintain/mnt-create-01.webp)

*The New Maintenance Workorder modal: a title field and a description at the top, and below them the row of property chips that carries every other field, ending in the Create button.*

Each chip shows its label until it holds a value, then shows the value. Nothing is written until you select **Create**, so closing the modal discards the whole form, including any group you created inside it.

## 2. Title and description
Type the problem into **Work order title**. Write what is wrong rather than what to do, so the technician can judge it: `Spindle coolant leak at the rear seal` tells them more than `Fix the mill`. The title is what the board, the Kanban card and every notification show.

The description below it is rich text with no toolbar. Bold, italic, underline, strikethrough and lists survive from keyboard shortcuts and from pasted text. Use it for what the operator saw, what has already been tried, and anything a technician needs before walking to the machine.

## 3. Group
A *group* is a named, colored bucket for the kind of work, for example `Electrical` or `Weekly PMs`. It is required: **Create** stays grayed out until the work order has one, and a new organization starts with none.

1. Select the **Group** chip.
2. Pick a group from the list, or type into **Search groups...** to narrow it.
3. To make a new one, select **Add group**, pick a color from the swatch, type into **Group name...**, and select **Create Group**. Enter or Tab creates it too.

The new group is saved to the board immediately, selected on this work order, and available to every later one.

![The Group dropdown open over the modal, listing the board's colored groups above an Add group row expanded into a color swatch, a Group name field holding Weekly PMs, and a Create Group button, with the expanded row outlined](/images/maintain/mnt-create-02.webp)

*Groups, created inline with a color. Use them for the kind of work, not the department.*

**Use groups for the kind of work, not the department that does it**: Electrical, Hydraulics, Safety. Groups drive the board's color and its grouping, and a board grouped by department just reproduces your org chart. See [Organize work on the maintenance board](/docs/maintain/maintenance-board/).

## 4. Priority
A *priority* is a single-choice label that sorts and colors the work order on the board. The list comes from IoTFlows rather than from your organization, so you pick from it rather than editing it.

Select the **Priority** chip and pick one from the row. The first entry is the default and means no priority, and the chip stays blank while it is selected. The **Due Date** chip sits directly beside it, and a **Recurrence** chip joins the row as soon as a due date exists.

![A cropped detail of the chip row with the Priority chip showing a colored flag and a priority name, and the Due Date chip showing a date and a time, numbered one and two](/images/maintain/mnt-create-03.webp)

*Priority and due date. Recurrence needs a due date to anchor to.*

## 5. Asset
Select the **Asset** chip and pick the machine the work is on. **Search assets...** matches both the machine name and its identifier, so `CNC-04` finds it as readily as `Haas VF-2`. **Clear asset** at the bottom of the dropdown removes it again.

A work order with no asset is still valid, but it never appears in any machine's maintenance history, which is most of the reason to file it in IoTFlows rather than on paper.

## 6. Assignees
An *assignee* is the person or team responsible for the work. **Search people or teams...** lists both; team rows show how many members they hold.

The create form takes exactly one assignee. If the job needs several, pick the person who owns the outcome here and add the rest afterwards, on [Update, discuss, and close a work order](/docs/maintain/work-order-detail/).

**Manage board members** at the bottom of the dropdown opens the board's member list if the person you want is missing from it. See [Give people access to Maintain](/docs/maintain/board-members/).

![The Assignee dropdown open over the modal, listing people with avatars and usernames and teams with member counts, one row selected, and a Manage board members button at the bottom](/images/maintain/mnt-create-04.webp)

*The assignee picker, open over the board's people and teams, with one person selected.*

## 7. Due date
Select the **Due Date** chip, then pick a date and, if it matters, a time. Leaving the time empty saves the work order as due at 09:00.

Once a date is set, a timezone selector appears under it: **Local Timezone**, **Organization Timezone** or **Custom Timezone**. Local is the timezone of the browser you are typing in, which is the wrong one if you are planning work for a plant in another region. **Clear date** removes the date, the time and any recurrence built on it.

## 8. Recurrence
The **Recurrence** chip only appears once the work order has a due date, because the series is anchored to it: the due date is the first occurrence, and everything after it is counted from there.

Select the chip and pick a preset: **Daily**, **Weekly on** that weekday, **Every Weekday (Monday to Friday)**, **Monthly on** that weekday of the month, or **Annually on** that date. **Custom** opens interval, weekday and end-date controls for anything else, and the series can be given an end date that uses the same time as the due date.

A work order with a recurrence rule is a preventive maintenance schedule. There is no separate object for one. See [Schedule preventive maintenance](/docs/maintain/preventive-maintenance/).

## 9. Time estimate
An *estimate* is how long the work should take, stored in minutes and shown in the board's Table view and its CSV export. The field takes free text: `2h 30m`, `1d 3h`, `90m` and `1.5d` all parse, and a bare number is read as minutes.

The parsed value is echoed under the field as `= 2 hrs 30 mins`. Text it cannot read shows a red **Invalid format**, and a work order created with that text in the field saves with no estimate at all.

**You do not need an estimate on a reactive work order.** Estimates earn their keep on planned and recurring work, where they feed the schedule. Guessing at one for a breakdown nobody has looked at yet only adds a number that will be wrong.

## 10. Notes
The **Notes** chip is a plain-text field, separate from the description and shown in its own row in the drawer. Use it for what surrounds the job rather than the job itself: a purchase order number, a gate code, the fact that the machine can only be taken down on a Sunday.

## 11. Required and created parts
Two chips bind stock to the work order. **Required Parts** is what the job consumes. **Create/Release Parts** is what it produces, or the tool it hands back when it is finished.

Each line is a part, a location and a quantity. Search the catalog, pick the location to take from (or to put into), and adjust the quantity, which starts at one or at whatever the location suggests. The required side opens on purchased parts, since maintenance usually consumes bought stock; the create side opens on everything, because a job as often returns a tool as makes a part.

![The Required Parts panel with two staged lines showing part name, SKU, a location breadcrumb and a quantity box, above an inline part search](/images/maintain/mnt-create-05.webp)

*The Required Parts panel with two staged lines, each showing its part, the location it comes from, and a quantity.*

> **Warning:**
> **Why did a part I added not appear on the work order?**
>
> A line with no location is dropped when the work order is created, and so is a line whose quantity is zero. The panel marks the first case in amber, `Set a location, or this part is not reserved`. Fix both before you select **Create**: a dropped line reserves nothing and the work order shows no sign it was ever there.

Nothing moves in Inventory at create time. The stock is deducted and added when somebody moves the work order to **Done**, after they confirm the amounts. See [How work orders move stock](/docs/inventory/how-work-orders-move-stock/).

**Most maintenance work orders leave Create/Release Parts empty.** Fill it in when the job returns a tool to the crib or rebuilds a part that goes back on the shelf, not when it only fixes a machine.

## 12. Images and files
The **Images** chip takes JPEG, PNG, GIF, WebP, BMP and SVG, by drag and drop or by selecting the tile. Each image is converted to WebP and capped at 1600 px on its long edge before it uploads, so a phone photograph does not arrive as a 6 MB file.

On a phone, **Take photo** opens the camera straight into the form. Anything the chip rejects names itself in a toast, `<filename> is not a valid image`.

The **Files** chip takes any file type, unconverted: a PDF of the manual page, a wiring diagram, a quote. Both upload as you add them rather than at **Create**, so a failure shows up immediately as `Failed to upload <filename>`, and both preview under the description where you can remove one before submitting.

![The create modal with an image thumbnail and a PDF chip named press-04-pump-curve previewing under the description, and the Images and Files chips each showing a count of one](/images/maintain/mnt-create-06.webp)

*One photograph and one PDF attached to a work order, previewed under the description.*

## 13. Create
Select **Create**. The button stays grayed out until the work order has both a title and a group, and Cmd+Enter (Ctrl+Enter on Windows) submits without reaching for it.

A green **Maintenance workorder created** confirms it and the card appears on the board. A red **Failed to create workorder** means nothing was saved; the modal stays open with everything you typed, so correct what you can and select **Create** again.

## Create fields
| Field | Required | Accepts | Editable later | In CSV export |
|---|---|---|---|---|
| Title | Yes | Plain text | Yes | Yes, as **Title** |
| Description | No | Rich text | Yes | Yes, with formatting stripped |
| Group | Yes | One group from the board, or a new one created inline | Yes | Yes, as **Group** |
| Priority | No | One entry from the IoTFlows priority list | Yes | Yes, as **Priority** |
| Asset | No | One machine in the organization | Yes | Yes, as **Asset** |
| Assignee | No | One person or one team | Yes, and more than one | Yes, as **Assigned To** |
| Due date | No | A date, an optional time, and a timezone | Yes | Yes, as **Due Date** |
| Recurrence | No | A preset or a custom rule, with an optional end date | Yes | Yes, as **Recurrence** |
| Time estimate | No | Free text such as `2h 30m`, stored in minutes | Yes | Yes, as **Estimated Time (min)** |
| Notes | No | Plain text | Yes | Yes, as **Notes** |
| Required parts | No | Part, location and quantity per line | Yes | No |
| Create/Release parts | No | Part, location and quantity per line | Yes | No |
| Images | No | JPEG, PNG, GIF, WebP, BMP, SVG | Yes | No |
| Files | No | Any file type | Yes | No |

The export carries the columns the **Table** view is showing at the time, so a field is missing from the CSV if its column is switched off. See [Exports reference](/docs/monitoring/exports-reference/).

## See also
- [Schedule preventive maintenance](/docs/maintain/preventive-maintenance/)
- [Update, discuss, and close a work order](/docs/maintain/work-order-detail/)
- [Work order fields and statuses](/docs/maintain/work-order-fields/)
- [How work orders move stock](/docs/inventory/how-work-orders-move-stock/)
