---
title: Enrolling Vehicles in a PM Program
description: "Put a vehicle on a maintenance schedule: enroll it in one or more PM programs, see each service's next-due date, and find vehicles that aren't on a program yet."
---

[Skip to content](https://support.metafleet.ai/enrolling-vehicles-in-a-pm-program#main-content)

English

Show submenu for translations

![AI-powered fleet repair software](https://support.metafleet.ai/hs-fs/hubfs/Transparent%20logo%20for%20dark%20background.png?width=350&height=54&name=Transparent%20logo%20for%20dark%20background.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Contact us](mailto:support@metafleet.ai)

[Contact us](mailto:support@metafleet.ai)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [MetaFleet Answer Hub](https://support.metafleet.ai/?hsLang=en)
2. [Dispatch & Scheduling](https://support.metafleet.ai/dispatch-scheduling?hsLang=en)
3. [Preventative Maintenance](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#preventative-maintenance)

# Enrolling Vehicles in a PM Program

## Enroll a vehicle in a PM program and MetaFleet tracks when its next service is due, then flags it before it goes overdue.

**For:** Admins and service managers · **Permission:** Access to Company Details › Vehicle Management. Read appointments or Manage appointments for Enrollment Opportunities. Manage account settings for **Email settings** · **Time:** ~4 minutes

### Quick summary

1. Open **Company Details › Vehicle Management** and click the vehicle.
2. Go to the **PM Programs** tab and click **+ Enroll in program**.
3. Pick a program and click **Enroll**. Repeat for every program the vehicle needs.
4. To find vehicles that aren't on a program yet, go to **Service › Appointment Requests** and click **Enrollment Opportunities**.

### Before you start

- At least one active PM program exists. See [Set Up Service Tasks and PM Programs](https://support.metafleet.ai/building-service-tasks-pm-programs?hsLang=en).
- The vehicle has its current mileage on file. The baseline for the schedule comes from it.

### Open the vehicle

In the left menu, click **Company Details › Vehicle Management**. Click the vehicle's row. Its header shows a **Next PM Due** card. It reads **Not enrolled in a PM program** until you enroll the vehicle.

### Enroll the vehicle in a program

1. **Open the tab.** Click **PM Programs**, then **+ Enroll in program**.
2. **Pick a program.** Each option shows its interval, for example **PM-A - Lube, Oil and Filter (Class 8) (every 3 mo or 25,000 mi)**. Only active programs the vehicle isn't already in are listed.
3. **Check the baseline.** A note under the list shows the baseline mileage. It's the vehicle's current mileage.
4. **Click Enroll.** A green banner confirms **Enrolled in** the program's name.

![PM Programs panel with a program picked and the baseline mileage note above the Enroll button](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-02-pick-program.png?width=943&height=280&name=enrolling-vehicles-in-a-pm-program-02-pick-program.png)

*Pick a program. The baseline mileage is the vehicle's current reading.*

The program now appears in the table with its **Enrolled at** mileage, **Last service**, **Next due** and **Status**.

![PM Programs table with one enrolled program, a next-due date and an OK status badge](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-03-enrolled.png?width=943&height=249&name=enrolling-vehicles-in-a-pm-program-03-enrolled.png)

> **Month programs are due by date.** For a program with a month cadence, **Next due** is a date counted from the day you enroll. A 3-month program enrolled on Oct 14, 2026 shows Jan 14, 2027. The mileage in its name is for reference. A mileage-only program is due by odometer instead: **Next due** shows miles, and the **Next PM Due** card shows —.

A month program turns **Due Soon** 30 days before its date. A mileage program turns **Due Soon** 500 miles before its due reading. When an appointment already covers a program, **Next due** shows the booked date with a **Booked** badge. See [Book a PM, Inspection or Repair Appointment](https://support.metafleet.ai/scheduling-a-pm-appointment?hsLang=en).

### Enroll in as many programs as you need

A vehicle can run several programs at once, such as an oil-and-filter program plus an annual inspection. Each program keeps its own **Next due** and **Status**. Click **+ Enroll in program** again to add the next one.

![PM Programs table listing two enrolled programs, each with its own next-due date and Unenroll button](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-04-two-programs.png?width=943&height=305&name=enrolling-vehicles-in-a-pm-program-04-two-programs.png)

The **Next PM Due** card at the top of the vehicle shows the soonest date across all its programs.

![Next PM Due card on the vehicle page showing Jan 14, 2027 and a See PM Programs link](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-01-next-pm-due.png?width=241&height=160&name=enrolling-vehicles-in-a-pm-program-01-next-pm-due.png)

### Remove a program

Click **Unenroll** at the end of that program's row. The program is removed from the vehicle right away, without a confirmation. The vehicle's other programs are not affected.

### Track PM status across the fleet

The Vehicles list under **Company Details › Vehicle Management** rolls up every vehicle's PM state, so you can spot what's coming due without opening each one. It has a **Next PM Due** column and a **PM Status** column. The **PM Health** filters are **Overdue**, **Due Soon**, **OK** and **Setup incomplete**.

![Vehicles list filtered to one unit, with the PM Health filters and its Next PM Due date and OK PM Status](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-05-vehicles-list.png?width=1118&height=353&name=enrolling-vehicles-in-a-pm-program-05-vehicles-list.png)

A vehicle with no program shows **Not enrolled** under **Next PM Due** and **No PM program** under **PM Status**.

> **Update mileage before you enroll.** The baseline is the vehicle's mileage at the moment you click **Enroll**. A stale reading gives a stale baseline.

### Find vehicles to enroll in Enrollment Opportunities

Go to **Service › Appointment Requests** and click **Enrollment Opportunities**. This view lists your customers' vehicles that aren't on any PM program, grouped by customer. Archived vehicles with no program show here too. The customers with the best prospects come first. Nothing is sent from here on its own. You pick the vehicles, check the email and send it yourself.

![Enrollment Opportunities view with 4 count cards and a customer card listing vehicles with their Hot or Warm fit](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-06-enrollment-opportunities.png?width=937&height=755&name=enrolling-vehicles-in-a-pm-program-06-enrollment-opportunities.png)

The cards at the top count **Un-enrolled vehicles**, how many customers they belong to (**Across customers**), **High-fit** vehicles (3 or more past visits) and **Hot opportunities**.

Each customer's card shows how many vehicles they have and how many are enrolled, the email address a nudge would go to, and **Last nudged** with a date if you've emailed them before. Under it, each vehicle row shows:

- **Unit / Make · Model**
- **Last serviced**: when its last visit was opened, with the order number or PM program, or **No service on file**.
- **Last known usage**: its latest mileage or engine hours.
- **Past visits**: service orders that got as far as a technician being assigned, plus completed PM services, in the last 24 months. Cancelled orders don't count.
- **Asset type**
- **Fit**: **Hot**, **Warm** or **Cold**. Hover over it to see the score out of 100.

The Fit score looks at how far the vehicle has run since its last service compared with a usual PM interval, how often it's been in over the last 24 months, and how long ago its last visit was. A last visit 3 to 9 months ago scores highest.

Use the search box to find a customer, unit number or make. When every vehicle is on a program, the view says **You're all caught up**.

### Email a customer an enrollment nudge

A nudge is one email to one customer about the vehicles you pick. It invites them to call you to set up a maintenance program. Sending it doesn't enroll anything. When the customer says yes, enroll each vehicle from its **PM Programs** tab as shown above.

1. **Pick the vehicles.** Tick the vehicles on one customer's card, or click **Select all** (it shows the count). A nudge goes to one customer, so ticking a vehicle at another customer clears your first picks.
2. **Open the email.** Click **Compose nudge** on the card, or **Compose nudge & review** in the bar at the bottom. The window names the address it's **Sending to**.
3. **Check the words.** **Subject** and **Message** come filled in. Change them as you like. The selected vehicles and a "Call us" invitation are added for you. The phone number comes from your brand or company profile, so make sure one is set.
4. **Add an offer if you want one.** Tap one of the offers under **Offer**, such as **Free DOT inspection**, or type your own.
5. **Preview and send.** Click **Preview** to see the exact email the customer gets. Then click **Send nudge**. A message confirms **Nudge sent** with the address and the number of vehicles.

![Compose enrollment nudge window for 3 vehicles with the subject, message, Free DOT inspection offer and Send nudge button](https://support.metafleet.ai/hs-fs/hubfs/knowledge-base/oct-2026/enrolling-vehicles-in-a-pm-program-07-compose-nudge.png?width=520&height=900&name=enrolling-vehicles-in-a-pm-program-07-compose-nudge.png)

The email goes to one contact at the customer: the **Owner** contact who has an email address. If there isn't one, it goes to a **Manager**, then **Operations**. Disabled contacts are skipped. Contacts who are only **Financial** or **Driver** never get nudges. If the customer has no such contact, or that contact's email updates are off, the card is greyed out and says **Excluded from sends**.

If you emailed the same customer in the last 14 days, the window asks you to **send again?** before you do. You can still send.

> **The unsubscribe link turns off that contact's email updates.** Every nudge has one. A contact who uses it stops getting nudges, service reminders, appointment emails, chat emails and late fee notices. Order status emails and invoices still arrive. Their card then shows **Opted out of email**.

**Set the default wording (admins).** Users who can manage account settings see **Email settings** above the list. There you can save your **Offer presets**, a **Default subject**, a **Default message** and a **Sign-off**. Type `{company}` or `{count}` to fill in the customer's name or the number of vehicles. A blank sign-off shows "The \[your shop\] team". Changes apply to nudges you send after saving.

### Troubleshooting

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| PM Status shows "No PM program" | The vehicle isn't enrolled in any program | Enroll it from its **PM Programs** tab. |
| PM Programs tab shows "Setup incomplete" and no **+ Enroll in program** button | The vehicle has no current mileage, so there is no baseline | Update the mileage in the vehicle details above, then enroll. |
| PM Status shows "Setup incomplete" on the Vehicles list | The vehicle is enrolled but has no mileage baseline | Open the vehicle and update its mileage. |
| **Next due** in miles looks wrong | The vehicle's mileage is out of date | Update the vehicle's mileage. Mileage-only programs are measured against it. |
| The picker says there are no PM programs | No PM program has been created yet | Build one first under PM & Inspections. See [Set Up Service Tasks and PM Programs](https://support.metafleet.ai/building-service-tasks-pm-programs?hsLang=en). |
| The picker says the vehicle is already in every active program | Programs the vehicle is in are hidden from the list | Create or activate another program, or use **Unenroll** on one you no longer need. |
| The **Next PM Due** card still says "Not enrolled" | The card doesn't refresh until the page reloads | Reload the page. The PM Programs table is correct right away. |
| A customer's card is greyed out and says **Excluded from sends** | **No customer email on file**: no Owner, Manager or Operations contact has an email. **Opted out of email**: the contact's email updates are off. They unsubscribed, turned them off in My Account, or they were never turned on. | Add an email address to the right contact. If the contact never unsubscribed, tick **Email Updates** on their record. Otherwise ask them to turn **Email updates** back on in My Account on the customer portal. See [Manage Your Customer Portal Account](https://support.metafleet.ai/manage-your-customer-portal-account?hsLang=en). |
| **Compose nudge** is greyed out | No vehicle on that card is ticked | Tick at least one vehicle, or click **Select all**. |
| **Nudge not sent** with "A nudge was just sent to this company moments ago." | Someone sent this customer a nudge less than a minute ago | Nothing to do. The first email went out. |
| No **Email settings** button | Your role can't manage account settings | Ask an admin to set the default wording. |

### FAQs

**Can a vehicle be in more than one program?**  
Yes. Enroll it in as many as apply. Each runs its own schedule.

**What is baseline mileage?**  
The vehicle's mileage when you enroll. The **Enrolled at** column shows it.

**How do I stop tracking a program for a vehicle?**  
Click **Unenroll** next to that program on the vehicle's **PM Programs** tab.

**Does sending an enrollment nudge enroll the vehicles?**  
No. It only emails the customer. Enroll each vehicle from its **PM Programs** tab when they agree.

**Can my customers enroll their own vehicles?**  
No. Customers can see how close each program is to its next service on their vehicle page, but enrolling and unenrolling stays with your shop.

### Related articles

- [Set Up Service Tasks and PM Programs](https://support.metafleet.ai/building-service-tasks-pm-programs?hsLang=en)
- [PM-Due Notifications & Reminders](https://support.metafleet.ai/pm-due-notifications-reminders?hsLang=en)
- [Book a PM, Inspection or Repair Appointment](https://support.metafleet.ai/scheduling-a-pm-appointment?hsLang=en)
- [Complete PM Work](https://support.metafleet.ai/complete-pm-work?hsLang=en)

- [Start Here](https://support.metafleet.ai/start-here?hsLang=en)
- [Companies & Contacts](https://support.metafleet.ai/companies-contacts?hsLang=en#main-content)

    - [Create/Edit Companies](https://support.metafleet.ai/companies-contacts?hsLang=en#create-edit-companies)
    - [Contacts](https://support.metafleet.ai/companies-contacts?hsLang=en#contacts)
    - [Vehicles](https://support.metafleet.ai/companies-contacts?hsLang=en#vehicles)
- [Work Intake (Requests & Service Orders)](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#main-content)

    - [Creating Service Orders](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#creating-service-orders)
    - [Customer & Partner Requests](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#customer-partner-requests)
    - [Reference](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#reference)
    - [Customer Portal](https://support.metafleet.ai/work-intake-requests-service-orders?hsLang=en#customer-portal)
- [Estimates & Approvals](https://support.metafleet.ai/estimates-approvals?hsLang=en#main-content)

    - [Approval Gates](https://support.metafleet.ai/estimates-approvals?hsLang=en#approval-gates)
    - [Estimates](https://support.metafleet.ai/estimates-approvals?hsLang=en#estimates)
    - [Invoices](https://support.metafleet.ai/estimates-approvals?hsLang=en#invoices)
    - [Billing](https://support.metafleet.ai/estimates-approvals?hsLang=en#billing)
- [Parts, Inventory & Vendors](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#main-content)

    - [Add Parts & Kits](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#add-parts-kits)
    - [Stock & Counts](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#stock-counts)
    - [Locations & Bins](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#locations-bins)
    - [Purchase Orders](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#purchase-orders)
    - [Parts Catalog](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#parts-catalog)
    - [Vendors & Manufacturers](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#vendors-manufacturers)
    - [Pricing](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#pricing)
    - [Service Vehicles](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#service-vehicles)
    - [Sourcing & Hand-Off](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#sourcing-hand-off)
    - [Part Numbers](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#part-numbers)
    - [Notifications](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#notifications)
    - [Reports](https://support.metafleet.ai/parts-inventory-vendors?hsLang=en#reports)
- [Invoicing & Payments](https://support.metafleet.ai/invoicing-payments?hsLang=en)
- [Dispatch & Scheduling](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#main-content)

    - [Preventative Maintenance](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#preventative-maintenance)
    - [Technician Assignment](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#technician-assignment)
    - [Scheduling & Calendar](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#scheduling-calendar)
    - [Technician Schedule](https://support.metafleet.ai/dispatch-scheduling?hsLang=en#technician-schedule)
- [Technicians & Mobile App](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#main-content)

    - [Time Tracking](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#time-tracking)
    - [Tech Workflow](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#tech-workflow)
    - [Evidence & Photos](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#evidence-photos)
    - [AI Assistant](https://support.metafleet.ai/technicians-mobile-app?hsLang=en#ai-assistant)
- [Alerts, Alarms & Notifications](https://support.metafleet.ai/alerts-alarms-notifications?hsLang=en#main-content)

    - [Email/SMS/App Settings](https://support.metafleet.ai/alerts-alarms-notifications?hsLang=en#email-sms-app-settings)
- [Reporting & Dashboards](https://support.metafleet.ai/reporting-dashboards?hsLang=en)
- [Admin & Settings](https://support.metafleet.ai/admin-settings?hsLang=en#main-content)

    - [Rates & Fees](https://support.metafleet.ai/admin-settings?hsLang=en#rates-fees)
    - [Branding](https://support.metafleet.ai/admin-settings?hsLang=en#branding)
    - [Roles, Permissions & Users](https://support.metafleet.ai/admin-settings?hsLang=en#roles-permissions-users)
    - [Service Areas](https://support.metafleet.ai/admin-settings?hsLang=en#service-areas)
    - [Workflows](https://support.metafleet.ai/admin-settings?hsLang=en#workflows)
    - [Taxes](https://support.metafleet.ai/admin-settings?hsLang=en#taxes)
    - [Integrations](https://support.metafleet.ai/admin-settings?hsLang=en#integrations)
- [Integrations](https://support.metafleet.ai/integrations?hsLang=en#main-content)

    - [Phone Setup](https://support.metafleet.ai/integrations?hsLang=en#phone-setup)
    - [AI Assistant Access](https://support.metafleet.ai/integrations?hsLang=en#ai-assistant-access)
    - [QuickBooks](https://support.metafleet.ai/integrations?hsLang=en#quickbooks)
- [Getting Around](https://support.metafleet.ai/getting-around?hsLang=en#main-content)

    - [Search & Command Bar](https://support.metafleet.ai/getting-around?hsLang=en#search-command-bar)

[![AI-powered fleet repair software](https://support.metafleet.ai/hs-fs/hubfs/Transparent%20logo%20for%20dark%20background.png?width=350&height=54&name=Transparent%20logo%20for%20dark%20background.png "AI-powered fleet repair software")](http://www.metafleet.ai)

<https://www.facebook.com/> <https://www.instagram.com/> [mailto:support@metafleet.ai](mailto:support@metafleet.ai)

Copyright © 2025, MetaFleet, Inc