# Elements

Organize and tag your offloads with custom metadata elements – like `Location` or `Project` – to review your added transfers.

![](/files/tX7jzCJQMf2qoIEHESkR)

Use any elements you create alongside automatically populated elements – such as `Source Name`, `Date`, and `Counter` – to create folder paths, rename files, and set Labels. OffShoot logs all elements and their values in the Transfer Log, Event Log, and Media Hash List.

![](/files/eM7zSM9UOVbZpVdKeM06)

## How to use

1. Go to `Settings > Organize`.
2. Use the `➕` button to create a custom element.
3. Drag elements to `Auto Label`, `Rename Files`, and `Create Folders`.
4. Set up a Source and Destination, review your elements, then start your Transfer.

{% hint style="info" %}
You can also create elements by typing curly brackets `{ }` (e.g. `{Project}`), then pressing `[Enter]`.
{% endhint %}

![Create a new element](/files/JykQVuZrmE2MSz5YayVL)

![Remove an element by clicking the ⌄ down arrow button and choose "Remove"](/files/SmiWTmGs3ZZ7wRpT9CBc)

![Use elements in Auto Label, Rename Files and Create Folders](/files/mOUYwO3wAAq09M2QaC5n)

OffShoot lets you review all used elements when you set up a transfer. If you used any custom elements, OffShoot automatically displays the Review panel before a transfer. Didn't use any custom elements? You can still access the Review panel before a transfer. In the `Disks` menu `Command-1`, click the up arrow button (`⌃`) in the lower-right corner to review any auto-populated elements.

{% hint style="info" %}
Clicking an [Auto Label](/offshoot/features/labels.md#auto-labels) also opens the Review pane.
{% endhint %}

![Click the  ⌃ up arrow button to open the Review panel](/files/4i6iH1LsQDViBpgqYJ0s)

If you're using presets, you can toggle the Review panel by choosing `Review Preset` from the Preset dropdown.

![](/files/UUjAHci1jleU9eKhy0W3)

By default, all entered information is saved until you quit OffShoot. Want to start fresh? Right-click anywhere in the `Review Preset` panel and choose `Clear`.

![](/files/WQXggGp8mJjIkCZQ0EDY)

## Logging & Integrations

All elements and their values are logged in the Transfer Log, Event Log, and Media Hash List. They can also be used in the Foolcat, iconik, and SCRATCH integrations.&#x20;

```
OffShoot 26.1 (1481) - macOS 26.1

Source: /Untitled
Destination: /T1/Project X/2021_12_24/Amsterdam/A001

Preset: 22.1 CAM A | Review
Counter: 001
Date: 24/12/2021
Location: Amsterdam
Project: PRX

Started: 01/01/2026, 09:15:11
...
```

```
01/01/2026, 09:15 - File copy completed: {
    "FileCopyCompleted_bytesCopied" = 232656229;
    "FileCopyCompleted_destinationPath" = "/Volumes/T1/PRX/Amsterdam/2021-12-24/A001";
    "FileCopyCompleted_duration" = "1.180007";
    "FileCopyCompleted_checkpointMode" = Off;
    "FileCopyCompleted_presetName" = "22.1 CAM A | Review";
    "FileCopyCompleted_sourceInfo" = { 
	"Counter" = "001", 
	"Date" = "20211224", 
        "Location" = "Amsterdam", 
        "Project" = "PRX" };
    "FileCopyCompleted_sourcePaths" = "/Volumes/Untitled";
    "FileCopyCompleted_startedAt" = 20260101113108;
    "FileCopyCompleted_state" = Success;
}
```

```
<?xml version="1.0" encoding="UTF-8"?>
<hashlist version="1.1">
    <hedge>
        <rootPath>/Volumes/T1</rootPath>
    </hedge>
    <sourceInfo preset="22.1 CAM A | Review">
	<sourceinfofield name="Counter">001</sourceinfofield>
	<sourceinfofield name="Date">2021-12-24</sourceinfofield>
        <sourceinfofield name="Location">Amsterdam</sourceinfofield>
        <sourceinfofield name="Project">PRX</sourceinfofield>
    </sourceInfo>
```

## Pro Preset

{% hint style="info" %}
This feature requires an OffShoot Pro license. Upgrade via the [License Manager](https://account.hedge.video), or via OffShoot > Settings > License. Check out all Pro features [here](https://hedge.video/offshoot/pro-features).
{% endhint %}

### Preset Builder

Create more powerful presets, with custom elements and settings, using the online [Preset Builder](https://preset-builder.hedge.video).

{% hint style="info" %}
An OffShoot Pro license is required to use presets created by the Preset Builder.
{% endhint %}

Pro Presets let you:

* Control the order in which elements appear
* Use dropdown elements
* Use hidden elements
* Create one file with multiple presets
* Give elements default values
* Save entered values in the preset&#x20;
* Add iconik settings elements

### Pro preset file

A `.hedge` preset is formatted as a JSON file and can be opened in any text or code editor.

{% file src="/files/RNL7roM5Kx0ttVfERyxm" %}
pro preset example
{% endfile %}

To install the preset, double-click the `.hedge` file. OffShoot will launch, and install the preset in `~/Library/Preferences/Hedge/Presets/`.

#### Structure&#x20;

A `.hedge` preset file consists of one array with one or more preset objects (in JSON format).&#x20;

```
[{
    "name" : "Production X - CAM A",
    "description": "",
    "version" : "1.0",
}]
```

<table><thead><tr><th>Name</th><th width="223.33333333333331">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>Single preset: no<br>Multiple presets: yes<br></td><td>If you don't specify a <code>name</code>, OffShoot will use the file name as the preset name. Required when defining multiple presets in one file.</td></tr><tr><td><code>description</code></td><td>no</td><td>Currently unexposed in OffShoot. </td></tr><tr><td><code>version</code></td><td>yes</td><td>Should always be set to <code>1.0</code> </td></tr></tbody></table>

#### Elements

The `sourceReviewElements` array contains all elements that will appear in the Review pane when adding a source.

```
"sourceReviewElements": [
  { "name": "{Project Name}", "type": "text", "defaultValue": "" },
  { "name": "{Project ID}", "type": "text", "defaultValue": "" },
]
```

The `clipReviewElements` array contains all elements that will appear in the Clip Review pane when adding the transfer.

```
"clipReviewElements": [ 
    { "name": "{Subject}", "type": "text", "defaultValue": "" }, 
    { "name": "{Notes}", "type": "text", "defaultValue": "" }, 
]

```

**Element properties**

<table><thead><tr><th width="209.33333333333331">Name</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>yes</td><td>The name of the Element. Must be unique and enclosed in curly brackets <code>{ }</code>.</td></tr><tr><td><code>type</code></td><td>yes</td><td>The type of the Element: <code>text</code>, <code>date</code>, <code>select</code>, <code>counter</code>, or <code>hidden.</code></td></tr><tr><td><code>defaultValue</code></td><td>yes</td><td>The default value of the Element. </td></tr><tr><td><code>value</code></td><td>no</td><td>Holds the value that has been entered in OffShoot when adding tranfers.</td></tr><tr><td><code>options</code></td><td>required for <code>select</code> elements</td><td>Holds an array of select objects. </td></tr></tbody></table>

**Element types**

There are five Element types:

| Type        | Description                                                                                                                                                                                                                                     |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| t**ext**    | A normal text input field.                                                                                                                                                                                                                      |
| **date**    | A date picker. Uses the Language & Region set in System Preferences. The value will be formatted as {YYYY}-{MM}-{DD}. To use a different format in `labelPattern` , `renamePattern` or `folderPattern` use `{YYYY}`,`{MM}` and `{DD}` elements. |
| **select**  | A dropdown with multiple values.                                                                                                                                                                                                                |
| **counter** | A text input field with a number that auto increments every time the preset is used.                                                                                                                                                            |
| **number**  | A text input field that accepts only numerical values.                                                                                                                                                                                          |
| **hidden**  | A hidden field that does not show up in the form.                                                                                                                                                                                               |

```
    "sourceReviewElements" : [
      { "name" : "{Project Name}", "type" : "text", "defaultValue" : ""},
      { "name" : "{Date}", "type": "date", "defaultValue" : ""},
      { "name" : "{Location}", "type" : "select", "defaultValue" : "",
        "options" : [
          { "name" : "", "value" : "" },
          { "name" : "Adam", "value" : "Adam" },
          { "name" : "Rome", "value" : "Rome" }
        ]
      },
      { "name" : "{Reel}", "type" : "counter", "defaultValue" : "0001" },
      { "name" : "{Preset ID}", "type" : "hidden", "defaultValue" : "0293840293" }
    ],
```

All Element types can have a `defaultValue` set, with the exception of `date` . The `defaultValue` displays when the Source Review form's first used or when clearing the form. By default, the `date` element uses the date set in `Preferences > General > Date:`.

Values entered when tranfers are added are saved as a `value` property in the preset file..

```
{ "name" : "{Project Name}", "type" : "text", "value": "Project X, "defaultValue" : ""},
```

#### Dropdown

`select` Elements have an extra `options` property that holds all the dropdown options.

```
  { "name" : "{Location}", "type" : "select", "defaultValue" : "", "value" : "",
    "options" : [
      { "name" : "", "value" : "" },
      { "name" : "Adam", "value" : "Adam" },
      { "name" : "NY", "value" : "030" }
    ]
```

{% hint style="info" %}
Tip: Leave the first option blank to make selecting a value an active choice.
{% endhint %}

#### Organize settings

You can define the following organize settings in a preset:

<table><thead><tr><th width="257">Setting</th><th width="108">Type</th><th width="97">Required</th><th>Description and example</th></tr></thead><tbody><tr><td><code>doNotCopyFiles</code></td><td>Array</td><td>no</td><td>Files with these file extensions will be transferred. e.g. <code>[".thumbs", "XML"]</code> cannot be combined with <code>copyOnlyFiles</code>.</td></tr><tr><td><code>copyOnlyFiles</code></td><td>Array</td><td>no</td><td>Only files with these file extensions will be transferred. e.g. <code>[".mp4", "mov"]</code> cannot be combined with <code>doNotCopyFiles</code>. When both properties are defined, <code>doNotCopyFiles</code> will be used.</td></tr><tr><td><code>ignoreEmptyFolders</code></td><td>Boolean</td><td>no</td><td>When <code>true</code>, empty folders will not be transferred.</td></tr><tr><td><code>ignoreBundles</code></td><td>Array</td><td>no</td><td>Bundles with these names have their file size checked. If the name matches and they're larger or smaller than the size specified, they won't be transferred. e.g. <code>[ "AVCHD&#x3C;2MB" ]</code></td></tr><tr><td><code>flattenFolders</code></td><td>Boolean</td><td>no</td><td>When <code>true</code>, the Source's folder structure is flattened. Duplicate filenames will be renamed with a counter.</td></tr><tr><td><code>labelPattern</code></td><td>String</td><td>no</td><td>Sets the Auto Label pattern for this preset. <code>{Metadata}</code> elements, excluding <code>{Filename}</code> and <code>{File date}</code> elements, can be used. This label will be used in the transfer log name and picked up by the <code>{Source Name}</code> element.</td></tr><tr><td><code>renamePattern</code></td><td>String</td><td>no</td><td>Renames all files with the specified format. <code>{Metadata}</code> elements including <code>{Filename}</code> can be used here.</td></tr><tr><td><code>folderPattern</code></td><td>String</td><td>no</td><td>Create destination folders with a specified format. <code>{Metadata}</code> elements, excluding <code>{Filename} and {File date}</code>elements, can be used. Use <code>/</code> to create a folder path.</td></tr><tr><td><code>dontAllowRepetitionAndTrim</code></td><td>Array</td><td>no</td><td>Specify characters that should be trimmed and checked for repetition in <code>labelPattern</code>, <code>renamePattern</code>, and <code>folderPattern</code>. Especially useful when not all elements have a value.</td></tr></tbody></table>

```
    "doNotCopyFiles": ["xml", ".thumb"],
    "copyOnlyFiles": ["mov", "mp4", "mxf"],

    "ignoreEmptyFolders" : false,
    "ignoreBundles": ["AVCHD<1MB"],
    "flattenFolders" : true,
    
    
    "labelPattern" : "{Location}_{Card}",
    "renamePattern" : "{Project Name}_{Date}__{Location}_{Card}__{Clip Location}_{Rating}_{File YYYY}{File MM}{File DD}{File hh}{File ss}__{File Counter}",
    "folderPattern" : "{Project Name}/{Date}/{Location}/{Card}",
    
    "dontAllowRepetitionAndTrim" : ["_", "/"],
```

#### Multiple presets in one file

It is also possible to create one `.hedge` file with multiple presets. See the example below.

```
[
    {
        "name": "preset 1",
        ...
    },
    {
        "name": "preset 2",
        ...
    },
    {
        "name": "preset 3",
        ...
    }
]
```

### iconik

Control per preset which file extensions and metadata elements should end up in iconik sidecar files.

```
"iconikSidecarElements" : [ "{ProjectID}", "{Project}", "{Season}", "{Date}", "{Camera}", "{Card}", "{Type}" ],
"iconikSidecarExtensions" : [".R3D",".MOV"],
"iconikSidecarDestinations" : ["Backup 1", "Backup 2"]
```

Read more about the iconik integration [here](https://docs.hedge.video/hedge/integrations/iconik).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hedge.video/offshoot/features/elements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
