π Enhancements
CMMS
Deep linking through SSO login
Links into Fexa now survive the SSO round trip. Previously, a user clicking a link to a specific work order would authenticate and land on the dashboard instead.
What's New:
Users who follow a link and sign in via SSO land on the page they originally requested
Users signing in without a target link still land on the dashboard
Failed logins still return to the login page
SMS delivery status
You can now see whether a text message actually reached its recipient. Carrier delivery status is surfaced in the communication rule occurrence screen, the API, and reporting β previously a bounced SMS still looked like it had been sent.
What's New:
Per-recipient SMS delivery status, error code, and status timestamp on communication rule occurrence messages
The same fields are available via the API and in reporting
Assignment feedback via the Assignments API
Assignment feedback can now be read and written through the API, closing a gap where the documentation described support that did not exist. Vendors and customers running their own integrations no longer have to complete feedback by hand in the UI.
What's New:
Feedback Comment, Feedback Positive, and Feedback Approved for Progression are available on GET, POST, and PUT for the /assignments endpoint
FexaAI
Ask AI pill in the global header
The Answers Agent is now one click away from anywhere in Fexa. An "Ask AI" pill sits next to the header search bar, so users no longer need to know to go looking for it in the FexaAI Hub.
What's New:
An "Ask AI" pill appears next to the header search bar for entitled users
Clicking it opens the Answers Agent directly, with the same experience as opening it from the FexaAI Hub
Can be enabled per site
Answers Agent results include the field you asked about
Previously, if you asked the Answers Agent to filter on something outside the standard result columns β a store ID, a specific asset β the answer came back without that field, so you had to ask a follow-up question to see data the agent had already used. Now it comes back in the table.
What's Changed:
Fields used to filter a query are appended as columns in the table response
Covers work order and asset attributes at launch
Better knowledge base coverage for the Work Order Agent
The knowledge base behind the Work Order Agent has been rewritten for clearer matching, so the agent lands on the right guidance more often.
What's Changed:
Documents have richer, more specific descriptions to improve matching
Customer-specific titles removed so documents no longer mis-map across accounts
Added documents that were missing and causing mis-matches
π Bug Fixes
Vendor Invoice V2 import silently dropped line items
When a single line item row failed validation on a Vendor Invoice V2 import, the invoice imported anyway β leaving an incomplete invoice with line items quietly missing, and no way to add them afterward.
What's Fixed:
A failing line item now fails its parent invoice instead of creating an incomplete record
Line item rows can reference the invoice they belong to, so missing items can be imported against an existing invoice
Vendor Invoice V2 import could hang with no error
An import could run forever with no completion message and no error, leaving users with no idea whether their data had loaded.
What's Fixed:
Import failures now surface an error to the user instead of failing silently
A blank Type cell or trailing empty row no longer stops the import mid-file
Imports now report completion, so the screen no longer waits indefinitely
Asset template category filter not applied on proposal and invoice line items
Asset template categories correctly limited which assets could go on a work order, but the same filtering was skipped on proposal and invoice line items β so every asset at the location was selectable regardless of the work order's category. A fire extinguisher could be added to an HVAC job.
What's Fixed:
Asset selection on proposal and invoice line items now applies the same category filtering used on the work order
Work order workflow prompted to save changes that were never made
Changing a work order's status through the Workflow button triggered an "You Have Unsaved Changes" prompt even on an untouched work order β and choosing Save left users stuck in a loop where the status never changed.
What's Fixed:
The unsaved changes prompt no longer appears when no fields have been edited
Status transitions complete normally through the Workflow button
Typed manufacturer values were silently discarded on assets
Typing a manufacturer that wasn't already in the list appeared to save successfully, but the value was gone on reload β users had no way to know their entry hadn't stuck.
What's Fixed:
Entering a manufacturer that isn't in the list is now blocked with a clear message to pick from the list
The value is no longer silently dropped on save
Work order grid filters reset on the Facility page
Filters on a facility's Work Orders tab visibly applied and then reset a second or two later, dumping the user back to every work order for the facility.
What's Fixed:
Filters on the Facility page Work Orders grid now persist until the user changes or clears them, matching the global Work Orders grid
Asset import ignored a Condition of "Average"
Importing assets with Condition set to "Average" completed without errors, but the Condition field came through blank. Every other value mapped correctly.
What's Fixed:
A Condition of "Average" now maps to the created asset, consistent with Good, Poor, and Inoperable
QuickBooks invoice account mapping was overwritten after integration
An invoice integrated to QuickBooks with the correct accounts payable account, and then the integration went back and changed it to a different one.
What's Fixed:
The accounts payable account set at integration is no longer overwritten on subsequent updates
Work order notes failed to transfer between tenants
A note added on one tenant's work order never arrived on the connected tenant's copy, surfacing only as an unexplained error on a scheduled integration error report.
What's Fixed:
Notes now transfer correctly across the Fexa-to-Fexa integration
Duplicate vendor check-ins sent to ServiceChannel
When two updates for the same record processed at the same time, both could be sent to ServiceChannel β creating a duplicate record there and orphaning the first one on the Fexa side.
What's Fixed:
Concurrent updates now see each other's results, so only one check-in is sent
The original external reference is no longer overwritten
Status and field updates could be lost between tenants
A transient failure on the receiving side of a Fexa-to-Fexa integration was recorded as a success, never retried, and left in a state that blocked recovery β so status changes and field updates simply went missing with nothing to indicate a problem.
What's Fixed:
Failed status syncs and field updates are now marked as failures instead of successes
Failures are retried automatically
A failed update no longer blocks the same change from being sent again