# Find: duplicates, old terms, blocked words and tone

**Category:** [String Manager](https://help.totalctrl.app/hc/totalctrl/totalctrl-help-center/en-US/categories/strings)
**Updated:** 2026-10-04

## One page, four questions

**Find** on a string set answers four versions of the same question — what content no longer matches the standards. It runs nothing until you ask it to.

## Duplicates

What counts as a duplicate is a decision rather than a fact, so you pick the fields:

- Two rows with the same **key** are a collision — one wins at runtime and it is not defined which.

- Two rows with the same **value** may be reuse worth consolidating, or two sentences that happen to read alike in English and will not in German.

- Two rows with the same key in different **file names** are usually not duplicates at all.

Every group in the report says which fields matched. A duplicates list that will not say what made them duplicates is one nobody can act on.

### Look in

Search **this string set** or **every string set in the workspace**. That choice is what makes matching on Key alone meaningful: a key can only appear once inside a set — the database refuses the second one — so a key-only search within one set can never find anything, and the page tells you so instead of returning an empty result that reads as "you have no duplicate keys".

### Removing them

Keep the **first** or the **last** of each group. First is the original; last is usually the most recently imported. The full report is shown, with counts, before anything is removed.

Removed strings go to **Deleted**, not away — recoverable there, and cleared on the normal trash schedule like any other deleted string. A bulk removal fires the `string.bulk_deleted` webhook.

## Glossary changes

Finds content still using a term that has since been renamed, and terms marked deprecated that are still in use. It matches on the **old** wording, because that is what is sitting in the content.

Each deprecated term is reported as still used or **not used — safe to retire**, which is the answer you actually want before announcing a change.

## Blocked terms

Finds content using a word your standards say not to use, with the reason and the replacement from the blocklist.

## Tone

Compares the set against a tone of voice profile using AI, and reports a rate for the whole set rather than a verdict on each string. See the analysis article for how much is checked and why it is advisory.

## If you do not have Standards & Brand Hub

Duplicates needs nothing else and always works. The other three read your glossary, blocklist and tone profiles from Standards & Brand Hub, and the page says so plainly rather than offering a search that could only ever come back empty.

---

## Related Articles

- [API, webhooks, and automation](https://help.totalctrl.app/en-US/articles/string-manager-integrations)
- [Platform keys: one string, the name each build expects](https://help.totalctrl.app/en-US/articles/string-manager-platform-keys)
- [Download the file you uploaded, with the values changed](https://help.totalctrl.app/en-US/articles/string-manager-template-export)
- [Placeholders, and why they are stored separately](https://help.totalctrl.app/en-US/articles/string-manager-placeholders)
- [Create a string set and add languages](https://help.totalctrl.app/en-US/articles/create-a-string-set)

---
[← Back to TotalCtrl Help Center](https://help.totalctrl.app/en-US/)