# MaintainX: what the assistant can do

> Everything the assistant can do in MaintainX by text: 9 actions, with example texts, the MaintainX API call behind each one, and which ones ask first or can be undone.

Source: https://asktack.com/docs/actions/maintainx/

In MaintainX, the assistant can create a work order, close a work order, add an update, add photos to a work order, send a work request, log a meter reading, look up a machine, check part stock and list open work orders. You ask by text, in your own words.

**Status:** Beta. How to connect, permissions and limits: [MaintainX](https://asktack.com/docs/integrations/maintainx/).

| What it does | Asks first? | Undo |
|---|---|---|
| Create a work order | If unsure | 10 minutes |
| Close a work order | If unsure | 10 minutes |
| Add an update | If unsure | No |
| Add photos to a work order | If unsure | 10 minutes |
| Send a work request | If unsure | 10 minutes |
| Log a meter reading | If unsure | No |
| Look up a machine | No | – |
| Check part stock | No | – |
| List open work orders | No | – |

Asking first and undo follow the same rules for every tool: see [Confirmations and undo](https://asktack.com/docs/confirmations-and-undo/).

## Create a work order

Creates a work order with a title, the machine and location, priority, who it's assigned to and a due date, with any photos you texted attached. Also schedules a preventive check ("check Conveyor 3 in 30 days").

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **MaintainX API call:** `POST /v1/workorders`
- **Action name:** `maintainx.create_work_order`

**Example texts:**

- "work order: conveyor 3 bearing grinding, high priority, assign Mike"
- "[photo] leak under press 4, make a work order for me due Friday"

## Close a work order

Closes the work order with your labor time, the parts you used (taken out of stock, with what's left) and a completion note. If the machine has no open work order, it logs the work as a new one and closes it.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **MaintainX API call:** `PATCH /v1/workorders/{id}/status`
- **Action name:** `maintainx.close_work_order`

**Example texts:**

- "Conveyor 3 bearing is grinding, replaced it, took 40 min, used one 6205 bearing"
- "close WO-1182, 2 hours, used 2 V-belts B42"

## Add an update

Posts your update on an existing work order: progress, what you found, what you're waiting on.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** No. Change or remove it in the tool itself.
- **MaintainX API call:** `POST /v1/workorders/{id}/comments`
- **Action name:** `maintainx.add_comment`

**Example texts:**

- "update WO-1182: waiting on the bearing, should be here Tuesday"
- "note on the conveyor 3 work order: belt is also frayed"

## Add photos to a work order

Attaches the photos you texted to an existing work order.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **MaintainX API call:** `PUT /v1/workorders/{id}/attachments/{filename}`
- **Action name:** `maintainx.add_photos`

**Example texts:**

- "[2 photos] add these to WO-1182"
- "[photo] put this on the conveyor 3 work order"

## Send a work request

Sends maintenance a work request to review: the problem, the machine or area, priority and any photos you texted.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **MaintainX API call:** `POST /v1/workrequests`
- **Action name:** `maintainx.create_work_request`

**Example texts:**

- "[photo] leak under press 4, request maintenance"
- "Forklift 2 failed pre-shift, brakes soft, put in a request"

## Log a meter reading

Records a reading (hours, miles, pressure, temperature) on a machine's meter and tells you the last one.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** No. Change or remove it in the tool itself.
- **MaintainX API call:** `POST /v1/meterreadings`
- **Action name:** `maintainx.log_meter_reading`

**Example texts:**

- "forklift 2 is at 1520 hours"
- "compressor 1 meter reads 8,412"

## Look up a machine

Tells you where a machine is, whether it's online or down, and its open work orders.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **MaintainX API call:** `GET /v1/assets/{id}`
- **Action name:** `maintainx.find_asset`

**Example texts:**

- "what's going on with conveyor 3?"
- "is forklift 2 down?"

## Check part stock

Looks up a spare part by name or part number and tells you how many are in stock, the minimum, and where they are.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **MaintainX API call:** `GET /v1/parts/{id}`
- **Action name:** `maintainx.find_part`

**Example texts:**

- "how many 6205 bearings do we have?"
- "do we have any B42 belts in stock?"

## List open work orders

Lists your open work orders (or someone else's, or the whole team's), or just the overdue ones or the ones due today, soonest due first.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **MaintainX API call:** `GET /v1/workorders?assignees={id}&statuses=OPEN&statuses=IN_PROGRESS&statuses=ON_HOLD`
- **Action name:** `maintainx.list_work_orders`

**Example texts:**

- "what are my open work orders?"
- "anything overdue in MaintainX?"

---

*This list is generated from the code that runs each action, so it's always current.*
