SuiteCRM 8.10.2: How to register a custom module/navigation entry without Module Builder?

Hi all,

I’m developing a custom application for SuiteCRM 8.10.2 and would appreciate some guidance on the recommended, upgrade-safe way to integrate it into the SuiteCRM navigation without using Module Builder to build the application itself.

The application already exists as a SuiteCRM 8 extension under: extensions/

It has its own Symfony backend services, repositories and database tables. I do not want to recreate this data model as a traditional Module Builder/Basic module.

What I need from SuiteCRM is relatively small:

  1. A top-level navigation entry, for

  2. One module menu item,

  3. Clicking that menu item should open a custom screen implemented by the existing SuiteCRM 8 extension

  4. Business logic and persistence should remain in extensions/ and its existing custom tables

  5. The implementation should follow an upgrade-safe SuiteCRM 8 extension approach and avoid core modifications

I found the SuiteCRM 8 documentation for process-driven module menu links, where menu metadata is added under public/legacy/custom/Extension/modules/<module>/Ext/Menus/ and a Process Handler lives under extensions/<extension>/.... This looks like the right mechanism for the menu action.

What I am not clear about is the recommended way to create/register the module identity itself when the module is not a traditional CRUD module and should not own a SuiteCRM-generated database table.

Is there a supported/recommended SuiteCRM 8 pattern for registering such a lightweight application/navigation module without Module Builder?

And once registered, what is the recommended way for the Process Handler/menu action to route to a custom Angular screen contained in the extension?

I would particularly appreciate examples from SuiteCRM 8.8+ / 8.10 implementations.

Thanks in advance.

Wolfgang

I think you need to add custom module name a couple of places in the code file below.

Also, make sure it is in the Displayed modules list.

Thanks for the hint. I wil lhave a look.