An item maintenance schedule defines a service interval for an item, such as "service every 180 days". Its detail rows list the assets that follow it and when each one is next due. A service campaign reads those detail rows each day and raises a reminder lead for every asset whose service is coming up. You set up the schedule once per item or SKU. You keep one detail row per asset up to date. The campaign's Maintenance Schedule button then turns due dates into leads that your service team follows up.
Overview
The schedule has two parts:
- The schedule record describes the interval. It holds the Item (and optionally the Item SKU) it applies to, the usage and age range it covers, when the service falls due, and up to five reminder offsets.
- Detail rows (Item Maintenance Schedule Detail) tie the schedule to individual assets. Each row has an Asset, its Item, the Last Service Date, and a calculated Next Service Date.
Only part of the schedule drives behaviour today. Due In Days feeds the next service date on every detail row, and the campaign reads the detail rows. The other interval fields (usage readings, usage hours, duration windows, sequence and the schedule's own five reminder offsets) are stored for reference. No xMatix process reads them. Reminder timing comes from the campaign's three Reminder Days Offset fields, not from the schedule.
When to use it
| You want to… | Do this |
|---|---|
| Remind customers when an asset's periodic service falls due | Create a schedule with Due In Days, add a detail row per asset, and link the schedule to an active campaign |
| Record a service interval programme for an item (usage, hours, age bands) | Create one schedule per interval and fill the range fields. They are kept for reference |
| Restart an asset's interval after it has been serviced | Update Last Service Date on its detail row |
| Stop reminders for an asset | Delete its detail row, or clear its dates |
How xMatix handles it
- Schedule. You create the schedule. xMatix names it automatically with a running number (see Business rules).
- Detail rows. You add one row per asset. When a row is saved, xMatix calculates its Next Service Date. It takes Last Service Date, or the asset's Sale Date when the row has no last service date, and adds the schedule's Due In Days. If the schedule has no Due In Days, or neither date is available, Next Service Date stays empty and the asset never gets a reminder.
- Campaign. A campaign's Item Maintenance Schedule field points at the schedule. When someone runs the campaign's Maintenance Schedule button, xMatix takes the schedule's detail rows whose Next Service Date falls between today and today plus the campaign's largest Reminder Days Offset. For each row whose date is exactly today plus one of the offsets, it creates a lead with status New and Lead Source Maintenance Schedule. The lead carries the schedule, the asset, the asset's account, the Lead Due Date and the Reminder Offset Number (1, 2 or 3). The full rules are in Running campaigns.
- Lead. The service team works the lead like any other service lead.
The campaign only runs while it is active and inside its start and end dates. Detail rows without an asset are skipped.
Prerequisites
- The item (and SKU, if you use one) exists.
- For reminders: each asset you want reminded about exists, and has either a Sale Date or a known last service date. The asset's Sale Date is filled in when the sale invoice for it is posted to inventory.
- For reminders: an active campaign with Reminder Days Offset values. See Running campaigns.
- Access to Item Maintenance Schedules. In the shipped navigation they are in the Service Settings App, under Service Catalog. Your administrator may have placed them elsewhere.
Procedure
Step 1 — Open the schedule list
Open the Service Settings App and choose Item Maintenance Schedules under Service Catalog. The All Item Maintenance Schedule list shows Name, Item, Item SKU, From Usage Reading, To Usage Reading, Number Of Reminder and the created and modified stamps, oldest first.
Step 2 — Create the schedule
- Select New.
- Choose the Item. Optionally choose an Item SKU to make the schedule specific to one variant.
- On the Usage Range tab, optionally fill From Usage Reading, To Usage Reading, From Usage Hours, To Usage Hours, From Duration (Days) and To Duration (Days) to record which units this interval covers.
- On the Ongoing Usage Schedule tab, fill Due In Days: the number of days after the last service (or sale) when the next service falls due. Due In Usage (Hours) and DueOnUsage are optional reference values.
- On the Reminder tab, the 1st to 5th Reminder Day Offset fields are optional reference values. Campaigns do not use them.
- Save.
xMatix gives the record its number, for example PMS26102026000001. The record page opens with two tabs: Related and Details. Details groups the fields under Information, Usage Range, Ongoing Usage Schedule, Reminder and System Information.
Step 3 — Add a detail row for each asset
Detail rows have no entry in the shipped navigation. Open Item Maintenance Schedule Details from All Entities in the App Launcher (or ask your administrator to add it to an app), then:
- Select New.
- Choose the Item Maintenance Schedule, the Asset and the Item.
- Fill Last Service Date if the asset has been serviced before. Leave it empty to count from the asset's Sale Date.
- Save.
The row page shows Asset, Item, Last Service Date and the calculated Next Service Date. If Next Service Date is empty, see Common problems.
Add only one row per asset for each schedule. A second row for the same asset and schedule is refused, because it would make the campaign raise duplicate reminders.
Step 4 — Link the schedule to a campaign
Open the campaign, choose this schedule in its Item Maintenance Schedule field, set its Reminder Days Offset values and make sure it is active. See Running campaigns.
Step 5 — Raise reminders every day
On the campaign, select Maintenance Schedule. Leads appear for every asset whose Next Service Date is exactly today plus an offset. Run it daily, because a due date that lands on an offset only matches on that one day. Running it twice in a day does not create duplicates.
Step 6 — Record a completed service
When an asset has been serviced, open its detail row, set Last Service Date to the service date and save. Next Service Date moves forward by Due In Days. xMatix does not update the detail row for you when a service order is completed. Someone has to update it.
Step 7 — Change or delete a schedule
Open the schedule and select Edit or Delete in the page header. Once the schedule's item has stock movements, Due In Days can no longer be changed and the schedule can no longer be deleted (see Business rules).
Fields
Schedule
| Field | What it means | Notes |
|---|---|---|
| Name | The schedule's number | Set automatically on save (series PMS, the date, and a six-digit number) |
| Item | The item the interval applies to | Optional on the form, but the edit and delete locks only apply when it is set |
| Item SKU | Narrows the schedule to one SKU of the item | Optional |
| From Usage Reading, To Usage Reading | The meter-reading band this interval covers | Reference only. To Usage Reading must be greater than From Usage Reading when both are filled |
| From Usage Hours, To Usage Hours | The running-hours band this interval covers | Reference only |
| From Duration (Days), To Duration (Days) | The age band, in days, this interval covers | Reference only |
| Due In Usage (Hours) | Running hours after which the service falls due | Reference only |
| DueOnUsage | Meter reading at which the service falls due | Reference only |
| Due In Days | Days after the last service (or sale) when the service falls due | Drives Next Service Date on every detail row. Locked once the item has stock movements |
| 1st–5th Reminder Day Offset | Reminder offsets recorded on the schedule | Reference only. Campaigns use their own Reminder Days Offset fields |
| Number Of Reminder | How many reminder offsets are in use | Defaults to 0. Reference only. Not on the form; shown in the list |
| Sequence | Position of this interval in the item's programme | Reference only. Not on the shipped form |
| External | An identifier from another system | For imports. Not on the shipped form |
Detail row
| Field | What it means | Notes |
|---|---|---|
| Item Maintenance Schedule | The schedule this asset follows | One row per asset per schedule |
| Asset | The asset to remind about | A row without an asset never raises a reminder |
| Item | The asset's item | For reference |
| Last Service Date | When the asset was last serviced under this schedule | Fill it by hand. Not copied from the asset or from service orders |
| Next Service Date | When the asset is next due | Calculated on save: Last Service Date (or the asset's Sale Date) plus Due In Days. Read-only |
Business rules
- Numbering. A new schedule is named from the Item Maintenance Name Settings document-name setting. Series PMS, then the date in DDMMYYYY, then a six-digit running number, with no separator. A new detail row is named from Item Maintenance Schedule Detail Settings: IMSD-DDMMYYYY-NNNNNN. Both use the day the record is created.
- Usage reading range. When To Usage Reading is not greater than From Usage Reading, the save is refused with "To Usage reading cannot be less than zero." The message is misleading. It means the To value must be above the From value.
- Due In Days lock. If the schedule's Item has any stock movement, changing Due In Days is refused with "The field DueInDays is locked and not editable as transactions have been made against this record." Other fields stay editable.
- Delete lock. If the schedule's Item has any stock movement, deleting the schedule is refused with "There are downstream transactions. The record cannot be deleted." A schedule without an item has neither lock.
- Next service date. It is calculated when the detail row itself is saved. Changing the schedule's Due In Days or the asset's Sale Date does not update existing rows. Open and save each row to recalculate it.
- One row per asset. A second detail row for the same asset and schedule is refused.
- Reminders. They come only from detail rows, through a campaign. The schedule's own reminder offsets, usage and duration fields are not read by any process.
Example
A dealer services its Trail 150 motorcycles every 180 days.
- The service administrator creates a schedule for the item Trail 150 with Due In Days 180. xMatix names it PMS02012026000001.
- A customer bought a Trail 150 on 1 January 2026. Its sale invoice was posted, so the asset's Sale Date is 1 January 2026. The administrator adds a detail row for that asset with no Last Service Date. Next Service Date shows 30 June 2026.
- The campaign Periodic service 2026 is active all year, uses this schedule, and has Reminder Days Offset 1 = 15 and 2 = 3.
- On 15 June 2026 the service coordinator runs Maintenance Schedule. One lead is created for the asset, with Lead Due Date 30 June 2026 and Reminder Offset Number 1. On 27 June a second lead is created, with offset number 2.
- The motorcycle is serviced on 29 June 2026. The coordinator sets Last Service Date to 29 June on the detail row. Next Service Date becomes 26 December 2026.
Training
Practice exercise
In a sandbox:
- Create a schedule for any item with Due In Days 30.
- Add a detail row for an asset of that item, with Last Service Date set to 20 days ago.
- Create or open an active campaign. Choose your schedule in Item Maintenance Schedule and set Reminder Days Offset 1 to 10.
- Run Maintenance Schedule on the campaign.
Expected result: Next Service Date on the detail row is 10 days from today. One new lead exists with Lead Source Maintenance Schedule, status New, Lead Due Date equal to that date and Reminder Offset Number 1. Running the button again creates no second lead.
Quick reference
- Schedules are in Service Settings App → Service Catalog → Item Maintenance Schedules.
- Only Due In Days drives reminders. The other interval fields are for reference.
- Next due = Last Service Date (or the asset's Sale Date) + Due In Days.
- One detail row per asset per schedule. Update Last Service Date after each service.
- Reminder timing comes from the campaign's Reminder Days Offset 1–3.
- Run the campaign's Maintenance Schedule button every day.
- After an item's first stock movement, Due In Days is locked and the schedule can't be deleted.
Permissions
- Data access. The shipped Sales, Sales Executive, Sales Manager, Service, Standard User and System Admin security profiles have full access to schedules.
- Buttons. New is granted to Sales Manager, Standard User and System Admin. Edit and Delete are granted to Sales Executive, Sales Manager, Standard User and System Admin. Clone is granted to Sales Executive, Standard User and System Admin, but it is not on the shipped page.
- Without them. A user without the button grant does not see that button. A user whose profile has no access to the entity does not see the schedule at all. The general diagnosis path is the user-can't-see-X guide.
- Running reminders needs the campaign's Maintenance Schedule button. See Running campaigns.
Configuration
- Navigation. Item Maintenance Schedules ship in the Service Settings App under Service Catalog. Item Maintenance Schedule Details are in no app. Add them to an app's navigation in Design Studio if your team maintains detail rows often.
- Numbering. Change the series, date format or number length in the Item Maintenance Name Settings and Item Maintenance Schedule Detail Settings document-name settings. See Document numbering. The running number restarts every day because the date is part of the name.
- Forms. The shipped schedule form (Item Maintenance Create) and record page (Item Maintenance View) can be changed in Design Studio. Sequence, Number Of Reminder and External are not on them. Add them if you use them.
- Validation. The To Usage Reading Validation rule can be switched off, or its message corrected, in the entity's validations under Setup → Metadata.
- Campaign link. The reminder offsets, active flag and dates are set on the campaign. See Running campaigns.
- Keeping rows current. Nothing creates or updates detail rows automatically. For a large fleet, import them, and plan a routine to update Last Service Date after each service.
Common problems
Next Service Date is empty
The schedule has no Due In Days, or the row has no Last Service Date and its asset has no Sale Date. Fill the missing value and save the detail row again.
Next Service Date did not change after I edited the schedule
The date is calculated only when the detail row is saved. Open each detail row and save it.
Maintenance Schedule created no leads
Check, in order: the campaign is active and inside its dates; its Item Maintenance Schedule is this schedule; it has at least one Reminder Days Offset; the detail row has an Asset and a Next Service Date; and that date is exactly today plus one offset. A date on another day gets its reminder on the matching day.
"The field DueInDays is locked and not editable as transactions have been made against this record."
The schedule's item already has stock movements. Create a new schedule with the new interval, point the detail rows and the campaign at it, and stop using the old one.
"There are downstream transactions. The record cannot be deleted."
Same cause: the item has stock movements. Keep the schedule, or remove its detail rows and unlink it from campaigns so it no longer raises reminders.
"To Usage reading cannot be less than zero."
To Usage Reading is not greater than From Usage Reading. Raise To Usage Reading or clear one of the two.
Common questions
Do the five reminder offsets on the schedule control when reminders go out?
No. The campaign that uses the schedule decides that, through its own Reminder Days Offset 1, 2 and 3. A lead is raised when an asset's Next Service Date is exactly today plus one of the campaign's offsets. The five offsets on the schedule, and Number Of Reminder, are stored for your reference only.
Can I schedule by kilometres or running hours?
You can record usage-based intervals in DueOnUsage, Due In Usage (Hours) and the from/to usage fields, but xMatix does not act on them. Reminders are date-based only. They use Due In Days from the last service or sale date.
Does completing a service order update the schedule?
No. Nothing writes Last Service Date on a detail row automatically. After an asset is serviced, update its detail row so the next due date moves forward.
Why does the reminder lead show the campaign's schedule?
The lead takes the Item Maintenance Schedule from the campaign that raised it. Since the campaign only reads its own schedule's detail rows, this is the same schedule the asset's row belongs to.
