Loading article…
Loading article…
Last updated on Sep 13, 2026
Most of Maxio Core assumes a contract is fully known when it is booked: the dates, the amounts, the schedule. Services and implementation work rarely cooperates. A go-live slips, hours get consumed unevenly, a fixed fee is earned as work is done, and a subscription should not start billing until onboarding is finished. Projects is the Maxio Core add-on for exactly that gap: it lets real-world events — a milestone you mark complete — decide when revenue is recognized, when invoices go out, and when a subscription begins. This article explains what that lets you do, with a worked engagement, and points to the setup articles for the mechanics.
A Project is a group of transactions plus a list of Milestones, each named for a real event: Contract Signed, UAT Sign-off, Go-Live, Actual Usage Confirmed. Each milestone carries one or more Triggered Actions — things to do to the project's transactions, revenue, invoices, or performance obligations when the milestone is marked complete. Completing a milestone means entering a single completion date; that date becomes the Trigger Date every action keys off, and it is the only manual step in the workflow. You build the transactions up front with amounts you know and leave the parts you do not know — dates, schedules, invoices — to be filled in as milestones complete.
Projects are created from Project Templates, so a recurring engagement shape is defined once. Because Projects is an add-on, it must be enabled for your account; see Understand Projects for the scenarios it fits and Set Up Project Templates for how milestones and triggered actions are defined.
Take a $60,000 implementation sold as 40% on signing, 40% at UAT sign-off, and 20% at go-live, with revenue recognized as each stage is delivered. Model it as one non-recurring transaction for $60,000 and a template with three milestones. Signing carries two triggered actions scoped to the implementation item: invoice 40% on the trigger date, and recognize 40% of the transaction amount on the trigger date. UAT Sign-off carries the same pair. Go-Live carries Invoice Remaining and Recognize Balance instead of a percentage.
Mark Signing complete on the day the contract is signed and Maxio creates a $24,000 invoice line and a $24,000 revenue entry dated that day. Mark UAT complete three months later — whenever it actually happens — and the second $24,000 of each follows. Mark Go-Live complete and the balance actions invoice and recognize exactly whatever is left, $12,000 here. Using balance actions for the final milestone is deliberate: if UAT had been renegotiated to 35% and you overrode the parameter at completion, the close would still land on precisely $60,000 with nothing to reconcile. The Project view tracks revenue and invoicing percent complete rising from 40 to 80 to 100 as you go.
Invoice actions can also fire on the order date or one to twelve months after the trigger date, so "bill the go-live fee three months after go-live" or "bill the second tranche six months after kickoff" is a single trigger rather than a calendar reminder. The offset controls when the invoice is created; how long the customer then has to pay it is still set by the invoice's payment terms.
Fixed-fee work earned over time needs a different shape. The from Transaction Start to End revenue actions add an amortized slice of revenue across the transaction's term each time a milestone completes, using the item's recognition method, without disturbing what earlier milestones recognized. A monthly "percent complete confirmed" milestone whose parameter you set at completion — 15% this month, 22% the next — builds a percentage-of-completion schedule one period at a time, and a final balance action absorbs the rounding.
Prepaid hours consumed on demand use the quantity actions: recognize and invoice a portion of the transaction based on a quantity you enter at completion. Combined with the Run and Clone disposition, which fires the action and creates a fresh copy of the milestone with a new due date, a template with a single "Usage Confirmed" milestone can be completed month after month until the hours are gone, and the project closes itself on the last one. See the worked usage example in Manage Project Details and Milestones.
The most common reason a subscription contract is not fully known at signing is that nobody knows when it will go live. Projects handles both halves of that. On the Maxio Core side, a transaction action can move a recurring transaction's start date to the milestone completion date, with the end date derived from the item's default duration, the transaction's own duration, a duration you enter, a specific date, or a matching performance obligation — so the twelve-month term, its revenue schedule, and its invoices all begin on the day the customer actually went live, with revenue and ARR untouched until then.
If you sell through Advanced Billing with Sales Order processing, a Project can also own the resulting subscription, and a Subscription-type triggered action activates it: a completion date of today activates immediately, a future completion date schedules the activation for that day. Onboarding teams can even complete the milestone from Salesforce. See Use Maxio Projects for Salesforce.
Two features turn this from a per-deal setup into a repeatable process. Project Templates hold the milestone list with due dates as offsets from the project start, so every new implementation project arrives with the same milestones, the same triggered actions, and a due-date reminder that flags overdue milestones on the Projects list. A milestone flagged Complete at Project Creation fires the moment the project is saved — the natural home for "clear the generated revenue and invoices, we will build them as we go."
Dispositions give you control at the moment of completion without editing the template: Run fires the action as configured, Run and Clone fires it and queues another round, Defer pushes it to a new milestone with a new due date, and Skip drops it. Parameters can be adjusted at the same moment, and every action shows the transaction's recorded and remaining amounts before it fires. Once a milestone is complete it is locked — the date cannot change and the actions cannot re-run — which is what makes the resulting revenue and invoicing history defensible in an audit.
For the full list of milestone and triggered-action fields, see Set Up Project Templates; for completing milestones, dispositions, and parameter overrides, see Manage Project Details and Milestones; and for building the transactions a project acts on, see Create a Project.
Projects decide when revenue is recognized; the recognition method decides how it spreads. See Choose the Right Revenue Recognition Method.
Still need help?
Reach out and our support team will take it from here.