A dashboard menu plugin is a configuration file with no code of its own. It adds an item to a menu on a Wix dashboard page and opens a dashboard page or modal when clicked. Most of the work happens in that target: it reads the data the slot passes and does something useful with it.
This article walks through an example menu plugin in the More Actions menu of a CRM contact's page. It opens a dashboard modal that shows the contact's email address. Menu plugins in other slots work the same way. The data each slot passes depends on the slot you chose.
Follow the instructions below to:
The menu plugin needs the ID of the page or modal it opens, so add the target first. For the example, generate a dashboard modal with Contact Summary as the Modal Title. Generate names the modal folder after the title, so the folder is contact-summary. For the full procedure, see Add a Dashboard Modal Extension in Studio Two.
Open the target's .extension.ts file and copy its id. You use it in the next step.
Generate a dashboard menu plugin that opens the target. For the example, use these values:
Contact main more actions menu, the slot in the More Actions menu at the top of a contact's page.Contact Summary.For the full procedure, see Add a Dashboard Menu Plugin Extension in Studio Two.
You can find the new file under src/extensions/dashboard/menu-plugins/<plugin-folder>/.
<plugin-folder>.extension.ts is the menu plugin's only file. For the example menu plugin it looks like this:
extends is the slot ID of the slot you chose. action.openModal.componentId is the ID of the modal from Step 1. To navigate to a dashboard page instead, replace openModal with navigateToPage: { pageId: '<page-id>' }. Keep id stable.
For every field, see Dashboard Menu Plugin Extension Files and Code.
When a Wix user clicks the item, the slot passes data from the host page to the page or modal the item opens. The Contact main more actions menu slot passes contactId, the ID of the contact in view. Each slot has its own data type, which the business solution's package exports:
To read the data, call observeState() in the target. The example modal passes contactId to getContact() and shows the contact's email address. Replace the content of contact-summary.tsx with this code:
The modal runs with the identity of the Wix user who clicked the item, so the API calls it can make depend on that user's role. For more on modals, see Build a Dashboard Modal in Studio Two.
A menu plugin appears in the menu of the dashboard page that owns its slot. To check it, open that page, open the menu, and click the item. For the example menu plugin, that's a contact's full page:
The modal opens and shows the contact's email address.
When the menu plugin behaves the way you want, click Publish in the Studio Two editor to ship it with your site.
Last updated: 2 November 2026