🛠 Enhancements
Copy Work Order Functionality
We’ve introduced the ability to copy an existing Work Order to quickly create a new one with the same core details.
This enhancement is designed for situations where scope changes mid-job or when similar work orders need to be created with consistent descriptions, NTEs, and other baseline fields.
What’s New:
A Copy icon has been added to the Work Order Overview screen, next to the ReDispatch option.
Users with Work Order Create permissions can copy an existing work order.
When selected, a confirmation modal will appear informing the user that:
All core details (except dates) will be copied.
Assignments, visits, invoices, proposals, quotes, and other associated records will not be copied.
Dates will reset to the copy date.
ETAs will adjust based on the new date.
Photo Upload Progress + Success States in FexaAI
We improved the photo attachment experience in FexaAI so users can clearly tell when an image is uploading and when it’s finished.
What’s New:
Upload In Progress
As soon as a user selects a photo, the chat shows the photo thumbnail in an uploading state
A spinner / progress indicator is displayed on the thumbnail (using existing loading visuals)
Upload Success
Once the upload completes, the spinner/progress indicator is replaced with a photo preview
The thumbnail stays visible in the chat
The user can continue the conversation without interruption (no blocking state)
Photo Preview Available from Thumbnail in FexaAI
Added the ability to view a larger preview of an uploaded photo in FexaAI.
When a user clicks on a photo thumbnail in the chat, a full preview of the image is displayed.
Allows users to verify the correct image was uploaded.
Typewriter Effect for Chat Responses
Added a typewriter-style message display in the chat experience to make responses feel more digestible.
Responses now appear progressively instead of rendering all at once.
Reduces the “wall of text” effect and helps messages feel less overwhelming.
Improves readability during longer or more detailed chat responses.
No change to the underlying response content—only how it’s presented.
Classic Work Order Creation Hidden When FexaAI is Enabled
To streamline the user experience and reinforce FexaAI adoption, we’ve updated how Classic Work Order creation appears for AI-enabled users.
What’s Changed:
If a user:
Has FexaAI enabled, and
Has permission to create AI Work Orders
The Classic Work Order creation option will be hidden from:
The Global + menu
The Work Orders > + button menu
This ensures users launch work orders through FexaAI by default, reducing confusion between experiences.
Important:The only location where a user can switch back to Classic (if allowed) is from within the AI Work Order screen.
🐛 Bug Fixes
IVR ID Not Recognized for Check-In
Fixed an issue where technicians were unable to check in via IVR due to the system not recognizing valid IVR IDs.
The IVR prompt incorrectly stated the IVR ID was invalid and disconnected the call.
Issue was reported across multiple sites.
Identified a pattern where impacted IVR IDs began with a leading “0”.
Technicians were forced to use web or mobile as a temporary workaround.
IVR now properly recognizes valid IVR IDs, including those beginning with “0”.
Restores expected IVR check-in functionality for affected sites.
File Upload Failing on Invoices and Quotes
Fixed an issue where users with proper permissions were unable to upload files to Invoices and Quotes.
No error appeared in the UI after selecting a file and clicking upload.
The browser Network tab returned an authorization error, despite correct permissions.
File uploads to Work Orders were functioning as expected.
Issue was blocking work for impacted users.
Upload functionality has been restored for Invoices and Quotes.
Users with appropriate document and invoice/quote permissions can now successfully upload files.
Success behavior is now consistent across Work Orders, Invoices, and Quotes.
This resolves a backend authorization issue affecting multiple sites.
Document Upload Failing in Vendors, Clients, and Projects
Fixed an issue where users were unable to upload documents in the Vendors, Clients, and Projects modules.
After selecting a file and clicking OK, no action occurred in the UI.
No success or error message was displayed.
The Network response returned:
{"message":"You are not authorized to access this page."}Root cause was a backend authorization issue preventing file uploads.
Documents now upload successfully.
A success message is displayed upon upload.
Uploaded files properly appear in the Files list.
IVR Check-In/Check-Out Fails After Replaying Prompt
Fixed an issue where the IVR lost the assignment ID if a user pressed a key other than 1 or 2 during the check-in/check-out prompt.
Previously, if a user pressed another key (e.g., 0) to replay the prompt and then selected 1 or 2, the system failed to recognize the assignment ID.
This resulted in a Twilio error and prevented users from successfully checking in or checking out.
The IVR now properly retains the assignment ID when replaying the prompt.
Users can safely press another key to hear the prompt again without interrupting the check-in or check-out process.
Ensures a smoother and more reliable IVR experience across all clients.
Asset Custom Field Updates via Import Causing Duplicate Asset IDs in Reports
Fixed an issue where updating an Asset Custom Field via Asset V2 Import did not properly reflect on the Asset record.
Multiple successful imports for the same Asset ID could cause duplicate rows to appear in Asset reports.
Each duplicate row displayed previously imported Custom Field values.
Asset records now correctly reflect the most recently imported Custom Field value.
Reports now return one row per Asset ID with the accurate, current Custom Field value.
Ensures consistency between Imports, Asset records, and Reporting.
Store Manager Organization Correctly Aligns to Facility Client
We fixed an issue where Store Managers created from the Main User List were always assigned to the site owning client’s organization — even when the selected facility belonged to a different client.
What’s Fixed:
If a Store Manager is created and assigned to a facility tied to a different client, the user will now be associated with the facility’s client organization.
Work orders created by that user will reflect the correct client.
Note:
If multiple facilities across different clients are selected, the user will default to the site owning client.
Region and District Manager creation is not impacted.
Inactive Users No Longer Receive Store Manager Default Email Address Communications
We’ve resolved an issue where inactive users were still receiving communications when a rule was configured to send notifications to Store Managers' Default Addresses.
Issue:
If a communication rule included Store Managers' Default Addresses as a recipient, inactive users associated with that store could still receive email notifications.Expected Behavior (Now Implemented):
When a user is marked as inactive in Fexa, they will no longer receive communications triggered by communication rules — unless:Their email is explicitly added to a communication rule, or
They are included in a previous note thread.
What’s Changed:
Communication rule logic now validates user status before sending.
Inactive users tied to Store Manager Default Address relationships are excluded from future notifications.
No manual removal of contact emails is required.
This update ensures communication rules respect user activation status and prevents unintended notifications to deactivated users.
Queue Chat Actions Until WebSocket Connection Is Ready
Fixed an issue where users could send a message or attempt to attach a file before the WebSocket connection was fully established.
In rare cases, this caused the chat interface to hang or behave unexpectedly.
Text messages sent before the connection is ready are now queued and automatically sent once the WebSocket connection is established.
File attachments initiated before the connection is ready are now queued and upload automatically once the connection is established.
Prevents early chat actions from disrupting the user experience.
Ensures a smoother and more reliable chat startup experience.