---
url: "/bannerify/automation/parameters.md"
description: "Run Bannerify Quick Actions with simple named inputs and documented advanced options."
---

# Bannerify Keyboard Shortcuts

> Run Bannerify Quick Actions with simple named inputs and documented advanced options.

Run common Bannerify tasks from Figma Quick Actions without opening the plugin panel. Choose a named shortcut below. The advanced reference covers additional settings and structured bulk inputs.

## Run a keyboard shortcut

1. Select the layers you want to work with, if the shortcut uses a selection.
2. Open Figma Quick Actions with **Command + /** on Mac or **Ctrl + /** on Windows.
3. Search for the plugin and choose the named shortcut below.
4. Enter the fields shown. Optional fields may be skipped; use Tab to edit them. Run the shortcut and check the result or complete its save dialog.

Creation shortcuts ask for names or dimensions directly. Selected-layer shortcuts use the current selection automatically. These everyday shortcuts do not ask for Target or JSON. Choose **Open Bannerify** for the normal plugin panel.

| Shortcut | Inputs |
| --- | --- |
| **Export Selected Banners** | Format (optional), Frames or sections (optional) |
| **Create New Banner** | Name, Width (px), Height (px) |
| **Resize Selected Banners** | Name, Width (px), Height (px) |

## Advanced shortcuts

Use the clearly labelled **Advanced Shortcuts** menu for bulk structured inputs or additional export settings. Each entry is tied to one operation; it never asks you to choose an action again. JSON appears only in these advanced entries. Prefer the normal panel for longer content or when you need to browse components or templates.

Advanced entries that use layers accept optional exact node IDs; skipping Target uses the current selection. Creation and whole-site entries have no Target field. Enter only the options documented for that operation below. Keep each pasted field below 150 characters: Figma desktop can truncate pasted input at that boundary. Longer input belongs in the normal plugin panel. The internal parser limit is not a Quick Actions paste allowance.

If an older plugin shows Action, Target and Options instead, update it to use these named shortcuts. A Target value is a layer ID or selection, never the name of a new item.

## Bannerify actions

| Action | What it does | Target |
| --- | --- | --- |
| [`export`](#export) | Export selected banners using saved animation settings without publishing | One or more eligible layers |
| [`create`](#create) | Create banner frames at explicit sizes | No layer target |
| [`layouts`](#layouts) | Generate resized or smart-layout copies from explicit banner frames (maximum 200 outputs) | One or more eligible layers |
| [`variants`](#variants) | Create spreadsheet variants from explicit headers and text rows (maximum 200 outputs) | One or more eligible layers |

### export

Export selected banners using saved animation settings without publishing. Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `format` | string | Default: `"html"` | HTML platform, animated format, or static PNG/JPG/PDF. `html`, `googleads`, `mp4`, `webm`, `gif`, `webp`, `apng`, `png`, `jpg`, `pdf` |
| `source` | string | Default: `"frames"` | Frame or Section/scene mode. `frames`, `sections` |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Choose **Export Selected Banners**. Enter these plain fields; no JSON is required:

- **Format**: `mp4`
- **Frames or sections**: `frames`

Agent host input

```json
{"command":"shortcut-export","parameters":{"format":"mp4","source":"frames"}}
```

For the full option set, choose **Advanced: Export Selected Banners**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"format":"mp4"}
```

Agent host input

```json
{
  "command": "advanced-export",
  "parameters": {
    "target": "selection",
    "options": "{\"format\":\"mp4\"}"
  }
}
```

### create

Create banner frames at explicit sizes. This action does not take targets.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `sizes` | array | Required | Named output dimensions. Minimum 1 item; Maximum 20 items |
| `sizes[].name` | string | Required | Name of the new item. Minimum 1 character; Maximum 120 characters |
| `sizes[].width` | number | Required | Width in pixels. Minimum 1; Maximum 8192 |
| `sizes[].height` | number | Required | Height in pixels. Minimum 1; Maximum 8192 |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Each `sizes` item has required `name` (1–120 characters), `width` and `height` (1–8192 px). Supply 1–20 items.

Choose **Create New Banner**. Enter these plain fields; no JSON is required:

- **Name**: `Square`
- **Width (px)**: `300`
- **Height (px)**: `300`

Agent host input

```json
{"command":"shortcut-create","parameters":{"name":"Square","width":"300","height":"300"}}
```

For the full option set, choose **Advanced: Create New Banner** and enter this Advanced options (JSON) value:

```json
{"sizes":[{"name":"Square","width":300,"height":300}]}
```

Agent host input

```json
{
  "command": "advanced-create",
  "parameters": {
    "options": "{\"sizes\":[{\"name\":\"Square\",\"width\":300,\"height\":300}]}"
  }
}
```

### layouts

Generate resized or smart-layout copies from explicit banner frames (maximum 200 outputs). Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `sizes` | array | Required | Named output dimensions. Minimum 1 item; Maximum 20 items |
| `sizes[].name` | string | Required | Name of the new item. Minimum 1 character; Maximum 120 characters |
| `sizes[].width` | number | Required | Width in pixels. Minimum 1; Maximum 8192 |
| `sizes[].height` | number | Required | Height in pixels. Minimum 1; Maximum 8192 |
| `relayoutLayers` | boolean | Default: `false` | Use the existing smart layout generator |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Each `sizes` item has required `name` (1–120 characters), `width` and `height` (1–8192 px). Supply 1–20 items.

Choose **Resize Selected Banners**. Enter these plain fields; no JSON is required:

- **Name**: `Square`
- **Width (px)**: `300`
- **Height (px)**: `300`

Agent host input

```json
{"command":"shortcut-layouts","parameters":{"name":"Square","width":"300","height":"300"}}
```

For the full option set, choose **Advanced: Resize Selected Banners**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"sizes":[{"name":"Square","width":300,"height":300}],"relayoutLayers":false}
```

Agent host input

```json
{
  "command": "advanced-layouts",
  "parameters": {
    "target": "selection",
    "options": "{\"sizes\":[{\"name\":\"Square\",\"width\":300,\"height\":300}],\"relayoutLayers\":false}"
  }
}
```

### variants

Create spreadsheet variants from explicit headers and text rows (maximum 200 outputs). Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `headers` | array | Required | Unique layer-name headers. Minimum 1 item; Maximum 50 items |
| `headers[]` | string | Optional | Existing spreadsheet column name. Minimum 1 character; Maximum 200 characters |
| `rows` | array | Required | Ordered rows; each row must match the header count. Minimum 1 item; Maximum 100 items |
| `rows[]` | array | Optional | Cell values. Minimum 1 item; Maximum 50 items |
| `rows[][]` | string | Optional | Cell text. Maximum 12000 characters |
| `source` | string | Default: `"frames"` | Existing spreadsheet source mode. `frames`, `sections` |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

For the full option set, choose **Advanced: variants**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"headers":["Headline"],"rows":[["Summer sale"],["Winter sale"]],"source":"frames"}
```

Agent host input

```json
{
  "command": "advanced-variants",
  "parameters": {
    "target": "selection",
    "options": "{\"headers\":[\"Headline\"],\"rows\":[[\"Summer sale\"],[\"Winter sale\"]],\"source\":\"frames\"}"
  }
}
```

## Using shortcuts with an agent

Read the machine-readable registry linked below and choose an action offered by the installed plugin’s Quick Actions list. The registry uses Hypermatic option definitions rather than standard JSON Schema: `min` and `max` constrain string length, array length or numeric value according to the field type; nested definitions use `fields` and `item`. Unknown fields are rejected.

The agent needs a host that can invoke Figma Quick Actions and observe the normal plugin result. Parameters do not add a REST or MCP launcher. The expandable examples are input data for a compatible host, not executable API calls; everyday shortcuts use plain strings in `parameters`; only advanced entries use a JSON-encoded `parameters.options` string. Never claim that a shortcut ran from its prepared input alone.

Verify the visible outcome: the changed Figma layers, saved export, or published page. Read the normal success/error notification and any partial-export warning. Complete native save dialogs as needed; a download starting does not prove that the file was saved. Users do not need to open developer tools or read a console.

## Troubleshooting

| Symptom | Next step |
| --- | --- |
| Action is unavailable | Update the plugin and check its Quick Actions list; use the normal panel if the action is unavailable. |
| Options are invalid or may have been truncated | Use compact JSON below 150 characters, with only fields accepted by that action. |
| Target is missing or ineligible | Open the correct page, check the action’s layer requirements, and select the intended layers again. |
| A license or trial error appears | Complete the plugin’s normal activation flow before rerunning. |
| Download was requested but no saved file is visible | Check the native save dialog and download location. Inspect the actual file. |
| A command fails, times out or is cancelled | Check the document and remote destination before retrying; earlier changes or uploads may already exist. |

Commands have a five-minute deadline. Errors do not imply a full rollback. Automatically retrying a create, replacement or upload can duplicate or overwrite work. The internal JSON parser has a 16,384-character ceiling, but that is not a Quick Actions paste allowance.

[Machine-readable command registry](/automation/parameters/bannerify.json) contains the same action IDs and option definitions.

## Current limits

MP4/WebM/GIF/WebP/APNG and static PNG/JPG/PDF reuse the existing canvas renderer and saved page export settings. Existing layer animations, custom keyframes, frame rate, repeat and quality are retained; only format and target mode are overridden. HTML also loads saved page settings. Export never uploads previews or saves one-shot overrides. Explicit targets must be included banners. Canvas runs accept at most 20 banners, dimensions up to 4096 pixels and a saved timeline up to 120 seconds. A failed banner fails the command instead of returning a partial ZIP. Native save dialogs may still appear. Canvas parameter exports require an active trial or Pro license, including WebP; the existing interactive WebP trial exception is unchanged. Other advertising platforms, timeline editing and publishing remain interactive. Layouts and variants create copies, with at most 200 outputs per command. Variants uses the existing spreadsheet column conventions: supply unique headers and equally sized rows, and inspect partial output before retrying a failure. Layouts uses frame mode; variants also supports Sections.

## Related documentation

- [Install and run Bannerify](/bannerify/overview/install)
- [Figma plugin parameters](https://developers.figma.com/docs/plugins/plugin-parameters/)
- [Figma hidden UI options](https://developers.figma.com/docs/plugins/api/properties/figma-showui/)
