Customising the work-order taxonomy
Roldesk ships with sensible defaults for everything below, and they're all editable from Settings → Field Service. The same configuration flows through to:
- Every WO dropdown (new + edit)
- The field-orders list filters
- The dispatch board column headers + badge colors
- Status badges in every list, card, and customer-portal page
Order Statuses
Each status row carries a stable value (UPPER_SNAKE — used by the API), a human label, and a color that becomes the badge background everywhere the status is shown.
The seeded values (DRAFT / SCHEDULED / DISPATCHED / IN_PROGRESS / ON_HOLD / CUSTOMER_NOT_PRESENT / COMPLETED / CANCELLED / CLOSED) are referenced by the dispatch board and audit logic — renaming the label is safe; removing the value isn't. You're free to add new ones like WAITING_PARTS or AT_CUSTOMER_REQUEST and they'll appear in the dropdown immediately.
Order Priorities
Same shape — value, label, color. Drives the badge + the left-stripe color on dispatch cards.
Order Types
Value + label only (no color — types are just dropdown options). Add custom types like AUDIT or RETROFIT to match your business.
Pricing Models — with pre-fill defaults
Pricing models are templates that pre-fill the Financials editor when picked on a WO. Each model can carry up to four optional defaults:
- Discount % — auto-discounts the WO subtotal by this percentage.
- Invoice status — jumps to PENDING / SENT / PAID / OVERDUE / VOIDED on selection.
- Tax rate override — overrides the org's default tax rate (use 0 for tax-exempt models).
- Mark labor non-billable — sets every labor row to non-billable.
- Require Contract ID — adds a warning if Contract ID isn't filled.
Seeded examples:
- Fixed Price — no defaults (pure label).
- Time & Material — labor billable by default.
- Contract — non-billable + invoice status VOIDED + requires Contract ID.
- Warranty — non-billable + 100% discount + tax 0% + invoice VOIDED.
Add your own like GOODWILL (50% discount), INTERNAL (non-billable), COURTESY (waived completely). Every value is still editable per-WO after you pick the model — the defaults are pre-fills, not locks.
Task Types, Task Statuses, Parts Statuses, Resolution Codes, Labor Types
Same Settings page. Add / rename / reorder as needed. Labor Types also let you set a default hourly rate per type — that's what new rate cards on a WO pre-fill with.
Heads-up — built-in values stay valid
The dispatch board's column layout, the WO state machine, and a few audit hooks reference the original seed values by their VALUE (not LABEL). Customising the label of an existing status is risk-free; removing a built-in status will leave parts of the app unable to render correctly. Add new ones freely; rename freely; remove only after checking that nothing in production currently uses it.