> For the complete documentation index, see [llms.txt](https://docs.limio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.limio.com/product/settings/config-settings/templates-and-custom-attributes.md).

# Templates and Custom Attributes

As mentioned in our [Config Settings](/product/settings/config-settings.md) guide the Config tab in Limio contains the Templates which are core to how Limio Catalog works.

A template defines the set of attributes available for the Offers, Products, Segments and Tags.

{% hint style="info" %}
**Config hierarchy — two levels to know:**

* **Config > \[Object]** (e.g. Config > Products) — where you define any attributes for that object type.
* **Config > \[Object] > \[Template name]** (e.g. Config > Products > Default) — a template. This controls which attributes appear on objects using that template.
  {% endhint %}

{% hint style="info" %}
**Changes not showing?** After saving config or template changes, do a hard refresh to clear the cached layout: **Mac** Cmd+Shift+R · **Windows/Linux** Ctrl+Shift+R
{% endhint %}

You can add new templates in the config section of the catalog using the add icon under specific hierarchy. Make sure to select default in the dropdown while saving the new template as this is the baseTemplate.

<figure><img src="/files/wP4HUFiPwjju2hLLgyG0" alt=""><figcaption></figcaption></figure>

*Screenshot: Adding an offer template.*

<figure><img src="/files/z7tsyAqpfAupvlxXycQV" alt=""><figcaption></figcaption></figure>

*Screenshot: Adding the name and saving the new template.*

## **How to display an Attribute on a Template**

You can then select the attributes that you want on the template by clicking on the checkboxes next to the attributes and save the changes. These selected attributes will be visible on the template configured.

<figure><img src="/files/12MUDNDqFqrGA6htRplO" alt=""><figcaption></figcaption></figure>

*Screenshot: Selecting the attributes for the template.*

## **How to create new Custom Attributes**

{% hint style="info" %}
These changes are **self-service** — you don't need to contact support to add or modify attributes.
{% endhint %}

To modify a Template, go to Config and click a folder such as Offer. Scroll to the bottom and press the (+) button. You can then create a new field with:

* A name (see warning below)
* A label (editable)
* A type (editable): String, Numeric, Boolean, Picklist, Status, Chevron, Price, Date, Colour, Hidden, Rich Text and Multi-Picklist

{% hint style="warning" %}
**The attribute Name is permanent** — it cannot be changed after saving. Choose it carefully. The Label can be edited at any time.
{% endhint %}

These fields are now available for any templates to use.

For **Picklist** and **Multi-Picklist** attributes, you also need to configure the available options after creating the attribute. See [How to manage picklist options](#how-to-manage-picklist-options) below.

<figure><img src="/files/GhIOtV7RbI2NGS5XoOwP" alt=""><figcaption></figcaption></figure>

## **Attribute validation with JSON Schema**

From Release 116, if an attribute definition includes a **JSON Schema**, Limio validates values against that schema whenever a catalog item is saved — whether the save comes from the Limio app, the API, or an AI tool connected through the [Limio MCP](https://docs.limio.com/ai/mcp-server/mcp-server). Invalid values are rejected with an error describing what is wrong.

This matters most for catalog changes made outside the app UI: the UI's field-level guardrails (dropdowns, inline validation, custom editors) don't apply to API or MCP edits, so the attribute schema is what enforces the correct data shape there.

Attributes without a schema keep the existing basic type validation, so nothing changes for your current templates unless you add schemas to them.

## **How to manage picklist options**

Picklist and Multi-Picklist attributes have a separate set of options (values) that users can select. These are managed at the **top-level config** (e.g. Config > Products), not inside a template.

{% stepper %}
{% step %}

### Navigate to the top-level config

Go to **Config > \[Object type]** — for example, **Config > Products**.

Make sure you are at the object level, **not** inside a template (e.g. not Config > Products > Default).
{% endstep %}

{% step %}

### Find the picklist attribute

Scroll through the attribute list to find your Picklist or Multi-Picklist attribute.
{% endstep %}

{% step %}

### Expand the options

Click the **chevron icon (▶)** on the right-hand side of the attribute row. The current picklist options expand below the attribute.
{% endstep %}

{% step %}

### Add or remove values

* Click the **+ icon** below the options list to add a new value. Type the label and save.
* Click the **− icon** next to an existing value to remove it.
  {% endstep %}
  {% endstepper %}

## **How to hide Custom Attributes in Limio for Salesforce**

It is possible to hide custom attributes in Limio for Salesforce so that they are not visible to agents assisting customers. To do this, slide the "Hide in Limio for Salesforce" toggle.

* By default custom attributes are not hidden in Limio for Salesforce.
* Named attributes cannot be hidden in Limio for Salesforce.

<figure><img src="/files/npKHICULCUpeBnsEY3El" alt=""><figcaption></figcaption></figure>

## **How to select a Template on an object**

Go to the object (e.g. offer) and press 'Select Template' to see a dropdown of your available templates.

<figure><img src="/files/BGOPEscTqWqKD5xsEzNF" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Removing an attribute from a template** hides it in the Limio UI but does **not** delete the existing data on objects that previously had a value for it. If you re-add the attribute to the template, the old values will reappear. The data travels with the object, not the template.
{% endhint %}

## **How to create Sections for a Template**

You can now define sections for offer templates under the "Sections" tab. Here is an example:

<figure><img src="/files/CZkEiQpkWc8IrhZ6qtkp" alt=""><figcaption></figcaption></figure>

You can then assign attributes to the different sections here:

<figure><img src="/files/RzSNWqG9HLDAdK4w9Z2l" alt=""><figcaption></figcaption></figure>

This will then be displayed on the actual offer (that has an OfferBase template in this case) like this:

<figure><img src="/files/gpaDD8DgJGotCiO2Hnpb" alt=""><figcaption></figcaption></figure>

## **How to define Default Values for a Template**

For the **attribute default**, you are able to set the default value per attribute when you click on the **Edit Default Value** button for each attribute.

<figure><img src="/files/zO6dHOYUYjZSmvlzo5et" alt=""><figcaption></figcaption></figure>

What this means is that for example if we create a new offer from scratch and we select the OfferBase template, it will automatically fill in all attributes based on the default values that we set up in the template.

<figure><img src="/files/yDL7VF8WjTd2dZwnUKEU" alt=""><figcaption></figcaption></figure>

**Does it only work for newly created objects?**

Yes, it will only on creation of new objects.

**Is the default applied when duplicating objects?**

No, duplicating an object will retain the value of the initial object.

**If a default value is updated, does it update existing objects?**

No, the default value is only applied upon creation of an object.

Any questions? Ping us an email at [support@limio.com](https://blog.limio.com/support/catalog-how-to-work-with-templates/support@limio.com) and we'll be happy to help.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.limio.com/product/settings/config-settings/templates-and-custom-attributes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
