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 Is Closed 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. A checkup is marked complete when its linked work order is invoiced. Completing a checkup does not post revenue — contract revenue is posted to the GL by the Service Contract Billings processor, not by the checkup itself.

  • 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 → Proposals with Conversion Type = Work Order are converted into new work orders with customer, site, and line items pre-populated. Conversion is not gated on the proposal’s status — the proposal only needs a Work Order conversion type, must not already be converted, and the user needs the Create Work Order permission
  • Service Contracts → Contracts have scheduled checkup visits that you turn into work orders on demand, from Manage Checkups or the Schedule Work Orders dialog
  • 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 each line’s revenue account. Material costs debit the line’s COGS account and credit the Inventory account. A line’s revenue and cost accounts come from its service cost center.
  • 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 → Manage 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.

When you select a proposal that has options, a dialog prompts you to choose which options to import; the approved options are selected by default and can be changed, and cancelling the dialog aborts the import.

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)
Arrival Window StartNoStart of the customer-facing arrival window (auto-derived from the Service Type’s arrival-window length; editable)
Arrival Window EndNoEnd of the customer-facing arrival window
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 CenterYesThe service cost center whose accounts this line posts to when invoiced (see Cost Centers)
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). Filled in from the line’s service cost center
Cost Credit / Debit Ledger AccountConditionalGL cost accounts (required for Material, Labor Cost, Subs). The debit account is filled in from the line’s service cost center

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. A labor line whose time-clock entry has been synced to payroll is read-only — its fields are disabled (hovering shows “This labor is synced to payroll and can’t be changed”) and it cannot be deleted. To correct a synced line, add a separate adjusting labor-cost line instead.

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

Each master line item also has an Add Spiff action (available with the Create Incentive permission) that attaches an incentive — a spiff or commission — to that line for an employee, created from a configured incentive rule. See Incentives (Spiffs & Commissions) in the Payroll module for how incentives are approved, become eligible, and are paid out.

Forms Tab

Manage custom data-collection forms attached to this work order. Forms are based on Form Templates defined in Administration (see Form Templates in 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. A summary group has General, Totals, Notes, and Custom Fields tabs; a second group holds the data sections — Appointments, Line Items, Forms, Dashboard, Allocations, Billings, Incentives, Rebates, Attachments, and more (shown per your permissions). The Rebates tab lists any third-party rebates billed for this work order — Rebate Payer, Discount Code, Customer Invoice, and Amount (see Discount Codes).

The General tab also shows Created By (the user who created the work order) and, once invoiced, Invoiced Date Time and Invoiced By (the user who invoiced it).

If your organization uses incentives, the work order view has an Incentives tab listing the spiffs and commissions tied to this work order and its line items — with each incentive’s number, status, employee, rule, kind, source, basis, amount, eligible-since date, and any denial reason or notes. You can attach a manual incentive — a spiff — to a line item with the Add Spiff action on the Line Items tab (see above). Incentives are configured, approved, and paid through the Payroll module; see Incentives (Spiffs & Commissions).

ActionDescription
Invoice Work Order / Credit Work OrderInvoice the work order, or credit it if it is already invoiced. Invoicing opens a dialog requiring Ledger 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 may optionally 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.

To email invoices for several work orders at once, open the customer’s profile (Accounts Receivable → Manage Customers), go to the Open Work Orders or Closed Work Orders tab, select the work orders with the row checkboxes, and click Email in the action bar that appears. The Email Invoices dialog then sends all of the selected work orders’ invoices in one step.

FieldDescription
All Appointment FormsWhen checked, each work order’s combined invoice for all appointments is sent
Email(s)One or more recipient email addresses
Save New Email AddressesSave any newly entered email addresses to the customer’s contacts

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. Optionally enter a Cancellation Reason (up to 255 characters).
  3. Click Save. The work order’s Is Cancelled flag is set, a cancellation date 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 completed appointments, cancel it instead. If it has already been invoiced, issue a bill credit (Actions → Bill Credit) before it can be cancelled or removed.

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 → Search 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
TechnicianTechnician assigned
Work Order IDAssociated work order
StatusAppointment status
InvoicedWhether the work order has been invoiced
Invoice NumberInvoice reference
Customer IDCustomer reference
NameCustomer account name
AddressBilling address
Site NameService site name
Site AddressService site address
ColumnDescription
IDUnique identifier
Assigned DateDate of time off
TypeConfigurable time-off type (Personal, Sick, and Vacation are the seeded defaults)
TechnicianEmployee
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 → Manage Appointment Confirmations. The screen has two tabs: Search and Queue.
  • The Queue tab is where you select appointments and queue confirmations by type. Phone Call and Email are always available; Text (SMS) is available when text messaging is enabled for your organization. Choose the type per row.
  • 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
Email AddressCustomer email address (used for Email confirmations)
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, the phone/text/email message bodies, email subject/from address, and the confirmation window length in minutes. Each bundle holds a Text Confirmation Message (the reply-YES/NO ask sent to unconfirmed appointments) and a separate Text Reminder Message (already confirmed) (the informational reminder sent when the appointment is already confirmed).

Message templates support these placeholders, which are filled in per appointment when the message is sent:

PlaceholderReplaced with
{{appointment}}The appointment’s time window and date
{{date}}The appointment date only, with no time window
{{address}}The service address
{{city}}The service address city
{{state}}The service address state
{{zip}}The service address ZIP code

For example, a text confirmation template might read: “Reply with YES to confirm your appointment of {{appointment}}. Reply with NO to cancel your appointment.”

Automated reminders: When two-way text messaging is enabled, your organization can also send automated reminder texts before appointments, based on reusable reminder rule sets assigned to service types. These reminders reuse the wording from the Appointment Confirmation Settings bundles above. The reminder rules, the master reminders switch, and quiet hours are configured under Administration → Texting.

An appointment can carry a customer-facing arrival window — the span of time during which the technician is expected to arrive (for example, “between 8:00 AM and 12:00 PM”). It is separate from the exact assigned time and is shown by the Arrival Window Start and Arrival Window End time fields on the appointment, both on the work order’s Appointments tab and in the dispatch board’s appointment dialog.

The window length comes from the Service Type (its Arrival Window (mins) setting). When you set or change an appointment’s assigned time, the arrival window is pre-filled from that length automatically; you can override either end by editing the fields, and a window may cross midnight. If a service type has no arrival-window length configured, no window is derived and the fields stay blank. Lead appointments do not derive a window automatically.

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 (chosen from the configurable Scheduled Time Off Types — Personal, Sick, and Vacation are the seeded defaults; your organization may add or remove types), 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 toolbar also carries the Show shift availability toggle, and — for organizations with route optimization enabled — the bulk Auto-Assign button and a “not routable” warning chip (all described below).

Each schedulable employee can have working shifts defined for specific days (see Service → Manage Shifts). The dispatch board surfaces those shifts in two ways.

Shift time on every column header. Under each employee’s name the board shows that day’s shift as a time span — for example 7:00 AM – 3:30 PM, a multi-part 7:00 AM – 11:00 AM · 1:00 PM – 3:30 PM, or an overnight 10:00 PM – 5:00 AM. An employee with no shift that day shows No shift. This line always appears, whether or not the shading overlay below is turned on.

Shift-availability shading (toggle). The board toolbar has a Show shift availability toggle (calendar icon). When on, it shades each employee’s timeline behind their appointments so you can see at a glance when they are and aren’t working:

ShadingMeaning
Green washHours the employee is on shift
Light hatchHours the employee is off shift that day
Dark crosshatch with a No shift labelThe employee has no shift at all that day

The overlay sits behind the appointment cards and never blocks clicking them, and your on/off preference is remembered on your device. Scheduled time off is not shaded — it already appears on the board as its own block.

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 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 TypeMulti-select of appointment types.
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.

When online booking is in use, a warning chip reading “N booking requests to schedule” appears above the unassigned list whenever pending requests exist. Clicking it opens the Booking Requests queue in a dialog so you can review and accept requests without leaving the board. The chip is shown only to users who can access the Booking Requests screen and disappears when there are no pending requests.

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.

When an appointment already has a customer confirmation on record and you drag it to a time more than 30 minutes away from the time that confirmation was made for, the board offers to follow up. After the move saves, an Appointment Time Changed dialog appears showing the old and new times, with three choices: Send New Confirmation (sends immediately — text first, email fallback), Log Call (record that you phoned the customer), or Dismiss (if the customer already knows). The move itself is always saved regardless of which you choose. This applies to both work-order and lead appointments. If the customer has no textable number or email on file, Send New Confirmation can’t complete — the dialog explains this and asks you to call the customer and use Log Call instead.

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 five choices:

ChoiceOpens
Create Work OrderThe Create Work Order task panel
Work Order AppointmentThe Create W/O Appointment task panel
Lead AppointmentThe Create Lead Appointment task panel
Job AppointmentThe create panel for an appointment against a Job Costing job
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.

For organizations with route optimization enabled, the dispatch board can trace an employee’s driving route on a map, propose a more efficient stop order, and auto-assign unassigned work. These tools all require the Routing Optimization permission (plus the appointment permission the specific action needs). Every route feature depends on located addresses: each stop’s customer site must have a mappable address, and the employee needs a located start address (their home address, or a start address on that day’s shift). Stops that can’t be located are called out and left out of the route.

Right-click an employee’s column (or open its menu) and choose View Route to see that employee’s day traced on real roads — no changes are made. The dialog is titled Route — [employee name] and shows a date picker (defaulting to the day in view) and a summary line such as N stops · M min drive · K mi.

Below that is a numbered stop list (columns #, Appointment, Address, Arrival) and a map with numbered pins and the route. The list ends with a Return trip row for the drive back to the start. Click any stop row or map pin to highlight just the drive leg arriving at that point (including the return trip) and see that leg’s drive time; click again to clear. An Optimize Route button (shown when you have permission, disabled for past days) hands the same employee and day to the Optimize Route dialog.

Choose Optimize Route from the employee’s column menu to compare the current stop order against an optimized proposal for one day. The dialog (Optimize Route — [employee name]) shows two side-by-side panes, Current and Proposed, each with its own stop list and map.

When the two orders are cleanly comparable, a drive-time verdict appears at the top — for example Drive time: 46 min → 39 min (saves ~7 min), or a warning that the proposed order is ~N minutes longer than the current one. Each pane also captions its own total drive time.

The dialog names anything it couldn’t include:

  • Could not fit — appointments the optimizer could not schedule, each with a reason.
  • Closed (left as-is) — completed/closed appointments, which are never reordered.
  • A banner when appointments were left out because the customer site has no located address.

Click Apply to rewrite the day to the proposed order. If the board changed since the optimization ran (someone moved an appointment), those stops are skipped and the dialog re-optimizes and lists what was skipped, so nothing is silently overwritten. Dates in the past cannot be optimized.

To find the best technician for a single appointment, use Suggest Schedulable Employee. It is available from an appointment’s right-click menu on the board (Work Order and Lead appointments) and as a Suggest button inside the appointment create/edit panel.

The Suggested Schedulable Employees dialog ranks candidates in a table:

ColumnDescription
EmployeeCandidate technician
Travel (min)Estimated drive time to the stop
RecommendedA recommended arrival date/time, when one can be computed
Skill MatchHow well the technician’s skills match the job’s required skills, as a percentage
Missing PreferredPreferred skills the technician lacks (shown as chips)

Candidates are scored against the skills required by the work order’s service type (for Work Order appointments) or the lead’s lead type (for Lead appointments), plus drive time. Click Select to assign that technician; if a recommended time was given, the appointment is also moved to that slot. If nothing qualifies, the dialog explains that no employee fits the required skills, shift, or has a located start address.

The toolbar Auto-Assign button assigns many unassigned appointments at once. Its count reflects exactly the appointments currently visible in the Unassigned panel (it respects your filters); when there are more than 500, it processes the first 500 and says so (for example, Auto-Assign (first 500 of 812)). Auto-Assign is disabled when there are no matching appointments, on past days, or without permission.

The Auto-Assign Unassigned — [date] dialog solves for the day in view and shows a summary (N selected · M assignable · K unassignable), then the proposal grouped by technician. Each row (columns #, Appointment, Address, Arrival, Travel (min)) has a checkbox so you can opt individual appointments out. It also lists any that were Unassignable (with reasons) and any that changed since the board loaded. Click Assign (N) to commit only the checked rows; as with Optimize Route, anything moved since the solve ran is skipped rather than overwritten.

Besides Work Order appointments, the dispatch board also schedules Lead appointments — sales visits tied to a CRM lead (for example, from online booking). They appear as violet-accented cards and sit in the same Unassigned panel and timeline as work-order appointments. Use the Unassigned panel’s Appointment Type filter to narrow the board to any combination of Work Order, Lead, and Job appointments (see Filters); the same choice determines what Auto-Assign processes.

Lead card popover. Hovering a lead card shows a popover headed Lead with the appointment number, the lead number, and the lead’s type or department. It lists the Assigned Time, Site Address (with phone numbers), Customer, and a Lead Details block — Type, Department, Stage, Source, Grade, and potential value — plus the lead’s notes, the appointment solution, and any customer tags.

Lead actions. Right-clicking a lead appointment offers View Lead and Edit Lead (each opens the lead in a new browser tab, permission-gated), plus Customer Profile, Map It, and Suggest Schedulable Employee. Work-order-only actions (Quick/Full Edit Work Order, Invoice, Documents, and so on) are hidden for lead appointments.

The dispatch board also schedules Job appointments — visits tied to a Job Costing job rather than a work order or lead. They share the same Unassigned panel and timeline as work-order and lead appointments and are included or excluded with the Appointment Type filter.

A job card shows the job’s customer, its project name, and the site address, and carries a small engineering icon (with the job number and job type) plus a confirmation indicator. Right-clicking a job appointment offers View Job (opens the job in a new browser tab), plus Customer Profile, Map It, and Suggest Schedulable Employee; the work-order-only actions are hidden. Creating, editing, and deleting job appointments require the corresponding Create / Edit / Delete Job Appointment permissions (see Permissions).

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. In edit mode, each appointment sub-form shows a read-only Created By field (the user who created the appointment) and an Appointment Confirmed checkbox.

Schedule Time Off — Block an employee’s availability:

FieldRequiredDescription
EmployeeYesSchedulable employee
TypeYesConfigurable time-off type (Personal, Sick, and Vacation are the seeded defaults)
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, lead 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.
Suggest Schedulable EmployeeWork Order and Lead appointments; requires Routing Optimization and Appointment update permissionOpens the Suggested Schedulable Employees dialog to pick the best-fit technician (see Route Optimization).
View LeadLead appointments only; requires Lead view permissionOpens the lead in read-only view in a new browser tab.
Edit LeadLead appointments only; requires Lead update permissionOpens the lead for editing in a new browser tab.
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 and Lead appointmentsOpens the customer profile for the work order’s customer and site.
Map ItWork Order and Lead appointmentsOpens 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:

  • View — View 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 view also shows Created By, the user who created the appointment.

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 → Create Work Order to create, or click an existing appointment block and select Quick 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.


Navigation: Service → Booking Requests

Online booking lets your customers request an appointment from a public web link (or, if they are signed in, from the customer portal) without calling the office. Every submission lands in a review queue as a booking request — it is never placed on the schedule automatically. A dispatcher reviews each request and either accepts it (turning it into a work order or an estimate lead with an appointment) or rejects it.

Turning online booking on, choosing what customers can request, and setting the booking window are all done on the Administration → Online Booking screen (see Online Booking configuration).

From the booking link the customer picks one of your published booking services, chooses a date (and, depending on how you configured time selection, a time-of-day window, arrival window, exact start time, or a whole week), and enters their contact details and service address. They can add an optional backup date and a free-text description of the problem. A signed-in portal customer instead picks one of their saved service locations. Each request arrives in SS2 with:

  • The requested service, whether it is a work-order or an estimate request, and the requested date/time and flexibility (Exact date only, Flexible within the week, or Anytime).
  • The customer’s name, phone, email, and service address, plus whether they consented to text messages.
  • A reference code the customer sees on their confirmation screen and can quote when they call.
  • Marketing attribution (source / medium / campaign), when the link carried it.

The Booking Requests screen (Service → Booking Requests) is the review inbox. It opens filtered to Pending requests; quick-filter buttons switch between Pending, Accepted, Rejected, Cancelled, and All. The list refreshes live as new requests arrive or others are worked.

ColumnDescription
ReferenceThe customer-facing reference code for the request.
KindWork Order (blue) or Lead (violet) — which kind of record accepting will create.
ServiceThe booking service the customer chose.
StatusPending, Accepted, Rejected, or Cancelled.
SubmittedWhen the request was received.
Requested DateThe customer’s preferred date.
FlexibilityHow firm the requested date is.
Contact / Phone / Email / Address / CityThe submitted contact and location details.
MatchCustomer-match confidence (see Customer match).
Matched CustomerThe existing customer the request was matched to, if any.
Confirmation SendThe outcome of the appointment confirmation sent on accept.
First ReviewedWhen a dispatcher first opened the request.

The keyword search matches on reference code, contact name, email, phone, address, and matched-customer name.

Clicking a row opens the request detail, which shows the requested service and time, the customer’s contact and address, any customer match, internal notes, and — once accepted — the resulting work order/lead, appointment, and confirmation. From here a dispatcher can:

  • Internal Notes — save private notes on the request (never shown to the customer).
  • Reject — record an internal reason and, optionally, a text message to the customer. The rejection stands whether or not the message sends; if the requester did not consent to texting, the rejection is internal only.
  • Accept as Work Order / Accept as Lead — open the accept flow described below.
  • Log Call — after acceptance, record that you phoned the customer to confirm the appointment (this also logs a communication entry). The detail warns when an accepted request’s customer has not yet been contacted.

When a request comes in, SS2 tries to match it to an existing customer and shows a match confidence chip:

ConfidenceMeaning
AuthoritativeThe request was submitted by a signed-in portal customer, or a dispatcher resolved it on accept. This is the only level that lets the customer see or cancel the request from their portal.
ExactThe submitted email matched exactly one existing customer. A dispatcher hint only — it grants the customer nothing.
ProbableThe submitted phone and ZIP matched exactly one existing customer. A weaker hint only.
(none)No confident match.

A match is recorded only when the evidence points to exactly one customer; anything ambiguous records no match. A match is never revealed to the customer and never by itself grants portal access.

Accepting converts the request into a work order (for work-order services) or an estimate lead (for estimate services), each with a scheduled appointment. The accept dialog helps you place the visit:

  1. Pick a day and technician from the availability strip. A week of days shows Has room / Full per day (from technician shifts minus time off and already-placed work) for the duration being booked, with the customer’s requested day starred. Each day lists technicians with open windows. When the route optimizer is available, clicking Suggest (or a ranked technician) fills in the recommended technician and arrival time by drive time and skill match. Clicking never books anything by itself — it only fills the fields below.
  2. Confirm the schedule — Date, Time, Technician (optional), and Duration (defaults from the service/type; 1–1440 minutes).
  3. Choose the customer — keep the matched existing customer and site, pick a different one, or create a new customer and service address from the submitted details. A new customer requires Terms.
  4. Fill the record details — for a work order, the Issue (blank falls back to the request details), Customer PO Number, and Notes; for a lead, the Stage, Source, and Lead Notes (Stage and Source default from the lead type / booking settings).
  5. Send the appointment confirmation — leave Send the appointment confirmation to the customer on and pick a Confirmation Template, or turn it off to contact the customer yourself later. On success the dialog reports whether the confirmation was sent, failed, requires manual contact, or was skipped.

Accepting a request upgrades its match to Authoritative (the dispatcher has resolved which customer it belongs to), so the customer can then see it in their portal.

  • To your staff, on submit: if the chosen booking service has notify roles assigned, everyone in those roles with an active account and an email address gets an email summarizing the new request and pointing them to the Booking Requests screen.
  • To the customer, on accept: when you leave confirmation sending on, SS2 texts the customer if they consented to texting (and texting is set up for your organization); otherwise it emails a confirmation with a one-click confirm link. If no channel is available, the accept result asks you to call the customer and log the call. A failed text is not automatically re-sent as an email.
  • To the customer, on reject: an optional text message, only if the requester consented to texting.

A signed-in portal customer can cancel their own Pending request from the portal; it then shows as Cancelled in the queue and drops out of the pending count. Requests submitted from the public link (not signed in) cannot be cancelled by the customer.


Navigate to Service → Manage 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
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 OrderLinked work order for this checkup (a checkup linked to an invoiced work order reads as complete; completion is system-managed)
DescriptionDescription or notes for the checkup

Complete and Revenue Recognized are not editable here — they appear as read-only, system-managed columns on the View Service Contract screen (Complete is set when the linked work order is invoiced).

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

The available options come from Service → Settings → Contract Options. Editing or deleting an option there re-prices the pending renewals that carry it (see Contract Options).

Automated Billings Tab — Define the billing schedule:

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

Linked 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 → Contract Opportunities to find customer sites that are missing coverage for a given contract type and create contracts for them in bulk. Contracts attach to a site, so results are evaluated per site: a site is listed when it has no non-cancelled contract of the selected type still in force on or after the cutoff date.

FieldRequiredDescription
AR Activity FromYesBeginning of the invoice-activity window — only sites whose customer has invoice activity in this range are considered
AR Activity ToYesEnd of the invoice-activity window
Missing Contract TypeYesThe contract type to check coverage for
Missing SinceYesCutoff date — a site is missing the type when no non-cancelled contract of that type extends to or past this date
Include sites with no contract historyNoUnchecked (default): only sites that already have some contract history are returned. Checked: sites with no contracts at all are included as well
ColumnDescription
CustomerCustomer ID and name (links to the customer)
SiteSite ID and name
Site AddressAddress of the site
# Active SystemsNumber of active (non-decommissioned) equipment systems at the site
Existing CoverageContract types currently in force at the site as of the cutoff date
  1. Select one or more sites with the row checkboxes. An action bar appears showing the selection count; click Create Contracts.
  2. In the Create Contracts dialog, set the Contract Type (required, prefilled from the search), Effective Date (required, defaults to today), and Expiration Date (required, defaults to one year out), and optionally add contract options (columns: Option, Qty, Amount, Is Percent, Exp on Renewal). A quantity greater than one adds that many instances of the option to each contract.
  3. Amount — When options are selected, the amount is computed from the options and cannot be edited; with no options, the amount is editable and defaults to the contract type’s default price.
  4. Click Create. One contract in Pending Sale status is created per selected site, all with the same type, dates, amount, and options. Sites that cannot be processed are skipped, and the confirmation message reports how many contracts were created and how many sites were skipped.

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)
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 Sale → Pending Start → Active → Expired (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).

A contract counts as sold once it has a live (non-voided) sale transaction — even a $0 sale, as with a free or complimentary plan — or once anything has been invoiced against it. Its invoiced and paid balances come from the contract’s transaction ledger, so voiding that sale returns the contract to unsold when nothing has been invoiced against it (voiding a payment affects only the paid balance). “Sold” is what distinguishes eligible contracts for checkup generation via the legacy Schedule Work Orders dialog (see Schedule Work Orders); the Manage Checkups screen does not require it.

View PDF:

  • Click Actions → View PDF on the contract view screen to generate the service contract document and open it as a PDF in a new browser tab. Available for any contract.

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.
  • Multiple contracts can be cancelled at once from the Contracts tab of the customer view: with the Mass Cancel Service Contracts permission, select contracts with the row checkboxes and click Cancel Contract(s) in the action bar that appears. The same cancellation reason and Cancel Pending Renewals setting apply to every selected contract; if any selected contract is already cancelled, none of them are cancelled.
  • 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, any checkups linked to work orders, or a non-zero invoiced or paid balance (for example a contract created from a work-order sale — void the source bill or payment first).

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.

The Service → Schedule Work Orders menu action opens the Generate Scheduled Work Orders and Appointments dialog. Select a Checkup Month/Year (required) and one or more Contract Types (required), optionally check Include Unsold Contracts, then click Generate. Despite its label, the checkbox extends eligibility to contracts in Pending Start status in addition to Active — this dialog only ever generates from sold contracts (to generate for unsold contracts, use the Manage Checkups screen’s Auto Create action).

When work orders are created, a Generated Work Orders dialog opens listing each created work order:

ColumnDescription
IDWork order ID (links to the work order)
Customer IDCustomer ID (links to the customer)
Customer NameCustomer name
Site AddressService site address
Service TypeService type of the generated work order
Contract IDThe service contract the checkup belongs to (links to the contract)

Each link opens in a new tab, so you can review the generated work orders without losing the list.

Navigate to Service → Manage Checkups for a console of maintenance-visit checkups across all customers, with a By Visit / By Contract toggle. The By Visit grid lists each checkup with its customer and site, the contract (status chip and a link to the contract), the checkup month and its ordinal (for example “2 of 4”), and status columns:

ColumnDescription
Visit StatusNot Scheduled, Scheduled, In Progress, Completed, or Cancelled
CoverageCovered, Before contract, or Past expiration
Appt MonthHow far the scheduled appointment has drifted from the checkup’s own month
WO #The linked work order, when one exists (links to it)
ConfirmedConfirmed or Not confirmed
Last Comm.When the customer was last contacted

Filter the grid with a quick search, a contract-status checkbox row, a from/to month range, a contract-type (plan) filter, and a grace-months setting. A stats bar above the rows summarizes the visit, coverage, and confirmation breakdown.

Auto Create. Each row’s action column lets you turn a checkup into a work order:

  • Auto Create Work Order (the lightning-bolt action) creates the checkup’s work order in one click; it is enabled only when the checkup is eligible, and its tooltip explains why when it is not.
  • Custom Create Work Order opens the work-order dialog pre-filled from the checkup so you can adjust it first.
  • Once a work order exists, the row instead offers Edit Work Order and Cancel Work Order. Log Communication is available on every row.

To create many at once, select eligible rows with the checkboxes and click the Auto Create N Selected button that appears; only the eligible rows in your selection are processed, and the result reports how many were created and any that were skipped.

A checkup is eligible for Auto Create when it has no work order yet, is not already complete, has a checkup date, belongs to a contract that has a contract type, and is on a contract that is not cancelled (or whose cancellation date falls after the checkup date). Unlike the legacy Schedule Work Orders dialog, Manage Checkups does not require the contract to be Active or sold — it works for contracts in any status. The server re-checks eligibility when the work order is actually created.

Accessing the screen requires the Manage Checkups permission; the per-row actions still require their own permissions (work order create/update, Cancel Work Order, and communication create).


Navigate to Service → Manage 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.

AI Equipment Analysis is a technician mobile app capability that extracts equipment data from a nameplate or dataplate photo, letting field techs add equipment records without manual data entry. It is not available on the web Equipment screen.

In the mobile app, the technician:

  1. Takes a photo of the equipment’s nameplate/dataplate (or selects an existing image).
  2. Runs AI Equipment Analysis on 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. The technician reviews the extracted data; on a successful extraction the fields are pre-populated on the equipment record.
  2. The technician accepts or edits the values, then saves.

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 → Manage 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)

The flat rate’s Category and its Product Catalog Category auto-fill each other. Picking a Category that is linked to a catalog category selects that Product Catalog Category (and turns on Product Catalog Enabled); picking a Product Catalog Category selects the Category linked to it. You can still change either afterward.

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). Editable only for untracked products or when Manual Override is on; for a tracked product it is read-only and follows the product’s inventory cost
Sell PriceNoSale price per unit (min 0). Editable only when Manual Override is on
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
Product NameYesDisplay name for the catalog item
DescriptionNoDescription shown to the customer or technician
TypeYesFlat Rate, Product, or Contract
Flat RateConditionalRequired if Type = Flat Rate
ProductConditionalRequired if Type = Product
Contract TypeConditionalRequired if Type = 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, image, or Parent Category. The Parent Category dropdown shows each category’s full path; picking a new parent moves the category there, and clearing it moves the category to the top level. A category cannot be moved into itself or one of its own subcategories.
  • Delete Category — Confirm deletion. Child categories move up one level, and products in the category may be deleted along with it.
  • Reorder Categories — Drag and drop category cards to change their display order. New categories, and categories moved in from another parent, are added at the end of the destination category’s list.
  • 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.

The fields at the top of the screen are the service module’s global settings; they save automatically as you change each one. Below them, a row of tabs holds the module’s reference data (statuses, types, rates, codes, and so on), each with its own create/edit form. Editing any of these requires the Edit Service Settings permission (and each tab’s own create/edit/delete permission).

These header checkboxes and the invoice blurb control how service work orders and invoices behave.

FieldRequiredDescription
Hide DiagnosticNoHide the diagnostic items on work orders
Disperse DiagnosticNoSpread the diagnostic charge across the other line items
Hide Invoice IssueNoDo not print the issue description on the invoice
Hide Line Item PricingNoShow line item descriptions only; hides the Unit and Ext. columns on the invoice
Hide Totals BreakdownNoHide the Labor, Material, and Other subtotals on the invoice (Subtotal, Tax, and Total Due still show)
Hide Quote Line Item TypeNoDisallow users from entering quotes on a work order
Material Default TaxableNoApply sales tax to material line items by default
Invoice Terms / BlurbNoFree-text terms/notes printed on service invoices

Settings that drive the technician mobile app and its notifications.

FieldRequiredDescription
Tech Search Schedule Start TimeYesStart of the technician’s workday used when searching schedules on mobile
Tech Search Schedule End TimeYesEnd of the technician’s workday used when searching schedules on mobile
Office Notification EmailNoEmail address that receives office notifications from mobile
Sales Notification EmailNoEmail address that receives sales notifications from mobile
Parts Notification EmailNoEmail address that receives parts notifications from mobile
Primary Diagnostic Flat RateNoDefault flat rate used for diagnostics on mobile
Mobile Custom Sell Price ProductNoProduct used when a technician enters a custom sell price on mobile
Mobile Attachment ClassYesAttachment access class applied to attachments added from mobile
FieldRequiredDescription
Pre Finished Appointment StatusYesAppointment status applied before an appointment is completed/finished
Cancelled Work Order StatusYesStatus applied when a work order is cancelled
Default Open Work Order StatusYesInitial status assigned to new work orders
Invoiced Work Order StatusNoStatus automatically applied to a work order when it is invoiced. When left blank, the status chosen on the invoicing form is kept
FieldRequiredDescription
Unnapplied Subs GLYesGL clearing account for subcontractor costs not yet applied (the on-screen label is spelled “Unnapplied”)

Each tab lists its records and has + (create), edit, and delete row actions. The tabs and their forms are described in the subsections that follow.

TabPurpose
Invoice Email SettingsThe from address, subject, and body used when emailing service invoices
Appointment Confirmation SettingsPhone, text, and email confirmation messages and timing
Appointment StatusesAppointment states (En Route, At Location, and so on) with color coding
Contract OptionsOptional add-ons that can be included on service contracts
Contract TypesContract templates controlling pricing, ledger accounts, and renewals
Cost CentersThe revenue and cost accounts that work order lines post to
Discount CodesPredefined percentage or dollar discounts (and rebates)
Dynamic ChargesFormula-based miscellaneous charges added to work orders
Equipment TypesEquipment classifications (Air Handler, Condenser, Boiler, and so on)
Flat Rate CategoriesGroupings (and subcategories) for flat rates
Flat Rate SettingsGlobal flat rate labor rate and pricing multipliers
Labor RatesHourly labor rates used across the service module
Linked Work Order ReasonsReasons selectable when linking two work orders together
LocationsAlternative service locations
Scheduled Time Off TypesCategories selectable on the Schedule Time Off dialog
Service TypesService categories that drive work order and appointment defaults
Work Order StatusesWork order states with color coding
SkillsSkills used to match technicians to work
CertificationsCertifications that grant their linked skills to employees

Controls the email that carries a service invoice — sent from a work order’s Email Invoice action, from Mass Email Work Order Invoices, and when a technician includes the invoice while completing an appointment on the mobile app. Subject and Email Body can include the placeholder {{appointment.humanId}}, which is filled in with the work order or appointment number. Enter the values and click Save.

FieldRequiredDescription
From EmailNoSender address for invoice emails (and for attachments emailed from the mobile app). When blank, a default no-reply address is used
SubjectNoSubject line for the invoice email. When blank, the subject is “ServiSuite Invoice” (“ServiSuite Mobile Invoice” when sent from the mobile app)
Email BodyNoRich-text body template for the invoice email

Defines a reusable confirmation “campaign” — the phone, text, and email messages sent to confirm appointments, plus the caller ID and confirmation window. Messages support placeholders: {{appointment}} (the time window and date), {{date}} (date only), and {{address}}, {{city}}, {{state}}, {{zip}}.

FieldRequiredDescription
DescriptionYesName of this confirmation setting
Phone Caller IDYesNumber shown as the caller ID on confirmation phone calls
Window Length (Minutes)YesLength of the confirmation/arrival window described by {{appointment}}
Prompt ConfirmationNoWhether the outreach asks the customer to confirm (rather than just reminding)
Phone Confirmation MessageYesScript played on the confirmation phone call
Text Confirmation MessageNoText message asking the customer to confirm
Text Reminder Message (already confirmed)NoReminder text sent when the appointment is already confirmed
Email From AddressNoSender address for the confirmation email
Email SubjectNoSubject line for the confirmation email
Email Confirmation MessageNoBody of the confirmation email

The list of appointment states, each with a color used on the dispatch board and appointment views. System statuses (for example En Route, At Location) cannot be deleted, and their Name cannot be changed.

FieldRequiredDescription
NameYesStatus name (locked for system statuses)
DescriptionYesLonger description of the status
ColorYesColor swatch, chosen from the color picker
DefaultNoWhether this status is applied to new appointments by default
Is ClosedNoMarks the status as a completed/closed state

The list of work order states, each with a color.

FieldRequiredDescription
NameYesStatus name
DescriptionYesLonger description of the status
ColorYesColor swatch, chosen from the color picker
Usable By TechNoWhether technicians can set this status
Is ClosedNoMarks the status as a closed state. Can be set only when the status is created; it cannot be changed afterward

Optional add-ons that can be added to a service contract. Each carries an amount that is either a dollar figure or a percentage.

FieldRequiredDescription
DescriptionYesName of the option
AmountNoThe option’s price — a dollar amount, or a percentage when Is Percent is checked
Is PercentNoWhen checked, Amount is treated as a percentage
Expires on RenewalNoWhen checked, the option is dropped rather than carried forward when a contract renews

Editing an option re-prices pending renewals. When you change an option’s pricing — its Amount or its Is Percent setting — the system re-prices every eligible pending renewal that carries the option. Before the save goes through it checks how many renewals are affected and, if any are, shows an Update Pending Renewals confirmation: “This will affect N pending renewals. They will be re-priced with the new amount. Renewals that have been overridden or already sent are not changed.” Confirm to save and re-price; the success message reports the count re-priced. Changing only the Description or Expires on Renewal does not re-price anything — Expires on Renewal is copied onto each contract when the option is added, so editing it here applies only to contracts linked afterward.

Deleting an option re-prices them too. Deleting a contract option removes it from those same pending renewals and re-prices them. The Delete Contract Option confirmation warns when renewals are affected: “The option will be removed from them and they will be re-priced. A renewal left with only discounts loses those too and takes the contract type’s default price. Renewals that have been overridden or already sent are not changed.”

A renewal is eligible only when it is in Pending Sale or Pending Renewal status, has not been overridden, and belongs to a renewable contract type; renewals that have been overridden or are already Renewal Sent are left unchanged. If the system can’t determine the impact (for example a network problem), it reports “Could not check which pending renewals this affects. Please try again.” and the edit or delete is not saved.

A contract type is the template behind every service contract — it sets the contract’s pricing, discounts, the ledger accounts its revenue posts to, and how renewals are handled. ID can be set only when the type is created and must be unique; the rest can be edited later.

FieldRequiredDescription
IDNoHuman-readable identifier, unique across types. Set on create only
DescriptionYesName of the contract type
Billing Sales Invoice TypeYesSales invoice type used when the contract’s automated billings are invoiced
Default PriceNoDefault sale price for contracts of this type
Material DiscountNoPercentage discount applied to materials on covered work
Labor DiscountNoPercentage discount applied to labor on covered work
Preferred DiscountNoPercentage discount applied to preferred flat rate pricing on covered work
Product Catalog EnabledNoWhen on, the type is added to the product catalog; turning it off removes it
RenewableNoWhether contracts of this type auto-generate a renewal. Uncheck for one-and-done types like warranties (default on)
Contract Sale ProductNoUntracked product placed on the sales invoice when automated billings are invoiced
Revenue Recognition PolicyYesHow deferred revenue is recognized — Per Month or Per Visit
Deferred GLYesDeferred revenue account the contract’s unearned revenue sits in
Sale GLYesRevenue account contract sale lines post to
Default Cost CenterYesService cost center used by default for contracts of this type
Default Service TypeYesService type used by default for work generated from the contract
Product Catalog CategoryYes (when Product Catalog Enabled)Catalog category the type is published under
Exclusive To Linked EquipmentNoWhether the discounts apply only to equipment linked to the contract, versus all customer equipment
Customer Facing DescriptionNoDescription shown to customers
Exclusive To Cost CentersNoWhether the discounts apply only to the selected cost centers, versus all cost centers
Exclusive Cost CentersYes (when Exclusive To Cost Centers)The cost centers the discounts are limited to
Payment Notification EmailNoAddress notified when a customer makes a payment against a contract of this type

Auto-Send Renewals Before Expiration. Checkboxes for 30 Days Prior, 14 Days Prior, 7 Days Prior, 3 Days Prior, 1 Day Prior, and On Expiration control when renewal notices are sent automatically.

Phone Call Renewal Settings. Optional automated renewal outreach by phone. Configure a Caller ID (From Number), an Office Number for Transfer, and a Phone Call Message that plays verbatim; the system listens for the customer pressing 1 to transfer them to the office number. The message supports placeholders such as {{customerName}}, {{contractType}}, {{effectiveDate}}, {{expirationDate}}, {{amount}}, {{companyName}}, and {{companyPhone}}.

Formula-based miscellaneous charges that can be added to a work order. The formula computes the charge from work order totals, where L = Labor Total, M = Material Total, O = Other Total, and ST = Subtotal.

FieldRequiredDescription
DescriptionYesName of the charge
Service TypeNoLimits the charge to one service type; blank makes it available for all
FormulaYesExpression that computes the charge amount from the totals above
Override GLNoRevenue account this charge posts to instead of the cost center’s default dynamic charge account
Default EnabledNoWhether the charge is added to matching work orders by default
ActiveNoWhether the charge is available for use

Classifications for customer equipment.

FieldRequiredDescription
NameYesName of the equipment type

Groupings for flat rates, arranged as a tree — create a top-level category with the header +, or a subcategory with the + on a row. When a category is linked to the product catalog, editing it can optionally sync its flat rates into the catalog.

FieldRequiredDescription
DescriptionYesName of the category
Product Catalog EnabledNoWhen on, publishes the category (and, on save, optionally its flat rates) to the product catalog
Product Catalog CategoryYes (when Product Catalog Enabled)Catalog category the flat rates are published under

A single global record controlling flat rate labor pricing. Enter the values and click Save.

FieldRequiredDescription
Estimated Labor Cost RateNoEstimated hourly labor cost used in flat rate pricing
Default Service Labor RateYesThe labor rate used as the flat rate labor sell rate
Labor Sell Rate—Read-only; filled from the chosen Default Service Labor Rate’s hourly rate
Overtime Rate MultiplierNoMultiplier applied to the rate for overtime labor
Additional Item MultiplierNoMultiplier applied to additional flat rate items
Standard Preferred MultiplierNoMultiplier applied for standard versus preferred pricing
Use Stated CostNoUse a product’s flat (stated) cost instead of its average cost when determining material cost

Hourly labor rates used across the service module.

FieldRequiredDescription
DescriptionYesName of the labor rate
Hourly RateNoDollar amount charged per hour
DefaultNoWhether this is the default labor rate

Reasons selectable when linking two work orders together.

FieldRequiredDescription
DescriptionYesThe reason text

Alternative service locations that differ from customer site addresses.

FieldRequiredDescription
DescriptionYesName of the location

The time-off categories selectable on the Schedule Time Off dialog (Personal, Sick, and Vacation are seeded defaults).

FieldRequiredDescription
NameYesName of the type. Must be unique among active types

The skills (for example EPA Certified, Boiler, Electrical) used to match technicians to work.

FieldRequiredDescription
NameYesName of the skill
DescriptionNoLonger description of the skill

Certifications, each optionally linked to one or more Skills. Holding an unexpired certification grants an employee its linked skills automatically (see Schedulable Employees).

FieldRequiredDescription
NameYesName of the certification
DescriptionNoLonger description of the certification
Linked SkillsNoThe skills this certification grants

A service cost center tells the system which ledger accounts a work order line posts to. It is a different record from the General Ledger’s cost centers (General Ledger → Manage Cost Centers), which tag ledger accounts by department for reporting — the two are not linked.

Every work order and proposal line has a cost center. New lines take the Default Cost Center of the work order’s service type (see Service Types), and you can change it per line. When the line is priced, its cost center supplies the accounts for its line type:

FieldRequiredUsed for
DescriptionYesThe cost center’s name
Labor Sell GLYesRevenue on labor lines (and a flat rate’s labor portion)
Labor Cost GLYesCost on labor cost lines
Material Sell GLYesRevenue on material lines (and a flat rate’s material portion), unless the product overrides it
Material Cost GLYesCost on material lines, unless the product overrides it
Quote Sell GLYesRevenue on quote lines (labeled Default Cost GL on the create/edit form)
Default Sub Cost GLYesCost on subcontractor lines
Default Dynamic Charge GLYesRevenue on dynamic charge lines that don’t name their own account
Tax GLYesSales tax, taken from the service type’s default cost center when the work order is invoiced
Default Discount GLYesDiscounts on this cost center’s lines; work-order-level discounts use the service type’s default cost center
Default Service Labor RateYesThe labor rate used by default for this cost center
Should Warranty Have CostNoWhether warranty work records a cost
Discounts Affect RevenueNoWhether discounts reduce recognized revenue

Contract sale lines are the exception: they post to the service contract type’s sale account.

Discount codes are predefined discounts that can be applied at the appointment level on a work order (and at the proposal level in CRM). Each code carries a fixed value applied either as a percentage or a dollar amount. Codes are managed on the Discount Codes reference-data tab.

Navigation: Service → Settings → Discount Codes

FieldRequiredDescription
IDNoShort identifier for the code, set on create only. Must be unique among active codes — reusing an existing ID is rejected.
DescriptionYesHuman-readable name shown in discount-code pickers.
AmountYesThe discount value — a dollar amount, or a percentage when Is Percent is checked.
Is PercentNoWhen checked, Amount is treated as a percentage rather than a dollar figure.
Ledger Account OverrideNoPosts this code’s discount to a specific GL account instead of the default discount account. Hidden for rebate codes (rebates do not post to a discount account).
Is RebateNoFlags the code as a rebate — the discount is billed to a third-party Rebate Payer instead of being recorded as a discount. See below.
Rebate PayerYes (rebates)The third-party customer billed for the rebate amount. Required whenever Is Rebate is checked.
Tax on GrossNoWhen checked, the customer is taxed on the full pre-discount price on lines that use this code (the discount stays in the taxable base). Turned on automatically when Is Rebate is checked, but can be changed.

A rebate code represents a discount that a third party (for example a manufacturer or utility) pays on the customer’s behalf. Checking Is Rebate:

  • Requires a Rebate Payer — the customer who will be billed for the rebate amount.
  • Hides the Ledger Account Override (rebates do not post to a discount account) and turns on Tax on Gross by default so the customer is taxed on the full price.

When a rebate code is applied to a work-order appointment and the work order is billed, the customer is invoiced the discounted (net) amount, and the rebate portion is billed to the Rebate Payer as a separate AR invoice. See Third-Party Rebate Billing for the billing and GL effect, and the Rebates tab on the work order and customer for the resulting rows.

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 CenterYesService cost center assigned to new line items on work orders of this type; its Tax GL is also used for the work order’s sales tax
Default Timesheet Entry TypeNoTimesheet entry type applied when technicians clock time on work orders of this type — it covers both travel and on-site time. When blank, the Work Order Travel / Site Timesheet Entry Types from Payroll Settings are used
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
Arrival Window (mins)NoLength of the customer arrival window (in minutes) auto-applied to new appointments of this type. Leave blank to derive no arrival window
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 (see Appointment Duration Block). Individual appointments can always be overridden by editing the Duration field directly or by resizing the block on the dispatch board.

Skill Requirements. The Service Type form also lists the skills work of this type demands. Add a requirement, pick the Skill, and mark it Required or leave it as preferred. Required skills exclude employees who lack them from suggestions and route optimization; a preferred skill instead adds a Penalty (min) — an equivalent number of extra travel minutes charged against an employee who lacks it (blank uses the service default). Employees gain these skills manually or through certifications.

Navigate to Service → Schedulable Employees for the Search Schedulable Employees screen. A schedulable employee is an employee who can be scheduled on the dispatch board and assigned to appointments. The grid lists each one with ID, Employee, Email, Primary Inventory Location, Secondary Inventory Location, and a Routing chip that shows whether the employee’s home address is located (routable) or not.

  • Create — Click + and fill in ID, Employee, Email Address, Primary Inventory Location, and an optional Secondary Inventory Location.
  • Edit / Delete — Use the row actions. Removing an employee also removes their upcoming shifts; it does not affect existing appointments, and the Work Order Appointment Roster report still includes appointments assigned to removed employees.
  • View — Click a row to open the employee’s view screen, which shows the header details, the Routing status, and an Actions menu (Audit, Edit, Delete).

Routing / home address. Route optimization drives from and back to the employee’s home address (from their employee record). The Routing chip shows Located when that address can be mapped; if it can’t be located, the employee can only be routed on days whose shift carries its own located start address.

Skills and Certifications. The view screen has two tabs:

  • Skills — the skills this employee has, each labeled with its Source (Manual, or the name of the certification that granted it). Add a manual skill with Add Manual Skill; certification-granted skills are managed through the Certifications tab. These skills are what Suggest Schedulable Employee matches against a job’s required skills.
  • Certifications — the employee’s certifications, each with a Cert Number, Issued date, and Expires date. Adding a certification grants its linked skills (until it expires); removing one removes those skills.

Column display order on the dispatch board is a per-user setting arranged from the board itself; the Search screen sorts by employee ID.

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.

Navigate to Service → Manage Shifts for a week-view calendar of employees’ working shifts. Shifts define when each employee is available; they drive the dispatch board’s shift-availability shading and column shift line, and the route optimizer’s availability.

Create a shift with the Create Shift dialog: an optional Name, a Start Date, a Shift Start and Shift End time, and a Repeats option (Does not repeat, Daily, or Weekly). One shift can be created for several employees at once. Managing shifts requires the Schedulable Employee Daily Shift permissions.


Navigate to Service → Document Queue for the Document Queue — Service Invoices screen, where scanned service invoices wait to be filed to work orders. Select a document to preview it, then file it to the work order it belongs to. (Documents can also be filed from the other direction: open the work order and use Link scan on its Attachments tab.)

Getting documents into the queue:

  • Upload / drag-and-drop. Click Upload, or drag files anywhere onto the screen (for example straight from your email). PDFs, JPEGs, and TIFFs are accepted, up to 50 MB per file. New uploads land in the Waiting tab.
  • Scanners and copiers. Registered scan devices can send documents straight into the queue. Scanners are registered under Administration (see Administration & Utilities).

A Waiting / Filed / Discarded toggle switches which documents the list shows. The grid shows each document’s received date, file name, page count, size, and the originating device (or “Uploaded” when added by hand); the Filed view replaces the size and device columns with the record it was filed to. A Split action separates a multi-page PDF batch into one entry per document.

Per-row actions depend on the tab:

ActionWhereWhat it does
File to work orderWaitingFile the scan to a work order.
InvoiceWaitingToggle (Service queue only, PDF only) to file the scan as the work order’s invoice attachment, which is merged into emailed invoice PDFs.
Move to AP InvoicesWaitingMove the document to the AP document queue (requires access to that queue).
DiscardWaitingSend the document to the Discarded tab.
Restore to the queueDiscardedReturn the document to Waiting.

Accessing this screen and filing service scans requires the Service Document Queue permission.


For the complete list of permissions in this module and what each one allows, see the Permissions Reference.

PermissionDescription
View Work OrderView the work orders list and details
Create Work OrderCreate new work orders
Edit Work OrderEdit work orders
Delete Work OrderRemove work orders
View AppointmentView appointment records
Create AppointmentCreate appointments; also grants creating Work Order appointments and scheduled time off on the dispatch board
Edit AppointmentModify appointment details, reschedule, or reassign; also grants editing Work Order appointments and time off
Delete AppointmentRemove appointments; also grants deleting Work Order appointments and time off
Create / Edit / Delete Work Order AppointmentSchedule, reschedule, and remove Work Order appointments on the dispatch board and work order — a narrower alternative to the Appointment create/edit/delete permissions above
View Work Order AppointmentGenerate and open the work order, appointment, and invoice PDFs from the board
Create / Edit / Delete Lead AppointmentSchedule, reschedule, and remove Lead appointments on the dispatch board
Create / Edit / Delete Job AppointmentSchedule, reschedule, and remove Job appointments on the dispatch board
Create Scheduled Time OffCreate scheduled time-off blocks
Delete Scheduled Time OffRemove scheduled time-off blocks
Manage Appointment ConfirmationsAccess the Manage Appointment Confirmations screen to queue and record confirmations
Work Order BillingInvoice and bill-credit work orders (the work-order billing flow, including the dispatch board’s Invoice Work Order action)
Service DashboardAccess the Service Dashboard
View Service ContractView service contracts
Create Service ContractCreate new service contracts
Edit Service ContractEdit service contracts
Delete Service ContractRemove service contracts
Manage Service Contract BillingsSearch and process batch contract billings
Manage CheckupsAccess the Manage Checkups screen
Create Scheduled Work OrdersUse the Schedule Work Orders dialog to generate checkup work orders
View Equipment ItemView equipment records
Create Equipment ItemAdd new equipment
Edit Equipment ItemEdit equipment records
Delete Equipment ItemRemove equipment
View Flat RateView flat rates
Create Flat RateCreate new flat rates
Edit Flat RateEdit flat rates
Delete Flat RateRemove flat rates
Bulk Update Flat RatesAccess the Bulk Update Flat Rates screen
Manage Product CatalogAccess the Product Catalog screen
View / Create / Edit / Delete Discount CodeManage the Discount Codes reference data (including rebate codes)
Edit Service SettingsAccess and modify Service Settings
Dispatch BoardAccess the dispatch board screen
Manage Booking RequestsReview, accept, and reject online booking requests on the Booking Requests screen
Cancel Work OrderCancel and uncancel work orders (misc permission)
Mass Print Service InvoicesAccess the Print Service Invoices screen
Generate Work Order Appointment SummariesGenerate the full-day work order appointment summaries
Service Document QueueReview scanned service invoices in the document queue and file them to work orders
Manage Service Contract RenewalsProcess service contract renewals (send renewal notices and generate renewal contracts)
Contract OpportunitiesAccess the Contract Opportunities screen to find sites missing contract coverage and create contracts in bulk
Mass Cancel Service ContractsSelect and cancel multiple service contracts at once from the customer’s Contracts tab (misc permission)
Routing OptimizationUse the route optimizer: Optimize Route, View Route, Suggest Schedulable Employee, and bulk Auto-Assign on the dispatch board
View / Create / Edit / Delete Schedulable EmployeeManage the schedulable-employee list
View / Create / Edit / Delete Schedulable Employee Daily ShiftView and manage employee shifts on the Manage Shifts screen
View / Create / Delete Schedulable Employee TraitView and manage an employee’s manual skills
View / Create / Edit / Delete Schedulable Employee CertificationView and manage an employee’s certifications
View / Create / Edit / Delete Trait TypeManage the Skills reference data
View / Create / Edit / Delete CertificationManage the Certifications reference data
View / Create / Edit / Delete Scheduled Time Off TypeManage the Scheduled Time Off Types reference data

The Rebates tab on the work order (and on the customer in Accounts Receivable) is available to any user who can view work orders; it lists rebate billing rows and is read-only.


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 → Manage Work Orders and clicks + (or uses the Dispatch Board FAB → Create 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. Ledger 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)$88.75
Inventory (configured)$18.75
Labor cost credit — the Labor Cost line’s configured cost-credit account (or the Accrued Service Wages Ledger / unapplied labor account when Link Service Labor to Time Clock is enabled)$45.00
Flat-rate cost credit — the flat-rate line’s configured cost-credit account$25.00

The flat rate’s revenue and cost post through its child line items (not the display-only parent line), and the labor cost credits a labor/clearing account rather than Inventory — only material consumption credits Inventory.


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 → Manage 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 → Create 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.

  • Service Type Required — Every work order requires a Service Type, which determines default status and cost behavior.
  • Line Item GL Accounts — Material, Labor Cost, and Subs items require both credit and debit GL accounts. Sale items require a credit account.
  • Invoice Locks Dispatch — Once a work order is invoiced, the dispatch board UI prevents moving or rescheduling its appointments.
  • Cancel Applies Cancelled Status — Cancelling a work order records an optional Cancellation Reason (up to 255 characters) and applies the configured Cancelled Work Order Status from Service Settings.
  • Delete WO Prerequisites — A work order can only be deleted if it has not been invoiced and has no completed appointments.
  • Synced Labor Locked — Once a labor line’s time-clock entry has been synced to payroll, the labor line and its parent line item cannot be changed or deleted. Corrections are made by adding an adjusting labor-cost line.
  • Routing Requires Located Addresses — Route optimization, Suggest Schedulable Employee, and route tracing require located addresses: each appointment’s customer site must be mappable, and the employee needs a located start address (home address, or a start address on that day’s shift). Stops or employees that can’t be located are excluded and reported.
  • Requests Never Auto-Schedule — Online booking requests always land in the Booking Requests review queue as Pending; they are never placed on the schedule automatically. A request becomes a work order or lead with an appointment only when a dispatcher accepts it.
  • Booking Availability Limits — The times offered to a customer are bounded by the configured booking hours, minimum notice, and booking horizon, and by an optional daily request cap. When shift-coverage checking is enabled, a day is offered only if an on-shift technician could still absorb the visit. The same limits are re-checked when the request is submitted.
  • Rebate Payer Required — A discount code flagged as a rebate must have a Rebate Payer, enforced when the code is saved. Billing a work order also re-checks this: if a rebate code on the work order has no payer, billing is blocked.
  • Flat Rate Material Include — Materials on a flat rate flagged “Default Add to Work Order” auto-add when the flat rate is selected.
  • 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.
  • 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.
  • WO Invoice GL Post — Invoicing a work order auto-posts: debit the configured AR Control account / credit each line’s revenue account, and debit each line’s cost account / credit the Inventory account (for material). Each line’s revenue and cost accounts come from its service cost center; tax posts to the Tax GL of the service type’s default cost center. For labor cost lines, the offsetting cost credit depends on the Link Service Labor to Time Clock payroll setting: when it is on, a line whose labor entries all came from the time clock credits the Accrued Service Wages Ledger (relieved later when the timesheets sync to payroll); if the line has no time-clock entries or any of its labor was entered manually, the entire line credits the unapplied labor account instead (if the applicable account is not configured, the line’s own cost credit account is used). When the setting is off, the line’s configured cost credit account is used.
  • 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.
  • 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.
  • 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.
  • Contract Renewal — Renewing a service contract creates a new contract linked to the original, with effective dates continuing from the original’s expiration.
  • Arrival Window Derivation — When an appointment’s assigned time is set or changed, its arrival window is pre-filled from the work order’s Service Type Arrival Window (mins); a service type with no length derives no window, and a manually edited window is preserved. Windows may cross midnight. Lead appointments have no automatic derivation.
  • Route Apply Staleness Guard — Applying an optimized route order or a bulk auto-assignment only affects appointments that have not been moved since the solve ran; any that changed are skipped rather than overwritten, and the dispatcher is told.
  • Invoiced Work Order Status — Invoicing a work order stamps the invoicing user and time (Invoiced By / Invoiced Date Time) and, when an Invoiced Work Order Status is configured in Service Settings, moves the work order to that status; with none configured, the status chosen on the invoicing form is kept.
  • Certification Grants Skills — Holding an unexpired certification automatically grants the employee the skills linked to that certification; those skills are removed when the certification expires or is removed.
  • Booking Request Notification — When a request is submitted, everyone in the booking service’s assigned notification roles (active accounts with an email address) receives an email summarizing the request and pointing them to the Booking Requests screen.
  • Customer Match Confidence — Incoming requests are matched to an existing customer only when the evidence resolves to exactly one: an Exact match on a unique email, or a Probable match on a unique phone + ZIP. Portal-submitted and dispatcher-resolved requests are Authoritative; only Authoritative requests are visible to the customer in their portal. Exact/Probable are dispatcher hints and grant the customer nothing.
  • Accept Conversion & Confirmation — Accepting a request creates a work order (work-order services) or an estimate lead (estimate services), each with a scheduled appointment, optionally creating a new customer/site from the submitted details, and upgrades the request’s match to Authoritative. If confirmation sending is left on, SS2 texts the customer when they consented (and texting is configured), otherwise emails a confirmation with a confirm link; when no channel is available it flags the appointment for manual contact. A failed text is not auto-emailed.
  • Rebate Billing — When a work order is billed and one of its appointments uses a discount code flagged as a rebate, the customer is invoiced the discounted (net) amount and the rebate portion is billed to the code’s Rebate Payer as a separate AR invoice; no discount is recorded against a discount account. Rebates are grouped by payer (one payer invoice per payer per billing) and appear on the work order’s Rebates tab and the payer’s Rebates tab. Crediting (voiding) the work-order billing reverses the payer invoices.
  • Tax on Gross — A discount code flagged Tax on Gross keeps its discount inside the taxable base on the lines that use it, so the customer is taxed on the full pre-discount price. Only those lines are affected; other appointments’ discounts still reduce their own taxable base. Tax on Gross is turned on automatically for rebate codes.
  • WO Lifecycle — Create WO → Schedule Appointment → Dispatch → On Site → Complete → Invoice → Close.
  • 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.
  • Billings Processor — Batch process generates AR invoices for all contracts with billing dates in the period.
  • 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.
  • WO Cancel/Uncancel — Cancel marks the work order cancelled, records a cancellation date, unassigns all appointments, and applies the Cancelled WO Status. Uncancel clears the cancelled flag and restores the Default Open WO Status.
  • Online Booking Lifecycle — Customer submits request (Web link or portal) → staff notified → dispatcher reviews in Booking Requests → Accept (create WO/Lead + appointment, send confirmation) or Reject (optional customer text). A portal customer may cancel their own still-pending request.
  • CRM Proposal to WO — A proposal with Conversion Type = Work Order is converted into a WO with pre-populated customer, site, and line items. Conversion is not gated on the proposal’s status; it only requires a Work Order conversion type, a proposal that has not already been converted, and the Create Work Order permission (see the CRM module’s Conversion Preconditions).
  • Material from Inventory — Material line items reserve and pick from warehouse inventory; consumption reduces on-hand and posts to GL.
  • 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 (see Service Type Required). Select one from the dropdown. If the correct type doesn’t exist, ask an administrator to create it in Service → Settings → Service Types.

Q: Billing a work order fails — “A rebate discount code on this work order is missing its rebate payer.” One of the discount codes applied to this work order is flagged as a rebate but has no Rebate Payer set. Open Service → Settings → Discount Codes, edit the code, and set its Rebate Payer (see Rebate Payer Required), then bill the work order again.

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 (see Line Item GL Accounts). The defaults come from the line’s service cost center (Service → Settings → Cost Centers, see Cost Centers); you can also set them manually on each line item.

Q: A labor line on a work order is greyed out and can’t be edited or deleted. Its time-clock entry has been synced to payroll (see Synced Labor Locked). Synced labor lines are locked so work-order costs stay in agreement with payroll. Add a new adjusting labor-cost line to correct the hours or cost instead of editing the synced one.

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 (see Invoice Locks Dispatch). 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 (see Pricing Tier Selection). Check the customer’s service-contract discount in their AR record, and verify the flat rate’s tier prices in Service → Manage 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 (see Flat Rate Material Include). 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 (see Material from Inventory). 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 (widened to include Pending Start when Include Unsold Contracts is checked) 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 an optional cancellation reason (up to 255 characters). The system applies the Cancelled Work Order Status configured in Service Settings (see Cancel Applies Cancelled Status). 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 (see WO Cancel/Uncancel).

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 (see Delete WO Prerequisites). 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 → Manage Appointment Confirmations to manage confirmations. Queue confirmations from the Queue tab (Phone Call and Email are always available; Text/SMS appears when two-way texting is enabled for your organization) and review or edit confirmation details from the expandable rows on the Search tab. Configure message templates and timing in Settings → Appointment Confirmation Settings (see Appointment Confirmations).

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 (see AI Solution Polish). 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 (see Contract Lifecycle).

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 (see Contract Renewal).

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 → Schedulable Employees for the Search screen. Use + to add an employee (ID, employee, email, inventory locations), the row actions to edit or remove one, and click a row to open the employee’s view — including its Routing status and its Skills and Certifications tabs. Column display order on the dispatch board is a per-user setting arranged from the board itself.

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 (chosen from the configurable Scheduled Time Off Types — Personal, Sick, and Vacation are the seeded defaults), 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.

Q: What does “N not routable” mean on the dispatch board? Those employees have a home address that couldn’t be located on the map, so the route optimizer can’t route from their home. They can still be routed on any day whose shift specifies its own located start address (see Routing Requires Located Addresses). Fix the employee’s home address to make them routable.

Q: I clicked Optimize Route / Auto-Assign and some appointments were skipped. The board changed since the optimization ran — someone moved one of those appointments. The system skips anything that changed rather than overwrite it, then re-checks. Re-open the tool to pick up the current state (see Route Apply Staleness Guard).

Q: Optimize Route says appointments were left out with no located address. The optimizer only routes stops whose customer site address can be mapped. Add or correct the site address so it can be located, then re-run.

Q: How does SS2 pick the “best” technician in Suggest Schedulable Employee? It scores candidates by drive time and by how well their skills match the job’s required skills (from the work order’s service type or the lead’s lead type). Skills come from an employee’s manual skills plus any granted by an unexpired certification (see Certification Grants Skills). Configure required skills on service types, and employee skills on the Schedulable Employee’s Skills and Certifications tabs.

Q: The shading behind appointments — what do the colors mean? That’s the shift-availability overlay (toggle it with the calendar icon). Green = the employee is on shift, a light hatch = off shift, and a dark crosshatch labeled “No shift” = no shift at all that day. It reflects the shifts defined in Manage Shifts.

Q: How do I stop the “resend confirmation” pop-up when I reschedule? Turn off Prompt To Resend Confirmation On Time Change in your User Settings. It only appears when you move an appointment that already has a customer confirmation more than 30 minutes from its confirmed time.

Q: A customer booked online — where does it show up? Online booking submissions do not go straight onto the schedule. They arrive as booking requests in Service → Booking Requests, and (if you assigned notification roles to the service) the assigned roles get an email. Open the request and click Accept as Work Order or Accept as Lead to schedule it (see Requests Never Auto-Schedule).

Q: What does the Match column on a booking request mean? It is how confident SS2 is that the request belongs to an existing customer. Authoritative means it was submitted by a signed-in portal customer or resolved by a dispatcher; Exact and Probable are hints (a unique email, or a unique phone + ZIP) that help you pick the customer but grant the customer nothing (see Customer Match Confidence). You confirm or change the customer in the accept dialog.

Q: I accepted a request but the customer wasn’t texted. Confirmation texts go out only when the customer consented to texting and texting is set up for your organization; otherwise SS2 sends a confirmation email, and if neither is possible the accept result asks you to contact the customer and Log Call from the request. A failed text is not automatically re-sent as an email (see Accept Conversion & Confirmation).


  • 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. They are filled in from the line’s service cost center, so make sure every cost center in Service → Settings → Cost Centers has its accounts set (see Cost Centers).

  • 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.

  • Resend confirmation on time change: The Prompt To Resend Confirmation On Time Change user setting (User Settings) controls whether dragging an appointment that already has a customer confirmation more than 30 minutes from its confirmed time prompts you to resend the confirmation. It is on by default; turn it off to skip the prompt.

  1. Open the work order and click Actions → Cancel.
  2. Optionally enter a Cancellation Reason (up to 255 characters).
  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 Continue.
  5. In the Send/Generate Renewals dialog, configure email/print/call options and click Send/Generate.
  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 → Schedulable Employees for the Search Schedulable Employees screen.
  2. Click + to add an employee (ID, employee, email, and inventory locations), or use the row actions to edit or remove one. Removing an employee does not affect their existing appointments.
  3. Click a row to open the employee’s view — its Routing status (whether the home address is located for route optimization) and its Skills and Certifications tabs.
  4. 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 screen.
  5. Define each employee’s working shifts on Service → Manage Shifts.
  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).