Use a maintenance contract to create recurring service agreements, define preventive work, activate billing, and generate visits
A new contract remains in Draft while you complete its details, schedule, coverage, billing, and optional revenue recognition. Activation makes the contract eligible for visit generation; it does not create appointments by itself.
Before You Begin
-
Confirm that Service and Maintenance Contracts are enabled for your organization.
-
In Service Settings, configure the maintenance call type, priority, split strategy, Schedule Board hours, holiday dates, and default maintenance billing product as needed.
-
Create active Contract Categories and Covered Systems for the business unit.
-
Confirm that the customer location has the equipment you will cover and that the required task templates are published.
-
For revenue posting, configure distinct Deferred Revenue and Earned Revenue accounts in Service Settings.
Create a Maintenance Contract
-
Open Maintenance Contracts and select New Contract. The guided Draft workflow opens at Details.
-
Enter the contract details by completing the following fields:
-
Contract number: Leave this blank to use the standard auto-number rule, or enter an approved contract number.
-
Customer (Required): Select the customer that owns the agreement. Changing the customer clears the location and applies that customer's default Division when one is configured.
-
Location (Required): Select a location for the chosen customer. This choice limits Coverage equipment to assets at that location.
-
Division (Required when configured) Confirm or change the customer's default Service Call Dimension Value. The field is unavailable when a Service Call Dimension is not configured in Service Settings.
-
Contract Category (Required): Choose an active category. The category helps suggest the contract Name and must be present before activation.
-
Covered Systems (Required): Add one or more active systems covered by the agreement. Existing inactive values remain visible on historical contracts but cannot be newly selected.
-
Name (Required): Use the suggested name based on Contract Category and Covered Systems, enter your own name, or select Regenerate name after changing those values.
-
Description: Enter customer and service context that should carry to generated service calls.
-
Status: Review the read-only state. New contracts begin as Draft; status changes are handled separately after setup.
-
Start date (Required): Set the first day of the contract term. Date entry and the calendar follow your browser locale.
-
End date (Required): Set the final day of the contract term. It must be the same day as or later than Start date.
-
Renewal date: Record the date used by your organization to begin renewal follow-up.
-
Contract amount (Required): Enter an amount greater than zero for the fixed contract. Currency is currently displayed as USD.
-
Billing product: Select the service product to use for billing. If blank, posting uses the Default Maintenance Billing Product from Service Settings.
-
Billing frequency (Required): Choose Monthly, Quarterly, or Annual. Custom schedules cannot be recalculated in the current workflow.
-
Billing start: Set the first billing date range boundary. If blank, the contract start date is used.
-
Billing end: Set the last billing date range boundary. If blank, the contract end date is used; when entered, it must be on or after Billing start.
-
Revenue Recognition Type: Choose None, Straight Line, or Percent of Completion. None is the default. Straight Line creates monthly rows without prorating partial months. Percent of Completion allocates the contract amount across scheduled work using template Budgeted Hours.
-
-
Select Save to preserve the Draft or Next to save and continue.
Define the Visit Schedule
-
On the Schedule step, select Add schedule.
-
Add at least one schedule before continuing, and add separate schedules when the contract uses different recurrence patterns.
-
Complete the following fields:
-
Frequency (Required): Choose Weekly, Monthly, Quarterly, Semiannual, Annual, or Custom. Monthly is the default.
-
Interval count (Required): Enter how many frequency units occur between visits. The minimum value is 1.
-
Days of week: Select Mon through Sun when the recurrence should run only on specific weekdays.
-
Day of month: Enter a calendar day from 1 through 31 when the recurrence is tied to a monthly date.
-
Window start: Enter the earliest preferred appointment time.
-
Window end: Enter the latest preferred appointment time. When both window values are present, Window end must be later than Window start.
-
Next run on: Set the next date the recurrence should evaluate when you need to seed or adjust generation.
-
-
Select Next after every schedule is complete. Service Settings hours, holidays, and the Registration default time zone affect generated appointment timing.
Attach Coverage
Each schedule needs at least one row that pairs a task template with equipment from the contract location. Use Add template for individual rows or Quick add templates for several equipment records.
Individual Coverage Row
-
On the Coverage tab, select Add template.
-
In the lower portion of the window, complete the following fields:
-
Equipment (Required): Select one location asset for this row. Changing the contract location clears incompatible coverage selections.
-
Template (Required): Select the preventive task template that defines the work for this equipment.
-
Template mode (Required): Choose Live template to use the latest published version at generation time, or Locked version to preserve a specific version for future visits.
-
Version (Required for Locked version) Select the version to preserve. In Live template mode, the current version is shown and the field is read-only.
-
Note: Enter coverage details specific to this equipment and template pairing.
-
-
Select Next after every schedule has at least one complete Equipment and Template row. Coverage cannot be changed after visits exist for the contract.
Quick Add Templates
-
On the Coverage tab, complete the following fields:
-
Template (bulk add) (Required): Select one task template to apply to every selected equipment record.
-
Template mode (bulk add) (Required): Choose Live template or Locked version for all rows created by the bulk action.
-
Version (bulk add) (Required for Locked version) Select the version to preserve for the new rows.
-
Note (bulk add): Enter one coverage note to copy to every new row.
-
Equipment Type: Filter the location equipment list by type.
-
Model Number: Filter the location equipment list by model.
-
Manufacturer: Filter the location equipment list by manufacturer.
-
Equipment (bulk add) (Required): Select one or more equipment records, then choose Add selected equipment. One coverage row is created for each selection.
-
-
Select Next after every schedule has at least one complete Equipment and Template row. Coverage cannot be changed after visits exist for the contract.
Recalculate Billing
The Billing step displays the fixed-amount schedule derived from the Contract amount, Billing frequency, Billing start, and Billing end values.
-
Select Recalculate while the contract is Draft.
-
Review each period, bill date, amount, and status. The final pending row receives any rounding remainder.
-
If posted history exists, recalculation preserves posted rows and rebuilds only future pending rows.
-
Select Next after the schedule is current. Recalculate keeps you on Billing so you can review the generated rows first.
Important Activation remains blocked when recalculation is required. Custom billing, unresolved voided rows, or invalid posted history can prevent recalculation.
6 Complete Revenue Recognition
The action depends on the Revenue Recognition Type selected on Details.
-
None: No recognition rows are required after Billing is complete. Select Next.
-
Straight Line: Select Recalculate and review one row for every calendar month touched by the contract term. Partial months are not prorated.
-
Percent of Completion: Select Recalculate and review the obligations allocated across scheduled occurrences by coverage-template Budgeted Hours.
Important Changes to the recognition type, contract amount, Start date, or End date require another recalculation before activation. Posted recognition entries remain unchanged.
Review and Activate
On the Review & Activate step, confirm the contract details, schedule and coverage, billing totals, and revenue-recognition status.
-
Resolve any incomplete step shown in the Draft stepper.
-
Confirm that Billing is current and that Straight Line or Percent of Completion recognition has been recalculated when selected.
-
Select Activate Contract.
-
The contract becomes Active and its setup fields become read-only. Activation does not create service calls or appointments.
Generate Maintenance Visits
Generate visits only after the contract is Active. You can use Generate Appointments on one contract or Generate Visits from the Maintenance Contracts list for a date range.
-
Complete the following fields:
-
Start date (Required): Set the first service date the background job should evaluate.
-
End date (Required): Set the final service date. It must be the same day as or later than Start date; a same-day range is allowed.
-
-
Select Queue generation. Processing runs in the background, skips duplicate schedule-and-date visits, creates linked service calls and appointments, and applies the selected task template versions.
Post Billing and Revenue
Use the processing actions on the Maintenance Contracts list to queue eligible pending entries in a date range.
Complete the following fields:
-
Start date (Required): Set the first billing or recognition date to include.
-
End date (Required): Set the last date to include. It must be the same day as or later than Start date.
-
For billing, open Post Maintenance Billing and select Queue billing. Posted invoices use the contract Billing product or the Service Settings default, and the invoice PDF is archived as a contract note.
-
For Straight Line revenue, open Post Revenue Recognition and select Post revenue. Posting uses the configured Deferred Revenue and Earned Revenue accounts and the contract Division.
-
For Percent of Completion, open the contract Revenue Recognition tab after the generated service call is complete, select the eligible obligation, and choose Post Revenue.
Monitor the Active Contract
Open an Active, Suspended, Expired, or Closed contract to review its operational tabs. Use the gear beside the tabs to set your preferred order; the first six stay on the rail and the rest appear under More.
-
Summary shows live contract value, billing, cost, delivery compliance, visit schedule, and priority signals. Outstanding is scheduled billing past its bill date, not an accounts-receivable balance.
-
Appointments lists generated visits and their current status. Suspended, Expired, and Closed contracts do not generate new visits.
-
Billing shows pending, posted, or voided rows and provides access to archived invoice notes.
-
Revenue Recognition shows scheduled rows or Percent of Completion obligations and their posting state.
-
Notes stores internal contract notes and attachments. Notes are visible to authenticated users and are not customer-facing correspondence.
-
Use Update Status to change status separately. Save or discard unsaved Summary changes before opening the status dialog.
Operational Limits
-
Only Draft contracts can be edited. Existing visits keep the template version used when they were generated.
-
Visit generation is best effort. It uses location, skill level, Schedule Board hours, holidays, technician availability, and the configured split strategy.
-
The operational Summary does not calculate SLA compliance, penalties, accounts-receivable aging, renewal risk, or a contract health score.
-
Maintenance Contract records and settings are scoped to the active company and business unit.