> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: July 10, 2026

# Reusing content with snippets

*Snippets* are common chunks of content that you can share across your emails, text messages, and more.

## Creating Snippets

You can create snippets [through our API](/integrations/api/app/#operation/updateSnippets) or in the Customer.io UI. To simplify things, let’s create your first snippet in the UI.

1.  Under **Create content**, click **More** > **Snippets**.
    
    [![Snippets in the left navigation menu](https://docs.customer.io/images/snippets-menu.png)](#04e4ef930aedc407be1626337c767223-lightbox)
    
2.  Click **Create New Snippet**.
3.  Enter a *Name* and *Value* for the snippet. The liquid tag you’ll use to reference the snippet automatically updates as you enter name and value.
    
    [![Create a new Snippet](https://docs.customer.io/images/snippets_create_new.png)](#8efb07425b5f1ab7984feee673ce1f7a-lightbox)
    
     Avoid spaces in snippet names
    
    While snippet names can contain spaces, we recommend using underscores or hyphens to separate words, so they’re easier to use in messages and less prone to errors.
    
4.  Click **Save**.

[![List Snippets](https://docs.customer.io/images/snippets_list.png)](#254f715ef322d8b17386bc8d665c3944-lightbox)

## Using Snippets

You can use snippets anywhere that you can use liquid, including layouts, email bodies, subjects, slack messages, and more. Reference a snippet using `{{snippets.<name_of_your_snippet>}}`. If your Snippet name contains spaces, you can use bracket notation instead:

`{{snippets.address}}` `{{snippets["main address"]}}`

[![Using Snippets](https://docs.customer.io/images/snippets_usage.png)](#57a5e6947372571acd7acee0112f6a3b-lightbox)

 Did you just update a snippet?

If you just updated a [snippet](/messaging/liquid/snippets/) used in your messages, make sure you wait a couple of minutes before activating your workflow to ensure all updates appear in your delivered messages.

## Advanced Example

You can store JSON data in a snippet, and use liquid to iterate over the JSON. For example, here’s a snippet `{{snippets.random_greetings}}` containing an array of objects, each object representing a random greeting:

```fallback
[
  {
    "version": "0",
    "greeting":"How is your day going?"
  },
  {
    "version": "1",
    "greeting":"Hope your week is going well."
  },
  {
    "version": "2",
    "greeting":"Hey there!"
  },
  {
    "version": "3",
    "greeting":"Hope your day is going great so far."
  }
]
```

You can use JSON dot notation to access variables in your snippet. You can also display a random greeting from the snippet in your message using the following liquid code:

```fallback
{% capture randomize%}{% random 3 %}{% endcapture %}
{% for g in snippets.random_greetings%}
  {% if g.version == randomize %}
    {{g.greeting}}
  {% endif %}
{% endfor %}
```

## Frequently asked questions

1.  **Can I use Liquid within a Snippet?** Yes, liquid within a snippet will render in your message normally. For example, adding `{{customer.id}}` to your Snippet content will show a person’s `id` attribute wherever you use your snippet. You can even store liquid in JSON objects and strings, helping you store variable information. (You cannot store liquid in a JSON array in a snippet. Liquid inside a JSON array will simply render as text when you use your snippet.)

Note that you shouldn’t use profile liquid in snippets for anonymous messages because anonymous messages don’t have a profile to resolve against. If you want to use a snippet in an anonymous message, you should keep it free of profile data. If you use a snippet in both identified and anonymous messages, you should add a fallback to any profile liquid so it degrades gracefully—for example, `{{customer.first_name | default: "there"}}`. The fallback shows whenever the attribute is missing, including in anonymous messages.

 Snippets can’t reference variables from a message body

While snippets can contain liquid, you cannot reference variables that you set in the message body. Message body variables are out of the snippet scope and won’t code be parsed.

1.  **Can I change the name of a Snippet?** No, you cannot change the name of a snippet. To use a different name, copy the snippet body and create a new snippet.
2.  **Can I use HTML in a Snippet?** Yes! HTML in a snippet renders normally in anywhere where HTML is allowed. Just make sure that you intend to use a snippet in a place that renders HTML first. For example, HTML in a subject line will not render. If you use a snippet including HTML in your subject line, your audience will see raw code.
3.  **Is there a size limit for a snippet?** Yes, the default max size for an individual snippet is 16 KB, which can be increased on a case-by-case basis. The sum of all snippets in a workspace must be less than 5 MB. Contact [win@customer.io](mailto:win@customer.io) to request an increase.

*   *   [Creating Snippets](#creating-snippets)
    *   [Using Snippets](#using-snippets)
    *   [Advanced Example](#advanced-example)
    *   [Frequently asked questions](#frequently-asked-questions)

Copy page

Copy page [Download .md](/messaging/liquid/snippets.md)

Is this page helpful?

![](https://docs.customer.io/images/export-success.png) ![](https://docs.customer.io/images/export-failure.png)

# How can we make it better?

Close

Do you need help from Customer.io support?  No  
 Yes

What part of Customer.io do you need help with? 

How can we improve this page?

Email (optional):  Please provide a valid email address

 I am not a bot

 

We appreciate your feedback!

Our support team will contact you as soon as possible
