Catalogues
Catalogues are your Organization's reusable creative elements. They are the raw material the campaign matrix is built from, so the same segment, product, or message can drive many campaigns without being retyped.
What works today
The catalogue library works end to end: catalogues with declared fields, catalogue items with descriptions, asset links, and soft-deletes. Importing catalogue items from external sources is covered on the Feeds page.
Catalogues are your lists
A catalogue is a named list you define, like "Segments", "Products", or "Cities". You create as many as you need and order them. A list has to be empty before you can delete it. You can also create one on the spot while connecting a feed, instead of making the list first.
A catalogue also declares its fields: an ordered set of named fields (say Colour, Price) that every item in the list fills. You define them once on the catalogue and reorder them. Each field can be filled from a feed column and used as a storyboard token, so the same field name flows from the list to the matrix to the script.
Catalogue items are the entries
A catalogue item is one entry in a list. Each item has:
- A name.
- The values for the catalogue's declared fields.
- A description: what the item is, also used to steer the prompts that use it.
- Optional linked assets, for example a product's image.
Lookup fields
A field can look its value up in another catalogue. Point a field at a second catalogue (its lookup catalogue), and the item whose name matches the field's value lends its own description and fields to the storyboard, one level deeper.
Say a Products catalogue has a product_type field holding WALL_LAMP or DESK_LAMP. You keep a second catalogue, Product prompts, whose items are named WALL_LAMP and DESK_LAMP, each carrying a prompt field with a detailed generation prompt. Set product_type's lookup to Product prompts, and the storyboard gains {{Products.product_type.prompt}}, resolving per combination to the prompt of the matching item.
The rules are short:
- Match by name. The value is matched to the lookup catalogue item whose name equals it, ignoring surrounding spaces and letter case. If two items share the name, the oldest one wins.
- A miss uses the value itself. When nothing matches, every dotted token (
{{Products.product_type.prompt}}and the rest) falls back to the raw value, so a typo shows up as plain text instead of blocking generation. The miss is flagged in the UI. A matched item that leaves one of its fields empty resolves that token to an empty string, again without blocking anything. - One hop only. The matched item's own lookup fields do not chain: you get its plain field values, not a lookup of a lookup.
The base token {{Products.product_type}} still resolves to the raw value (WALL_LAMP), unchanged. Because the lookup reads live catalogue facts, editing a prompt in Product prompts changes what an unrendered combination resolves to, never a creative you have already rendered.
Image link fields
A field can be typed Image link instead of plain text. Paste an image's web address into it and, on save, Klyo downloads the image into your asset library as a read-only synced asset and links it to the item, exactly as a feed's image column works. The address stays the field's value, so its {{variable}} keeps resolving to the raw link. The same address is downloaded once and reused across items and re-saves. If the link cannot be fetched or does not point at an image, the save still goes through and the editor tells you which field could not resolve; fix the address and save again. An Image link field cannot also be a lookup field.
Linking assets
You can link one or more assets to a catalogue item, in bulk, and unlink them again. The picker also takes a fresh upload on the spot, including by dragging a file straight onto it, so linking a new product shot does not mean a trip to the asset manager first. If a linked asset is later deleted, the link is marked unresolved so the gap shows rather than disappearing.
Deleting keeps history
Deleting a catalogue item is a soft delete. The item is tombstoned rather than erased, because campaigns, axes, and frozen combination packages may still refer to it. Deep links to a deleted item still resolve, so nothing dead-ends.
How catalogues feed the matrix
In a campaign you add a catalogue as an axis. Klyo then multiplies the axes together to produce the matrix of combination packages. You can use a whole catalogue or a curated subset on any given axis. See Campaigns.
What you can do today
- Create, rename, reorder, and delete catalogues, and declare each catalogue's fields.
- Create, edit, and soft-delete catalogue items with field values and a description.
- Search a catalogue by name; long lists page so a feed-sized catalogue stays usable.
- Link and unlink assets, in bulk.
- Reuse the same catalogue items across many campaigns.
- Populate catalogue items automatically from a feed.

