Skip to main content

What's New - May 19th, 2026 Release

Faster case polling, Internal Notes on work orders, validated ERP assignees, and many bug fixes.

N
Written by Nick Laffey

Cases

Improved: Per-tenancy rows across action entity selectors

The entity selectors for ERP tickets, work orders, and new communications now render one row per tenancy, instead of collapsing units with multiple tenancies into a single row. Multi-tenancy units are now visible and selectable directly; tenant phone numbers carry through to the auto-fill consistently.


Performance Improvements

Improved: Case list and case detail refresh every 15 seconds

Both the case list and the open case (including its actions) now refresh every 15 seconds instead of every two minutes. When two colleagues are working on the same matter, changes to assignment, status, priority, or actions made by one person become visible to the other within about 15 seconds — without a manual refresh. The case list also refreshes when you return to the browser tab. Background refreshes no longer cause the list to flash.


Work Orders

New: Internal Notes field on work orders

Work orders now have a dedicated Internal Notes field (up to 4,000 characters), which writes to the AUF_NOTIZ_INTERN field in D+. Internal notes are intended for information that should not appear on outbound communication, such as access codes or coordination details between PM and the contractor. The Internal Notes input appears below the quote fields in the work order editor.

Until now, internal information had to be placed in the Quote Number field as a workaround. New work orders should use Internal Notes for this purpose going forward.

New: Per-Auftragsart default for Geschätzte Kosten

You can now configure a default Geschätzte Kosten value per Auftragsart at the team level. For example, an "Arbeitsauftrag bis € 1500" type can carry a default of 1500 € so that the value is populated automatically when a draft of that type is created. Defaults apply only at the moment of creation; once a draft exists, the value (including a deliberately cleared one) is preserved and not overwritten on re-import. Customers who consistently match cost ceilings to Auftragsart types — such as ÖVW — benefit most.

Restored: Offer Number field on the case work order action

The Offer Number (Angebotsnummer) field is again available on the work order action editor opened from a case. The field had been hidden when the form was refactored in an earlier release. Both the case action editor and the Gustav draft dialog now expose the field.


ERP Tickets

Changed: ERP ticket assignee is validated against known D+ users

When you type an assignee name into an ERP ticket on creation or update, CK now validates the name against the list of D+ users before contacting D+. Previously, freeform names were forwarded raw and D+'s fuzzy matcher could silently resolve the wrong user — for example, typing "Maier" sometimes resolved to a completely different person. CK now:

  • Surfaces a clear error when the name does not match any known D+ user

  • Surfaces a clear error when several users match (with the option to choose)

  • Orders autocomplete suggestions by exact match, then prefix match, then substring match — so the name you typed appears at the top

A confirmation dialog is shown if you want to proceed with a name that is not yet in D+ (for example, a new employee not yet imported). The action stays in Draft until you explicitly confirm.


Email

Improved: Misnamed iPhone photo attachments no longer break the ERP ticket

iPhone Mail often attaches photos as JPEG bytes but with a .heic filename. D+ rejects .heic by extension, which previously caused the entire email — including all of its attachments — to fail to attach to the ERP ticket. CK now detects these mismatched attachments and rewrites the filename to match the actual file format, so the photo and the surrounding email reliably reach the ticket.

Improved: Outlook category sub-routing within a team

Rotations with Outlook categories can now coexist with an untagged catch-all rotation in the same team, even when they share an issue category. This makes it possible to route, for example, all WATER_DAMAGE emails to a team's general rotation while still routing emails carrying an Outlook tag (e.g., a regional sub-team) to a specialized rotation. The most-specific match — Outlook tag plus issue category — wins; otherwise the team's catch-all rotation is used.


Gustav AI Assistant (Alpha)

New: Stronger safeguards for agentic actions

Gustav is steadily becoming more capable of taking action on your behalf, particularly when processing inbound emails into cases, work orders, and ERP tickets. Behind the scenes, this release continues a broader investment in the safeguards that make those actions trustworthy — verifying the right entities are attached, the right recipients are addressed, and the right status transitions are applied before anything is written to D+. Most of this work is not directly visible in the UI, but it is the foundation that lets us gradually expand what Gustav can do without you having to double-check every step.

New: AI disclaimers and review reminders on Gustav-generated content

Two new visual cues remind you that content was produced by Gustav and may need verification.

  • An AI disclaimer ("This response was generated by AI and may contain errors.") appears under the latest assistant message in Gustav chat, and a corresponding note appears at the top of the case detail right-hand panel.

  • An AI review reminder with a violet-pink shimmer treatment appears on the editor for any email, work order, ERP ticket, phone call, or damage report action that Gustav drafted.

The cues are scoped to AI-created content, so manually created actions are unaffected.

New: Search the full building list from a Gustav work order draft

When Gustav drafts a work order without a pre-selected case, you can now search for and attach any building, not just the ones pre-filled on the draft. A new Pick a building step lets you find a building first; once selected, the standard entity selector takes over for adding properties and occupants. The same picker is also available in the ERP ticket draft dialog.

Improved: Change the building on a Gustav-matched case from the chat draft

When Gustav matches a chat-created work order to an existing case, the draft dialog now shows a banner naming the matched case and gives you a direct way to change the building — without having to leave the chat. From inside a case, the action switches the open case to its Real Estate tab.


Bug Fixes

  • Dismiss button shown in English in German UI: The Dismiss button on the email list now reads Ausblenden in the German UI, matching the rest of the page.

  • Salutation missing from Gustav-generated German email drafts: Gustav had recently begun omitting the Anrede on some German drafts. New drafts in German now consistently include an appropriate Anrede, and modifications to an existing draft preserve the salutation rather than removing or duplicating it.

  • Work order contact person was blank when reopening a draft: A previously selected contact person on a draft work order — especially one that did not appear in the building's functionaries list or in the first page of employees — would render as blank when you reopened the draft. The previously selected contact is now resolved and shown correctly, in both the main work order editor and the Gustav chat draft dialog.

  • Buildings with a single-digit building number were unfindable in case-pool search: Searching for buildings such as "0" (a typical placeholder for a new-build parent) returned no results. Single-character search terms are now accepted in the case-pool search.

  • Buildings with no properties were missing from case-pool search: A building that had no matching properties in D+ — common for projects still under construction — could not be found when linking it to a case. The case-pool search now also returns building-only matches when no properties match the query.

  • Manually-created work orders disappeared from the Aufträge tab after execution: Work orders created manually (rather than from a D+ import) were not appearing on the case's Aufträge tab. Newly created manual work orders are now visible immediately, and already-affected work orders from before the fix have been backfilled.

  • Archived cases were being matched to new emails: When a new email arrived, CK could match it to a case that had been archived, leading to "Kein Fall – Überprüfung erforderlich" prompts or new emails landing silently on closed matters. Archived cases are now excluded from case-matching for new emails by default. Direct lookup of an archived case by ID still works as before.

  • Email import failed for older cases with legacy categories: Linking or importing an email into a case whose stored category was no longer part of the current set (for example, a legacy MAINTENANCE value) returned an internal error. Such cases now fall back to the team's primary rotation cleanly.

  • "Unknown D+ user" confirmation was missing on ERP ticket update: Confirming an unknown D+ assignee on the ERP ticket update flow used to return a hard error with no override path. The same confirmation dialog already used when creating a ticket is now wired into the update flow.

  • "View in Cloud Trace" link returned a "URL not found" page: The link from Gustav chat and Django admin to the underlying Cloud Trace records used a format Google no longer accepts. The link now points to the current Cloud Trace explorer URL.


Related Articles

Did this answer your question?