Cases
Improved: Two-box real estate search
The real estate selector on cases and the New Communication screen now has two separate search fields instead of one. Enter address, building number, city, or unit in the Location box, and occupant name, email, or company in the Occupant box. You can search by either field alone or combine both — for example, "Hauptstraße" in Location and "Müller" in Occupant narrows to that specific tenant. Postal codes are detected automatically in mixed queries like "6020 Innsbruck".
Ranking has also been improved so that occupant matches are not overwritten when both fields are used together, and the search now handles composite identifiers (e.g. "RH8") by matching each component.
New: Filter controls for real estate search
A new collapsible Filter panel sits above the real estate results with four controls:
Hide parking spots — on by default, so parking places no longer clutter your apartment searches. Turn it off when you specifically need to select a parking spot.
Include vacant units — show units with no current occupant.
Include future tenants — show tenants whose occupancy starts later. Future tenants appear with a blue info chip.
Include former tenants — show tenants whose occupancy has ended. Former tenants appear with an outlined gray chip.
Improved: Mobile-friendly real estate search
The real estate selector now wraps cleanly on narrow screens, and the filter controls, unit chips, and result cards all adapt to mobile widths.
Improved: Case omnisearch by street and unit number
The main case list search now also matches street addresses and TOP (unit) numbers on both buildings and properties. This complements the address search added in the previous release with coverage of the building address as well.
Entity Management
New: Warnings when removing linked buildings, properties, or occupants
When you remove a building, property, or occupant from a case that is already referenced by an existing action, a confirmation dialog now lists exactly which actions use it — each labelled Ticket: or Auftrag: with its number. Removal from draft actions still cascades automatically, but you can now see the full impact before confirming and removal from non-draft actions is no longer silently blocked.
Improved: Draft action entities stay staged until execution
Adding a building, property, or occupant to a draft action (ERP ticket or work order) no longer writes it back to the case immediately. The entity is staged on the draft until you execute the action — at that point it is promoted to the case. If you cancel or delete the draft, the case entity pool stays clean.
This also means swapping from one billing unit (VEH) to another on a draft action no longer leaves the original entity stuck on the case.
New: Switch between sibling billing units
When a building has multiple billing units (child VEH buildings), you can now swap between them in one click directly from the entity pool. This is useful when the initial draft points at VEH 0 but the issue actually concerns VEH 1 or another billing unit.
ERP Integration
Changed: ERP ticket creation failures now surface clearly
When D+ rejects an ERP ticket creation — for example, because a trade is not configured for the building type, or because the building has no configured type — the system now marks the action as Canceled with a clear error message instead of leaving a draft in place with no feedback. Previously some error responses from D+ were treated as successful, occasionally producing orphan records with a placeholder ticket number.
A new specific error is shown when the building type (WGG / WEG / MRG) is not configured, with a German-localized hint pointing to the building configuration.
Improved: Child and parent building both sent to D+
When you create an ERP ticket for a child VEH building, the parent billing unit is now automatically included in the request to D+. Previously, D+'s "always add VEH 0" setting could overwrite your child VEH selection with the parent. Your case continues to show only the building you selected — the parent is only added at the point of transmission.
Improved: ERP ticket assignee stays in sync
ERP ticket assignee changes made in D+ now reliably save back to Captured Knowledge when a case is re-synced. Previously the assignee could appear stale in the case view until the ticket was recreated.
Gustav AI Assistant
New: Date separators in chat
Gustav chat now shows Today, Yesterday, or the full date between messages when a conversation spans multiple days. The separators stick to the top of the message list as you scroll, making it easier to orient yourself in longer conversations.
Improved: Clearer error messages
When Gustav encounters an error from the underlying AI service — for example, a temporary rate limit or timeout — the chat now shows a short, translated message (e.g. "Gustav is temporarily busy, please try again") instead of a raw technical error. The full details are logged server-side for our team.
Improved: Response timeout feedback
If Gustav takes too long to respond or the connection drops mid-processing, the chat no longer gets stuck on the stop button. After 90 seconds without a response, the UI resets and shows a clear message with a retry option.
Improved: Automatic retry for email send failures
When sending an email from a case fails due to a temporary server issue (e.g. Exchange briefly returning a 5xx error), the system now retries up to three times over approximately three minutes before giving up. If all retries fail, the email action is reset to Draft with a "temporarily unavailable" message so you can try again later, instead of being permanently canceled.
Improved: Fewer false send failures when Exchange is slow to index
Previously, if Exchange took more than a few seconds to index a just-sent email, the system would report the send as failed even though the email was delivered — leading to duplicate sends when users retried. The retry schedule and fallback behavior have been adjusted so a slow index no longer produces a false error.
Improved: Auto-reply goes to the real recipient
When auto-reply is enabled, Captured Knowledge now identifies the actual contact person's email address rather than replying to a noreply or forwarding address. This prevents bounced auto-replies to scanner mailboxes and forwarded threads.
Improved: Service provider email and phone columns
The Dienstleister tab now shows Email and Phone columns, filling in the best available value from each service provider's contact details.
Bug Fixes
Case list omnisearch restored: Searching the case list by description, occupant names, building and property names, and ERP ticket number works again. A recent update had unintentionally limited search to only titles and IDs.
~130 properties auto-added without user action: A bug in the property grid could add the entire currently-visible row set to a case when navigating or refreshing. Fixed.
Raw XML in file-analysis messages on session restore: When reopening a Gustav chat that included an uploaded file, the analysis card sometimes rendered its raw internal markup. The card now renders correctly on restore.
Draft edits wiped on background refresh: ERP ticket and work order drafts no longer lose unsaved edits when the case refreshes in the background (e.g. after adding real estate via the entity selector).
Service provider detail dialog 404: Opening a service provider from a damage report or work order now loads correctly. Insurance companies on damage reports now open through the contact detail dialog.
Building name display for ÖVW, GHS, and similar: Team names containing umlauts or all-caps acronyms (e.g. "ÖVW", "GHS") are now displayed as-is instead of being stripped to "Vw" or "Ghs".
Dashboard search and counts faster: The dashboard case list and status counts have been optimized to avoid timeouts on teams with high case volume.
Work order archive error: Archiving a work order that was never part of the numbered sequence no longer causes an error.
Mobile polish: Gustav sidebar no longer overlays chat content, email filter toolbar wraps correctly on narrow screens, and snackbars no longer overlap the Intercom widget.
Translation gaps closed: Added missing German translations in the entity pool, New Communication screen, and Gustav error messages ("All results", "By relevance", "By unit number", "Load more results", "Show all X units", "Ticket:" / "Auftrag:", and others).
Related Articles
Using Gustav in Cases — Gustav's case-specific chat
Creating ERP Tickets — ERP ticket creation and error handling
Linking Entities to Cases — Real estate search and entity management