Skip to content

Core Concepts

Understanding a handful of concepts will make the rest of the documentation click. Each term maps directly to something you interact with in the product.

A workspace is your top-level container. Every account gets a personal workspace automatically. If you upgrade to a Team plan you can also create team workspaces and invite colleagues.

Everything — projects, templates, API keys — lives inside a workspace. See Personal vs Team Workspaces.

A project groups related templates together. Think of it as a campaign or a product: a “Summer Sale” project might contain a coupon template, a gift card template, and a social-media banner — all sharing the same visual identity.

Projects can be Private (only you) or Shared (all members of your workspace). See Projects Overview.

A template is a single canvas — one design at a specific size. It is what you create and edit in the Designer. A project can hold multiple templates (for example, the front and back of a card).

Templates contain elements arranged on a canvas, optional variable bindings, and metadata like name and description.

An element is any object you place on the canvas: a shape, a text box, an image, an icon, a QR code, or a barcode. Elements have properties (position, size, color, font, etc.) and can optionally be bound to a variable.

A variable is an element you mark as dynamic. At render time the element’s entire value is replaced with real data — a customer name, a discount code, a product image URL. Zandovi labels such an element {{variable_name}}; that label is a badge, not inline text you type.

Variables live on elements, one variable per element: a text element becomes {{first_name}}, a QR code element becomes {{redemption_url}}. See What Are Variables.

A render is the act of producing a final image (PNG, JPEG, WebP, or PDF) from a template, with variables filled in. You can render:

  • One image at a time — from the Designer’s Generate dialog, or via the API with a single request.
  • In bulk — upload a CSV of rows and Zandovi generates one image per row.

See Generating & Exporting.

Workspace
└── Project
├── Template A ←── Elements (text, shapes, images …)
│ └── Variables ({{name}}, {{code}} …)
└── Template B

A render takes one template + one set of variable values and produces one image.