Run common Emailify 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
- Select the layers you want to work with, if the shortcut uses a selection.
- Open Figma Quick Actions with Command + / on Mac or Ctrl + / on Windows.
- Search for the plugin and choose the named shortcut below.
- 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 Emailify for the normal plugin panel.
| Shortcut | Inputs |
|---|---|
| Create New Email | Email name |
| Export Selected Emails | Format (optional) |
| Add Component to Selected Email | Component node ID |
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.
Emailify actions
| Action | What it does | Target |
|---|---|---|
compose | Create an email from existing Emailify library components | No layer target |
export | Export selected email frames without uploading | One or more eligible layers |
create | Create a named Emailify email frame | No layer target |
block | Append one existing component library component instance to an Emailify email frame | Exactly one eligible layer |
compose
Create an email from existing Emailify library components. This action does not take targets.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
name | string | Required | Name of the new item. Minimum 1 character; Maximum 120 characters |
subject | string | Optional | Email subject. Maximum 500 characters |
preheader | string | Optional | Email preview text. Maximum 500 characters |
components | array | Required | Ordered components from the component library. Minimum 1 item; Maximum 50 items |
components[].componentId | string | Required | Existing Emailify component ID in the Figma file. Maximum 100 characters; Pattern ^[0-9]+:[0-9]+$ |
components[].overrides | object | Optional | Optional exact slot values |
components[].overrides.text | array | Optional | Exact component library slot overrides. Maximum 100 items |
components[].overrides.text[].slotRef | string | Required | Exact @path reference from the component component library. Maximum 200 characters; Pattern ^@path:(?:root|[0-9]+(?:\.[0-9]+)*)$ |
components[].overrides.text[].value | string | Required | Replacement slot value. Maximum 12000 characters |
components[].overrides.links | array | Optional | Exact component library slot overrides. Maximum 100 items |
components[].overrides.links[].slotRef | string | Required | Exact @path reference from the component component library. Maximum 200 characters; Pattern ^@path:(?:root|[0-9]+(?:\.[0-9]+)*)$ |
components[].overrides.links[].value | string | Required | Replacement slot value. Maximum 12000 characters |
components[].overrides.altText | array | Optional | Exact component library slot overrides. Maximum 100 items |
components[].overrides.altText[].slotRef | string | Required | Exact @path reference from the component component library. Maximum 200 characters; Pattern ^@path:(?:root|[0-9]+(?:\.[0-9]+)*)$ |
components[].overrides.altText[].value | string | Required | Replacement slot value. Maximum 12000 characters |
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 components item requires the ID of an existing Emailify component. Its optional overrides object accepts text, links and altText arrays (up to 100 items each). Each override requires slotRef, @path: followed by the component slot’s child-index path (use @path:root for an empty path) (up to 200 characters), and string value (up to 12,000 characters). Text values must be nonempty. Unknown fields and protected or missing slots are rejected before creation. The total Options text limit still applies.
For the full option set, choose Advanced: compose and enter this Advanced options (JSON) value:
{"name":"Newsletter","components":[{"componentId":"123:456"}]}Agent host input
{
"command": "advanced-compose",
"parameters": {
"options": "{\"name\":\"Newsletter\",\"components\":[{\"componentId\":\"123:456\"}]}"
}
}export
Export selected email frames without uploading. Select one or more eligible layers.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
format | string | Default: "html" | Local email export format. html, mjml, amp |
minify | boolean | Default: false | Minify exported code |
mjmlVersion | string | Default: "5" | Existing MJML renderer version. 4, 5 |
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 Emails. Enter these plain fields; no JSON is required:
- Format:
html
Agent host input
{"command":"export-emails","parameters":{"format":"html"}}For the full option set, choose Advanced: Export Selected Emails, set Target to selection and enter this Advanced options (JSON) value:
{"format":"html"}Agent host input
{
"command": "advanced-export",
"parameters": {
"target": "selection",
"options": "{\"format\":\"html\"}"
}
}create
Create a named Emailify email frame. This action does not take targets.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
name | string | Required | Name of the new item. Minimum 1 character; Maximum 120 characters |
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 Create New Email. Enter these plain fields; no JSON is required:
- Email name:
Newsletter
Agent host input
{"command":"create-email","parameters":{"name":"Newsletter"}}For the full option set, choose Advanced: Create New Email and enter this Advanced options (JSON) value:
{"name":"Newsletter"}Agent host input
{
"command": "advanced-create",
"parameters": {
"options": "{\"name\":\"Newsletter\"}"
}
}block
Append one existing component library component instance to an Emailify email frame. Select exactly one eligible layer.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
componentId | string | Required | Existing component ID in the Figma file. Maximum 100 characters; Pattern ^[0-9]+:[0-9]+$ |
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 Add Component to Selected Email. Enter these plain fields; no JSON is required:
- Component node ID:
123:456
Agent host input
{"command":"shortcut-block","parameters":{"componentId":"123:456"}}For the full option set, choose Advanced: Add Component to Selected Email, set Target to selection and enter this Advanced options (JSON) value:
{"componentId":"123:456"}Agent host input
{
"command": "advanced-block",
"parameters": {
"target": "selection",
"options": "{\"componentId\":\"123:456\"}"
}
}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 contains the same action IDs and option definitions.
Current limits
Compose accepts existing Emailify components. Replace example component IDs with the IDs of components in your Figma file. Optional slot references must identify existing editable slots. It preserves linked instances and uses the existing protected-slot checks and creation rollback. Image replacement, built-in preset composition, styling, localization and email-provider uploads remain interactive. The create command creates an empty Emailify frame. Block appends a linked Emailify component to one Emailify frame and returns its instance ID.