Dashboard Menu Plugin Extension Files and Code

When you add a dashboard menu plugin extension, the generated file lands under src/extensions/dashboard/menu-plugins/<plugin-folder>/ and the extension is registered in your project's extensions.ts.

This file is the same whether you add the menu plugin in a Studio Two site project or in a Wix CLI project.

Copy
FileWhat it's for
<plugin-folder>.extension.tsThe configuration file for the menu plugin ID, title, slot ID, icon, and click action.

A menu plugin has no component file. When a Wix user clicks the item, the page or modal it opens runs the code.

Configuration file

The <plugin-folder>.extension.ts file declares the menu plugin with extensions.dashboardMenuPlugin().

Import extensions from the package your project uses:

Copy
Copy
Copy

Example:

Copy

Configuration fields

FieldTypeDescription
idstringMenu plugin ID as a GUID. It must be unique across all extensions in the project.
titlestringThe label of the menu item.
extendsstringSlot ID of the menu slot the item appears in. Each slot is on a dashboard page built by Wix. For the available slots and their IDs, see About Dashboard Page Slots.
iconKeystringName of the Wix Design System icon shown next to the label. The generated file uses Sparkles.
actionobjectWhat happens when a Wix user clicks the item. Contains either navigateToPage or openModal. See Click action.

Click action

Set action to one of the following:

FieldTypeDescription
navigateToPage.pageIdstringID of the dashboard page to navigate to. For a dashboard page in your project, use the id from its .extension.ts file. For a dashboard page built by Wix, see Page IDs.
openModal.componentIdstringID of the dashboard modal to open. Use the id from the modal's .extension.ts file.

Slot data

The slot passes data from the host page to the page or modal the item opens, such as the ID of the item in view. Each slot defines its own data type, which the business solution's package exports under the plugins namespace of its dashboard entry point. The type path is plugins.<page>.<slot>Params.

How the data reaches your code depends on the click action:

  • openModal: The modal receives the data as an object. To read it, call observeState().
  • navigateToPage: Wix adds the data to the dashboard URL as query parameters, for example ?contactId=<contact ID>. To read them in the page, use the location.search value that observeState() passes. The values are strings, not the slot's data type.

For example, the Contact main more actions menu slot on the CRM contact page passes contactId, the ID of the contact in view. A modal reads it like this:

Copy

Some slots pass no data. For the data each slot passes, see About Dashboard Page Slots.

See also

Last updated: 2 November 2026

Did this help?