???? Changed upload file type for key imports — Unit Master, Customer Unit, Owner, and Resident imports now accept only Excel workbooks in .xlsx format. Other file types cannot be selected in the file picker and are rejected if uploaded.
???? Auto-Cancellation of Expired Pending Service Requests — Service requests that are still waiting for approval after the requested date has passed are now cancelled automatically. The resident receives the same cancellation email as a manual cancellation, the status updates to Cancelled in real time on any open list, and the request detail page records that the cancellation was performed by the system. Service requests that have already been converted into a ticket are not affected — they continue to follow the ticket workflow.
✨ Improved sample file download names — Example spreadsheets downloaded from Import Center now include your property name and the date and time of the download (for example, a Customer Unit sample saves as PropertyName_CustomerUnit_2026-05-26_14-30-00.xlsx, and an Owner import sample as PropertyName_UnitOwners_2026-05-26_14-30-00.xlsx).
✨ Improved import preview tables — Unit Master, Customer Unit, Owner, and Resident imports now show every row from your file in the preview step. The table lists 10 rows at a time, with previous and next controls when there are more than 10 rows.
???? Fixed import preview pagination labels — The row counter and page indicator on Unit Master, Customer Unit, Owner, and Resident previews now show the correct numbers instead of blank placeholders.
???? Customer Accounts List Always Loads — Fixed an issue where the Customer Accounts page could fail to render the table in environments where the Email Status column was not fully available. The list now loads reliably in every environment; rows whose email status cannot be determined simply show a dash in the Email Status column instead of leaving the page in an error state.
???? Auto-Cancellation of Expired Pending Bookings — Amenity bookings that are still waiting for approval after their booking date has passed are now cancelled automatically. The resident receives the same cancellation email as a manual cancellation, the status updates to Cancelled in real time on any open list, and the booking detail page records that the cancellation was performed by the system. No action is required from the Property Management Office for these stale requests.
???? Changed upload file type for key imports — Unit Master, Customer Unit, Owner, and Resident imports now accept only Excel workbooks in .xlsx format. Other file types cannot be selected in the file picker and are rejected if uploaded.
???? Auto-Cancellation of Expired Pending Service Requests — Service requests that are still waiting for approval after the requested date has passed are now cancelled automatically. The resident receives the same cancellation email as a manual cancellation, the status updates to Cancelled in real time on any open list, and the request detail page records that the cancellation was performed by the system. Service requests that have already been converted into a ticket are not affected — they continue to follow the ticket workflow.
✨ Improved sample file download names — Example spreadsheets downloaded from Import Center now include your property name and the date and time of the download (for example, a Customer Unit sample saves as PropertyName_CustomerUnit_2026-05-26_14-30-00.xlsx, and an Owner import sample as PropertyName_UnitOwners_2026-05-26_14-30-00.xlsx).
✨ Visitor Kiosk — Building Service — When the visitor selects Building Service at the kiosk, the Unit and Resident Name fields are now hidden and replaced with a notice that no resident selection is required, so general building vendors (like elevator technicians) can finish check-in without entering resident details.
???? Booking Calendar Navigation — Fixed an issue on the service booking screen where the "Next month" arrow would disappear if the current month had no available days, preventing residents from browsing forward to a month with availability. The arrow now correctly stays visible whenever there is a future month with available days.
???? Fixed "Access denied" on all remaining import flows — Unit Master, Customer Owner, Customer Resident, and SAP imports could also reject uploads with an "Access denied" message on properties where the system's internal module cache was out of sync. All four now use the same access rules as the page that opens them, matching the fix already applied to Regulatory Document Types.
???? Booking Price Preview Update — Fixed an issue on the service booking screen where the live price preview only refreshed after the resident selected an add-on, even though the start and end times had already been chosen. The preview now updates immediately whenever the start time, end time, or add-on selection changes, and waits for both start and end to be selected before showing a value (no more misleading "one-window" amount).
✨ Visitor Kiosk — Building Service — When the visitor selects Building Service at the kiosk, the Unit and Resident Name fields are now hidden and replaced with a notice that no resident selection is required, so general building vendors (like elevator technicians) can finish check-in without entering resident details.
???? Line Item Text Format Updated to Match Finance Spec — The Line Item Text written on the invoice for every approved amenity booking now uses the short US date format mm/dd/yy for the booking date (for example 0155-0526AM000495 - Swimming Pool 05/01/26) instead of the previous long format. Add-on lines follow the same shape (for example 0155-0526AM000495 - Add On: Floating Device 05/01/26). The full text is also capped at 50 characters to align with the SAP field limit — the Transaction Number and the booking date are always preserved, and only the middle description is shortened when the full text would exceed 50 characters. Existing invoices keep the descriptions they were created with; the new format applies to every charge raised from this release onward.
???? Line Item Text Format Updated to Match Finance Spec — The Line Item Text written on the invoice for every approved service request now uses the short US date format mm/dd/yy for the request date (for example 0155-0526SR000495 - Plumbing 05/01/26) instead of the previous long format. Add-on lines follow the same shape (for example 0155-0526SR000495 - Add On: Materials 05/01/26). The full text is also capped at 50 characters to align with the SAP field limit — the Transaction Number and the request date are always preserved, and only the middle description is shortened when the full text would exceed 50 characters. Existing invoices keep the descriptions they were created with; the new format applies to every charge raised from this release onward.
✨ Status Label Colors — The status labels on service requests now follow the agreed colour code: Pending Approval (blue), Approved (navy), Cancelled (grey), and Rejected (dark red). The new colours apply consistently to both the administrator panel and the resident portal, on list and detail screens.
???? Fixed "Could not generate preview" on Customer Owner and Customer Resident imports — Both flows could fail with a generic preview error when the property's server did not have the optional zip extension installed. They now read Excel files using the bundled pure-PHP reader in that case, so uploads work in any environment. Failed uploads also write a detailed line to the application log so support can diagnose the root cause.
✨ Status Label Colors — The status labels on amenity bookings now follow the agreed colour code: Pending Approval (blue), Approved (navy), Cancelled (grey), and Rejected (dark red). The new colours apply consistently to both the administrator panel and the resident portal, on list and detail screens.
???? Fixed Unit Master Import "Could not generate preview" error — The Unit Master spreadsheet upload could fail with a generic "Could not generate preview" message on properties without the optional zip extension installed. The upload now reads Excel files using the bundled pure-PHP reader when needed, so it works in any environment. When uploads do fail for other reasons, the system also writes a detailed entry to the application log to help support diagnose.
???? Fixed "Could not generate preview" on Customer Unit Data (SAP) import — The Customer Unit Data wizard opened from the Apartments page (and the standalone SAP Import page) could fail with the generic preview error on properties without the optional zip extension. It now reads Excel files using the bundled pure-PHP reader in that case, matching the fix already applied to the other import flows.
???? Booking Calendar Navigation — Fixed an issue on the service booking screen where the "Next month" arrow would disappear if the current month had no available days, preventing residents from browsing forward to a month with availability. The arrow now correctly stays visible whenever there is a future month with available days.
???? Fixed "Access denied" on all remaining import flows — Unit Master, Customer Owner, Customer Resident, and SAP imports could also reject uploads with an "Access denied" message on properties where the system's internal module cache was out of sync. All four now use the same access rules as the page that opens them, matching the fix already applied to Regulatory Document Types.
???? Booking Price Preview Update — Fixed an issue on the service booking screen where the live price preview only refreshed after the resident selected an add-on, even though the start and end times had already been chosen. The preview now updates immediately whenever the start time, end time, or add-on selection changes, and waits for both start and end to be selected before showing a value (no more misleading "one-window" amount).
✨ Visitor Kiosk — Building Service — When the visitor selects Building Service at the kiosk, the Unit and Resident Name fields are now hidden and replaced with a notice that no resident selection is required, so general building vendors (like elevator technicians) can finish check-in without entering resident details.
???? Line Item Text Format Updated to Match Finance Spec — The Line Item Text written on the invoice for every approved amenity booking now uses the short US date format mm/dd/yy for the booking date (for example 0155-0526AM000495 - Swimming Pool 05/01/26) instead of the previous long format. Add-on lines follow the same shape (for example 0155-0526AM000495 - Add On: Floating Device 05/01/26). The full text is also capped at 50 characters to align with the SAP field limit — the Transaction Number and the booking date are always preserved, and only the middle description is shortened when the full text would exceed 50 characters. Existing invoices keep the descriptions they were created with; the new format applies to every charge raised from this release onward.
???? Line Item Text Format Updated to Match Finance Spec — The Line Item Text written on the invoice for every approved service request now uses the short US date format mm/dd/yy for the request date (for example 0155-0526SR000495 - Plumbing 05/01/26) instead of the previous long format. Add-on lines follow the same shape (for example 0155-0526SR000495 - Add On: Materials 05/01/26). The full text is also capped at 50 characters to align with the SAP field limit — the Transaction Number and the request date are always preserved, and only the middle description is shortened when the full text would exceed 50 characters. Existing invoices keep the descriptions they were created with; the new format applies to every charge raised from this release onward.
✨ Status Label Colors — The status labels on service requests now follow the agreed colour code: Pending Approval (blue), Approved (navy), Cancelled (grey), and Rejected (dark red). The new colours apply consistently to both the administrator panel and the resident portal, on list and detail screens.
???? Fixed "Could not generate preview" on Customer Owner and Customer Resident imports — Both flows could fail with a generic preview error when the property's server did not have the optional zip extension installed. They now read Excel files using the bundled pure-PHP reader in that case, so uploads work in any environment. Failed uploads also write a detailed line to the application log so support can diagnose the root cause.
✨ Status Label Colors — The status labels on amenity bookings now follow the agreed colour code: Pending Approval (blue), Approved (navy), Cancelled (grey), and Rejected (dark red). The new colours apply consistently to both the administrator panel and the resident portal, on list and detail screens.
???? Fixed Unit Master Import "Could not generate preview" error — The Unit Master spreadsheet upload could fail with a generic "Could not generate preview" message on properties without the optional zip extension installed. The upload now reads Excel files using the bundled pure-PHP reader when needed, so it works in any environment. When uploads do fail for other reasons, the system also writes a detailed entry to the application log to help support diagnose.
???? Fixed "Could not generate preview" on Customer Unit Data (SAP) import — The Customer Unit Data wizard opened from the Apartments page (and the standalone SAP Import page) could fail with the generic preview error on properties without the optional zip extension. It now reads Excel files using the bundled pure-PHP reader in that case, matching the fix already applied to the other import flows.
???? Pin your favorite menus to the top of the sidebar — Each staff member can now pin the menu entries they use most often to a personal "Pinned" section that appears right below the Dashboard. Hover any sidebar entry to reveal a small thumbtack; one click pins it, another click in the Pinned section unpins it. Pins are saved per user so every team member can build their own quick-access list without affecting anyone else's sidebar, and the section only appears when at least one item is pinned so the sidebar stays clean for users who don't use the feature. Submenu entries (like Setup → Roles) can be pinned too — they appear as direct top-level shortcuts inside the Pinned section.
???? One-click recommended layout for the main menu — A new Apply Recommended Layout button on the Main Menu builder reorganizes every menu item into named sections (Marketing & Growth, Sales & Leads, Projects & Tasks, Customer Service, Finance, Reports, Platform, Security & Access, System) in one click. The button preserves any item renames, custom icons, and hidden flags already configured, and keeps any custom sections previously added by the administrator. Items that don't fit the standard categories drop under an "Other" section at the bottom so nothing is lost.
???? Recommended layout refined and submenu loss fixed — Six changes after testing on a production installation: (1) Sales now opens the sidebar instead of Marketing because that is where daily work begins; (2) Calendar and Agenda moved into Sales as scheduling tools; (3) Support and Tickets folded into the Projects section so the whole delivery flow lives together; (4) OmniU SaaS now sits with the other SaaS entries under Platform; (5) two new sections appear when items match — Human Resources and Training & Academy — so HR Management, Universidade Corporativa and similar entries are no longer dumped into "Other"; (6) a sneaky bug that silently emptied submenus after Apply Recommended Layout has been fixed, restoring the Growth menu and every dropdown that lost its children. The Customer Menu builder also shows section headers as a distinct banded row so administrators can tell sections apart from regular menu entries at a glance.
???? Customer Menu builder now lists add-ons even when their handlers cannot run during the scan — Some add-ons (Academy, Lives, Studio, and similar) only register their customer-portal link after loading data that may not exist in the administrator's context, so the link would silently disappear from the builder. The builder now also reads each add-on's source to detect every customer-portal link it would register, so administrators can manage Academy, Lives, Studio, and other add-on entries even when the live scan can't reach them.
✨ Nesting now merges a child's whole submenu into the parent — Previously, when the recommended layout nested an item like Lead Filters under Leads, only the Lead Filters landing page link appeared, and its own sub-pages (the individual filters and management screens) became unreachable. The nesting step now flattens the child's entire submenu into the parent — every URL the child used to expose now appears directly inside the parent's dropdown — and the original parent page is automatically added back as the first entry so it is still one click away.
???? Customer Menu builder — Administrators can now reorder, rename, hide, and re-icon the customer portal's sidebar from a new "Customer Menu" page under Setup → Menu Builder. The builder lists every standard customer entry plus any items added by extra modules, and contact-level permissions are still respected so no customer ever sees something they aren't allowed to open.
???? Customer Menu builder now lists every add-on's customer link — Add-on modules that only show a customer-portal link to contacts with a specific permission (Studio, Academy, and others) were missing from the Customer Menu builder, leaving administrators unable to reorder or hide them. The builder now surfaces every registered customer-portal link, regardless of the permissions of any individual contact. Contact-level permissions still apply at the customer's side, so customers continue to see only the items they are allowed to open.
✨ Recommended layout now also orders items inside each section by workflow — When applying the recommended layout, the items inside each section follow the natural business sequence: leads → filters → customers → quotes → closed sales in Sales & Leads; plan → execute → schedule in Projects & Tasks; invoice → collect → expenses in Finance; and so on. Related entries also land back-to-back (Leads sits next to Filtros de Leads, generic "Relatórios" appears above the per-area drill-downs), so groups of related menus read as a cluster instead of being scattered.
???? One faulty add-on no longer hides every following customer link from the builder — While listing every available customer-portal link, the Customer Menu builder used to stop early as soon as one add-on raised an unexpected error during the scan, leaving every add-on that loaded after it invisible. The scan now isolates each add-on so a single faulty one is skipped and the rest still surface — bringing back Academy, Studio, and any other entry that was hidden behind an earlier failure.
✨ Recommended layout also nests closely related menus — Applying the recommended layout now collapses tightly related entries under a single parent item with a dropdown arrow. For example, "Filtros de Leads" appears as a child of "Leads" and the per-area report drill-downs collapse under "Relatórios". The sidebar becomes shorter and the relationship between items is visible at a glance. The nesting is preserved across normal saves in the builder.
???? Animated menu icons preserved across the layout builder — Items that use the platform's animated icons (such as Leads, Contracts, Projects, Tasks and Expenses) were silently switching to their plain static icons after Apply Recommended Layout, or after any save in the Main Menu builder. The animated icon is now stored alongside the menu entry whenever the layout is changed and re-applied when the sidebar renders, so the animation comes back and stays through every future edit.
???? Group the main menu into sections — Administrators can now add section headers between items in the Main Menu builder to visually group related entries (for example "Sales", "Operations", "Finance"). Sections appear in the sidebar as small uppercase labels with an optional icon and a thin divider above them. Each section can be reordered by dragging, renamed at any time, given a different icon, hidden temporarily, or removed altogether.
???? Hidden customer menu items now stay hidden everywhere — When an administrator hides a customer menu entry from the Customer Menu builder, the change now also removes the matching widget from the customer's dashboard home. For example, turning off "Income" hides both the sidebar link and the income summary card so customers don't see a section they can't open. The fix also covers menu entries that some add-on modules inject directly (such as Academy and Team Passwords), which previously remained visible even after being disabled.
???? Lead Filters link works again and OmniU items moved into Sales — Three related fixes: (1) Lead Filters and any other item that was collapsed under a parent had its link drop fields like the destination URL because of the order in which the menu's grouping was applied, leaving the entry clickable but going nowhere; the grouping step now runs last so the link is preserved. (2) Items with non-FontAwesome icons (like Lord-style icons) kept their visual icon when nested under a parent — previously only FontAwesome icons survived the move. (3) OmniU and OmniU Studio now land inside Sales & Leads at the end of the section (after Calendar) per administrator request, matching the natural lead-generation-to-sales flow; OmniU SaaS continues to live with Platform alongside the other SaaS entries.
✨ Improved — Clearer review step on vertical property import with compact tags instead of long alert messages.
???? Vertical property import — The import now blocks duplicate tower or building names in the same file and names that already exist in the system.
???? Vertical property import — Fixed an error that blocked confirming the import when the sheet included building height in storeys.