> For the complete documentation index, see [llms.txt](https://help.craftsmanplus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.craftsmanplus.com/play/catalogue/quickstart.md).

# Quickstart

This guide walks you through the complete process of creating a catalogue, populating it with content, connecting it to a PLAY project, and publishing it live — all in one sitting.

By the end, you'll have a working dynamic creative powered by Catalogue.

***

#### What You'll Need

Before you start, make sure you have the following ready:

* **A CRAFTSMAN PLAY project** — either a new or existing playable. It should have at least one text layer, image layer, or URL that you want to make dynamic.
* **Your content variants** — the different text, images, or links you want to display under different conditions (e.g., English vs. French headlines, or different CTA buttons for iOS vs. Android).

***

### **Step 1: Create a New Catalogue**

{% stepper %}
{% step %}

### Open the Catalogue Tab in CRAFTSMAN STUDIO

From the Studio dashboard, click the **Catalogue** tab in the left-hand navigation. This is where all of your catalogues live — separate from any individual project.
{% endstep %}

{% step %}

#### Click "Create Catalogue"

Give your catalogue a descriptive name that reflects its purpose. For example:

* `Q3 Campaign – Language Variants`
* `Holiday Promo – Device + Region`
* `Always-On – Weather Creatives`

A good naming convention helps when you're managing multiple catalogues across campaigns.
{% endstep %}
{% endstepper %}

You'll now be inside the **Catalogue Editor** — a spreadsheet-like interface where you'll define your columns, rows, and content.

> For a deeper look at the editor's layout and toolbar, see [Understanding the Catalogue Editor](/play/catalogue/catalogue-editor/understanding-the-catalogue-editor.md).

***

### **Step 2: Define Your Columns**

Columns are the backbone of your catalogue. There are two types:

* **Condition Columns** define *when* a row is active (e.g., Language = French, Device = iOS).
* **Content Columns** define *what* is displayed when that row is active (e.g., headline text, button image, CTA link).

{% stepper %}
{% step %}

### Click on an empty header cell (top row) to add a column

A dropdown menu will appear, letting you choose the column type.
{% endstep %}

{% step %}

### Add your condition column(s) first

Select from the available condition types: **Language**, **Device**, **Time**, **Location**, or **Weather**.

Give each column a clear name — for example, `Language` or `Device::Platform`.

{% hint style="info" %}
Start simple. If your first catalogue is a language-based campaign, a single **Language** condition column is all you need. You can always add more conditions later.
{% endhint %}
{% endstep %}

{% step %}

### Add your content column(s)

Select the content type that matches what you're swapping in the creative:

* **Text** — for headlines, CTAs, body copy
* **Image** — for button graphics, backgrounds, product shots
* **URL** — for CTA links, App Store URLs, landing pages

Name each column to match the layer it will control (e.g., `headline_copy`, `cta_button_image`, `store_link`).
{% endstep %}
{% endstepper %}

**Example setup for a language-based campaign:**

| Language *(condition)* | headline\_copy *(text)* | cta\_button *(image)* | store\_link *(url)*     |
| ---------------------- | ----------------------- | --------------------- | ----------------------- |
| English                | Play Now                | `play_en.png`         | `https://store.link/en` |
| French                 | Jouez Maintenant        | `play_fr.png`         | `https://store.link/fr` |
| Spanish                | Jugar Ahora             | `play_es.png`         | `https://store.link/es` |

> For the full list of supported condition values (languages, regions, device types, time presets, weather categories), see [Condition Columns](/play/catalogue/catalogue-editor/header-cells/condition-columns.md).

***

### **Step 3: Add Your Row Data**

Each row represents a single **variant** — one combination of conditions and the content that should display when those conditions are met.

{% stepper %}
{% step %}

### Click into a condition cell and double-click to open the selection menu

The menu shows all valid options for that condition type. Start typing to filter (e.g., type `"fra"` in a Language column to quickly find "French").

Click an option to select it. You can select multiple values in a single cell — they operate on an **OR** basis, meaning the user only needs to match *one* of them.
{% endstep %}

{% step %}

### Fill in the content cells for each row

* **Text cells:** Type or paste your copy directly.
* **Image cells:** Paste an image URL or upload from the asset library.
* **URL cells:** Paste the full URL (e.g., `https://apps.apple.com/...`).

The editor validates each cell as you type. If you see a warning icon, check that the value matches the expected format for that column type.
{% endstep %}

{% step %}

### Add more rows as needed

Each new row is a new variant. Add as many as your campaign requires — Catalogue is designed to handle hundreds or even thousands of rows without impacting creative file size.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Don't forget a fallback.** If a user's conditions don't match any row in the catalogue, the creative will fall back to the original layers in your PLAY project. Make sure your project's default layers work as a sensible fallback.
{% endhint %}

> For more detail on how cells validate and format, see [Cell Validation](/play/catalogue/catalogue-editor/cell-validation.md).

***

#### Step 4: Link the Catalogue to Your Project

Now that your catalogue has data, it's time to connect it to a PLAY project.

{% stepper %}
{% step %}

### Open your project in CRAFTSMAN PLAY

This can be a new project or an existing one — Catalogue works with both, no migration required.
{% endstep %}

{% step %}

### Go to Project Settings

Click the **gear icon** in the top-right corner of the editor.
{% endstep %}

{% step %}

### Enable the "Link Catalogue" toggle

Click **"Select Catalogue"** to see a list of all catalogues in your Studio workspace.
{% endstep %}

{% step %}

### Choose the catalogue you just created

After selecting it, you'll be prompted to select which **conditions** the project should use from the catalogue.

For example, if your catalogue has both Language and Device columns but this particular project only needs Language, you can select just that one.
{% endstep %}
{% endstepper %}

Your project is now **data-aware** — it knows the catalogue exists and which conditions to listen for.

> See [Linking a Catalogue to a Project](/play/catalogue/connecting-your-project/linking-a-catalogue-to-a-project.md) for more detail.

***

### Step 5: Map Layers to Catalogue Columns

Linking the catalogue tells the project *where* the data is. Mapping tells it *which layers* should use that data.

{% stepper %}
{% step %}

### Select the layer you want to make dynamic

Click on the layer in the canvas or Layers panel (e.g., your headline text layer).
{% endstep %}

{% step %}

### Open the Dynamic Content section in the Layer Properties panel

Enable the **Dynamic Content** toggle at the top of the properties panel, then click to expand it.
{% endstep %}

{% step %}

### Click the "+" icon and choose "Catalogue"

{% hint style="info" %}
Choose **"Catalogue"** specifically — not the individual condition options like Time, Device, or Language. Those are for the legacy Dynamic Content system.
{% endhint %}
{% endstep %}

{% step %}

### Select the content column to map

A dropdown will show all available content columns from your linked catalogue. Pick the one that corresponds to this layer — e.g., map `headline_copy` to your headline text layer.
{% endstep %}

{% step %}

### Map additional layer properties if applicable

Some layers support multiple mappings. For example, a button layer might map its **image** to one catalogue column and its **Launch URL** to another. Additional dropdowns will appear automatically when more properties are available.
{% endstep %}
{% endstepper %}

Mapped layers display a **dynamic content icon** in the Layers panel so you can always see which layers are connected at a glance.

{% hint style="info" %}
**Remember:** Catalogue only swaps the *content* — text strings, image sources, and URLs. All styling (font, size, color, position, effects) stays exactly as you designed it in the project. You design once, and the catalogue handles the rest.
{% endhint %}

> See [Content Swapping Logic](/play/catalogue/connecting-your-project/content-swapping-logic.md) for the full details on what gets replaced and what's preserved.

***

### **Step 6: Preview and Test**

Before publishing, confirm that your mappings are working correctly.

{% stepper %}
{% step %}

### Open Preview Mode in CRAFTSMAN PLAY

Any edits you've made in the Catalogue Editor will be reflected here immediately — no publishing needed for preview.
{% endstep %}

{% step %}

### Use the condition selector to cycle through variants

Select different condition values (e.g., `Language = French`, `Device = Android`) and watch the mapped layers update in real time.

Verify that the correct text, images, and URLs appear for each combination.
{% endstep %}

{% step %}

### Test the fallback

Try a condition combination that doesn't match any catalogue row. The creative should fall back to its original default layers.
{% endstep %}
{% endstepper %}

> See [Testing and Previewing Catalogue Content](/play/catalogue/testing-and-previewing.md) for the full testing workflow.

***

### Step 7: Publish

Once you've confirmed everything looks correct, it's time to publish.

Catalogue has three publishing states, and you'll typically move through them in order:

| State       | What it does                                         | When to use it                         |
| ----------- | ---------------------------------------------------- | -------------------------------------- |
| **Preview** | Reflects edits instantly inside the PLAY editor only | While building and iterating           |
| **Draft**   | Updates all internal and client-facing Share Links   | For QA rounds and stakeholder review   |
| **Live**    | Updates all exported and running creatives           | When approved and ready for production |

{% stepper %}
{% step %}

### Click "Publish Draft" in the Catalogue Editor toolbar

This pushes your catalogue data to all **Share Links** for connected projects. Send these links to your team or client for review.
{% endstep %}

{% step %}

### Once approved, click "Publish Live"

This pushes the data to **all live, exported creatives** connected to the catalogue. There's no need to re-export — the update happens dynamically the next time the creative loads.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Live publishing replaces the previous production version.** Every project linked to the catalogue will begin using the new data immediately. If you need to roll back, you'll need to update the catalogue data and publish again.
{% endhint %}

> See [Preview, Publishing, and Live Updates](/play/catalogue/publishing-states.md) for a deeper dive into each state.

***

#### Recap

Here's what you just accomplished:

1. **Created a catalogue** in CRAFTSMAN STUDIO with condition and content columns.
2. **Populated it with variant data** — different content for different user contexts.
3. **Linked the catalogue** to a PLAY project and selected the active conditions.
4. **Mapped individual layers** to catalogue content columns.
5. **Previewed and tested** that the right content appears under the right conditions.
6. **Published** — first as a Draft for review, then Live for production.

Your creative is now dynamic, scalable, and updatable without ever re-exporting. Need to add a new language or swap out a seasonal image? Just update the catalogue and publish.

***

#### What's Next?

* **Add more conditions** — combine Language + Device + Location for hyper-targeted variants.
* **Connect more projects** — a single catalogue can power multiple campaigns at once.
* **Use AI Auto-Translate** — generate multi-language text variants directly from the Catalogue Editor toolbar.
* **Explore the full** [**Catalogue Editor**](/play/catalogue/catalogue-editor.md) **documentation** for advanced features like cell validation and bulk editing.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.craftsmanplus.com/play/catalogue/quickstart.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
