Features
Everything the platform does
Thirteen modules, laid out in full. This is the complete list rather than the highlights: if something isn't here, it isn't in the product, and the things we deliberately don't do are published too.
Module 01
Customers & Locations
One record that holds everything you know about an account
Customers are more than a name and a phone number. A commercial account can span a dozen buildings, several contacts and its own pricing, and the record is built to hold all of it without duplicate entries.
Sub-accounts let a property manager own a dozen buildings while each one keeps its own work orders, invoices and history.
- Multiple service locations
- Every customer can carry as many service addresses as they need, each with its own type, primary flag and map coordinates resolved automatically from the address.
- Multiple contacts per account
- Store the office manager, the site super and the after-hours number separately, each with a role and a primary flag, so the right person gets the right document.
- Sub-accounts, not merges
- Link a secondary customer to a primary one for navigation while it stays a fully independent record with its own number, jobs and invoices. Nothing is flattened together.
- Account credit ledger
- Credits are an append-only ledger on the customer record, and the balance can be spent directly against an invoice as a payment method, with the system refusing the payment if the balance is short.
- Activity timeline and pinned notes
- A plain-English feed of everything that has happened on the account (work orders, quotes, invoices, payments, parts installed, signatures captured), with important notes pinned above it.
- Residential and commercial
- Customer type, tags, lead source, credit limit and a do-not-contact flag, all filterable from the list view.
- Automatic numbering
- Customer numbers are generated from a prefix and counter you control, alongside seven other independent document-number sequences.
- Bulk import and export
- Bring an existing customer list in from CSV, and export any filtered, sorted view back out to CSV in one click.
Module 02
Customer Documents
Office-authored letters, branded and sent in two clicks
Not every customer communication is an invoice or a quote. Welcome letters, seasonal reminders, visit notices and renewal letters all go out on your letterhead, written once and reused forever.
An unrecognized token is left visibly in the text instead of silently blanked, so a typo in a template shows up in preview, not in a customer's inbox.
- Token substitution
- Write a template once with placeholders for the customer's name, greeting, and your company's phone, email, address and website: ten tokens, all resolved server-side so the editor's list can never drift from what actually works.
- Live preview while editing
- See the rendered PDF against a sample customer as you write, so a mistake shows up on screen instead of in a real customer's inbox.
- Sent from the customer's own page
- Pick a template from a customer's detail page and it arrives pre-filled with everything resolved for that specific customer, editable before it goes, with an inline preview: the same send experience as an invoice or quote.
- Your letterhead, automatically
- Every document is a PDF using the same logo, company name, address, phone and email as your invoices and quotes, so a branding change only has to happen in one place.
- Ships ready to use
- Welcome Letter, Seasonal Tune-Up Reminder, Scheduled Visit Notice and Service Agreement Renewal are there from day one, and your office can add its own the same way.
- Edit the wording, keep the template
- The starting templates can be edited or turned off, but not deleted, and a restart never overwrites wording your office has already changed.
- Always a deliberate send
- Nothing goes out automatically. Every document is a specific person clicking send to a specific customer, never a background job.
Module 03
Work Orders
The job record the whole system revolves around
A work order carries the schedule, the crew, the parts, the hours, the photos, the signature and the notes. By the time a tech marks it complete, everything needed to invoice it is already attached.
Status transitions are enforced by the server: a job can only reach Completed from In Progress, and nothing ever goes back to New.
- Enforced status flow
- New, Scheduled, Parts on Hold, In Progress, On Hold, Completed and Cancelled, with invalid jumps rejected. Timestamps for actual start, completion and cancellation are stamped automatically as status changes.
- Multi-technician crews
- Assign as many technicians as a job needs and flag exactly one as lead. Assignment is what triggers the technician's notification and push alert.
- Multiple time blocks
- A job isn't always one visit. Add extra scheduled blocks for a return trip or an overrun and the board reflects every one of them.
- Planned materials
- Pull items from the price book onto the job before the truck rolls, then issue real tracked stock against it in the field.
- Time tracking
- Technicians clock in and out from the job itself. Office staff can add, edit or reassign entries manually. Those hours feed straight into job costing at each tech's real pay rate.
- Photos and signatures
- Capture site photos from the phone camera and a finger-drawn customer signature, both attached to the work order and visible to the office immediately.
- Separate office and technician notes
- Customer-visible notes, internal tech notes and completion notes are distinct fields, so internal commentary never lands on a customer document.
- Archive instead of delete
- Closing out old work hides it from the default view without destroying the record, and it can be restored at any time.
- Safe concurrent editing
- If two people open the same work order, the second save is rejected rather than silently overwriting the first.
- Structured inspection forms
- A full HVAC preventive-maintenance form with equipment identification, an 18-point checklist, operating readings, findings and dual signatures, autosaving as it is filled in, online or off.
- Find any work order fast
- An A–Z customer index, live status filters and CSV export, plus drag-and-drop column reordering that remembers how you like the list arranged.
Module 04
Dispatch & Scheduling
A real drag-and-drop board, live across every dispatcher
The board is a timeline of technicians against time, not a list you edit in a modal. Drag a job to a different tech or a different hour and it is rescheduled. Everyone else watching the board sees it move.
Day, week and month views on one board, with per-technician utilization bars that show who is overloaded before you assign the next call.
- Drag to assign and reschedule
- Technician rows against hourly columns. Drag a job card to change who's doing it, when, or both, snapped to 15-minute increments.
- Day, week and month
- Switch between an hour-by-hour day view with a live current-time line, a week grid of techs against days, and a month calendar.
- Unassigned and undated backlogs
- Two side panels hold work that needs a tech or needs a date. Drag out of them to schedule; drag back in to unschedule.
- Utilization at a glance
- Every technician row shows booked hours and a colour-coded utilization bar, plus a header band with scheduled, completed, unassigned and undated counts and booked revenue.
- Time-off and unavailability blocks
- Drop a block onto a technician's row to mark them out. Blocks are draggable, editable and removable, and dragging a job onto someone's blocked time is rejected with a clear conflict warning instead of quietly double-booking them.
- Live for every dispatcher
- The board updates in real time over a websocket connection, so two dispatchers working the same day never fight over a stale screen.
- Map view
- Every work order scheduled in the next 14 days plotted on a map, with turn-by-turn directions one tap away. Technicians see only their own route; the office sees everything.
- Recurring work templates
- Weekly through yearly templates that generate real work orders on schedule, with a manual generate-now action and a bulk run for anything due.
Module 05
Quotes & Customer Approval
Send it, they approve it online, it becomes an invoice
Quotes go out as a branded PDF with a secure link. The customer opens it in a browser with no account, no password and no app, approves or declines, and you know the moment they've looked at it.
Approval links are signed with a cryptographic token, unguessable, and impossible to reach another customer's quote by changing the URL.
- Line-item builder
- Pull from the price book or type free-form lines, set quantities and prices, apply a percentage or fixed discount, and attach your standard terms.
- Preview and send in one dialog
- A live PDF preview sits next to the recipient list. Tick known contacts or add an address, then edit the subject and the message body before it goes.
- No-login customer approval
- The customer sees the quote, the line items, the total and your terms on a clean page, then approves or declines with an optional reason.
- Know when it's been read
- A sent quote flips to Viewed the first time the customer opens the link, and the moment is logged to their timeline.
- Convert to invoice
- An approved quote becomes an invoice in one click, carrying its line items across and staying linked to the original.
- Signature capture
- Take an in-person signature on the quote in the field, stored against the record alongside the approval trail.
- Pipeline reporting
- Quote value by status, win rate on decided quotes, and total open pipeline: see the Reporting section.
Module 06
Invoicing & Payments
Invoices that know what the job actually cost you
Every invoice can carry a cost basis alongside the price. That turns the invoice into a job-costing record (materials, labour at real pay rates, profit and margin) without a second system or a spreadsheet.
Lines can be marked internal: they stay on the invoice for cost tracking but never appear on the customer's PDF or count toward their total.
- Profitability per invoice
- Material cost from line-level cost basis, labour cost from logged time entries priced at each technician's actual pay rate, then profit and margin percentage. Visible only to those with financial permission.
- Internal-only lines
- Track a cost on the invoice that the customer never sees. The line stays in your numbers and stays off their document.
- Record payments
- Cash, cheque, card or account credit, with a reference number, notes and a back-dated payment date. Balances and status recalculate automatically.
- Pay from account credit
- Draw against a customer's credit balance as a payment method, with the system verifying the balance covers it first and writing both sides of the ledger in one transaction.
- Paid invoices stay editable
- Correct a line item or discount after a payment's been recorded and the balance recalculates automatically. Only reassigning the invoice to a different customer is blocked, void and reissue instead. If a correction drops the total below what's already been paid, the difference is banked as account credit rather than vanishing.
- Reversals that keep the audit trail
- Reversing a payment unwinds the balance, recalculates the invoice status and returns any credit that funded it, while keeping the original payment on record rather than deleting it.
- Void and revert to draft
- Voiding is a separate permission from managing invoices, so you can let staff bill without letting them erase.
- PDF and email
- The same preview-and-send dialog as quotes, with editable recipients, subject and message.
- Built for chasing money
- Status tabs with live counts, search across customer, invoice number and work order number, an A–Z customer index, a running total and balance across whatever you've filtered to, and CSV export.
- Payments ledger
- A dedicated register of every payment taken (date, customer, invoice, method, reference and amount), sortable and exportable.
Module 07
Service Agreements
Maintenance contracts with the visits and the billing kept apart
Real maintenance contracts don't bill on the same rhythm they get serviced. An agreement carries two independent schedules (when you visit, and when you bill), so a quarterly-billed contract with two annual visits works exactly the way you sold it.
Bill a contract period before the visit happens, or automatically raise the invoice the moment the technician marks the maintenance job complete. Both paths are one click or zero.
- Reusable plan templates
- Define plans once with their discount percentage, standard labour rate, after-hours rate and diagnostic item, then apply them to any customer.
- Maintenance schedule
- Recurring visit rows with their own recurrence rules, expected duration, notes and an itemized parts list, including per-agreement price overrides on those parts.
- Billing schedule
- A separate set of recurring rows that drive invoices, each with its own line items and pricing, independent of the visit calendar.
- Generate work orders from occurrences
- Turn any upcoming maintenance occurrence into a real, dispatchable work order. The system refuses to generate the same occurrence twice.
- Invoice on completion
- When a technician completes an agreement job, the invoice can be drafted (or finalized outright) automatically from the job's materials, with a guard against double-billing.
- Contract terms
- Start and end dates, billing frequency, amount, auto-renew, payment terms, preferred contact method, plus a specific service location and contact.
- Full history
- Every work order and every invoice the agreement has produced, in one view, plus a PDF of the agreement itself you can send to the customer.
- Recurring revenue in reporting
- Active contract value is prorated daily into the revenue report as its own series, so you can see recurring separately from job work.
Module 08
Inventory & Costing
Perpetual weighted-average costing on an unbreakable ledger
This is accounting-grade inventory, not a stock counter. Every movement is a journal entry with before-and-after quantities, and unit cost is recalculated at the moment goods are received, so job costing uses what the part actually cost you, not last year's list price.
Stock is never edited behind the ledger's back. Mistakes are corrected by posting a linked reversing entry, exactly the way a general ledger works.
- Warehouse and truck stock
- Every stock location is either a warehouse or a truck tied to a specific vehicle and its assigned technician, with on-hand quantities tracked per item, per location.
- Weighted-average cost, maintained automatically
- Receiving at a new price recalculates the item's average cost immediately, and every change is journaled with the quantity, cost and vendor that caused it.
- Complete movement history
- Receipts, transfers, adjustments, counts and job issues, each with a running balance and a link to the document or work order behind it. Exportable to CSV and PDF.
- Issue parts to a job
- Technicians consume stock against the work order they're on: a deliberately narrow permission that lets them draw parts without seeing costs or touching anything else in inventory.
- Transfers and adjustments
- Move stock between the warehouse and any truck, or adjust a count up, down or to an exact figure, with the reason recorded.
- Cycle counting
- Count a location, enter what you actually found, and the system posts only the variance, stamping the count date even when everything matches.
- Reorder control
- Minimum, maximum, reorder point, reorder quantity and lead time per item, with a low-stock banner and vendor-grouped reorder suggestions.
- Barcode scanning
- Scan an item with the phone camera to look it up or adjust it, with manual entry always available as a fallback.
Module 09
Purchasing & Vendors
Partial receiving, serial capture and reversible receipts
Purchase orders handle the messy reality of supply: split deliveries, price changes between order and receipt, serial numbers on arrival, and the occasional receipt posted in error.
Receive against a line as many times as the vendor splits the shipment. Over-receipt is blocked, and any receipt can be reversed, backing out the stock and voiding the serials it created.
- Partial receiving
- Post multiple receipts against a single PO line, each with its own quantity, destination location, packing-slip number and notes. Line and PO status roll forward on their own.
- Receive at the real price
- Override the unit cost at receipt when the vendor's invoice doesn't match the order, and the item's weighted-average cost updates accordingly.
- Serial capture on arrival
- Scan serial numbers as the boxes come off the truck in continuous scanning mode with a running count. Each one becomes a tracked serialized unit automatically.
- Reversible receipts
- Reverse a receipt to back the stock out, void the serialized units it minted and roll the line and PO status back down.
- Job and customer costing
- Link a PO to a work order and a customer for special orders, so the cost lands where it belongs.
- Vendor-grouped reorder suggestions
- Everything at or below its reorder point, grouped by the vendor you'd actually buy it from, with a suggested quantity.
- Vendor register
- Contacts, payment terms, tax ID and addresses, plus counts of linked items and purchase orders. Deactivating a vendor keeps the history intact.
- Per-vendor catalog pricing
- Hold each vendor's SKU, unit cost, lead time and minimum order quantity for an item, with one flagged as primary.
Module 10
Price Book & Pricing Tiers
One catalog, different prices for different customers
The catalog holds what you sell and what it costs you. Pricing tiers sit on top, so a commercial account on a preferred agreement sees its own price without you maintaining a second catalog.
Overrides work three ways: a percentage off, an amount off, or a flat replacement price, resolved per item, per tier.
- Hierarchical categories
- Nest categories as deep as your catalog needs, with a browsable sidebar on the item list.
- Inventory, Non-Inventory and Discounts menus
- A separate axis from what the item is: which of the three books it's carried in for accounting, with a live count on each tab and a move-selected-items action to reclassify in bulk.
- Fast item search everywhere you pick one
- Pricing tier overrides and the QuickBooks item mapping search the catalog as you type instead of loading every item up front, so a big catalog stays fast.
- Full item records
- SKU, description, type, unit cost, unit price, unit of measure, warranty months, vendor part number and an image.
- Named pricing tiers
- Create tiers such as Commercial Preferred with a blanket discount, then override individual items where the blanket rate doesn't apply.
- Automatic price resolution
- When you're building a document for a customer on a tier, the catalog shows that customer's effective price alongside the list price.
- Safe deactivation
- Retiring a tier leaves existing customers on their assigned pricing rather than silently repricing their agreements.
- CSV import
- Load a full catalog from a supplier price list using a downloadable column template.
- Barcode lookup
- Scan a SKU to find an item anywhere in the catalog.
Module 11
Equipment & Serialized Units
Know what's installed, who installed it, and when it's out of warranty
Two connected registers: the customer's equipment as an asset record, and your serialized stock as individually tracked units. Installing a unit ties the two together and creates the warranty clock.
Three separate warranty dates per asset: your labour warranty, the manufacturer's parts warranty and a recommended replace-by date, because they genuinely expire at different times.
- Customer asset register
- Make, model, serial number, install date, condition and specification, tied to the customer, the specific location and the work order it was documented on.
- Warranty filtering
- Filter the register to active, expired, or expiring within 90 days: a replacement-sales list you can work straight off the screen.
- Documented in the field
- Technicians can add and update equipment on site without special permission, so the register gets built as work happens rather than in a data-entry session later.
- Unit-level serial tracking
- Every serialized unit carries its serial number, status, current stock location, the receipt that brought it in, its purchase cost and its warranty expiry.
- Install and uninstall
- Installing takes a unit out of stock and records the customer, location, job, install date and warranty expiry. Uninstalling returns it to stock without destroying the history.
- Field-safe permissions
- A technician installing a unit must attach it to a job they're actually assigned to.
- Bulk operations
- CSV import for equipment, and multi-select bulk export and delete for serialized units.
Module 12
Reporting
Nine reports covering money, work and stock
Reports are split by permission, so an owner or bookkeeper can be given the financial picture without being given the run of the system. Every chart has the underlying table beneath it, and it exports.
The revenue report separates what you invoiced from what you actually collected, and prorates active contract value across the period as a third line.
- Revenue
- Invoiced, collected and recurring-contract value as three independent series, over any date range, bucketed by day, week or month, with a breakdown table and CSV export.
- Technician time
- A weekly sheet of actual clocked time against work orders, not scheduled hours, per technician with a daily breakdown and a bar chart, and anyone still clocked in flagged as open.
- Accounts receivable aging
- Current, 1–30, 31–60, 61–90 and 90-plus days, with counts and amounts per bucket and the full itemized list of open invoices behind them.
- Work orders
- Counts by status, by type and by business unit, plus completion rate and average job duration calculated from actual start and end times.
- Technician performance
- Jobs completed and revenue attributed per technician.
- Customers
- Revenue and job count per customer, top customers by revenue, returning-customer flags, new customers this month and average revenue per customer.
- Sales by lead source
- Invoice count, amount invoiced and amount collected, attributed to the source that brought the customer in.
- Quote pipeline
- Value and count by status, win rate on decided quotes, and total open pipeline value.
- Inventory
- Total stock value, low-stock count, value received in the last 30 days, value by location, top items by value, recent cost changes and purchase orders by status.
Module 13
Administration, Roles & Audit
Granular permissions and a complete record of who did what
Access is controlled by 32 individual permissions you edit yourself from a matrix in the settings screen, not by fixed roles chosen for you. Sensitive figures are stripped on the server, so a technician's device never receives a cost it isn't allowed to see.
Deactivate a user and it takes effect on their very next request. There's no waiting for a session to expire.
- Permission matrix you control
- 32 permissions across 21 groups, editable per role at runtime and applied immediately on save. Reporting, voiding invoices, seeing pay rates and issuing parts are all separate keys.
- Every list arranges itself your way
- Drag a column header to reorder any table in the system, and it's remembered next time you open that screen. CSV exports follow whatever order you've set.
- Costs hidden at the source
- Wholesale cost, purchase cost, margins and pay rates are removed from the response before it leaves the server for a user without financial permission, not just hidden in the interface.
- Complete audit log
- Every successful create, update and delete across the entire system is recorded with the user, the action, the record, the time and the originating IP address. Passwords, secrets and tokens are stripped before anything is stored.
- Filterable activity history
- Search the audit log by entity, action or user, from the Activity Log tab in settings.
- Configurable statuses and colours
- Statuses, priorities, payment methods, unit types and dozens of other dropdowns are configuration, not code, including the colour each status badge displays.
- Company and document settings
- Company details, currency, default invoice and quote terms, and eight independent document-number prefixes and counters.
- User management
- Invite users, reset passwords with a one-time credential shown once, and deactivate accounts. Technician profiles are created automatically.
- Global search and command palette
- One search box across customers, work orders, invoices, quotes, technicians, equipment and catalog items, reachable from anywhere with a keyboard shortcut.
- Built-in help
- A written guide for every screen, shown the first time someone lands there and always available from the header, plus a searchable help centre.
Want to see any of this for real?
Every feature on this page is in the working product. Pick the three that matter most to your shop and we'll start the demo there.