Skip to main content

Marketplace App Distribution Model

This guide covers the new, simplified Marketplace distribution model and the OAuth flow you’ll need to implement to obtain the correct access tokens.


App Distribution Model

To configure your desired app distribution model, you have three fields:

FieldValuesDescription
Who is the target user of the app?Agency / Sub-accountWho is going to interact with the app? In other words, whose access token does the app ultimately need? For most apps, this will be Sub-account (Recommended). Note: This field cannot be modified once set.
Who can install the app?Both Agency and Sub-account / Agency OnlyWhich user(s) may see and install the app from the Marketplace UI? Recommended: “Both Agency & Sub-account” for maximum reach. Use "Agency Only" for fully white-labelled SaaS features only agencies can discover and install.
Can this app be bulk-installed by agencies?Yes / NoPrimarily for backwards compatibility. All new Marketplace apps will be set to Yes (mandatory). Allows agency owners/admins to install to multiple sub-accounts in one operation. Cannot revert to No once set.

Distribution Scenarios

Developer’s distribution config scenarios and getting the right access token

Who is the target user?Who can install the app?Can the app be bulk-installed by agencies?User Installation ScenariosAccess Token DetailsStep 2
AgencyN/AN/AAgency user installs the app“isBulkInstallation” : false, “userType” : ”Company”N/A
Sub-accountAgency & sub-accountNoSub-account user installs the app“isBulkInstallation” : false, “userType” : ”Location”N/A
Sub-accountAgency & sub-accountNoAgency user installs the app“isBulkInstallation” : false, “userType" : "Location”N/A
Sub-accountAgency & sub-accountYesSub-account user installs the app“isBulkInstallation” : false, “userType" : "Location”N/A
Sub-accountAgency & sub-accountYes[NEW and RECOMMENDED] Agency user installs the app“isBulkInstallation” : true, “userType" : "Company”1. Get sub-accounts where app is installed 2. Get Location Token using Agency Token for every location where app is installed 3. Listen to AppInstall webhook event for automatic future installations or installs done as part of a SaaS plan, and Get Location Token using Agency Token for the newly installed locations.
Sub-accountAgency OnlyYesAgency user installs the app“isBulkInstallation” : true, “userType" : "Company"1. Get sub-accounts where app is installed 2. Get Location Token using Agency Token for every location where app is installed 3. Listen to AppInstall webhook event for automatic future installations or installs done as part of a SaaS plan, and Get Location Token using Agency Token for the newly installed locations.

Backward Compatibility

To maintain the existing installation flow for legacy apps, mappings are set as follows:

Legacy Distribution TypeTarget UserInstallerBulk-installRecommendations
Agency OnlyAgencyN/AN/AN/A
Sub-account OnlySub-accountAgency & Sub-accountNoDevelop the token exchange mechanism for bulk-installation flow as mentioned above. Once done, set "Can the app be bulk-installed by agencies?" to "Yes"
Agency & Sub-accountSub-accountAgency OnlyYesTo make the app accessible to sub-accounts, you must ensure the app does not require any agency-level access such as: Agency Level Scopes - companies.readonly, companies.write, location.write, saas/location.write, snapshots.readonly, snapshots.write, custom-menu-link.readonly, custom-menu-link.write. Module > Snapshots, Module > CustomJS. If your app does not require any of the above: 1. Develop the OAuth flow for installation by sub-account admins, which would generate a userType: Location token, as mentioned above. 2. Once done, change "Who can install the app?" to "Agency & sub-account"

Target User Types

Target User: Agency

Choose this if your app is only relevant for agency-level accounts.

drawing

  • App Listing: Only in agency Marketplace.
drawing

  • Installation: Only agency admins/owners can install/uninstall.
  • Payments: Agency bears cost for paid apps.
  • Re-selling: Not available to sub-accounts.

Target User: Sub-account — Both Can Install

Choose this if your app is for sub-account-level usage but should be installable by both agencies and sub-accounts.

drawing

  • App Listing: Appears in both agency and sub-account Marketplaces.
drawing

  • Installation: Both sub-account admins and agency admins can install.
drawing

  • Bulk Installation: Supported if enabled. Agencies can auto-install to all sub-accounts.
drawing

  • Payments: Sub-account pays for paid apps.
  • Re-selling: Agencies can re-sell.

Target User: Sub-account — Only Agency Can Install

Choose this if only agencies should install, but app is used at sub-account level.

drawing

  • App Listing: Only in agency view.
drawing

  • Installation: Agency admins/owners install/uninstall for sub-accounts.
  • Bulk Installation: Supported if enabled.
drawing

  • Re-selling: Agencies can re-sell with markup.