Back to index What changed, and why you should care The old Save as Template was a small inline form with a name field. It had two serious problems: It could silently overwrite an existing template....
Last updated
The old Save as Template was a small inline form with a name field. It had two serious problems:
Both are fixed. The new Save as Template is a proper, governed flow, and there is no overwrite path at all anymore. It cannot be done. There is no button for it.
Open any expense, use the overflow (three dots) action menu, and choose Save as Template.
A modal opens, titled Save as Template, with the subtitle:
Everything below is captured from this expense. You only need to name it.
That subtitle is literally true. Everything is prefilled. The only thing you have to do is confirm the name.
Prefilled from the vendor (or the description, if there is no vendor). The helper says:
Must be unique for this property. Duplicate names are flagged inline here.
That is a promise, and the next section is how it is kept.
A read-only summary of exactly what is being captured off this expense:
| Vendor | The vendor on the expense. |
| Amount | The amount, plus the tax if there is any: "$650.00 + $84.50 tax". |
| Expense type | Vendor bill, or Quick expense. |
| GL account | The expense's GL account. |
Below that, if the expense has line items, you get a section headed:
Line items · each keeps its own GL account
Every line item is on its own row, with its description, quantity, and amount, and its own GL account selector. The selector is prefilled with the line's current GL account, and you can change it here before saving.
This matters: a four-line expense that hits four different GL accounts saves as a template that still hits four different GL accounts. That was the whole bug in the old version.
A panel that tells you, honestly, what is not copied to the template. These are per-expense things and they never live on a template:
These are per-expense features and never live on a template.
This exists so you do not save a template and then wonder why the reimbursement did not carry over. It never will.
Off by default. Turn it on and the full contract editor expands inline, right there in the modal. Same fields, same rules, same everything as the standalone contract editor: frequency, interval, day, contract type, term, generation mode, the bypass toggle for VARIABLE, and the five-fact cadence strip with the committed total.
The sub-label says why the toggle exists:
Create the schedule now instead of finding the template in Property Settings later.
It is a shortcut, nothing more. It creates the same contract you would create the long way.
Cancel, and a submit button whose label swaps depending on the toggle:
Nothing is overwritten. This is the point.
If a template with that name already exists on this property, the save is rejected, and:
The name field turns red with an inline error:
A template with this name already exists on this property.
A panel appears with the two things you can actually do:
A template named "Elevator Maintenance" already exists
Saving will not overwrite it. Open the existing template to update it directly, or rename this one to save it as a new template.
[ Open existing template ] [ Rename ]
There is no third button. There is no "overwrite anyway". There is no keyboard shortcut. The path does not exist.
If you genuinely want to change what that template contains, open it and change it there, where the governance applies: changing the amount on a FIXED contract's template is an amendment and re-runs approval.
You cannot stack two live contracts on the same template. If you turn the contract toggle on and the template you are creating collides with one that already has a contract, you get the blocked state inside the contract section:
Only one active schedule is allowed per template. Deactivate the existing schedule before starting a new one.
with an Open existing contract link.
Why this rule exists: the approval, the expiry, the amendment, and the committed-total logic all assume there is exactly one live contract on a template. Two contracts on one template means two competing approvals, two competing expiry clocks, and no honest answer to "what have we committed to?" So it is enforced.
A Template saved confirmation. It tells you what was created: the name, how many line items, and whether a recurring contract was created alongside it.
If the template saved but the optional contract could not be created, you see this, as a success, not an error:
Template saved; contract not created
with the reason, an Open existing contract link if the reason was that one already exists, and a Done button.
The important thing: the template is real and it is saved. You did not lose it. You just do not have a contract on it yet. Go add one from Property Settings when you are ready.
If the save takes unusually long, you see:
Still saving
This save is taking longer than usual and is still running in the background. The template is not confirmed yet, so nothing has been reported as saved. Close this and re-open the template list in a moment to see the result. If a template with this name already exists, the save is rejected and nothing is overwritten.
with a Close and refresh button.
This is honest rather than optimistic. The system does not tell you "saved!" when it does not actually know yet. Close it, wait a moment, and check the template list.
Staff and property managers with permission to manage expenses.
Board members cannot create a contract this way. The contract half of this flow is blocked for a board-role user, exactly as it is on the standalone contract editor, where board members see:
Read-only Board members can view recurring schedules but cannot create or edit them.
Board members vote on contracts. They do not author them.
The creation of the template and the back-link from the source expense to it are recorded. If a contract was created in the same save, its creation and its first approval are recorded, along with a board-voting bypass if you enabled one at creation. A rejected duplicate-name save creates nothing, so there is nothing to record: the important part is that it also changes nothing.