Manage a maintenance plan

Turn an approved package quote into a recurring maintenance plan, then pause, edit, or cancel it as the work changes.

maintenance plans recurring packages billing subscriptions

A maintenance plan is recurring work for one customer — a lawn cut every month, a wash every quarter — that schedules its own jobs and bills on a repeating cycle. You build a plan from a package (a reusable service-and-pricing template) and an approved quote that uses that package, then manage its whole life: pause it, edit the schedule, or cancel it.

Before you start: sign in with an operator account that can manage quotes and jobs. You’ll need a maintenance package (this guide creates one) and an approved quote whose pricing uses that package — see create a quote and send & convert a quote.

  1. 1

    Create a maintenance package

    Go to Settings → Maintenance Packages and select New Package. In Create New Package, give it a Package Name and Service Description, set the Service Frequency to Recurring (or One-time), pick a Recurrence and Default Billing Method, then enter a Price and Duration. Select Save Package — a green Package created successfully message appears and the package joins the list with Edit, Archive, and Delete actions.

    Creating a recurring maintenance package.

    Creating a recurring maintenance package.

  2. Frequencies and billing methods

    A package’s options drive every plan built from it:

    • Service FrequencyOne-time, or Recurring with a Recurrence of Weekly, Bi-Weekly, Monthly, Quarterly, or Yearly (a Daily option appears in non-production environments only).
    • Default Billing Method depends on the frequency. One-time packages offer Invoice Per Visit and Send on Job Complete. Recurring packages offer Auto-Charge (Stripe), Scheduled Invoices (CleanOps), and Send on Job Complete.

    You can still adjust the billing behavior when you create the actual plan.

    Frequency and billing-method options on the package form.

    Frequency and billing-method options on the package form.

  3. 2

    Open the approved quote and start the plan

    Open the approved quote whose pricing uses your package. A Maintenance Package panel shows the package, and a Create Maintenance Plan button appears next to Re-send. (The button only shows when the quote is approved, carries a package, and doesn’t already have a plan.) Select Create Maintenance Plan.

    An approved package quote with the Create Maintenance Plan button.

    An approved package quote with the Create Maintenance Plan button.

  4. 3

    Fill in the plan details

    The Create Maintenance Plan form opens with a read-only Plan Overview (customer, frequency, billing method, package, price). Set the Schedule Settings — a Start Date and an End Condition (Never ends, End on date, or End after number of visits). Set the Billing Behavior — for a scheduled-invoice plan that’s the Invoice Delivery Timing (On job date, X days before service, or X days after service), the Auto-send invoices toggle, and the Invoice Due Date (Day Sent, 30 days, 60 days, 90 days, or Custom). Under First Job Setup, pick the First Job Date, Time, Duration, the Address, and an Assigned To technician, with optional Notes.

    The Create Maintenance Plan form: schedule, billing behavior, and first job.

    The Create Maintenance Plan form: schedule, billing behavior, and first job.

  5. 4

    Create the plan

    Select Create Plan. A green Maintenance plan created successfully message appears and the plan’s page opens. A non-auto-charge plan starts as Active right away and generates its first jobs on the schedule; the PLAN SUMMARY, UPCOMING ACTIVITY (Next Job, Next Billing), and BILLING BEHAVIOR cards summarize it, and the Jobs tab lists the scheduled visits.

    The new plan's page, active with its first jobs scheduled.

    The new plan's page, active with its first jobs scheduled.

  6. Track invoices for the plan

    Switch to the Invoices tab to see invoices the plan generates — each with an ID, Create Date, Due Date, Amount, Status, and Source (CleanOps or Stripe). On a scheduled-invoice plan, invoices are created automatically on each billing date (a background job runs hourly, so they can appear up to an hour after the date rolls over), so the list is empty until the first billing date arrives.

    The plan's Invoices tab.

    The plan's Invoices tab.

  7. The Actions menu

    Everything you do to an existing plan lives under the Actions menu in the top right of the plan page. Which items appear depends on the plan’s current status — Edit and Pause while active, Resume while paused, Cancel Plan while it’s still running, and Delete Plan once it’s canceled.

    The Actions menu on an active plan.

    The Actions menu on an active plan.

  8. 5

    Pause or resume a plan

    From Actions, select Pause to temporarily stop a plan — its status becomes Paused, future job and invoice generation stops, and a Plan paused. message confirms it. To restart, open Actions again and select Resume (a Plan resumed. message confirms, and the status returns to Active). Pausing isn’t offered on Auto-charge (Stripe) plans — those are managed through the Stripe subscription instead.

    A paused plan, with Resume available in the Actions menu.

    A paused plan, with Resume available in the Actions menu.

  9. 6

    Edit a plan

    From Actions, select Edit to open Edit Maintenance Plan. You can change the schedule, billing behavior, and first-job details, then select Save Changes. If a change shifts the schedule, the form shows a review of which upcoming jobs will be added, updated, or removed before you confirm.

    The Edit Maintenance Plan form.

    The Edit Maintenance Plan form.

  10. 7

    Cancel a plan

    From Actions, select Cancel Plan. A confirmation explains that this stops all future job generation and billing; add an optional Reason for cancellation, then select Cancel Plan to confirm (or Keep Plan to back out). A Plan cancelled. message confirms it.

    The Cancel Plan confirmation with an optional reason.

    The Cancel Plan confirmation with an optional reason.

  11. What a canceled plan looks like

    A canceled plan keeps its history but stops working: the status badge reads Cancelled, Next Job and Next Billing show , and a summary near the bottom records Canceled · [date] with the reason you gave. The plan’s past jobs and invoices stay on their tabs for reference.

    A canceled plan with its cancellation summary.

    A canceled plan with its cancellation summary.

  12. Delete a canceled plan

    Once a plan is Cancelled, the Actions menu offers a single Delete Plan option to remove it entirely. Deleting is permanent — cancel (don’t delete) if you want to keep the record.

    A canceled plan's Actions menu shows Delete Plan.

    A canceled plan's Actions menu shows Delete Plan.

  13. Auto-charge (Stripe) plans

    When the package’s billing method is Auto-Charge (Stripe), the Create Maintenance Plan form’s Billing Behavior changes: you get an Allow promo code checkbox and a Send subscription link to customer checkbox (“Customer will receive an email to add a payment method and activate plan”). An auto-charge plan starts as PendingWaiting for customer setup — until the customer opens that link and adds a card. Until then the plan page shows a Stripe subscription card with Resend and Copy buttons for the setup link. CleanOps doesn’t charge the card itself — Stripe collects each payment once the customer activates — so we don’t run that step in this guide.

    Auto-charge billing behavior in the Create Maintenance Plan form.

    Auto-charge billing behavior in the Create Maintenance Plan form.

  14. Backdating a plan for an existing customer

    Putting an existing customer onto a plan they’ve informally been on for a while? Set the Start Date (and First Job Date) in the past. The plan keeps the elapsed visits on the schedule for your records — they generate as jobs on their original dates — but the customer is not billed for those past months. Billing anchors to the next visit on or after today, so the only invoice that goes out is the upcoming one. You’ll see the past-dated visits on the Jobs tab while Next Billing lands on the upcoming visit, not the start date. There’s no separate “next invoice date” field — it’s always derived from the schedule, and it’s computed correctly for backdated starts. If a paused plan’s billing date is stuck in the past, Resume re-anchors it to that upcoming visit — a single catch-up invoice, not one per elapsed month.

    A backdated plan keeps past visits on the schedule but bills only the upcoming one.

    A backdated plan keeps past visits on the schedule but bills only the upcoming one.

  15. Plan statuses

    A plan moves through these statuses: Pending (an auto-charge plan waiting for the customer to set up payment), Active (running and generating jobs/invoices), Paused (temporarily stopped, resumable), Cancelled (stopped for good, deletable), and Expired (reached its end date or visit count). You drive the transitions with Pause, Resume, and Cancel Plan; Active → Expired happens automatically when an End on date or End after number of visits condition is met.

  16. Discounts on a plan

    A plan’s discount source can be none (the default, full package price each cycle), an automatic discount carried from the package or quote, or a promo code — enabled by the Allow promo code checkbox on Auto-charge (Stripe) plans. See create a promo code.

  17. Your maintenance plan is running

    You’ve turned an approved package quote into a live maintenance plan. It schedules its own recurring jobs, bills on the cycle you chose, and you can pause, edit, or cancel it any time from the Actions menu.

  18. Tips & related

    • Set the package up once in Settings → Maintenance Packages; every plan you build from it inherits its frequency, billing method, and price.
    • A plan only starts from an approved quote that used the package — set the quote’s status to Approved first.
    • Pause instead of cancel when a customer takes a short break — pausing keeps the plan so you can Resume it later.
    • Choose Cancel Plan (not Delete Plan) when you want to keep the history.
    • Related: create a quote, send & convert a quote, schedule a job, create & send an invoice.

Need more help? If you can't find what you're looking for in our documentation, create a support ticket and our team will assist you.