Build a Dashboard Menu Plugin in Studio Two

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:

  1. Add the target page or modal.
  2. Scaffold the menu plugin.
  3. Review the configuration.
  4. Read the slot data in the target.
  5. Check the menu plugin.

Step 1 | Add the target page or modal

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.

Step 2 | Scaffold the menu plugin

Generate a dashboard menu plugin that opens the target. For the example, use these values:

  • What would you like to extend?: Contact main more actions menu, the slot in the More Actions menu at the top of a contact's page.
  • Choose what happens when the menu item is clicked: Open Modal.
  • Target id: The modal's ID from Step 1.
  • Menu item title: 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>/.

Step 3 | Review the configuration

<plugin-folder>.extension.ts is the menu plugin's only file. For the example menu plugin it looks like this:

Copy

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.

Step 4 | Read the slot data in the target

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:

Copy

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:

Copy

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.

Step 5 | Check the menu plugin

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:

  1. In the site dashboard, go to Customers & Leads > Contacts.
  2. Hover over a contact and click View to open the contact's full page. Clicking the row instead opens a side panel with a different menu.
  3. At the top of the contact's page, open the More Actions menu and click Contact Summary.

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.

See also

Last updated: 2 November 2026

Did this help?