---
source: "https://docs.lumora.live/templates/upload"
url: /templates/upload.md
description: >-
  How to upload templates to a Lumora workspace: OGraf bundles as .zip or
  folder, and Lottie animations as .json or .lottie files.
---

# Uploading a template

## OGraf

* What is OGraf (the EBU standard: https://ograf.ebu.io)
* Building with an AI assistant? The [lumora-ograf skill](/skills/install) interviews you, builds the template, previews it and packages the .zip
* Click Assets > User Templates > drag and drop .zip file to the modal to upload
* Graphic will be auto generated using the details in manifest.ograf.json
* Lumora supports the following vendor parameters in your manifest (all prefixed `v_lumora_` per the OGraf vendor-field convention):
  * `v_lumora_category`: sets the category the graphic appears under in Lumora
  * `v_lumora_fieldType` (property-level): override the field type for a schema property. Values: `team`, `teamLogo`, `player`, `statsplayer`, or `countdown-duration`
  * `v_lumora_label` (property-level): override the display label for a schema property
  * `v_lumora_column` (property-level): control which column a field is placed in (number)
  * `v_lumora_multiline` (property-level): force a string property to render as a multi-line text area (`true`)
  * `v_lumora_defaultHidden` (property-level or on a custom action): start the field or action hidden on the control form; the operator can reveal it with **Edit layout** (`true`)
  * `v_lumora_columns` / `v_lumora_columnLabels`: number of control-form columns and their header labels
  * `v_lumora_order` (custom action): position of the action within its column
  * `v_lumora_customPanel`: path to a custom HTML panel file (relative to the template root) to use instead of the auto-generated control form
* Standard OGraf schema keywords are honoured too, including every standard `gddType` (`single-line`, `multi-line`, `file-path`, `file-path/image-path`, `select`, `select-multiple`, `color-rrggbb`, `color-rrggbbaa`, `percentage`, `duration-ms`), `label`, `description`, `order`, `gddOptions` (`labels`, `extensions`), and the `minLength` / `maxLength` / `pattern` / `minimum` / `maximum` / `multipleOf` constraints (shown as hints, never enforced)
* The standard `hidden: true` on a property does not hide it from the control form. In OGraf it only means the value is left out of display labels other OGraf apps build for the graphic, and Lumora builds no such labels, so the field shows like any other. To keep a field off the form by default, use `v_lumora_defaultHidden`

## Lottie

* Click Assets > User Templates > drag and drop lottie .JSON file to the modal to upload
* This will open the Lottie configuration modal
* Give the graphic a name & description
* Specify the in & out animation points and if the graphic should loop between
* Select which text and images should be controllable
* Click "Save Changes" to add the template to your workspace
* If you require dynamic text, disable "Glyphs" and enable "Bundle fonts" and "Inline fonts" when exporting from AE using the Bodymovin plugin
