Run common Pitchdeck 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 Pitchdeck for the normal plugin panel.
| Shortcut | Inputs |
|---|---|
| Export Selected Slides | Format (optional) |
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.
Pitchdeck actions
| Action | What it does | Target |
|---|---|---|
export | Export selected slides without publishing | One or more eligible layers |
create | Create slides from built-in templates and structured content without calling an AI provider | No layer target |
export
Export selected slides without publishing. Select one or more eligible layers.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
format | string | Default: "powerpoint" | Local presentation export format. powerpoint, keynote, google, pdf, qpdf, png, jpg, canva |
editable | boolean | Default: true | Preserve editable PowerPoint elements |
smartAutoLayout | boolean | Default: false | Use existing Smart Auto Layout conversion |
retina | boolean | Default: false | Use retina images |
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 Slides. Enter these plain fields; no JSON is required:
- Format:
powerpoint
Agent host input
{"command":"shortcut-export","parameters":{"format":"powerpoint"}}For the full option set, choose Advanced: Export Selected Slides, set Target to selection and enter this Advanced options (JSON) value:
{"format":"powerpoint"}Agent host input
{
"command": "advanced-export",
"parameters": {
"target": "selection",
"options": "{\"format\":\"powerpoint\"}"
}
}create
Create slides from built-in templates and structured content without calling an AI provider. This action does not take targets.
| Option | Type | Required / default | Meaning and accepted values |
|---|---|---|---|
slides | array | Required | Ordered slide content; template-specific fields follow the existing AI slide creator. Minimum 1 item; Maximum 20 items |
slides[].title | string | Optional | title. Maximum 4000 characters |
slides[].subtitle | string | Optional | subtitle. Maximum 4000 characters |
slides[].body | string | Optional | body. Maximum 4000 characters |
slides[].secondaryBody | string | Optional | secondaryBody. Maximum 4000 characters |
slides[].value | string | Optional | value. Maximum 4000 characters |
slides[].label | string | Optional | label. Maximum 4000 characters |
slides[].xAxis | string | Optional | xAxis. Maximum 4000 characters |
slides[].yAxis | string | Optional | yAxis. Maximum 4000 characters |
slides[].quote | string | Optional | quote. Maximum 4000 characters |
slides[].attribution | string | Optional | attribution. Maximum 4000 characters |
slides[].caption | string | Optional | caption. Maximum 4000 characters |
slides[].notes | string | Optional | notes. Maximum 4000 characters |
slides[].template | string | Required | Built-in slide template. title, section, titleBackgroundImage, headlineCenteredText, headlineRightText, headlineBottomText, quote, bulletList, numberList, singleMetric, threeMetrics, timelineRoadmap, processFlow, matrix, comparisonTable, caseStudy, largeImage, fullScreenImageWithCaption, sectionFullRightImage, sectionFullLeftImage, sectionLeftImage, sectionRightImage, wideImageWithHeading, twoTextColumns, threeTextColumns, fourTextColumns, twoImagesWithText, threeImagesWithText, fourImagesWithText, blank |
slides[].bullets | array | Optional | Bullet text. Maximum 20 items |
slides[].bullets[] | string | Optional | Bullet. Maximum 1000 characters |
slides[].items | array | Optional | Ordered items. Maximum 20 items |
slides[].items[].label | string | Optional | label. Maximum 2000 characters |
slides[].items[].title | string | Optional | title. Maximum 2000 characters |
slides[].items[].body | string | Optional | body. Maximum 2000 characters |
slides[].items[].value | string | Optional | value. Maximum 2000 characters |
slides[].metrics | array | Optional | Ordered metrics. Maximum 20 items |
slides[].metrics[].label | string | Optional | label. Maximum 2000 characters |
slides[].metrics[].title | string | Optional | title. Maximum 2000 characters |
slides[].metrics[].body | string | Optional | body. Maximum 2000 characters |
slides[].metrics[].value | string | Optional | value. Maximum 2000 characters |
slides[].rows | array | Optional | Ordered rows. Maximum 20 items |
slides[].rows[].label | string | Optional | label. Maximum 2000 characters |
slides[].rows[].title | string | Optional | title. Maximum 2000 characters |
slides[].rows[].body | string | Optional | body. Maximum 2000 characters |
slides[].rows[].value | string | Optional | value. Maximum 2000 characters |
slides[].quadrants | array | Optional | Ordered quadrants. Maximum 20 items |
slides[].quadrants[].label | string | Optional | label. Maximum 2000 characters |
slides[].quadrants[].title | string | Optional | title. Maximum 2000 characters |
slides[].quadrants[].body | string | Optional | body. Maximum 2000 characters |
slides[].quadrants[].value | string | Optional | value. Maximum 2000 characters |
slides[].headers | array | Optional | Comparison table column headings. Maximum 3 items |
slides[].headers[] | string | Optional | Heading. Maximum 120 characters |
themeStyle | string | Default: "pitchdeck" | themeStyle. pitchdeck, executiveMinimal, investorMemo, saasProduct, glassInterface, materialExpressive, workspaceSystem, developerLaunch, enterpriseCarbon, collaborationBoard, fluentProductivity, stripeEditorial, notebookMinimal, boldKeynote, editorialMagazine, dataNewsroom, fintechTrust, healthcareCalm, educationBright, workshopToolkit, creativePortfolio, luxuryBrand, climateImpact, nonprofitAdvocacy, creatorStory, eventEnergy, retroTech, warmHuman, monochromeStudio, artGallery, scienceLab, operationsManual, salesNarrative, boardReport, aiResearch, musicCulture, gamingShowcase, civicData, commerceLuxury, wellnessCalm |
colorPalette | string | Default: "themeDefault" | colorPalette. themeDefault, lightNeutral, darkContrast, carbonGrayBlue, materialDynamic, fluentNeutral, atlassianBlue, glassTint, productGradient, warmEarth, coolTrust, natureImpact, jewelAccent, brightEvent, neonDark, softPastel, monochrome |
typographyStyle | string | Default: "themeDefault" | typographyStyle. themeDefault, modernSans, productSans, systemUi, fluentSystem, plexSans, atlassianUi, geometricSans, swissSans, editorialSerif, serifSansHybrid, classicReport, dataMono, monoEditorial, warmHumanist |
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: create and enter this Advanced options (JSON) value:
{"slides":[{"template":"title","title":"Quarterly review"}]}Agent host input
{
"command": "advanced-create",
"parameters": {
"options": "{\"slides\":[{\"template\":\"title\",\"title\":\"Quarterly review\"}]}"
}
}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
In Figma Design, targets must meet the existing slide eligibility rules: visible top-level frames, components or instances wider than 250 px and taller than 140 px. Native skipped Slides are excluded. Publishing, animation editing and other presentation formats remain interactive. Create uses built-in templates and the existing template renderer, initializes document styles as needed, and leaves existing slides and numbering alone. It does not call an AI provider. Up to 20 slides are accepted within the overall JSON limit. Image templates retain their built-in placeholders. Choose templates and themes in the normal plugin panel when you need to browse them.