Skip to content

Service


The Service module covers the full field-service lifecycle — work orders, appointments, dispatch and scheduling, service contracts, equipment tracking, flat-rate pricing, and a product catalog. It connects to Accounts Receivable for invoicing and to Inventory for material allocation.


  • Work Order (WO) — The central record for a service job. A WO links a customer and site to the work being performed, contains appointments for scheduling, line items for billing, and drives invoicing. Example: WO-2201, “AC Repair — Jane Smith, 742 Elm Street.”

  • Appointment — A scheduled time block on a specific technician’s calendar. Each work order has one or more appointments. Appointments drive the dispatch board layout and technician scheduling. An appointment has a configurable status and a duration. Statuses are managed in Settings and support a custom name, color, and an isClosed flag. The set of statuses is tenant-specific (system statuses include values such as En Route, At Location, Needs Rescheduled, and On Break).

  • Dispatch Board — A drag-and-drop scheduling interface showing technicians as columns and time slots as rows. Dispatchers assign unscheduled work orders by dragging them onto a technician’s timeline. The board provides a real-time view of the day’s workload.

  • Line Item Types — Work order billing is broken into typed line items: Material (parts from inventory), Labor Cost (technician time as cost), Labor Sell (labor billed to customer), Flat Rate (predefined service packages), Flat Rate Material Sell (material portion of a flat rate), Flat Rate Labor Sell (labor portion of a flat rate), Contract Sale (billed under a service contract), Dynamic Charge (miscellaneous fees), Subs (subcontractor costs), and Quote (quoted items). Each type has specific GL account requirements.

  • Flat Rate — A predefined service package with fixed pricing. Flat rates bundle labor and materials into a single price (e.g., “AC Diagnostic — $89.00”). They support six pricing tiers (Primary, Additional, Preferred, Preferred Additional, After Hours, After Hours Additional) and can auto-include materials when added to a work order.

  • Service Contract — An agreement for ongoing maintenance over a period (typically annual). Contracts define billing schedules, checkup visits, covered equipment, and optional add-on services. Example: Summit Office Park’s annual HVAC maintenance contract at $3,600/year with quarterly checkups.

  • Checkup — A scheduled maintenance visit generated from a service contract. Each checkup creates a work order that can be assigned, dispatched, and completed like any other WO. When marked complete and revenue-recognized, the checkup’s portion of the contract revenue is posted to the GL.

  • Equipment — A trackable piece of customer equipment (e.g., a Carrier RTU on Summit Office Park’s roof). Equipment records store model, serial number, warranty dates, and maintenance history, linking to the customer site and service contracts.

  • Appointment Confirmation — An automated SMS, phone call, or email notification sent to a customer to confirm an upcoming service appointment. Confirmations track status (Pending, Confirmed, Rejected) and can be managed in batch from the Appointment Confirmations screen.

  • AI Features — AI-powered tools integrated into the Service module. AI Solution Polish refines technician notes into professional customer-facing descriptions. AI Equipment Analysis extracts equipment data from nameplate photos using AI vision.


Upstream — Where Service gets its data:

  • CRM → Approved proposals with Conversion Type = Work Order create new work orders with customer, site, and line items pre-populated
  • Service Contracts → Active contracts generate checkup work orders on their scheduled dates
  • Inventory → Material line items on work orders draw from inventory. The Allocations tab reserves and picks stock from warehouse locations.
  • Accounts Receivable → The customer database provides billing and site addresses for work orders

Downstream — Where Service sends its data:

  • Accounts Receivable → Invoicing a work order creates an AR invoice. The invoice debits the configured AR Control account and credits the configured Service Revenue account. Material costs debit the configured Service COGS account and credit the configured Inventory account.
  • Inventory → Material consumption on work orders reduces on-hand quantities and posts to the GL
  • General Ledger → WO invoicing posts revenue and cost entries. Contract billing posts deferred/earned revenue entries.
  • Job Costing → Work orders can be linked to jobs, with WO costs contributing to job expense tracking

Key Integration Point — Work Order Invoicing: When Tom invoices a completed work order, the system creates a full AR invoice with all line items, calculates sales tax from the jurisdiction, applies any discounts, and posts to the GL. The invoice number links back to the WO, creating a complete audit trail from dispatch → service → billing → collection.


Navigate to Service → Dashboard for a high-level view of service operations.

SectionTypeDescription
Monthly Work Order RevenueArea chartRevenue trend over time by month
Other Monthly Work Order AnalyticsBar chartCount of work orders and average revenue per WO by month
Work Order Proposal ConversionsBar chartEstimate counts bucketed as Total, Converted (green), and Unconverted (red)
Proposal Conversion RateKPIPercentage of estimates converted to work orders
Average Proposal TotalKPIAverage dollar value of estimates in the period
Work Order Proposal RevenueBar chartEstimate revenue bucketed as Total, Converted (green), and Unconverted (red)

A bar chart grouped by dispatcher (username), showing the following series:

SeriesDescription
# of CallsNumber of calls handled by the dispatcher
# of OpportunitiesAvailable work order opportunities
# of WO ConversionsWork orders successfully converted
Revenue from ConversionsRevenue from converted work orders

Navigate to Service → Work Orders to manage all service work orders.

ColumnDescription
Work Order IDUnique identifier
Customer IDCustomer account reference
Billing NameCustomer billing name
Billing AddressCustomer billing address
Site NameNamed service site
Site AddressService site street address
Earliest Appt Date/TimeFirst scheduled appointment
Latest Appt Date/TimeMost recent scheduled appointment

Work orders can be created from scratch, from a customer record, or from a CRM proposal.

FieldRequiredDescription
CustomerYesCustomer account
Customer Site AddressYesService location (depends on customer selection)
Service TypeYesService category — determines default status and cost behavior
Work Order StatusYesCurrent state of the work order
Invoice NumberYes (edit only)AR invoice reference; required when editing
Customer PO NumberNoCustomer’s purchase order reference
JobNoLink to a Job Costing job
LeadNoLink to a CRM lead
ProposalNoLink to a CRM proposal/estimate
Service ContractNoLink to a service contract
Service Contract CheckupNoMaintenance checkup associated with a service contract
SalesmanNoSales representative
TagsNoColor-coded labels for categorization and filtering (see Administration → Tags)
Linked Work OrderNoRelated work order
Link Work Order ReasonNoReason for linking the two work orders
IssueNoDescription of the customer’s problem
SolutionNoTechnical solution provided
NotesNoInternal notes
Requested Date/TimeNoDate and time requested by the customer
Default Assigned Date/TimeYesDefault scheduling date/time for new appointments
Completed Date/TimeNoWhen service was completed
Sales Tax JurisdictionNoTax jurisdiction for automatic tax calculation

Cancellation is not an editable General field. A work order is cancelled via Actions → Cancel Work Order (which records a Cancellation Reason), after which its Is Cancelled status shows as a read-only Cancelled chip.

Appointments Tab

Manage the scheduled service appointments for this work order. Each appointment row:

FieldRequiredDescription
TechNoTechnician assigned to this appointment
StatusYesCurrent appointment state
Assigned Date/TimeYesScheduled date and time
DurationNoAppointment length in minutes (must be at least 1 when entered)
Completed Date/TimeNoWhen this appointment was completed
SolutionNoTechnician’s notes or solution for this appointment
Discount CodeNoAppointment-level discount code (sets the discount automatically)
DiscountNoAppointment-level dollar discount (disabled when a discount code or percent is set)
Discount %NoAppointment-level percentage discount (set automatically from the discount code)

Use the add button to create a new appointment and the delete button to remove one.

Line Items Tab

Add the billable items — materials, labor, flat rates, and charges — to the work order. Each line item has a Line Item Type that determines which other fields are required.

FieldRequiredDescription
Line Item TypeYesCategory — see types below
DescriptionNoCustom description (max 255 characters)
AppointmentYesWhich appointment this line belongs to
Cost CenterYesCost allocation code
QuantityNoNumber of units
UOMNoUnit of measure (editable only for Material lines)
Unit SellNoPrice per unit charged to the customer
Extended SellNoCalculated sell amount
Unit CostNoCost per unit
Extended CostNoCalculated cost amount
Is Shown on InvoiceNoWhether this line appears on the printed invoice
Is TaxableNoWhether sales tax applies to this line
Discount AmountNoLine-level discount
Sale Credit Ledger AccountConditionalGL revenue account (required for most types)
Cost Credit / Debit Ledger AccountConditionalGL cost accounts (required for Material, Labor Cost, Subs)

Line Item Types

TypeDescription
MaterialInventory product used on the job
Labor CostEmployee time recorded as a cost
Labor SellLabor charge billed to the customer
Flat RatePredefined package price
Flat Rate Labor SellLabor portion of a flat rate
Flat Rate Material SellMaterial portion of a flat rate
Contract SaleItem billed under a service contract
Dynamic ChargeMiscellaneous additional charge
SubsSubcontractor cost
QuoteQuoted line item

Additional fields by type:

Material: Product (required), Truck Stock, Warranty

Labor Cost: Employee (required), Time On, Time Off

Flat Rate: Flat Rate (required), Primary, Preferred, After Hours, Warranty

Contract Sale: Contract Type (required), Amount (required), Converted; plus a Contract Options grid with columns Contract Option, Description, Quantity, Amount, and Is Percent

Forms Tab

Manage custom data-collection forms attached to this work order. Forms are based on Form Templates defined in Administration (see Section 4.5 of Administration & Utilities).

ActionDescription
Add FormAttach a form template to the work order. Select from available active templates.
Edit FormOpen a form to fill in or modify field values
Delete FormRemove a form from the work order

When a form template has an associated PDF template, the system can auto-fill PDF form fields with data from the work order (customer name, site address, work order details) when the form is attached. Completed forms can be included with the work order invoice.

⚠️ Forms that have been signed can still be edited and deleted. Exercise caution when modifying signed forms, as the original signature may no longer reflect the current content.

Allocations Tab

Manage inventory allocation for material line items. The tab is a master/detail view. The left side lists each product needing allocation, showing its Available, Reserved, Total, Needed, and Allocated quantities along with an allocation-status chip.

Select a product to load its location grid on the right, where you allocate stock from specific warehouse locations:

ColumnDescription
LocationWarehouse or storage location
Serial NumberSerialized product, when applicable
PalletPallet the stock sits on, when applicable
Container SizeContainer size for the location
AllocatedQuantity currently allocated at this location
AvailableQuantity available at this location
QuantityEditable quantity to allocate from this location

If products cannot be fully allocated, an alert dialog lists the shortfall by product.

Totals Tab

Read-only financial summary:

FieldDescription
Total Labor SellSum of all labor sell lines
Total Material SellSum of all material sell lines
Total Other SaleMiscellaneous charges
SubtotalBefore tax and discounts
Total Labor CostSum of all labor cost lines
Total Material CostSum of all material cost lines
Total Subs CostSum of all subcontractor lines
Total TaxCalculated from tax jurisdiction
Total DiscountApplied discounts
Total Additional ChargesExtra charges
Total CostFull cost amount
Total SaleFull sale amount

The tab also breaks labor hours and cost into En Route and At Location figures, and shows Labor GP %, Material GP %, and Overall GP % at the bottom.

The Work Order Metrics Dashboard (a Dashboard tab on the view screen) shows a cost breakdown donut chart, a sale vs. cost bar chart by category, and KPI cards. These include a Gross Profit card (dollar value with its gross-profit % beneath), plus Labor Margin, Material Margin, Pre-Discount Margin, and Overall Margin cards (each showing a dollar amount with its margin % beneath). The Total Collected metric reflects the total paid amount from linked customer invoices.

The view screen shows all work order data in read-only mode with tabs for General, Totals, Notes, and Custom Fields.

ActionDescription
Invoice Work Order / Credit Work OrderInvoice the work order, or credit it if it is already invoiced. Invoicing opens a dialog requiring Posting Date and Invoice Date, with an optional Third Party Customer
Manage PaymentsCollect or manage customer payments
DocumentsView and manage attached documents
View Prior Form VersionsReview earlier versions of the work order’s forms
View AR InvoiceOpen the linked AR invoice
Preview Pick TicketPreview the pick ticket
Email InvoiceEmail the invoice to the customer
Email Pick TicketEmail the pick ticket
Cancel Work Order / Uncancel Work OrderMark as cancelled (a Cancellation Reason is optional) or reverse a cancellation
Create Linked Work OrderCreate a new work order linked to this one
Edit Work OrderOpen the edit form
Delete Work OrderDelete the work order
Audit Work OrderView the full change history for this work order

The metrics dashboard is not an action — it is a Dashboard tab on the work order view screen.

The Manage Payments action requires the Process Desktop Payments permission and is disabled when the work order is cancelled or archived. Create Linked Work Order requires Work Order — Create permission and opens a new work order linked to the current one; it is disabled when the work order is archived.

Navigation: Work order view screen → Actions → Documents.

The Documents dialog lets you view and regenerate the work order’s generated paperwork. It is split into two sections:

View

ButtonDescription
View InvoiceOpens the work order invoice document
View All FormsOpens all appointment forms for the work order
Select Appointment → ViewOpens the forms for a single chosen appointment

Regenerate

The Regenerate section appears only if you have Work Order — Update permission. Regenerating overwrites the existing documents.

OptionDescription
Work Order InvoiceRegenerate the work order invoice document
All Appointment FormsRegenerate the forms for every appointment
Single AppointmentSelect one appointment and regenerate only its form

When you click Regenerate, a confirmation dialog warns that existing documents will be overwritten before the regeneration runs.

Navigation: Work order view screen → Actions → View Prior Form Versions.

This dialog lists each appointment on the work order along with the historical versions of its form. Each appointment shows its appointment number and assigned date, and under it every saved form version is listed by its last-modified date and time. The most recent version is marked with a Current chip. Click View next to any version to open that version’s PDF in a new tab. If no versions exist, the dialog shows “No form versions found for this work order.”

Navigation: Work order view screen → Actions → Email Invoice.

Use this action to email the work order’s invoice to the customer. The recipient picker offers the customer’s contact email addresses to choose from.

FieldDescription
All Appointment FormsWhen checked, emails the combined invoice for all appointments; when unchecked, you must choose a single Appointment
AppointmentThe specific appointment invoice to send (enabled only when All Appointment Forms is unchecked)
Email(s)One or more recipient email addresses

At least one email address must be selected or entered. If All Appointment Forms is unchecked, an appointment must be selected before the email can be sent.

Navigation: Work order view screen → Actions → Email Pick Ticket.

This action opens an email dialog for the work order’s Pick Ticket. The customer’s contact email addresses are available to choose from in the recipient field.

FieldDescription
EmailsOne or more recipient email addresses (required unless Send Copy to Me is checked)
SubjectOptional email subject line
BodyOptional email body
Send Copy to MeAlso send a copy of the email to the current user
Save New Email AddressesSave any newly entered email addresses to the customer’s contacts

To preview the pick ticket before sending, use Actions → Preview Pick Ticket, which opens the pick ticket in a new browser tab.

Cancel a Work Order:

  1. Open the work order and click Actions → Cancel.
  2. Enter a Cancellation Reason (required, max 255 characters).
  3. Click Save. The work order’s Is Cancelled flag is set, a cancellationDate is recorded, all appointments are unassigned, and the configured Cancelled Work Order Status (from Service Settings) is applied.

Cancelled work orders remain in the system for audit purposes but are excluded from active dispatch and scheduling views.

Uncancel a Work Order:

If a cancelled work order needs to be reopened, click Actions → Uncancel. The Is Cancelled flag is cleared and the work order returns to the Default Open Work Order Status configured in Service Settings.

Delete a Work Order:

Click Actions → Delete to permanently remove a work order. Deletion is only allowed if:

  • The work order has not been invoiced
  • The work order has no completed appointments

Deleted work orders cannot be recovered. If the work order has been invoiced or has completed appointments, cancel it instead.

A bill credit reverses the financial posting of a previously invoiced work order — for example, when a customer disputes a charge or a full credit is needed.

  1. Open the invoiced work order and click Actions → Bill Credit.
  2. Enter the Posting Date (required) for the reversing entries.
  3. The system creates a full reversing ledger document that negates every line of the original invoice posting — each original GL row (AR, revenue, tax, COGS, and inventory) is re-posted with the opposite amount — and reverses the work order’s inventory allocations.
  4. A Void Sale posting for the credit amount is recorded against the original customer invoice, the work order is reset to un-invoiced, and the reversal is linked to the original work order for audit tracking.

When composing or reviewing a work order’s Solution field, use the AI Polish action to automatically refine the technician’s notes into a professional, customer-friendly description. The system sends the raw solution text to an AI service and returns a polished version that:

  • Corrects grammar and spelling
  • Adds clear, professional language
  • Preserves all technical details and part numbers

The technician can review and accept or discard the polished version before saving.


Navigate to Service → Appointments for a searchable list of all appointments across all work orders.

FilterDescription
TypeWork Order appointments or Scheduled Time Off
Assigned DateFilter by a specific date
SearchKeyword search across employee name, customer, work order
ColumnDescription
Appointment IDUnique identifier
Assigned DateScheduled date
Scheduled EmployeeTechnician assigned
Work Order IDAssociated work order
Is InvoicedWhether the work order has been invoiced
Invoice NumberInvoice reference
Customer IDCustomer reference
Customer NameCustomer account name
Customer AddressBilling address
Site NameService site name
Site AddressService site address
ColumnDescription
IDUnique identifier
Assigned DateDate of time off
TypePersonal, Sick, or Vacation
Scheduled EmployeeEmployee
Start DateDate time off begins
Start TimeTime time off begins
End DateDate time off ends
End TimeTime time off ends
DescriptionReason or notes

Appointment confirmations allow SMS, phone call, and email reminders to be sent to customers before their service appointments.

Confirmation Types: Text (SMS), Phone Call, and Email.

Confirmation Statuses: Pending → Confirmed or Rejected.

Managing Confirmations:

  • Navigate to Service → Appointment Confirmations. The screen has two tabs: Search and Queue.
  • The Queue tab is where you select appointments and queue confirmations by type. Currently only Phone Call is supported (Text is not yet enabled).
  • The Search tab lists appointments and their confirmations. Expand a row to view and edit the confirmation details — including contacted time, confirmed time, and whether a representative was spoken to.

Confirmation Fields:

FieldDescription
AppointmentAssociated appointment
TypeText, Phone Call, or Email
StatusPending, Confirmed, or Rejected
Phone NumberCustomer contact number
Appointment Date/TimeScheduled appointment time
Contacted Date/TimeWhen the customer was reached
Confirmed Date/TimeWhen confirmation was received
Spoke to RepresentativeWhether the customer spoke directly to a rep
NotesAdditional notes about the confirmation

Settings: Configure confirmation templates in Service → Settings → Appointment Confirmation Settings, including phone caller ID, text/email message templates, email subject/from address, and the confirmation window length in minutes.

Scheduled time off blocks an employee’s availability on the dispatch board and scheduling views. Time off is created from the Schedule Time Off dialog. (The Appointments screen only lets you search existing Scheduled Time Off entries — it has no create button.)

Creating time off:

  1. Open the Schedule Time Off dialog — from the Dispatch Board FAB menu (Create Scheduled Time Off), or by drag-selecting a time range on an employee’s timeline and choosing Scheduled Time Off.
  2. Select the Employee(s), Type (Personal, Sick, or Vacation), and Status.
  3. Add an optional Description.
  4. Enter the Start Date / Start Time and End Date / End Time.
  5. Click Create. The time block appears on the dispatch board as unavailable.

Time off blocks should not overlap with existing appointments. Review the schedule for conflicts before saving.


Navigate to Service → Dispatch Board for a drag-and-drop scheduling interface.

The board displays scheduled employees as columns (or rows) on a timeline. Appointment blocks appear on the timeline and can be dragged to reschedule or reassign.

Each employee column shows:

  • Employee ID and name
  • Number of appointments for the day

The board header has a Timeline / Queue toggle that switches how scheduled work is displayed. The two modes share the same employees, appointments, and unassigned panel — only the layout and the date controls change.

ModeWhat it shows
TimelineEach employee is a column (or row) and appointment blocks are positioned by their actual start/end times along a time axis. This is the default view.
QueueEach employee is a lane containing a simple, time-ordered list of appointment cards for the selected date range. Cards are stacked in start-time order rather than positioned proportionally to the clock.

Switching to Queue automatically loads the appointments that fall in the current queue date range.

In Timeline mode only, a zoom slider in the board header controls the time scale — how much time is visible at once. Sliding toward the low end zooms in to a fine, hour-by-hour scale; sliding toward the high end zooms out to broader day, week, and month scales. Adjusting the zoom re-centers the timeline on the date you are currently viewing.

The zoom slider is hidden in Queue mode.

In Queue mode, the timeline zoom slider is replaced by queue date controls in place of the normal day navigator:

  1. Use the range selector to choose how much time the queue covers: Day, Week, 2 Weeks, or Month. The default is Week.

  2. Use the left and right arrows to step the queue backward or forward by one range at a time (one day, one week, two weeks, or one month, matching the selected range).

  3. Click the range label between the arrows to open a date picker and jump the queue to a specific date.

Weeks start on Monday. The range label adapts to the selected range — for example a single date for Day, a start-to-end span for Week and 2 Weeks, and a month-and-year for Month.

Each employee lane shows a header with the employee and a count of the appointments in the current range, followed by the appointment cards. Each card shows its start-to-end time. A lane with no appointments in the selected range shows No jobs in this range.

You can drag a card within or between lanes to re-order it. When you drop a card, the board immediately re-arranges that lane: the dragged appointment is placed in the slot where you dropped it (or at the start of the range if dropped at the top), assigned to that employee, and any later appointments in the lane that would overlap are shifted down so the lane stays in start-time order.

The board header includes two controls for choosing which scheduling board you are working on and for narrowing what the board shows.

If you are assigned to more than one scheduling board, a Selected Scheduling Board picker appears in the board header. Use it to switch which board’s set of employees is displayed.

BehaviorDescription
Available boardsLists only the scheduling boards assigned to you (your active board assignments)
Default boardWhen the screen first loads, your default board is selected automatically
Switching boardsChoosing a different board reloads the board with that board’s schedulable employees

The Filter Board box in the board header narrows the timeline to only the employees relevant to your search. It accepts one or more terms — type a term and press Enter to add it, and add as many terms as you need.

An employee column is kept on the board when it matches any of your terms in either of these ways:

  • The employee’s ID or name (first and last) contains one of your terms.
  • The employee has a Work Order appointment whose customer site name, address, or ZIP contains one of your terms.

Matching is case-insensitive and matches on partial text. Clearing all terms restores the full set of employees.

Lists work orders that have not yet been assigned to an employee. Sort options:

SortDescription
AddressSort by street address
AssignedSort by appointment assigned date/time (default)
CitySort by customer city
NameAlphabetical by customer site name
StatusSort by appointment status
ZipSort by postal code

Filters available: Show All Dates toggle, Service Type (Include/Exclude), Appointment Status (Include/Exclude), a Sort By selector, and a keyword search.

Click the filter icon at the top of the Unassigned Work Orders panel to open the filter controls. The icon shows a badge with the number of active filters — Show All Dates, a Service Type selection, an Appointment Status selection, and a non-default Sort By each count as one.

By default the panel shows only work orders for the date currently in view. Turn on Show All Dates to include unassigned work across all dates.

FilterDescription
Show All DatesWhen off, only unassigned work for the date in view is shown; when on, all dates are included.
Service TypeMulti-select of service types, with an Include / Exclude mode toggle.
Appointment StatusMulti-select of appointment statuses (each shown with its status color), with an Include / Exclude mode toggle.
Sort ByOrders the list — Address, Assigned (default), City, Name, Status, or Zip.
SearchKeyword search that matches against the customer site name and address.

The Service Type and Appointment Status filters each have their own Include / Exclude toggle, which both default to Include:

  • Include — show only work orders whose value is one of the selected ones.
  • Exclude — hide work orders whose value is one of the selected ones, and show everything else.

When you select nothing in a filter, that filter is inactive and does not affect the list regardless of its Include/Exclude setting.

Drag appointment blocks from the unassigned panel onto an employee column to schedule them. Drag existing appointments between employees to reassign. The dispatch board UI prevents moving appointments on invoiced work orders.

Besides moving existing blocks, you can draw a new time range directly on an empty part of an employee’s timeline to start scheduling.

Press and hold on an empty slot in an employee’s row (or column), drag to cover the span of time you want, then release. The selection snaps to the timeline’s grid. On release, a menu appears at the cursor with three choices:

ChoiceOpens
Create Work OrderThe Create Work Order task panel
Create AppointmentThe Create W/O Appointment task panel
Scheduled Time OffThe Create Time Off task panel

Whichever you pick opens the matching create panel pre-filled with the employee whose row you dragged on and the start and end times of the range you drew. Finish filling in the panel and save to add the work order, appointment, or time-off block to the board.

ActionDescription
Create Work OrderCreate a new work order (requires Work Order create permission)
Create LeadCreate a new CRM lead (requires Lead create permission)
Create Scheduled Time OffBlock an employee’s availability (requires Appointment create permission)

Search Appointments and Search Customers are separate toolbar icon buttons, not FAB actions, and the unassigned work orders panel is always visible (there is no ‘View Unscheduled Work Orders’ action).

Edit / Create Work Order — Quick-edit dialog for a work order directly from the board (titled “Edit Work Order” or “Create Work Order”). Includes a General tab (Customer, Site, Service Type, Status, Issue, Work Order Notes, and date fields) and an Appointments tab.

Schedule Time Off — Block an employee’s availability:

FieldRequiredDescription
EmployeeYesSchedulable employee
TypeYesPersonal, Sick, or Vacation
DescriptionNoReason
Start DateYesDate off begins
Start TimeYesStart time
End DateYesDate off ends
End TimeYesEnd time
Appointment StatusYesStatus for the time-off block

Message Scheduled Employee — Send a message (required field) to a technician’s email.

Right-click (or open the context menu on) an appointment block on the timeline to act on that specific appointment. The menu’s actions adapt to the appointment type — most actions are available only for Work Order appointments, and individual actions are hidden or disabled based on your permissions.

ActionAvailabilityWhat it does
DocumentsWork Order appointments onlyOpens the Work Order Documents dialog (see below).
Create AppointmentRequires Appointment create permission; not available for Scheduled Time OffOpens the appointment form to add another appointment to the same work order.
Edit AppointmentRequires Appointment update permissionOpens the appointment for editing (work-order appointments and time-off blocks).
View AppointmentWork Order appointments onlyOpens a read-only Appointment Details view (see below).
Delete AppointmentRequires Appointment delete permissionPrompts for confirmation, then deletes the appointment.
Quick Edit Work OrderWork Order appointments only; requires Work Order update permissionOpens the streamlined work-order quick-edit dialog without leaving the board.
Full Edit Work OrderWork Order appointments only; requires Work Order update permissionOpens the full work-order edit screen in a new browser tab.
View Work OrderWork Order appointments only; requires the Manage Work Orders screen permissionOpens the work order in read-only view in a new browser tab.
Create Linked Work OrderWork Order appointments only; requires Work Order create permissionOpens the dispatch-board work-order dialog to create a new work order linked to this appointment.
Invoice Work OrderWork Order appointments only; requires the Work Order Billing permissionOpens the work-order billing screen in a new browser tab. Disabled when the work order is cancelled or already invoiced.
Customer ProfileWork Order appointments onlyOpens the customer profile for the work order’s customer and site.
Map ItWork Order appointments onlyOpens Google Maps in a new window at the site address.
Email to Scheduled EmployeeWork Order appointments only; appears only when the appointment has a scheduled employeeEmails the appointment details to the assigned technician.

The Documents action opens the Work Order Documents dialog, which has two areas:

  • ViewView Invoice opens the work order invoice, View All Forms opens all work order forms, and a per-appointment selector lets you choose an appointment and click View to open that appointment’s forms.
  • Regenerate — Shown only when you have Work Order update permission. Select Work Order Invoice and/or All Appointment Forms and click Regenerate to rebuild the documents. A single-appointment regenerate option is also available when the work order has appointments.

The View Appointment action opens a read-only Appointment Details view showing the Technician, Status, Scheduled For date/time, and Duration. For work-order appointments it also shows the work order number, Service Type, work order status, customer and site details, the work order notes, the reported issue, and the technician’s solution.

The Actions menu in this view offers:

  • Print Summary — Opens a printable appointment summary in a new browser tab.
  • Send Confirmation — Sends an appointment confirmation to the customer (requires the Appointment Confirmations permission).

The dispatch board provides a streamlined Edit / Create Work Order dialog for creating or editing work orders without leaving the board:

  1. Click FAB → Add Work Order to create, or click an existing appointment block and select Edit Work Order.
  2. The dialog shows a compact version of the work order form with:
    • General tab — Customer, Site, Service Type, Status, Issue, Work Order Notes, and date fields
    • Appointments tab — Add or modify appointments inline with employee, date/time, duration, and status
  3. Click Save to commit. The appointment immediately appears (or updates) on the dispatch board timeline.

This dialog is designed for dispatchers who need to quickly create and schedule work orders in a single step without navigating away from the board view.


Navigate to Service → Service Contracts to manage maintenance and service agreements.

Standard list with search and filter. Actions: Create, Edit, View, and Convert from Contract Sale.

FieldRequiredDescription
Contract IDNoHuman-readable ID (max 50 characters)
CustomerYesCustomer account
Customer Site AddressYesService location
Contract TypeYesDefines billing and checkup behavior
Effective DateYesDate the contract begins
Expiration DateYesDate the contract ends (must be after Effective Date)
Original DateNoUsed for renewals — the original contract start date
Preferred EmployeeNoDefault technician for checkups
Service LocationNoAlternative service location
AmountNoTotal contract value
Requires Payment CollectionNoWhether payment must be collected upfront
NotesNoInternal notes

Checkups Tab — Schedule maintenance visits:

ColumnDescription
Checkup DateWhen the checkup is scheduled (month/year)
Work Order IDLinked work order for this checkup (selecting an invoiced WO marks the checkup complete)
CompleteWhether the checkup is complete — system-managed (set when the linked work order is invoiced)
DescriptionDescription or notes for the checkup
Revenue RecognizedWhether revenue for the checkup has been recognized — system-managed, display-only

Options Tab — Optional add-on services:

ColumnDescription
OptionPredefined option from Service Settings > Contract Options
AmountPrice of this option
Is PercentWhether the option amount is a percentage
Exp on RenewalWhether this option expires when the contract renews

Billings Tab — Define the billing schedule:

ColumnRequiredDescription
Billing DateYesDate this billing is due
AmountNoAmount to bill on this date

Equipment Tab — List the equipment items covered by this contract. Add/remove equipment using the add button.

Read-only view with the same tabs as the edit screen. Additional tabs visible in the view screen:

Notes and Custom Fields are upper-section tabs (alongside General). The lower section adds these tabs:

TabDescription
OptionsOptional add-on services linked to this contract
Automated BillingsRecurring billing entries
Linked EquipmentEquipment items covered by this contract
TransactionsFinancial transactions posted against this contract
RenewalsRenewal history and next renewal
CommunicationsCommunication history for this contract
Transfer LogRecord of contract transfers
AttachmentsFiles attached to the contract

Navigate to Service → Manage Contract Billings to process pending contract billings in batch.

FieldRequiredDescription
Start Billing DateYesBeginning of the billing window
End Billing DateYesEnd of the billing window (must be on or after Start)
Service Contract TypesYesOne or more contract types to process (at least one required)

Click Search to find matching unprocessed billings.

The Unprocessed tab shows all billings in the date range. Set the Posting Date (required) field at the top of the tab, select the billings to process, then click Process to post the selected billings to the general ledger. The Processed tab shows billings that have already been posted.

Navigate to Service → Manage Contract Renewals to filter expiring contracts and send or generate renewal notices (Email, Print, and/or Call), optionally including invoices.

FieldRequiredDescription
Contract StatusesYesFilter by status: Pending Sale, Pending Renewal, Renewal Sent, Pending Start, Active, Cancelled, Expired
Contract TypeNoFilter by service contract type
Start Effective DateYesBeginning of the effective date window (defaults to next month start)
End Effective DateYesEnd of the effective date window (defaults to next month end)
Last Communication BeforeNoFilter contracts where the last communication was before this date

Click Search to find contracts matching the criteria.

The results grid shows contracts eligible for renewal:

ColumnDescription
StatusContract status
Contract IDCurrent contract identifier (links to the contract)
Contract TypeType of contract
Billing NameCustomer billing name
Billing AddressCustomer billing address
Site NameService site name
Site AddressService site address
Site Apt. #Service site apartment/unit number
Effective DateCurrent contract start date
Expiration DateWhen the current contract expires
CheckupsNumber of checkups on the contract
Last CommunicationDate of the last renewal communication
  1. Select one or more contracts from the grid.
  2. Click Continue to open the Send/Generate Renewals dialog:
    • Email — Email renewal notices to customers (default: on)
    • Print — Generate printable renewal documents (default: on)
    • Print for Customers w/ Email — Also print for customers who have email on file (only selectable while Print is on)
    • Call — Place renewal calls (default: off); a contract is only called when its service contract type has caller ID, redirect number, and message all configured, others are silently skipped
    • Include Invoices — Include invoices with the renewal notices (default: on)
  3. Click Send/Generate. The system generates the renewal documents (PDF) and optionally emails and/or calls the customers.
  4. The generated PDF is downloaded automatically for printing or filing.

The original contract’s Renewals tab shows the link to any renewal contract created.

Service contracts progress through the following statuses: Pending SalePending StartActiveExpired (or Cancelled at any point). Renewal workflows add two additional states: Pending Renewal (contract eligible for renewal) and Renewal Sent (renewal notice has been sent to the customer).

Activate Contract:

  • Contracts in Pending Sale or Pending Start status can be activated. Click Actions → Activate to set the status to Active. Activation enables billing processing and checkup work order generation.
  • A contract must have valid effective/expiration dates before it can be activated.

Cancel Contract:

  • Click Actions → Cancel to cancel a contract. Enter an optional Cancellation Reason (up to 255 characters) and optionally leave Cancel Pending Renewals checked. The system auto-stamps the cancellation date (today) and saves the pre-cancellation status so it can be restored if uncancelled.
  • Existing billings already processed are not reversed. Future unprocessed billings stop.

Uncancel Contract:

  • Click Actions → Uncancel to reinstate a cancelled contract. The system restores the contract to its pre-cancellation status and clears the cancellation fields. If the contract has a linked renewal, the renewal is also updated.

Delete Contract:

  • Click Actions → Delete to permanently remove a contract. Deletion is blocked if the contract has any billed billings (isBilled = true) or any checkups linked to work orders.

Send Renewal:

  • Click Actions → Send Renewal to send a renewal notice directly from the contract view screen. This generates a renewal document and emails it to the customer, updating the contract status to Renewal Sent. This is an alternative to the batch renewal process via the Service Contract Renewals screen.

Void Contract Transaction:

  • Navigate to the contract’s Transactions tab, select a transaction, and click Void. This posts reversing GL entries for the selected transaction.

Service Contract Billings — Processed Tab

Section titled “Service Contract Billings — Processed Tab”

The Processed Billings tab in the Service Contract Billings Processor shows billings that have already been posted:

ColumnDescription
Invoice DateDate on the generated sales invoice
Sales Invoice IDLink to the resulting sales invoice
Billing DateDate the billing was due
CustomerCustomer name
Billing AddressCustomer billing address
Site AddressService site address
Contract IDService contract reference
Contract TypeService contract type
AmountAmount billed

Use this tab to review billing history and verify that all expected billings have been processed for the period.


Navigate to Service → Equipment to manage customer equipment records.

Searchable list of all equipment items. Click an item to view or edit.

FieldRequiredDescription
CustomerYesEquipment owner
Customer Site AddressYesLocation of the equipment
Equipment TypeYesClassification (e.g., HVAC, Refrigeration)
Model NumberYesEquipment model (max 255 characters)
Equipment SystemNoSystem this equipment belongs to
Serial NumberNoSerial number (max 255 characters)
ManufacturerNoManufacturer name (max 255 characters)
DescriptionNoFree-text description (max 255 characters)
LocationNoPhysical location within the site (max 255 characters)
Is In AtticNoAccessibility flag
Is Difficult to AccessNoAccessibility flag
Serialized ProductNoLink to a serialized inventory product
In Service DateNoDate the equipment was put into service
Installation DateNoDate of installation
Last Maintenance DateNoMost recent maintenance date
Last Service DateNoMost recent service date
Labor Warranty ExpirationNoDate labor warranty expires
Parts Warranty ExpirationNoDate parts warranty expires
Is Purchased From UsNoWhether the equipment was sold by your company
NotesNoInternal notes

Materials Tab — List the products/parts associated with this equipment for reference. Each row links to a product.

Use the AI Analysis action on an equipment record to automatically extract equipment data from a nameplate or dataplate photo.

  1. Take a photo of the equipment’s nameplate/dataplate (or upload an existing image).
  2. Click AI Analysis and select the image.
  3. The AI vision system analyzes the image and extracts:
FieldDescription
Model NumberEquipment model (max 255 characters)
Serial NumberEquipment serial number (max 255 characters)
ManufacturerManufacturer name (max 255 characters)
DescriptionEquipment description (max 255 characters)
In Service DateDate the equipment was put into service
Installation DateDate of installation
  1. Review the extracted data. If the extraction was successful, the fields are pre-populated on the equipment record.
  2. Accept or edit the values, then save.

This feature eliminates manual data entry when adding new equipment records in the field.


Flat rates are predefined service packages with fixed pricing. Navigate to Service → Flat Rates.

Searchable list. Actions: Create, Edit, View, and Bulk Update.

FieldRequiredDescription
Flat Rate IDNoHuman-readable ID (max 50 characters)
Flat Rate CategoryYesClassification grouping
DescriptionYesService description (max 255 characters)
Estimated HoursNoExpected labor hours (min 0)
Total Material CostNoTotal material cost (min 0)
Total Labor CostNoTotal labor cost (min 0)
NotesNoInternal notes
Tech DescriptionNoTechnical notes for technicians

Flat rates support six price tiers. Each tier has separate Material Sell, Labor Sell, and Total fields.

TierDescription
Primary (Default)Standard pricing for most customers
AdditionalSupplemental charges added to the primary price
PreferredDiscounted pricing for preferred customers
Preferred AdditionalSupplemental charges added to the preferred price
After HoursPricing for off-hours or emergency calls
After Hours AdditionalSupplemental charges added to the after hours price
FieldDescription
Manual OverrideWhether custom pricing overrides the standard rate
InactiveWhether this flat rate is disabled and hidden from selection
DiagnosticWhether this is a diagnostic/evaluation service
Product Catalog EnabledWhether this flat rate appears in the Product Catalog
Product Catalog CategoryCatalog category (required when Product Catalog Enabled)

Controls whether customer-level discounts apply to this flat rate:

FieldDescription
Ignore Customer Discount PercentDo not apply the customer’s percentage discount
Ignore Customer Discount AmountDo not apply the customer’s dollar discount
Ignore Customer Amount OverridePrevent per-customer price overrides
Ignore Customer Cost Plus PercentDo not apply cost-plus pricing for this customer

Materials automatically included when this flat rate is added to a work order:

ColumnRequiredDescription
ProductNoInventory product
QuantityNoUnits needed (min 1)
Original CostNoCost per unit (min 0)
Sell PriceNoSale price per unit (min 0)
Default Add to Work OrderNoWhether to auto-include this material when the flat rate is added

Navigate to Service → Bulk Update Flat Rates to update pricing or settings across many flat rates at once without opening each record individually.

ColumnEditableDescription
IDNoFlat rate identifier (clickable — opens flat rate detail)
DescriptionNoService description
CategoryNoFlat rate category
Est. HoursYesExpected labor hours
Labor SellOnly when OverriddenLabor sell price (editable only on overridden flat rates)
Labor CostNoComputed: Estimated Hours × Estimated Labor Cost Rate
Material SellNoSum of material sell prices
Material CostNoMaterial cost
Primary TotalAutoComputed: Labor Sell + Material Sell
OverriddenNoWhether this flat rate uses custom (overridden) pricing

The grid automatically recalculates pricing when you change Estimated Hours:

  • Labor Sell = Estimated Hours × Labor Sell Rate (configured in Flat Rate Settings)
  • Labor Cost = Estimated Hours × Estimated Labor Cost Rate
  • Primary Total = Labor Sell + Material Sell
  1. Use the search field or category filter to narrow the flat rate list.
  2. Click into the Estimated Hours cell to adjust labor time. Sell and total columns update automatically.
  3. Review all changes before saving.
  4. Click Save Changes to commit all edits in a single batch.

The Product Catalog screen is an internal tool for managing the catalog of services and products — its categories and catalog items (flat rates, products, and service contract types). Navigate to Service → Manage Product Catalog.

Catalog items are organized in a category hierarchy. Click a category to expand it and see subcategories or items within.

FieldRequiredDescription
NameYesDisplay name for the catalog item
DescriptionNoDescription shown to the customer or technician
Record TypeYesFlat Rate, Product, or Service Contract
Flat RateConditionalRequired if Record Type = Flat Rate
ProductConditionalRequired if Record Type = Product
Service Contract TypeConditionalRequired if Record Type = Service Contract

Additions (Cross-Sells) — Related items shown alongside this one:

ColumnDescription
Catalog ItemA related catalog item to suggest
Is Default EnabledWhether this addition is pre-selected by default

Images/Videos — Upload images or videos to display with the catalog item. Supports multiple files. The first item uploaded becomes the primary thumbnail by default; use the star button on any item to make it the primary thumbnail.

Catalog categories organize items into a hierarchy. Navigate to Service → Manage Product Catalog; categories are shown as a card grid with breadcrumbs for the current location.

  • Create Category — Click the + icon next to the Categories heading. Enter a Description (required) and optionally upload an image. The new category is created under the category you currently have open.
  • Edit Category — Click the edit icon on a category to change its Description or image.
  • Delete Category — Confirm deletion. Child categories move up one level, and products in the category may be deleted along with it.
  • Reorder Products — Drag and drop products within a category to change their display order.

Each catalog item supports multiple images for display on mobile and customer-facing views:

  1. Open the catalog item and select the Images/Videos tab.
  2. Click Add Media to select image or video files (any image or video format).
  3. Click the star button on any item to make it the primary thumbnail (click again to unset).
  4. Click the X button on an item to remove it.

Navigate to Service → Print Invoices to batch print or reprint service invoice documents generated from work order invoicing.

FieldRequiredDescription
Start DateYesBeginning of the appointment date range
End DateYesEnd of the appointment date range
Include Already PrintedNoIf checked, includes documents that have already been printed (default: unprinted only)

Click Search to find matching invoice documents.

The search returns appointment-based invoice documents for review. Click Print to generate a combined PDF of all invoices matching the searched date range — printing is not limited to a selected subset (the results grid has no row selection). The matching invoices are merged into a single PDF for batch printing.


Navigate to Service → Settings to configure service module behavior and reference data.

FieldRequiredDescription
Hide DiagnosticNoHide the diagnostic option on work orders
Disperse DiagnosticNoSpread diagnostic fees across other line items
Hide Invoice IssueNoDo not print the issue description on the invoice
Hide Quote Line Item TypeNoHide the Quote line item type
Material Default TaxableNoApply sales tax to material line items by default
FieldRequiredDescription
Tech Search Schedule Start TimeYesStart of the technician’s workday on mobile
Tech Search Schedule End TimeYesEnd of the technician’s workday on mobile
Mobile Office Notification EmailNoEmail for office notifications from mobile
Mobile Sales Notification EmailNoEmail for sales notifications from mobile
Mobile Parts Notification EmailNoEmail for parts/inventory notifications from mobile
Primary Diagnostic Flat RateNoDefault flat rate used for diagnostics on mobile
Mobile Custom Sell Price ProductNoProduct used when technician enters a custom sell price
Mobile Attachment Access ClassYesAccess control class applied to attachments added via mobile
FieldRequiredDescription
Pre-Finished Appointment StatusYesStatus applied to appointments before they are completed
Cancelled Work Order StatusYesStatus applied when a work order is cancelled
Default Open Work Order StatusYesInitial status assigned to new work orders
FieldRequiredDescription
Unapplied Subs Ledger AccountYesGL clearing account for subcontractor costs not yet applied
TabDescription
Work Order StatusesDefine all possible work order states (e.g., Open, In Progress, Completed, Invoiced)
Appointment StatusesDefine appointment states (system statuses include values such as En Route, At Location, Needs Rescheduled, On Break)
Service TypesDefine service categories (e.g., HVAC Repair, Maintenance, Install) — used to set default costs and behaviors
Service Labor RatesDefine hourly and salary rates used for labor cost calculations
Discount CodesDefine percentage or dollar discounts that can be applied to work orders or appointments
Service Contract TypesDefine contract templates (controls billing frequency, checkup schedule, and options available). Includes a Payment Notification Email field — when set, the system sends a notification to this email address whenever a customer makes a payment against a contract of this type.
Service Contract OptionsDefine optional add-ons that can be included on service contracts
Cost CentersDefine cost allocation codes for work order line items
Dynamic ChargesDefine miscellaneous charge types that can be added to work orders
Flat Rate CategoriesDefine groupings for flat rates (e.g., Diagnostics, Repairs, Installs)
Equipment Item TypesDefine equipment classifications (e.g., Air Handler, Condenser, Boiler)
Appointment Confirmation SettingsConfigure SMS and email confirmation messages and timing
Service LocationsDefine alternative service locations that differ from customer site addresses
Linked Work Order ReasonsDefine reasons for linking two work orders together
Schedulable EmployeesManage which employees appear as resources on the dispatch and scheduling boards
Flat Rate SettingsConfigure gross profit calculation methods and margin targets (labor sell rate, estimated labor cost rate)

Service Types categorize work orders (e.g., HVAC Repair, Plumbing Service, Maintenance, Install) and drive several defaults that get applied when the type is selected on a work order — including the default time slot an appointment of that type blocks on the dispatch board.

To create or edit a Service Type, navigate to Service → Settings, open the Service Types reference data tab, and click + (create) or the edit icon next to an existing row.

FieldRequiredDescription
NameYesDisplay name (e.g., “HVAC Repair”, “Plumbing Service”)
Default Appointment StatusYesStatus applied to new appointments created under this service type
Default Work Order StatusYesStatus applied to new work orders of this service type
Default Cost CenterYesCost center assigned to new line items on work orders of this type
Default Duration (mins)NoLength in minutes that new appointments of this type will block on the dispatch board. Set to 0 to require dispatchers to enter the duration manually
FormsNoForm templates that should be attached/available for work orders of this type
Show Labor RatesNoIf checked, labor rates are visible on work orders of this type (default: on)
Compute Labor CostNoIf checked, the system computes labor cost automatically from labor entries (default: on)
Disable Email From Mobile AppNoSuppresses outgoing email sent from the technician mobile app for this service type

How Default Duration is applied:

  • When a new appointment is added to a work order, its Duration field is pre-filled with the Service Type’s Default Duration.
  • When the Service Type on an existing work order is changed, appointments with a duration of 0 adopt the new Default Duration; appointments that already have a non-zero duration are left alone so dispatcher adjustments are preserved.
  • The duration determines how large the appointment block is on the dispatch board (BR-SVC-A3). Individual appointments can always be overridden by editing the Duration field directly or by resizing the block on the dispatch board.

The Schedulable Employees reference data tab controls which employees appear as columns on the Dispatch Board and as assignable resources for appointments.

  • Add Employee — Click + to add an employee to the schedulable list. Only employees added here will appear on the dispatch board.
  • Remove Employee — Remove an employee to hide them from scheduling views. This does not affect their existing appointments.
  • Sort Order — This settings tab does not reorder employees; it sorts the list alphabetically by name. Column display order on the dispatch board is a per-user setting — each user arranges their own column order from the scheduling board itself, and that personal sort does not affect other users.

Message Employee: From the dispatch board, use the Message Scheduled Employee action to send an email notification to a technician. The message is sent from the authenticated user’s email address to the employee’s email on file.


PermissionDescription
Read Work OrdersView the work orders list and details
Create Work OrdersCreate new work orders
Update Work OrdersEdit work orders
Delete Work OrdersRemove work orders
Read AppointmentsView appointment records
Create AppointmentsSchedule appointments (including time off on the dispatch board)
Update AppointmentsModify appointment details, reschedule, or reassign
Delete AppointmentsRemove appointments
Read Service ContractsView service contracts
Create Service ContractsCreate new service contracts
Update Service ContractsEdit service contracts
Delete Service ContractsRemove service contracts
Read Service Contract BillingsView automated contract billing entries
Manage Service Contract BillingsSearch and process batch contract billings
Read EquipmentView equipment records
Create EquipmentAdd new equipment
Update EquipmentEdit equipment records
Delete EquipmentRemove equipment
Read Flat RatesView flat rates
Create Flat RatesCreate new flat rates
Update Flat RatesEdit flat rates
Delete Flat RatesRemove flat rates
Update Service SettingsAccess and modify Service Settings
Dispatch BoardAccess the dispatch board screen
Cancel Work OrderCancel and uncancel work orders (misc permission)
Mass Print Service InvoicesAccess the Print Service Invoices screen
Manage Service Contract RenewalsProcess service contract renewals (send renewal notices and generate renewal contracts)

Example 1: Creating and Invoicing a Repair Work Order

Section titled “Example 1: Creating and Invoicing a Repair Work Order”

Scenario: Jane Smith calls Precision Mechanical because her AC unit stopped cooling. Lisa (Dispatcher) creates a work order, schedules Mike Torres, and the repair is completed and invoiced the same day.

Step 1 — Create the work order:

  1. Lisa navigates to Service → Work Orders and clicks + (or uses the Dispatch Board FAB → Add Work Order).
  2. Customer = Jane Smith, Site = 742 Elm Street.
  3. Service Type = HVAC Repair, Work Order Status = Open.
  4. Issue = “AC not cooling — unit running but warm air from vents.”
  5. Default Assigned Date/Time = 02/18/2026, 10:00 AM.
  6. Click Save. WO WO-2201 is created.

Step 2 — Schedule the appointment:

  1. On the Appointments tab, add an appointment:
    • Scheduled Employee = Mike Torres
    • Assigned Date/Time = 02/18/2026, 10:00 AM
    • Duration = 90 minutes
    • Status = Scheduled
  2. Save. The appointment appears on the dispatch board under Mike Torres’s column.

Step 3 — Technician completes the repair: Mike diagnoses a failed capacitor, replaces it, and records his work on the work order:

Line Items tab:

TypeDescriptionQtyUnit SellExtended SellUnit CostExtended Cost
Flat RateAC Diagnostic1$89.00$89.00$25.00$25.00
MaterialRun Capacitor 45/5 MFD1$45.50$45.50$18.75$18.75
Labor SellRepair Labor1.5 hrs$108.00/hr$162.00
Labor CostMike Torres1.5 hrs$30.00/hr$45.00

Totals:

  • Total Sale: $296.50
  • Total Cost: $88.75
  • Gross Profit: $207.75 (70.1%)

Step 4 — Invoice the work order:

  1. Tom clicks Actions → Invoice on WO-2201.
  2. Posting Date = 02/18/2026, Invoice Date = 02/18/2026 (Third Party Customer left blank).
  3. Click Invoice.

GL posting:

AccountDebitCredit
AR Control (configured)$296.50
Service Revenue (configured)$296.50
Service COGS (configured)$63.75
Inventory (configured)$63.75

Example 2: Service Contract with Checkups and Billings

Section titled “Example 2: Service Contract with Checkups and Billings”

Scenario: Precision Mechanical creates an annual HVAC maintenance contract for Summit Office Park at $3,600/year with quarterly checkups and monthly billing.

Step 1 — Create the service contract:

  1. Navigate to Service → Service Contracts and click +.
  2. Customer = Summit Office Park, Site = 100 Summit Drive.
  3. Contract Type = Annual HVAC Maintenance, Effective Date = 01/01/2026, Expiration Date = 12/31/2026.
  4. Amount = $3,600.00, Preferred Employee = Mike Torres.
  5. Click Save. Contract SC-0440 is created.

Step 2 — Set up checkups (quarterly): On the Checkups tab, add four checkup dates:

CheckupDateDescription
Q103/15/2026Spring startup inspection
Q206/15/2026Summer cooling check
Q309/15/2026Pre-heating season inspection
Q412/15/2026Winter heating check

Step 3 — Set up billing schedule (monthly): On the Billings tab, add 12 monthly billings at $300.00 each:

Billing DateAmount
01/15/2026$300.00
02/15/2026$300.00
12/15/2026$300.00

Step 4 — Process monthly billing:

  1. Navigate to Service → Manage Contract Billings.
  2. Start Billing Date = 01/01/2026, End Billing Date = 01/31/2026, Contract Types = Annual HVAC Maintenance.
  3. Click Search. Summit Office Park’s January billing ($300.00) appears.
  4. Set Posting Date = 01/15/2026, select it, and click Process.
  5. An AR invoice for $300.00 is created and posted to the GL.

Step 5 — Complete a quarterly checkup:

  1. The Q1 checkup generates WO-2280 for Summit Office Park on 03/15/2026.
  2. Mike Torres performs the spring inspection, records findings, and marks the appointment as Completed.
  3. Invoice the Q1 checkup’s linked work order (WO-2280). Invoicing the work order automatically marks the Q1 checkup complete on the Checkups tab — there is no manual Is Complete or Is Revenue Recognized checkbox to tick; those fields are system-managed.

Example 3: Dispatch Board Scheduling — Monday Morning

Section titled “Example 3: Dispatch Board Scheduling — Monday Morning”

Scenario: Lisa (Dispatcher) opens the dispatch board Monday morning to assign the day’s work orders across three technicians.

Current state:

  • 6 unassigned work orders in the Unassigned panel
  • 3 technicians available: Mike Torres, Dave Chen, Brian Walsh

Step 1 — Review unassigned work orders:

  1. Lisa opens Service → Dispatch Board for Monday, 02/17/2026.
  2. The Unassigned Work Orders panel shows:
WOCustomerService TypeCity
WO-2195Jane SmithHVAC RepairSpringfield
WO-2196Oak Manor AptsPlumbingSpringfield
WO-2197Davis Property MgmtHVAC MaintenanceShelbyville
WO-2198First Baptist ChurchHVAC RepairSpringfield
WO-2199Summit Office ParkCheckup (Q1)Springfield
WO-2200Henderson ContractorsRefrigerationShelbyville
  1. Lisa sorts by City to group geographically.

Step 2 — Assign work orders:

  1. Mike Torres (most experienced) — Lisa drags WO-2195 (Jane Smith, HVAC Repair) to Mike’s 8:00 AM slot, then WO-2198 (First Baptist, HVAC Repair) to his 11:00 AM slot, and WO-2199 (Summit Office Park, Checkup) to his 2:00 PM slot.
  2. Dave Chen — Lisa drags WO-2196 (Oak Manor, Plumbing) to Dave’s 8:00 AM slot and WO-2200 (Henderson, Refrigeration) to his 1:00 PM slot. The Shelbyville location means travel time; Lisa extends the duration.
  3. Brian Walsh — Lisa drags WO-2197 (Davis Property Mgmt, Maintenance) to Brian’s 9:00 AM slot.

Step 3 — Handle a same-day emergency: At 10:30 AM, a priority call comes in. Lisa uses FAB → Add Work Order to create WO-2201 (Jane Smith, AC emergency). She drags it to Mike Torres’s next available slot at 4:00 PM.

Result: All 7 work orders are scheduled. The dispatch board shows:

  • Mike Torres: 3 appointments (8 AM, 11 AM, 2 PM) + 1 emergency (4 PM)
  • Dave Chen: 2 appointments (8 AM, 1 PM)
  • Brian Walsh: 1 appointment (9 AM)

Rules are grouped by category. Each rule has an ID for cross-referencing.

  • BR-SVC-C1: Service Type Required — Every work order requires a Service Type, which determines default status and cost behavior.
  • BR-SVC-C2: Line Item GL Accounts — Material, Labor Cost, and Subs items require both credit and debit GL accounts. Sale items require a credit account.
  • BR-SVC-C3: Invoice Locks Dispatch — Once a work order is invoiced, the dispatch board UI prevents moving or rescheduling its appointments.
  • BR-SVC-C4: Cancel Requires Reason — Cancelling a work order requires a Cancellation Reason (max 255 characters). The system applies the configured Cancelled Work Order Status from Service Settings.
  • BR-SVC-C5: Delete WO Prerequisites — A work order can only be deleted if it has not been invoiced and has no completed appointments.
  • BR-SVC-A1: Flat Rate Material Include — Materials on a flat rate flagged “Default Add to Work Order” auto-add when the flat rate is selected.
  • BR-SVC-A2: Pricing Tier Selection — The Preferred tiers auto-apply when the customer’s service contract grants a flat-rate discount, and Primary vs. Additional auto-select based on how many flat rates are on the appointment. The After Hours tiers are not derived from the appointment time — they are applied manually by checking the After Hours toggle on the flat-rate line item.
  • BR-SVC-A3: Appointment Duration Block — Appointment duration in minutes auto-blocks the technician’s calendar on the dispatch board. New appointments inherit their duration from the work order’s Service Type Default Duration; when a work order’s Service Type changes, only appointments with a duration of 0 adopt the new default.
  • BR-SVC-A4: WO Invoice GL Post — Invoicing a work order auto-posts: debit the configured AR Control account / credit the configured Service Revenue account, and debit the configured Service COGS account / credit the configured Inventory account.
  • BR-SVC-A5: Appointment Confirmations — Appointment confirmations can be queued for SMS, phone call, or email delivery. Each confirmation tracks status (Pending → Confirmed/Rejected), contact time, and confirmation time.
  • BR-SVC-A6: AI Solution Polish — The AI Polish feature sends work order solution text to an AI model and returns a professionally written version, preserving technical details while improving grammar and clarity.
  • BR-SVC-A7: AI Equipment Analysis — The AI Equipment Analysis extracts equipment data (model, serial number, manufacturer, dates) from a nameplate photo using AI vision, pre-populating equipment record fields.
  • BR-SVC-A8: Contract Renewal — Renewing a service contract creates a new contract linked to the original, with effective dates continuing from the original’s expiration.
  • BR-SVC-W1: WO Lifecycle — Create WO → Schedule Appointment → Dispatch → On Site → Complete → Invoice → Close.
  • BR-SVC-W2: Contract Checkup Cycle — Contract generates checkup WO → Assign/Dispatch → Complete and invoice the checkup work order (which marks the checkup complete). Contract revenue posts to the GL through the Service Contract Billings processor, not from the checkup itself.
  • BR-SVC-W3: Billings Processor — Batch process generates AR invoices for all contracts with billing dates in the period.
  • BR-SVC-W4: Contract Lifecycle — Pending Sale → Pending Start → Active → Expired (or Cancelled at any point). Renewal adds Pending Renewal and Renewal Sent states. Cancellation saves the pre-cancellation status for potential uncancel.
  • BR-SVC-W5: WO Cancel/Uncancel — Cancel sets isCancelled, records a cancellationDate, unassigns all appointments, and applies the Cancelled WO Status. Uncancel clears isCancelled and restores the Default Open WO Status.
  • BR-SVC-X1: CRM Proposal to WO — Approved proposals with Conversion Type = Work Order create WOs with pre-populated customer, site, and line items.
  • BR-SVC-X2: Material from Inventory — Material line items reserve and pick from warehouse inventory; consumption reduces on-hand and posts to GL.
  • BR-SVC-X3: Job Link — Work orders can link to jobs; WO costs contribute to job expense tracking.

Q: I can’t save a work order — “Service Type required.” Every work order requires a Service Type (BR-SVC-C1). Select one from the dropdown. If the correct type doesn’t exist, ask an administrator to create it in Service → Settings → Service Types.

Q: Line items won’t save — “GL account required.” Material, Labor Cost, and Subs line items require both credit and debit GL accounts. Sale-side items require a credit account (BR-SVC-C2). Configure the GL account defaults in Service → Settings or set them manually on each line item.

Q: I can’t move an appointment on the dispatch board. If the work order has been invoiced, the dispatch board UI prevents moving its appointments (BR-SVC-C3). If you need to schedule a follow-up visit, create a new work order.

Q: The flat rate price is wrong for this customer. Flat rates support six pricing tiers (Primary, Additional, Preferred, Preferred Additional, After Hours, After Hours Additional). The Preferred tiers apply automatically when the customer’s service contract grants a flat-rate discount, and Primary vs. Additional are selected automatically. The After Hours tiers are applied manually via the After Hours toggle on the line item — they are not derived from the appointment time (BR-SVC-A2). Check the customer’s service-contract discount in their AR record, and verify the flat rate’s tier prices in Service → Flat Rates.

Q: Materials weren’t auto-added when I selected a flat rate. Only materials with Default Add to Work Order enabled on the flat rate’s Materials tab auto-add (BR-SVC-A1). Check the flat rate’s material settings. Materials not flagged as default will be suggested but not automatically included.

Q: Invoicing shows an “insufficient allocation” warning. Material line items on the work order haven’t been fully allocated from inventory (BR-SVC-X2). Go to the Allocations tab, reserve and pick the required materials, then invoice. The warning prevents invoicing with uncommitted inventory.

Q: A service contract checkup hasn’t generated a work order. Checkup work orders are not generated automatically when the checkup date arrives — you create them on demand using the Auto Create action (per row or in bulk) on the Manage Checkups screen, or via the legacy Schedule Work Orders dialog. To be eligible, a checkup must be incomplete, not already linked to a work order, and on an unarchived contract whose cancellation date (if set) falls after the checkup date. The Manage Checkups screen does not require the contract to be Active — it allows any status, including unsold contracts; the Active-status requirement applies only to the legacy Schedule Work Orders dialog.

Q: Contract billing isn’t showing in the billing processor. In Service Contract Billings, check your date range and contract type filters. The billing must have a billing date within the selected range and not already be processed. Also verify the contract has a billing schedule configured on its Billings tab.

Q: How do I cancel a work order? Open the work order and click Actions → Cancel. Enter a cancellation reason (required). The system applies the Cancelled Work Order Status configured in Service Settings (BR-SVC-C4). The work order remains in the system for reference but is excluded from active views.

Q: Can I uncancel a work order? Yes. Open the cancelled work order and click Actions → Uncancel. The cancellation is cleared and the work order returns to the Default Open Work Order Status (BR-SVC-W5).

Q: How do I delete a work order? Click Actions → Delete. Deletion is only allowed if the work order has not been invoiced and has no completed appointments (BR-SVC-C5). Deleted work orders cannot be recovered — consider cancelling instead if you need to keep the record.

Q: How do appointment confirmations work? Navigate to Service → Appointment Confirmations to manage confirmations. Queue confirmations from the Queue tab (currently Phone Call only) and review or edit confirmation details from the expandable rows on the Search tab. Configure message templates and timing in Settings → Appointment Confirmation Settings (BR-SVC-A5).

Q: What does AI Solution Polish do? The AI Polish feature rewrites a technician’s raw solution notes into professional, customer-friendly language while preserving all technical details (BR-SVC-A6). Use the AI Polish action on a work order’s Solution field.

Q: How do I activate a service contract? Open the contract and click Actions → Activate. The contract must have valid effective/expiration dates. Activation changes the status to Active and enables billing processing and checkup generation (BR-SVC-W4).

Q: How do I renew a service contract? Navigate to Service → Manage Contract Renewals, search for contracts by status and effective date range, select the contracts to renew, click Continue, then click Send/Generate to process renewals (BR-SVC-A8).

Q: How do I issue a bill credit on a work order? Open the invoiced work order and click Actions → Bill Credit. Enter the Posting Date. The system creates a full reversing ledger document that negates every line of the original invoice posting and reverses the work order’s inventory allocations.

Q: How do I print service invoices? Navigate to Service → Print Invoices. Search by appointment date range (Start Appt Date / End Appt Date). Check Include Already Printed if reprinting. Click Print to generate a combined PDF of all invoices matching the date range (the results grid is for review; printing is not limited to a selected subset).

Q: How do I manage schedulable employees? Go to Service → Settings → Schedulable Employees tab. Add employees to make them appear on the dispatch board, or remove them to hide them. To change the column display order, arrange the columns from the scheduling board itself — column order is a per-user (personal) setting rather than a drag-reorder on this settings tab.

Q: How do I schedule time off for a technician? Open the Schedule Time Off dialog from the Dispatch Board FAB menu (Create Scheduled Time Off) — or by drag-selecting a range on an employee’s timeline and choosing Scheduled Time Off. Select the employee(s), type (Personal, Sick, Vacation), and status, then enter the start and end date/times and click Create. The time block appears as unavailable on the dispatch board. (The Appointments screen only searches existing time-off entries; it has no create button.)

Q: How do I change the default appointment duration for a specific type of call? The default duration is set on the Service Type, not on each work order. Go to Service → Settings → Service Types, click the edit icon next to the type you want to change (e.g., HVAC Repair, Plumbing Service, Install), and update the Default Duration (mins) field, then click Save. New appointments added to work orders with that Service Type will use the new default; existing appointments with a non-zero duration are not retroactively changed. A single appointment can always be overridden by editing its Duration field on the work order’s Appointments tab or by resizing the block on the dispatch board.


  • Default Assigned Date/Time is required: This field drives the default date for new appointments on the work order. Set it before saving so technicians see the correct scheduling target.

  • Service Type drives defaults: The Service Type selected on a work order determines the default status applied and may affect cost and billing behavior. Configure service types carefully in Settings.

  • Line item ledger accounts: Each line item type requires specific GL accounts. Material, Labor Cost, and Subs items require both a credit and debit cost account. Sale-side items require a sale credit account. These must be configured in GL Settings before line items can be saved.

  • Flat rate tiers: The six pricing tiers (Primary, Additional, Preferred, Preferred Additional, After Hours, After Hours Additional) let you manage a single service definition with multiple price points. The Preferred tiers apply automatically when the customer’s service contract grants a flat-rate discount, and Primary vs. Additional are chosen automatically; the After Hours tiers are applied manually via the After Hours toggle on the line item rather than from the appointment time.

  • Flat rate materials: Materials added to a flat rate’s Materials tab are automatically suggested when the flat rate is added to a work order line item. Toggle “Default Add to Work Order” to pre-populate them automatically rather than prompting the technician each time.

  • Allocation before invoicing: Always allocate inventory before invoicing a work order. The Allocations tab shows which products still need to be allocated. An insufficient allocation dialog will flag shortfalls so they can be resolved before materials are committed.

  • Invoiced appointments: Once a work order is invoiced, the dispatch board UI prevents moving its appointment blocks, guarding against accidental rescheduling of already-billed work.

  • Service contract checkups: When a checkup work order is completed and marked as revenue-recognized on the Checkups tab, the revenue for that checkup period is posted to the GL. Use the Checkups tab to track which maintenance visits have been fulfilled and billed.

  • Contract billings processor: Run the Service Contract Billings processor periodically (e.g., monthly) to generate AR invoices for all contracts with billing dates in the period. Select the contract types and date range, review the unprocessed list, then post with a Posting Date.

  • Scheduling boards: There is a single board screen — the Dispatch Board — used for day-to-day assignment and rescheduling, with Timeline and Queue views (the Queue view can span a day, week, two weeks, or a month). A Scheduling Board is a configurable grouping of users and schedulable employees set up under Administration → Scheduling Boards (and assigned to users via User Settings → Scheduling Boards). The Dispatch Board’s Selected Scheduling Board picker chooses which configured board to display.

  • Product Catalog for mobile: The Product Catalog is primarily used by technicians on mobile devices to browse and select services. Enable Is Product Catalog Enabled on flat rates and assign them to catalog categories to control what technicians see.

  • Appointment confirmations: Configure SMS and email confirmation messages in Settings → Appointment Confirmation Settings. Customers can receive automated reminders before their service appointment.

  1. Open the work order and click Actions → Cancel.
  2. Enter a Cancellation Reason (required).
  3. The work order is marked as cancelled and the configured Cancelled Work Order Status is applied.
  4. To reinstate, click Actions → Uncancel. The cancellation is cleared and the Default Open Work Order Status is restored.
  1. Navigate to Service → Manage Contract Renewals.
  2. Set the status filters and effective date range to find expiring contracts.
  3. Select the contracts to renew from the results grid.
  4. Click Send / Generate and configure email/print options.
  5. Click Process to generate renewal documents and notify customers.
  1. Open the work order and navigate to the Solution field.
  2. Enter the technician’s raw notes (e.g., “replaced bad capacitor, unit cooling ok now”).
  3. Click AI Polish. The AI rewrites the text into professional language.
  4. Review the polished version. Accept to save, or discard to keep the original.
  1. Navigate to Service → Settings and open the Schedulable Employees tab.
  2. Click + to add an employee to the dispatch board.
  3. To change column order on the board, arrange the columns from the scheduling board itself — this is a per-user setting, not a drag-reorder on this tab.
  4. Remove an employee to hide them from scheduling views (existing appointments are not affected).
  1. Navigate to Service → Print Invoices.
  2. Set the Start Date and End Date for the appointment date range.
  3. Check Include Already Printed if you need to reprint previously printed documents.
  4. Click Search to find matching invoice documents.
  5. Click Print. The system generates a combined PDF of all invoices matching the searched date range (printing is not limited to a selected subset).