π Enhancements
CMMS
Vendor NTE Bulk Edit on Assignments
Facility managers can now update Vendor NTE amounts across multiple assignments at once directly from a saved list in the Assignments grid, eliminating the need to export, edit, and re-import for routine NTE changes.
What's New:
Vendor NTE is available as a field in the Assignments grid mass manage flow
Applies the entered amount to all selected assignments, creating a new NTE record where one doesn't exist
Users without NTE update permissions cannot bulk-edit NTE even if they can edit other assignment fields
Per-user Vendor NTE limits are enforced on every record in the bulk run
Result email now includes a specific failure reason per record (NTE limit exceeded, permission denied, workflow restriction)
NTE Limit Enforcement: Validates on Any NTE Change
The Vendor NTE limit check on assignments previously only fired when the NTE was increased. A user could lower an already-over-limit NTE to another over-limit value and save without being blocked.
What's Changed:
NTE limit validation now fires on any change to the NTE field, whether increasing or decreasing
If the new value still exceeds the user's limit, save is blocked with the existing error message
Editing other fields on an assignment that already has an over-limit NTE (without touching the NTE field) is not affected
Assets API: Serial Number and Model Number Support
The Assets API previously accepted Serial Number and Model Number as parameters but did not actually apply them, meaning assets created or updated via the API always had blank values for those fields.
What's Changed:
serial_numberandmodel_numberare now read and applied in both POST and PUT requests via the Assets APIAPI documentation updated to reflect these fields
FexaAI
FM Agent: Attachment Summarization
FM Agent now reads and summarizes the attachments on a work order. When you open the Files tab, a single AI-generated summary surfaces the key findings across all attached files β invoices, inspection reports, proposals, photos, and more β so you can understand what the documents contain without opening each one.
What's New:
Files tab displays a combined summary panel covering all attachments on the work order
Summary surfaces what matters most by file type: invoice amounts and approval status, inspection findings and safety flags, proposal scope, required actions, and compliance notes
Generates on-demand when the Files tab is first opened; refreshes automatically when attachments are added or removed
Visible to users with FM Agent enabled
Answers Agent: Consistent Response Formatting and Entity Field Standards
The Answers Agent now returns responses in a consistent, structured format across all entity types, making results easier to scan and act on.
What's Changed:
Responses lead with a direct answer to the question asked, followed by a curated details block
Fields display in a standard order per entity type (e.g., Work Orders: WO # β Priority β Category β Store β Provider)
Consistent terminology applied throughout: "Assigned" not "Dispatched", "Latest Note" not "Closing Note", "Completion Deadline" not "completion date", "Pending Assignment" when no vendor is assigned
π Bug Fixes
Percent Markup Not Displaying After Duplicating Vendor Proposal
When duplicating a vendor proposal into a client quote or invoice, the Percent Markup column in the line items grid was showing blank β even though markup was being calculated and applied correctly to the pricing. The display field was not carrying over during the duplication process.
What's Fixed:
Percent Markup column now correctly displays the markup percentage on duplicated quotes and invoices
Answers Agent: "New Chat" Now Opens a New Tab
Clicking "New Chat" inside an Answers Agent conversation was clearing the current chat with no way to recover it. It now opens a new tab instead, consistent with how the Work Order Agent already behaves.
What's Fixed:
"New Chat" button now opens a new window/tab instead of clearing the active conversation
Previous chat history remains accessible in the existing tab
Asset V2 Imports Fail with Turkish Characters in Facility Name
Asset V2 imports were returning a "no matching facility" error when the Facility Name column contained Turkish characters (e.g. Δ°, Ε, Δ, Γ§). The facility existed and the name matched exactly β the error was caused by a mismatch between how Ruby and PostgreSQL handled case-insensitive comparison for non-Latin characters.
What's Fixed:
Asset V2 imports now correctly match facilities whose names contain Turkish or other Unicode characters
Case-insensitive matching is now handled natively by the database, consistent with V1 imports