Skip to content

What Are Variables

A variable is an element you mark as dynamic. Instead of a fixed value, its content is supplied at render time — from the Generate dialog, a CSV file, or an API request. A single template then produces personalized images at any scale.

Zandovi variables work at the element level, not inside text. When you mark a text element as a variable, its entire text content is replaced by the value you supply. The same applies to image, QR code, and barcode variables — the whole element’s value is swapped.

There is no inline {{...}} interpolation. Typing a mix of static text and a token — like Hello, {{first_name}}! — does not work: the {{first_name}} is not substituted, and the literal characters render as-is. To produce “Hello, Sarah!” you either:

  • make the whole text element the variable and pass the full value Hello, Sarah!, or
  • split it into two elements — a static Hello, next to a first_name variable.

The {{variable_name}} you see in the app — the element’s header badge, and the text drawn on the canvas when a variable has no default — is just how Zandovi labels a variable element. It is not something you type into the text content.

Element typeVariable typeWhat it controls
TextTextThe string content
Image VariableImageThe image URL
QR CodeQRThe data / URL encoded in the QR
BarcodeBarcodeThe data encoded in the barcode

You bind an element to a variable with the switch in the Variable section at the top of the Properties panel (Variable for text, Use as variable for images, QR codes and barcodes), or by placing an image placeholder with the Image Variable tool. See Creating a Variable.

Without variables, a template is a static image — everyone gets the same output. With variables, a single template produces personalized images at any scale:

  • Coupons — unique discount codes per customer.
  • Gift cards — recipient name, balance, expiry date.
  • Certificates — awardee name, course title, date.
  • Event tickets — seat number, attendee name, QR check-in code.
  • Loyalty cards — member ID barcode, points balance.

Variables appear in the Generate dialog, where you can fill them in manually for single renders. For bulk rendering, you supply values in a CSV file. For programmatic rendering, you pass them in the API request body. See Generating & Exporting.