I am currently developing a ServiceM8 add-on and have a requirement regarding installation dependencies.
Our add-on should only be installed if a specific add-on is already installed on the customer’s account. In other words, we would like to enforce a dependency so that our add-on cannot be installed unless the required add-on is present.
Could you please confirm:
Is there a native way to define add-on dependencies within ServiceM8?
If not, what is the recommended approach to enforce this requirement during the installation process?
Are there any best practices or marketplace guidelines we should follow for this scenario?
We want to ensure our implementation aligns with ServiceM8 standards and provides a smooth user experience.
ServiceM8 add-ons don’t currently have a native “dependency” declaration you can set in the add-on manifest.
The recommended pattern is to handle this as an activation and onboarding requirement instead. In practice, that usually looks like:
Make the prerequisite explicit in your Add-on Store listing and help documentation, so the user understands what needs to be in place before they can get up and running.
If you’re using a web-service hosted add-on, use your Activation URL as the gate, since that’s where the user is initially redirected when they choose to activate/install your add-on, and it’s intended to kick off your OAuth flow and onboarding.
Ensure your onboarding and help documentation covers this prerequisite end-to-end.
For best practices and marketplace guidelines, the main things to align to here are:
Keep your solution compatible with ServiceM8 conventions and avoid negatively impacting existing features/workflows.
If you’re listing on the Add-on Store, OAuth 2.0 authentication is required.
Keep the activation experience seamless and well-explained, especially where other software/add-ons are involved.
If you reply here with which add-on you need to depend on (and whether it’s another public Store add-on or something private), we can confirm the cleanest place to surface the prerequisite in your activation flow.