> For the complete documentation index, see [llms.txt](https://docs.contentsync.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.contentsync.com/plugins/sketch-plugin/features/symbol-swapping.md).

# 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.
