# Symbol Swapping

When you need more than just content variation between content versions, symbol swapping can help create completely customizable designs.

## Symbol Type Key

{% hint style="info" %}
A type key is a content key that represents a symbol's type.
{% endhint %}

By enabling the type key on a symbol instance, you can specify the symbol's type by the value of the key. The value is represented by the name of the symbol to use.

## Swapping Symbol Instances

Enabling the Type Key will create a key to target a symbols key. The value of the key is the name of the symbol to use for the symbol instance.

![](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-key-simple-01359bb85c9be388cbb38bfde320b2be0d0e773d4ce08e6421a9aa9f3fdb1518.png)

In the case above, `Title Card 1.type` will be the type key and it will be given the value of **Simple Card** (which is the name of the symbol). By changing the value in the spreadsheet, you can change the type of the symbol instance per version.&#x20;

## Swapping Nested Symbol Instances

The same principle can be applied to nested symbols. The main symbol will have a symbol override type key which can be used to change the nested symbol's type.

![](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-key-override-dca37a5530cd27e0b09667d18a27810e7195692bcb26aad510b80f872c2545d8.png)

## &#x20;Example

In the simple chatbot example there are two symbols: **bot\_message** and **person\_message**.

![](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-example-bot-symbols-86328f7f3fee98705c7b50ea6ff792b28301985d3f27b0e4987dd49e02dd9499.png)

The base design has multiple of these symbols to demonstrate of conversation with three messages.

![](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-example-bot-version-1-f9e665f789c674fdbae02671043cb93906c988dee6c0babeda9176357f6917e3.png)

&#x20;With the type key enabled, doing a push would result in the following spreadsheet:

| Key            | V1           |
| -------------- | ------------ |
| message-1.type | bot\_message |
| message-2.type | bot\_message |
| message-3.type | bot\_message |

We can quickly create two new versions:

| Key            | V1           | V2              | V3              |
| -------------- | ------------ | --------------- | --------------- |
| message-1.type | bot\_message | bot\_message    | person\_message |
| message-2.type | bot\_message | person\_message | bot\_message    |
| message-3.type | bot\_message | bot\_message    | person\_message |

Now, when we sync, the type of each symbol instance will be updated to the content version:

![Syncing V2 changes the symbol instance types.](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-example-bot-version-2-9737b2a060358522b0de1909cbe2f766d210dec976834da90d413f145dbe9788.png)

![Syncing V3 changes the symbol instance types.](https://www.contentsync.com/assets/docs-features/sketch-symbol-type-example-bot-version-3-582a9ac053d8eccf4d8788d8eb64736486406f70c39bf666aa2566be0c290ab6.png)

This shows how the content versions can be used for more than just content but also design. By switching symbols you can create highly customizable content versions.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.contentsync.com/plugins/sketch-plugin/features/symbol-swapping.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
