maintainx-core-workflow-a
Master the MaintainX work order lifecycle from creation to completion with these workflow instructions.
Install
mkdir -p .claude/skills/maintainx-core-workflow-a && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7108" && unzip -o skill.zip -d .claude/skills/maintainx-core-workflow-a && rm skill.zipInstalls to .claude/skills/maintainx-core-workflow-a
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Execute MaintainX primary workflow: Work Order lifecycle management.Key capabilities
- →Create corrective work orders with metadata
- →Transition work orders through status lifecycle
- →Query and paginate work orders by status
- →Add comments and file attachments to work orders
- →Assign work orders to individual users or teams
How it works
The skill utilizes a MaintainXClient to interface with the REST API, executing CRUD operations and status transitions through defined endpoints.
Inputs & outputs
When to use maintainx-core-workflow-a
- →Creating new corrective work orders
- →Transitioning work orders through maintenance stages
- →Assigning tasks to users
- →Closing out completed maintenance work
About this skill
MaintainX Core Workflow A: Work Order Lifecycle
Overview
Master the complete work order lifecycle in MaintainX -- from creation through completion. Work orders are the core unit of maintenance operations.
Prerequisites
- Completed
maintainx-install-authsetup MAINTAINX_API_KEYenvironment variable configured- MaintainX account with work order permissions
Status Transition Flow
OPEN ──→ IN_PROGRESS ──→ COMPLETED ──→ CLOSED
│ │ ↑
│ ↓ │
│ ON_HOLD ───────────┘
│
└──→ CLOSED (cancelled)
Instructions
Step 1: Create a Work Order
import { MaintainXClient } from './maintainx/client';
const client = new MaintainXClient();
// Create a corrective work order
const { data: wo } = await client.createWorkOrder({
title: 'Pump Station #3 - Seal Leak Repair',
description: 'Detected water leak at the mechanical seal. Needs immediate attention.',
priority: 'HIGH',
status: 'OPEN',
assignees: [{ type: 'USER', id: 4521 }],
assetId: 8901,
locationId: 2345,
dueDate: '2026-03-21T17:00:00Z',
categories: ['CORRECTIVE'],
});
console.log(`Work order #${wo.id} created`);
Step 2: Update Status Through Lifecycle
// Technician starts work
await client.updateWorkOrder(wo.id, {
status: 'IN_PROGRESS',
});
// Put on hold (waiting for parts)
await client.updateWorkOrder(wo.id, {
status: 'ON_HOLD',
onHoldReason: 'Waiting for replacement seal kit from supplier',
});
// Resume and complete
await client.updateWorkOrder(wo.id, {
status: 'IN_PROGRESS',
});
await client.updateWorkOrder(wo.id, {
status: 'COMPLETED',
completionNotes: 'Replaced mechanical seal. Tested for 30 min with no leaks.',
});
Step 3: Query Work Orders
// Fetch open work orders sorted by priority
const { data: openOrders } = await client.getWorkOrders({
status: 'OPEN',
limit: 25,
});
for (const order of openOrders.workOrders) {
console.log(`#${order.id} [${order.priority}] ${order.title}`);
}
// Paginate through all IN_PROGRESS orders
async function getAllInProgress() {
const allOrders = [];
let cursor: string | undefined;
do {
const { data } = await client.getWorkOrders({
status: 'IN_PROGRESS',
limit: 100,
cursor,
});
allOrders.push(...data.workOrders);
cursor = data.cursor;
} while (cursor);
return allOrders;
}
Step 4: Add Comments and Attachments
// Add a technician note
await client.request('POST', `/workorders/${wo.id}/comments`, {
body: 'Arrived on site. Isolating pump before disassembly.',
});
// Add a completion photo (URL-based)
await client.request('POST', `/workorders/${wo.id}/files`, {
url: 'https://storage.example.com/photos/seal-repair-complete.jpg',
name: 'seal-repair-complete.jpg',
});
Step 5: Assign to Teams
// Assign to a team instead of individual
const { data: teams } = await client.request('GET', '/teams');
const mechTeam = teams.teams.find((t: any) => t.name === 'Mechanical');
await client.updateWorkOrder(wo.id, {
assignees: [{ type: 'TEAM', id: mechTeam.id }],
});
Output
- Work orders created with full metadata (title, description, priority, assignees, asset, location)
- Status transitions executed through the complete lifecycle
- Paginated query results for filtering work orders
- Comments and files attached to work orders
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 400 Bad Request | Missing title field | Include at least title in POST body |
| 404 Not Found | Invalid asset/location/user ID | Verify referenced IDs exist via GET endpoints |
| 403 Forbidden | Insufficient permissions | Check user role has work order write access |
| 422 Invalid transition | Invalid status change (e.g., CLOSED to OPEN) | Follow the status transition flow above |
Resources
- MaintainX API Reference
- Work Orders Help
- Complete a Work Order
Next Steps
For asset and location management, see maintainx-core-workflow-b.
Examples
Bulk-create preventive maintenance work orders:
const pmSchedule = [
{ title: 'Weekly HVAC Filter Check', priority: 'LOW', categories: ['PREVENTIVE'] },
{ title: 'Monthly Fire Extinguisher Inspection', priority: 'MEDIUM', categories: ['PREVENTIVE'] },
{ title: 'Quarterly Elevator Safety Audit', priority: 'HIGH', categories: ['PREVENTIVE'] },
];
for (const pm of pmSchedule) {
const { data } = await client.createWorkOrder(pm);
console.log(`PM created: #${data.id} - ${data.title}`);
}
Filter work orders by date range:
curl -s "https://api.getmaintainx.com/v1/workorders?createdAtGte=2026-03-01T00:00:00Z&createdAtLte=2026-03-31T23:59:59Z&limit=50" \
-H "Authorization: Bearer $MAINTAINX_API_KEY" | jq '.workOrders | length'
When not to use it
- →Managing asset or location records
- →Handling rate limit management
Prerequisites
Limitations
- →Invalid status transitions are blocked
- →Requires specific user role permissions for write access
How it compares
This workflow automates the full lifecycle state machine for work orders compared to manual entry in the MaintainX web interface.
Compared to similar skills
maintainx-core-workflow-a side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| maintainx-core-workflow-a (this skill) | 1 | 27d | Review | Intermediate |
| webapp-testing | 353 | 3mo | Review | Intermediate |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| telegram-bot-builder | 106 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
webapp-testing
anthropics
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
resolve-conflicts
antinomyhq
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.
dev-browser
SawyerHood
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
openspec-onboard
studyzy
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
codex-cli-bridge
alirezarezvani
Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools