---
title: "Release 5.14.8"
description: "Scenario publishing can no longer silently overwrite an existing node or translation elsewhere in the bot, a client's message right after chat close is no longer lost, and customer satisfaction scores now match across every statistics view."
---

# Release 5.14.8

This release closes a rare but serious scenario-publishing issue that could silently overwrite an existing message or translation elsewhere in the bot, and fixes a related case where constants and the process name could be lost during parallel section editing. It also fixes a case where a client's message sent right after an operator closes the chat could go missing, makes AI quality assessments more resilient so one bad batch of criteria no longer fails the whole review, and aligns customer satisfaction scores across all statistics views. Client search and broadcast-by-file also received a set of reliability fixes.

## Scenario Builder

**Fixed**

- **Publishing a scenario can no longer overwrite an existing message or translation elsewhere in the bot.** In rare situations — typically after a scenario had node or translation IDs assigned outside the normal editor flow, such as a version restore or an import — the internal counter used to generate new IDs could fall behind what was actually stored. A newly added node or newly translated phrase could then be handed an ID already in use somewhere else in the bot, silently overwriting the existing content with no error shown. The counter is now checked against everything actually saved across the whole bot before a new ID is issued, so this can no longer happen; if it ever falls behind again, the very next save brings it back in line automatically.
- **Constants and the process name are no longer lost when colleagues are editing different sections of the same scenario in parallel.** With co-editing turned on, publishing your changes while a colleague held another section could report success — the confirmation appeared, and even a later publish still reported success — while a constant you had just added, or a rename of the process, never actually reached the server and disappeared after a reload, with nothing warning you it failed. Constants and process name changes are now sent along with every publish and saved together with your section changes instead of being silently dropped.

## Operator Line

**Fixed**

- **A client's message sent right after an operator closes the chat is no longer lost.** In some situations — for example when the operator started the conversation, rejoined a chat that had already been closed, or the chat closed automatically — the client's very next message could fail to open a new conversation and disappear without the operator ever seeing it, or a reopened room could show stale, outdated text. Closing a chat now also waits for that transition to fully finish before confirming the chat as closed, closing the narrow window in which a message used to get lost.

## AI Quality Assessment

**Fixed**

- **A dialog assessment no longer fails completely because of one problematic batch of criteria.** AI quality assessments score a dialog against your checklist in batches. If the AI's answer for one batch came back incomplete, malformed, or cut short, the entire assessment used to fail and every score already collected was thrown away. The assessment now retries the problem batch in smaller parts and completes instead of discarding work already done.
- **When an assessment still cannot be completed, the error now names the specific criterion that caused it**, so you can go straight to the problem instead of reviewing the whole checklist to find it.
- **Assessment answers that only differ by a stray formatting character are no longer discarded.** A correct answer from the AI that differed from the expected format by a single service character used to be treated as invalid, wasting a retry attempt. It's now recognized and scored correctly.
- **A failed re-assessment is no longer shown as if it succeeded.** If you re-ran an assessment and that run failed, the assessment page used to quietly show the score from the previous, successful run as if it were current. It now shows a clear warning that the latest attempt failed, alongside the results from the last successful assessment.

## Statistics

**Fixed**

- **Customer satisfaction scores now match across the Quality of Service tab, the Operators view, and the Dialogs export.** When a dialog was handed over between operators, the Quality of Service summary could attribute the client's rating to whichever operator was assigned to the chat first, while the Dialogs export and other operator-level views attributed it to whoever joined last — the two could disagree for the same period and filters. All views now consistently attribute the score to the last operator who joined the dialog. Because this changes how existing data is read rather than correcting the data itself, it applies retroactively: figures for past periods may look different from what you saw before, and now match the export.

## Clients

**Fixed**

- **Custom client fields can now be made searchable without also adding them to filters.** Previously, a custom client field only appeared in the Clients page search if it had also been added to the client filters — there was no way to turn on search by itself. The client field editor in Settings now has its own **Searchable** toggle, matching the one already available for organization fields.
- **"Find similar contacts" now finds duplicates for clients who only have a username, with no phone or email.** Clients identified only by a messaging-app username — for example, visitors who reached you through a chat widget — were not detected as duplicates, because the search only checked the username stored on the contact record, not the one stored on the client's own card. It now checks both. The underlying search query has also been hardened against malformed input.
- **Searching clients by an uploaded file no longer times out on instances with a large client base.** Looking up clients from an uploaded file — for a broadcast or a bulk check — used to run as a single very large database query; on instances with many registered clients this could take minutes and eventually fail with a generic error. The search now runs in smaller batches, keeping response times stable regardless of client base size. A few related edge cases were fixed at the same time: values from the file are trimmed and de-duplicated before searching, a mapped column that is blank in every row is now correctly treated as no matches instead of being ignored, and mapping two file columns to the same field again uses the last one, as it did before.

## Related documentation

- [Edit a scenario in Scenario Builder](/en/scenariobuilder/how-to/edit-scenario.md)
- [Edit a scenario together with colleagues](/en/scenariobuilder/how-to/edit-scenario-together.md)
- [About connecting chat with an operator](/en/operatorline/explanation/connect-chat-to-operator.md)
- [AI Quality Assessment overview](/en/learn/ai-qa/ai-qa-overview.md)
- [View the Quality of Service tab summary](/en/statistics/how-to/view-quality-tab-summary.md)
- [Configure client fields](/en/settings/how-to/configure-client-fields.md)
- [Search and merge similar contacts](/en/broadcastusers/how-to/search-and-merge-similar-contacts.md)
- [Search clients by file](/en/broadcastusers/how-to/search-clients-by-file.md)
