> For the complete documentation index, see [llms.txt](https://help.blings.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.blings.io/apps/blings-studio/connectors/text-connector.md).

# Text Connector

Use the Text Connector when a text layer should change based on viewer data, a shared control, a direct edit, or custom logic. Typical uses include names, greetings, product labels, prices, personalized scripts, and campaign-specific copy.

<figure><img src="/files/huFUnDRBQ6ZyldOYmph3" alt="Text connector detail panel with edit value, template text, fallback, resize trigger, alignment, casing, and internal description controls" width="375"><figcaption></figcaption></figure>

## Options

| Option                   | What it controls                                                      | Notes                                                                                   |
| ------------------------ | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Text layer**           | The Studio text layer affected by the connector.                      | Confirm the selected layer is the visible text layer, not a hidden helper layer.        |
| **Data source**          | A Dynamic Data field, Live Control value, direct edit, or expression. | Use Dynamic Data for viewer-specific text and Live Control for shared operational copy. |
| **Edit value**           | Text stored directly in the connector.                                | Use this for fixed copy that business users may need to change from Platform.           |
| **Template text**        | Static text mixed with field tokens, such as `Hey ${first_name}!`.    | Use when only part of the sentence is dynamic.                                          |
| **Expression**           | JavaScript that returns or controls the text value.                   | Use only when data, edit values, or template text cannot express the logic.             |
| **Default or fallback**  | The text shown when the source value is empty or unavailable.         | Keep the fallback short enough to fit the design.                                       |
| **Variants**             | Alternate text states when the connector supports variants.           | Preview every variant that can appear in production.                                    |
| **Resize trigger**       | A breakpoint that adjusts text size when content is too long.         | Test with the longest realistic value, not only the average value.                      |
| **Alignment**            | How the replacement text sits inside the original text area.          | Confirm alignment in both short and long values.                                        |
| **Text case**            | Formatting such as all caps, lowercase, title case, or sentence case. | Use formatting when the source data may arrive with inconsistent casing.                |
| **Platform editing**     | Whether the value appears in Platform Edit Content.                   | Enable only when operators should update the copy outside Studio.                       |
| **Internal description** | A note explaining what the connector controls.                        | Useful when the same scene contains several text connectors.                            |

## Text Case Options

| Case option       | Example input                    | Example output                   |
| ----------------- | -------------------------------- | -------------------------------- |
| **All caps**      | `welcome back`                   | `WELCOME BACK`                   |
| **All lowercase** | `Welcome Back`                   | `welcome back`                   |
| **Title case**    | `welcome back`                   | `Welcome Back`                   |
| **Sentence case** | `welcome back. view your offer.` | `Welcome back. View your offer.` |

## Configure Dynamic Text

{% stepper %}
{% step %}

### Select the Text Layer

Open the scene in Studio and select the text layer that should become dynamic.
{% endstep %}

{% step %}

### Choose the Source

Choose Data for viewer-specific copy, Edit for fixed replacement copy, Live Control for shared operational text, or Expression for custom logic.
{% endstep %}

{% step %}

### Add Template Text When Needed

If only part of the sentence is dynamic, combine static text with field tokens. For example, `Hey ${first_name}!` uses the `first_name` field while keeping the greeting fixed.
{% endstep %}

{% step %}

### Set Fallback and Formatting

Add fallback copy, then configure casing, alignment, and resize behavior so long or missing values do not break the scene.
{% endstep %}

{% step %}

### Validate Edge Cases

Preview with normal values, long values, empty values, different languages when relevant, and any text variants used by the project.
{% endstep %}
{% endstepper %}

## Success Checks

Before publishing a Text Connector, confirm:

* The data field or live-control value resolves in Studio preview.
* The fallback copy is readable and fits the design.
* Long values do not overlap neighboring layers.
* Casing rules do not damage names, acronyms, product names, or localized copy.
* Platform editing is enabled only for text that should be operator-editable.

{% content-ref url="/pages/vF3GOo8viXK19zuT75hD" %}
[Data in Studio](/apps/blings-studio/data.md)
{% endcontent-ref %}
