Placeholders connect the elements on your canvas to real product data — titles, prices, images, ad copy, reviews — so one template can generate a unique ad for every product in your catalog. This article covers binding an element, writing expressions, and the advanced settings that control exactly which content a placeholder is allowed to use. For the full list of available fields, see Available placeholders.
Placeholders
How to bind a Studio element to product data using expressions and placeholder chips, set up fallbacks and fallback elements, decide which content is required, and configure advanced per-placeholder settings like content reuse, approval, and tagging.
Updated October 15, 2026
Binding an element#
Select a text, image, video, or audio element (shape and frame elements can't hold a placeholder directly) and open the Properties tab. A Binding section appears — press + to create a placeholder for that element.
Once a placeholder exists, its expression is an editable field that mixes literal text with placeholder chips — click into it and start typing, or open the placeholder menu (the down-arrow at the end of the field, described below) to insert a reference to a product field. For example:
{{Title}} - Shop your gear at Renable! - {{Average review score}} of {{Review scale}} from {{Number of reviews}} reviewers
When the template renders for a specific product, this resolves into something like:
Seagate Game drive PS5 4TB - Shop your gear at Renable! - 5 of 5 from 4 reviewers
Removing a binding (the Remove action in the Binding section) deletes the placeholder from the element entirely; the element falls back to its static content.
The placeholder menu#
The down-arrow at the end of an expression field opens the placeholder menu. It's the same menu in Studio bindings and automations, a channel's Fields and Rules tabs, and prompts. (A catalog's Mapping and Rules tabs list your feed's columns instead, as a plain list.)
Searching#
The search field is ready as soon as the menu opens — just type. A search looks at each placeholder's name and description, at the name Google gives the field (sale_price, gtin), and at common words for it: "inventory" finds Stock count, "barcode" or "ean" finds GTIN, "sku" finds ID and "url" finds Link. When a placeholder matches on a word other than its name, the row says which ("matches inventory").
Use ↑ and ↓ to move through the list and Enter to insert. Tab and Shift+Tab jump from group to group, and Enter on a group's header folds or unfolds it. Esc clears the search; with the search empty, Esc closes the menu.
Groups#
Placeholders are grouped by topic, always in the same order, and listed alphabetically inside each group. A text field shows Product, Price & stock, AI copy, Reviews, Product details, Custom attributes, Identifiers, Catalog and Advanced. Image and video fields start with the media: Processed images (Product image and the other image categories, plus Image template and Image gallery), Feed images (Image link and Additional image link — your feed's own images) and Video, followed by Advanced. A field only shows the groups that hold something of its type — an image field has no Video group, for example.
Identifiers, Catalog and Advanced start folded. Click a group's header to open or fold it; the number beside it is how many placeholders it holds. A search opens every group.
Where a value comes from#
Each row has a small marker saying where its value comes from:
- From your feed — the value as your feed gives it, after the catalog's rules have run.
- Calculated — worked out from values in your feed, such as Discount amount and Discount percentage.
- Catalog settings — taken from the catalog's settings, such as Catalog name and Currency symbol.
- Added by Renable — content Renable adds: AI-written copy, processed images, reviews, videos and templates.
The chips under the search field filter by it: All, From your feed (which includes calculated values and catalog settings) and Added by Renable. Each chip shows how many placeholders it would list for the current search.
The strip at the bottom of the menu describes the highlighted placeholder: its name, where its value comes from, the name Google gives the field when it has one, and what it inserts.
Custom attributes#
Custom attributes lists the attributes your catalogs carry beyond the standard fields — energy_efficiency_class, custom_label_0 and the like — by the name your feed gives them. In Studio these are the attributes of the catalogs in the project picked in the Preview panel; on a channel or a prompt, of the catalogs it reads products from. When an attribute isn't in every one of those catalogs, its row says how many have it ("1 of 3 catalogs").
Click an attribute to insert it. Its chip reads Attribute: and the name (for example Attribute: energy_efficiency_class), and products that don't have the attribute leave it empty.
For an attribute that isn't listed — one you've only just mapped, say — choose Use another attribute… at the end of the group and type its name exactly as your feed spells it. If a search matches nothing at all, the menu also offers Use your search as a custom attribute. An attribute name can't contain <, > or =. In Studio with no project picked in the Preview panel, the group offers only Use another attribute….
The same group appears in a condition's field menu, in a template's automations and a channel's rules, so a condition can test a custom attribute. It compares the attribute's value as text, and a product without the attribute reads as empty, so is blank is true for it.
Example values#
When you've picked a sample product, each row shows what it would insert for that product, on the right, and the strip at the bottom repeats it ("For this product: …"). An image placeholder shows a small picture, and a placeholder holding several values shows the first with "+2 more". The sample product is the one picked in Studio's Preview panel, the sample product on a channel's Fields or Rules tab, or the sample product on a prompt. Without one, the strip says "Pick a sample product to see an example."
The examples only show what's already stored for the product — opening the menu never writes copy, renders a template or uses credits. So some rows have no example:
- empty — the placeholder exists for this product but inserts nothing.
- not fetched yet — Renable hasn't fetched its own copy of this feed image yet. It does so the first time a template or prompt needs it.
- No value at all — nothing is stored for this product ("Not set for this product."), or the placeholder isn't stored on the product, like a template or the Placeholder option ("No example: this isn't stored on the product.").
On a channel, the examples are what the channel writes: Image link is your feed's own image address, exactly as the feed gives it. In Studio and prompts, Image link is Renable's own copy of that image.
Fallbacks#
Not every product has every kind of content. Add a fallback so the placeholder tries something else when its primary source is missing — click the ⋮ menu at the end of the expression field and choose Add fallback. The option appears once the expression holds a placeholder: text you type is never missing, so a fallback under it could never be used. For example, a placeholder can try the Short title field first, and fall back to the regular product Title if a short title isn't available. You can stack several fallbacks in priority order.
A placeholder's fallbacks try other content inside the same element. To show a different element instead, with its own position and layout, use a fallback element.
Missing content#
When a placeholder can't find content anywhere in its fallback chain, that's "missing content." Missing content on a product usually means some required creative is absent for that product, and you'd typically want to pause that product from running in ads — done with an automation on the channel, not in the template itself (see Channel automations). Otherwise you risk publishing an ad that looks broken or incomplete.
Sometimes missing content is fine. You can allow it two ways:
- Add a final, empty fallback (an empty expression at the end of the chain).
- Click the placeholder chip and turn off "Require content for this placeholder" in the settings that open (this label reads "Fallback to the next placeholder..." instead, if the chip already has a fallback chained after it). Once it's off, the chip shows a small icon confirming it's OK for this content to be missing.
The same switch exists one level up, for a whole element: see Require content for this element.
Fallback elements#
A fallback element is another element that's shown in an element's place when that element is missing content or hidden. Use one when what a product has should decide the layout: a lifestyle photo when the product has one, and a product image laid out differently when it doesn't.
The element tries itself first, then each of its fallbacks in order, and shows the first one that's available: not hidden, laid out in the size you're looking at, and not missing content. The others are hidden. A fallback is an element of its own, with its own position and size in every size, its own binding and, for a frame, its own content. So a frame can be the fallback of a frame, which is how one template holds two whole layouts. A fallback is drawn in its element's place among the layers.
When none of them can be shown and at least one of them is missing content, the element is missing content, just like a placeholder whose fallbacks all came up empty. If Require content for this element is off, it's hidden instead (see below).
Adding a fallback#
- In the Elements panel, right-click the element, or one of its fallbacks, and open Add fallback. The new fallback goes right after the row you clicked. Duplicate as fallback makes a copy of the row you clicked, named after the element it falls back for with "fallback" added, for you to change. Under Fallback to, pick another element at the same level to become the fallback. An element that's already a fallback, or that has fallbacks of its own, isn't offered.
- In the Properties panel, the element's Missing content section offers the same choices behind its + button (Add fallback), with Fallback to… opening the list of elements. A fallback added there goes last.
In the Elements panel, a fallback is listed at the same level as its element, right after the element and everything inside it, because it's drawn instead of the element rather than inside it. A line in the left margin joins the element to its fallbacks, with a round arrow icon on each of them. Hovering a fallback's icon says which element it stands in for: "Fallback of the element — shown in its place when the element is missing content or hidden". Folding a frame hides what's inside it, not its fallbacks.
The fallbacks are tried from top to bottom. Drag a fallback above or below another fallback of the same element to change the order, or use the up and down arrows next to it in the Missing content section. Another element can't be dropped between an element and its fallbacks; dropped just below the last fallback, it's placed after the element and all of its fallbacks. To turn a fallback back into an ordinary element, choose Detach from the element's name in its right-click menu, or Detach in its Missing content section, or drag it onto an ordinary row. A detached fallback is placed right after its element.
A few rules keep fallbacks simple:
- A fallback can't have fallbacks of its own.
- A fallback sits at the same level as its element, in the same frame.
- In a size where a fallback has no layout, it's skipped.
- Deleting an element deletes its fallbacks with it.
- Copying or duplicating an element doesn't copy its fallbacks: the copy has none. Everything inside a frame is copied, including the fallbacks of the elements in it.
- Duplicating a fallback makes an ordinary element, placed right after its element in the Elements panel.
Designing a fallback on the canvas#
The canvas normally shows the element itself. The round icons in the Elements panel say which one it draws: the filled icon is the one on the canvas, and an outlined icon is one it isn't showing. To design a fallback, click its icon (Show this on the canvas), or pick its round button under Fallbacks in the Missing content section. The icon you clicked turns blue. Click it again to go back to what the preview shows, or pick the round button of the one the canvas would show anyway. This only changes what you see while editing: every product still gets the first of them that's available.
While the Preview panel shows a product that's missing the element's content, the canvas shows that product's fallback. To design the element itself anyway, click its own icon or pick This element: it's drawn without the missing content. Picking another product in the Preview panel goes back to what each product gets.
Hiding an element with the eye icon in the Elements panel is different: a hidden element is skipped for every product, so its fallback is shown in every ad.
With a product picked in the Preview panel, the canvas shows what that product gets. In the Elements panel, the ones it doesn't show, and everything inside them, are greyed like hidden elements.
Fallback elements and automations#
Automations run first, then fallback elements. In other words: automations decide what each element shows and whether it's available, fallbacks pick the first available element, and whatever required content is still missing makes the product missing content. That gives these results:
- A hidden element is skipped. A HIDE on an element sends the design on to its fallbacks, even for a product that has the element's content. That's how you say "when the product is on sale, use the other layout".
- SHOW never rescues missing content. An element that's missing content is skipped even when an automation shows it. Only a SET that gives it content brings it back.
- Adding a fallback changes what an existing HIDE does. An automation that hid the element used to leave its place empty; once the element has a fallback, the fallback is shown there instead.
- A fallback shows only when its turn comes. A SHOW on a fallback does nothing while an element before it is available.
- To leave the place empty, hide the element and all of its fallbacks, or put them in a frame and hide the frame. Hiding only the one that's shown just moves the design on to the next.
- An automation that checks the Missing content placeholder runs before fallbacks are chosen, so it still counts content that a fallback stands in for.
Require content for this element#
Every element has a Require content for this element switch, in the Missing content section of the Properties panel. It's on by default: when something the element needs is missing content and no fallback stands in, the product is missing content. Turn it off and the element is hidden instead. As the caption under the switch puts it: "Off: hide this element when its content is missing instead of reporting missing content."
It's the same idea as the placeholder's Require content for this placeholder switch, one level up. The placeholder's switch says one piece of content may be missing. The element's switch says the whole element may go. An element only goes missing because of content that's required, so a placeholder with its own switch off never makes its element missing.
Set on a frame, it hides the frame and everything inside it when anything inside is missing content. Set on a fallback, that fallback is skipped when it's missing content and the next one is tried. Whether the product is missing content when none of them works is decided by the switch on the element the fallbacks belong to.
In a frame with a Column, Row or Grid layout, the other elements close up the space a hidden one leaves (see Frame layouts).
Example: a layout that follows the product's images#
A square ad with two looks. A product with a lifestyle photo gets it on the left, its product image in the upper right, and the text below that. A product without one gets its product image on the left and the text beside it, centred. No automations are needed.
- Build the first look in a frame named "Two images": an image bound to Lifestyle image on the left, and on the right a frame with a Column layout holding an image bound to Product image and the text below it.
- In the Elements panel, right-click "Two images", open Add fallback and choose Duplicate as fallback. Rename the copy "One image".
- Click the round icon on the "One image" row so the canvas shows it. Delete its lifestyle image. In the Elements panel, drag its product image out of the column frame, then put it on the left and centre the text beside it. Click the icon again to go back to "Two images".
- Optionally, select the product image inside "Two images" and turn off Require content for this element. A product with a lifestyle photo but no product image then keeps the "Two images" look, and the text takes the product image's place in the column. Without this step, such a product is missing content, because both looks need the product image.
What each product gets:
- A lifestyle photo and a product image: "Two images".
- No lifestyle photo: "Two images" is missing content, so "One image" is shown in its place.
- Neither: "One image" is missing content too, so the product is missing content, and you can keep it out of your ads with a channel automation.
Advanced placeholder settings#
Click any placeholder chip to open its settings. These apply per-placeholder, so you can mix strict and lenient placeholders in the same template:
- "Reuse the same {content} as other placeholders used" — on by default, so multiple placeholders of the same kind (for example two "Reason to buy" placeholders) all pull the same piece of content. Turn this off to give each placeholder a different item instead — it goes missing once the available content runs out. Useful for building a list of several distinct reasons to buy, images, or reviews.
- "Only use content approved by a human" — restrict this placeholder to only use content a human has explicitly approved, giving you full editorial control over what AI-written or AI-selected content reaches ads. Approve content from a project's Content page — see Reviewing and approving content.
- "Skip content flagged by quality checks" (images only today) — skip content that failed an automatic quality check. Flagged content is normally still used in your ads; turn this on when you'd rather this placeholder fall back than risk a poor result. Approving the content clears the flag and makes it usable again. See Reviewing and approving content.
- "Only use images set as primary" (images only) — restrict to the single primary image your catalog feed designates for the product, ignoring any other gallery images or AI-generated alternatives.
- "Use content from the project" — point the placeholder at content stored on the project instead of on the product (company taglines, brand reviews, and similar shared assets), useful as a shared fallback across all products.
- "Only content with one of these tags" — restrict the placeholder to only consider content tagged with one or more specific tags. Content is only picked up by a placeholder that explicitly names its tag, which lets you, for example, prewrite seasonal copy with a prompt and activate it in a template only when you add that tag to the relevant placeholder (or automatically via an automation).
- "Only content in these languages" — restrict the placeholder to content written in one or more specific languages.
The two approval settings — "Only use content approved by a human" and "Skip content flagged by quality checks" — are about choosing between existing pieces of content, so they don't appear on a chip that renders an ad template into a channel field (a design block's image or video, for example). Nothing is chosen there: the ad is drawn for each product from the template you picked. Approve the content the template itself pulls in instead, on the placeholders inside that template.
Transforming a value with steps#
A placeholder's value can go through steps before it's used — replace text, change its case, do some maths, format a date, split it into a list and filter it, and more. Click the chip, then + Add step (or the Add transform step icon at the top of its settings), and pick a step from Text, Numbers or Lists. Steps run in order, top to bottom; drag them to reorder, and with a sample product picked each step shows what it produces. These are the same steps a catalog uses on its feed, and every one of them is described in Steps: changing a value before it is used.
Formatting prices and other numbers#
A number is written exactly as it is unless a Format number step says otherwise — the rule is explained in Languages and localization. When you insert a price, a discount or an average review score into an expression, its chip comes with a Format number step already in place: two decimals for prices and discount amounts, no decimals for a discount percentage, and one for an average review score. Click the chip to change it:
- Round to decimals — how many decimals to show. Leave it empty (As is) to keep the number's own decimals.
- Decimal separator and Thousands separator — each starts on the separators of the catalog's language. In Studio the menu names the preview catalog's, for example Catalog language (sv-SE: 4 490,50), and reads Catalog default with no preview catalog picked; either way each catalog's ads use its own language's. Pick a separator here to override it for this one placeholder.
Steps run in order, so anything that changes the number — a Math step, say — goes before Format number, and text steps such as Replace go after it. Format number turns the number into text, so a Math step after it has to read that text back and can get it wrong. The same "+ Add step" menu holds every other step too — Replace, Trim whitespace, Build text, Split and the rest; see Steps: changing a value before it is used.
A Math step calculates with a fixed number or with another field: type the number into its box, or pick the field there instead — for example Price minus Sale price gives the saving. Type a number with a dot or a comma as the decimal separator; thousands separators and units are not read, so 1,5 is one and a half, 1.000 is one, and 1 000 or 12 kr isn't a number. When you leave the box, the number shows the way it was read (1,50 becomes 1.5). If what you type isn't a number, the box says so and nothing is saved. If the other field has no value for a product, the result is empty and the placeholder's fallback is used. The field you pick can have steps of its own, which is how you calculate part of a formula first. Format the result with a Format number step after the Math step; the field you calculate with cannot be formatted first.
Two steps calculate with dates: Date difference counts the days (or another unit) between the placeholder's date and another date such as Today's date, and Shift date moves a date forward or back. How they count, time zones, and what a date that changes every day costs in renders are explained in Working with dates.
Review stars are the exception: an Average review stars or Review stars placeholder has a Show half stars switch in its settings instead of a step, which rounds the score to the nearest half star rather than a whole one. A new Review stars placeholder starts with it on, a new Average review stars placeholder with it off. Golden emoji stars always show whole stars, so the switch only matters with Show golden emoji stars off.
Aimée can set bindings for you#
You don't have to build every expression by hand — you can ask Aimée, in the same chat drawer used everywhere in Studio, to bind an element to a specific field, add a fallback, or restrict a placeholder to approved content, and she'll edit the binding directly. She can also add fallback elements and switch Require content for this element on or off. See Working with Aimée.
Next steps#
- Available placeholders — the full reference of fields you can bind to
- Automations — show, hide, or override placeholder values based on conditions
- Energy class icons — a worked example combining placeholders and a Replace step