# 6. How to Manage Texts

Long, structured content—such as notifications, email bodies, tooltips, and rich messages—is managed under **Settings &gt; Texts**. This module lets you centrally edit, clone, and auto-translate entire text objects (often JSON trees) across any active language. By using it you ensure that every notification, onboarding message, or rich UI copy is consistent and localized without touching code.

**Why Manage Texts Here?**

1. **Complex Structures**: Handle nested content (titles, subtitles, descriptions) in one place.
2. **Rich Formatting**: Preserve HTML or Markdown within descriptions.
3. **AI-Powered Translation**: Leverage built-in “Translate” for bulk localization.
4. **Version Control**: Lock critical texts to prevent accidental deletion.

##### Viewing &amp; Searching Texts

Navigate to **⚙️ Settings** → **Texts**.  
You’ll see a “card” layout of each text’s **label** and a snippet of its default language.  
To find a specific item, use the **Search** bar at the top: typing part of a label filters cards instantly.

##### Editing &amp; Translating an Existing Text

**To add a translation to any of these texts:**

1. Click the **Edit** (pencil) icon on the text card you want to update.
2. In the right-hand panel:  
    **Unique label** (read-only) identifies the object.  
    **Locked** checkbox prevents deletion; leave checked for core messages.  
    **Properties** view shows the JSON structure (nodes you can select to edit).  
    **Language** tabs let you switch between existing translations.
3. **Clone translations from** To copy all existing text from another language into your current locale (without translating), open the “Select” dropdown, pick the source language (e.g. English), and click **Clone**. This instantly duplicates those fields as-is.
4. **Translating flow** To programmatically generate translations, click **Translate** in the drawer header, then choose your provider (OpenAI, etc.) from the **Integration** dropdown. The system will pull translated strings and populate every field.
5. Manually tweak any node in the JSON tree as needed.
6. Click **Save** to apply changes.

**To search for a text:** Start typing its label in the **Search** field.

<p class="callout info">**Tip:** Cloning and translating are independent—feel free to clone first and then auto-translate, or translate first and use cloning to reset individual entries.</p>

##### Adding a New Text

**To add a new text and its translations:**

1. Click on the +**Add Text** button in the upper right corner.
2. Fill out the **Unique label** and check or uncheck **Locked**.
3. Populate the **Properties** JSON structure by selecting nodes and entering content for each (e.g., title, description).
4. Switch to your target language tab, then either **Clone** or **Translate** into it.
5. Add a plain-text **Title** and **Description** at the bottom for summary display.
6. Click **Save**—your new text appears as a card.

##### Unlocking &amp; Deleting Texts

By default, new texts are created as **Locked**—they cannot be deleted. **To unlock a text**:

1. Go to the text editing tab.
2. Uncheck the **Locked** checkbox.
3. Click **Save**.

**To delete text:**

1. Make sure it is not locked. Back on the main **Texts** page, click the **Delete** (trash) icon on the unlocked card.
2. Click the **Delete** icon next to the corresponding text.
3. Confirm deletion.

<p class="callout warning">**Warning**: Locked texts cannot be removed. Only unlock when you’re certain the text is obsolete.</p>

##### Best Practices &amp; Conclusion

1. **Lock** critical system messages to avoid accidental removal.
2. **Review** auto-translations for tone and accuracy.
3. **Audit** periodically to prune unused texts and trim JSON nodes.
4. **Coordinate** with your dev team: ensure labels here map to code references.

By centralizing rich-text management, your CRM stays cohesive, fully localized, and easy to update—without code deployments or scattered copy files.