> 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-platform/catalog.md).

# Catalog

Catalog stores reusable rows of structured data that can be referenced by a project. Use it when the MP5 experience needs a managed list of products, plans, offers, store locations, loyalty tiers, recommendations, or other repeatable records.

Catalog has two parts:

* **Dynamic Data schema** defines the catalog item and the fields every row should contain.
* **Catalog rows** store the actual reusable records that Platform users can create, edit, duplicate, preview, and save.

{% hint style="info" %}
The Catalog page only becomes editable after the project has a catalog item in **Settings > Dynamic Data**. If the schema is missing, Catalog shows setup guidance and an **Open Dynamic Data** button.
{% endhint %}

<figure><img src="/files/FFvBWueysxGfwfO9vnNZ" alt="Catalog page showing a Products table with GlowElixir, PureFuel, and CalmRoot Sleep Drops rows"><figcaption><p>A saved `products` catalog with product images, recommendation copy, category, price, URL, and row actions.</p></figcaption></figure>

## When to Use Catalog

Use a catalog when the same kind of record appears in several places or changes independently from individual viewer data.

| Use case                   | Catalog example                                                          | How the MP5 can use it                                                                                      |
| -------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| E-commerce recommendations | Products with name, image, price, category, URL, and recommendation copy | Show the best product for a viewer, update product details centrally, and route clicks to the product page. |
| Offers and promotions      | Discount code, headline, expiry date, legal copy, and CTA URL            | Rotate campaign offers without changing each viewer record.                                                 |
| Plan comparison            | Plan name, monthly price, included features, and upgrade link            | Present the right subscription plan based on viewer segment.                                                |
| Store or branch lookup     | Location name, address, manager, opening hours, and map URL              | Personalize local store information in the video.                                                           |
| Loyalty tiers              | Tier name, points threshold, perk image, and reward text                 | Show the viewer's current tier or next-tier benefit.                                                        |

## Create a Catalog Item

{% stepper %}
{% step %}

### Open Dynamic Data

In the project, go to **Settings > Dynamic Data**.

<figure><img src="/files/RUpscY3OUW7YBbKZ2Ehh" alt="Dynamic Data toolbar with Add Catalog Item"><figcaption><p>Use Add Catalog Item to create the schema section that powers Catalog rows.</p></figcaption></figure>
{% endstep %}

{% step %}

### Add the Catalog Item

Select **Add Catalog Item** and name the catalog item after the row type, such as `products`, `plans`, `offers`, `locations`, or `loyalty_tiers`.

For an e-commerce recommendation catalog, use a clear item name such as `products`.

<figure><img src="/files/ijYn0Kh16PlsnZ9myEEb" alt="Add catalog item modal with products entered as the catalog item name"><figcaption><p>The catalog item name creates the section that appears under `catalog` in Dynamic Data.</p></figcaption></figure>
{% endstep %}

{% step %}

### Define the Row Fields

Add fields under the catalog item so every row has the same structure. A product recommendation catalog commonly includes:

| Field                 | Type           | Example value                             |
| --------------------- | -------------- | ----------------------------------------- |
| `name`                | Text           | `CalmRoot Sleep Drops`                    |
| `image`               | Image URL      | Product image URL                         |
| `price`               | Text or number | `29 USD`                                  |
| `category`            | Text           | `Sleep support`                           |
| `url`                 | Link           | Product detail page URL                   |
| `recommendation_copy` | Text           | `Best for winding down after a long day.` |
| {% endstep %}         |                |                                           |

{% step %}

### Review the Schema Example

Use code mode when you want to paste or review a full JSON example for the catalog fields.

<figure><img src="/files/yl76nJaKQ4jJrP0KMmGQ" alt="Dynamic Data code mode showing catalog products fields in JSON"><figcaption><p>Code mode can show the `catalog.products` schema with fields such as `name`, `image`, `price`, `category`, `url`, and `recommendation_copy`.</p></figcaption></figure>
{% endstep %}

{% step %}

### Save the Schema

Select **Save** in Dynamic Data. After the save completes, open **Catalog** from the project navigation.
{% endstep %}
{% endstepper %}

## Add Catalog Rows

After the schema exists, use the Catalog page to manage the records.

{% stepper %}
{% step %}

### Choose the Catalog Item

Open **Catalog** and select the item type you created, such as `products`.
{% endstep %}

{% step %}

### Create a Row

Add a new row and fill every required field. For an e-commerce shop, one row might be:

| Field                 | Value                                                  |
| --------------------- | ------------------------------------------------------ |
| `name`                | `CalmRoot Sleep Drops`                                 |
| `image`               | Product image URL or uploaded product image            |
| `price`               | `29 USD`                                               |
| `category`            | `Sleep support`                                        |
| `url`                 | `https://your-store.com/products/calmroot-sleep-drops` |
| `recommendation_copy` | `Best for winding down after a long day.`              |

<figure><img src="/files/VIk3ydnOC34Iqj0lytbd" alt="New products item modal with fields for name, image, price, category, URL, and recommendation copy"><figcaption><p>Each catalog row uses the fields defined in Dynamic Data.</p></figcaption></figure>
{% endstep %}

{% step %}

### Add More Recommendations

Create additional rows for the other recommended items the video may show.

| `name`                 | `category`      | `price`  | `recommendation_copy`                    |
| ---------------------- | --------------- | -------- | ---------------------------------------- |
| `GlowElixir`           | `Skin care`     | `19 USD` | `For a glowing skin throughout the day`  |
| `PureFuel`             | `Energy`        | `25 USD` | `Fuel up with clean energy`              |
| `CalmRoot Sleep Drops` | `Sleep support` | `29 USD` | `Best for winding down after a long day` |
| {% endstep %}          |                 |          |                                          |

{% step %}

### Save and Preview

Save the catalog rows. Use **Simulate** to preview the viewer experience with a test persona and confirm that the correct row values appear in the MP5.
{% endstep %}
{% endstepper %}

## Saved Catalog View

After the rows are saved, the Catalog page shows a table for the catalog item. In the `products` example, the table includes the row ID, `name`, `image`, `recommendation_copy`, `category`, `price`, `url`, and row actions.

Use the row actions to edit an item, duplicate it, or delete it. Use **Create products item** to add another product row with the same field structure.

## Example JSON

Use this structure when planning a product recommendation catalog with a developer or when preparing sample data before building the schema:

```json
{
  "catalog": {
    "products": {
      "name": "CalmRoot Sleep Drops",
      "image": "https://cdn.your-store.com/products/calmroot-sleep-drops.webp",
      "price": "29 USD",
      "category": "Sleep support",
      "url": "https://your-store.com/products/calmroot-sleep-drops",
      "recommendation_copy": "Best for winding down after a long day"
    }
  }
}
```

The catalog item defines the fields. The Catalog page stores the actual rows, such as `GlowElixir`, `PureFuel`, and `CalmRoot Sleep Drops`.

## Catalog Management

Common catalog actions include:

* **Create** rows for new products, plans, offers, locations, or tiers.
* **Edit** rows when a name, price, image, CTA link, or description changes.
* **Duplicate** rows to create similar recommendations quickly.
* **Preview** row values before testing the full MP5 experience.
* **Save** after changing the schema or row data so the project uses the latest catalog values.

{% content-ref url="/pages/tcTMJOKSy05H4hRxVQ8F" %}
[Data, Catalog, and Forms](/apps/blings-platform/data-catalog-and-forms.md)
{% endcontent-ref %}

{% content-ref url="/pages/VkH17x1J2SH1VmvzEgwU" %}
[Simulation](/apps/blings-platform/simulation.md)
{% endcontent-ref %}


---

# 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://help.blings.io/apps/blings-platform/catalog.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.
