Working with multi-product apps

What is a multi-product app?

A multi-product app is an app that:

  • is designed to work in multiple Zendesk products but is packaged and submitted as one zip.
  • has a unique app id.
  • is installed separately into each product from the Zendesk Marketplace.
  • has separate app detail pages on the Zendesk Marketplace for each product.

What should I be aware of when building multi-product apps?

  • The customer needs to pay for each installation of the app in each product.
  • Don't assume that the app will be installed into all available products.
  • There is currently no link between app installations across products.

How do I specify separate Marketplace content and assets per product?

Structure your app in the following way:

Marketplace assets

In the assets folder, create a sub-folder for each product and then include your separate marketplace assets into these folders.

Before

- app  |- assets    |- logo.png    |- logo-small.png    |- screenshot-0.png    |- screenshot-1.png    |- screenshot-2.png    |- main.js    |- index.html  |- translations    |- en.json  |- manifest.json

After

- app  |- assets    |- support      |- logo.png      |- logo-small.png      |- screenshot-0.png      |- screenshot-1.png      |- screenshot-2.png    |- chat      |- logo.png      |- logo-small.png      |- screenshot-0.png      |- screenshot-1.png      |- screenshot-2.png    |- sell      |- logo.png      |- logo-small.png      |- screenshot-0.png      |- screenshot-1.png      |- screenshot-2.png    |- main.js    |- index.html  |- translations    |- en.json  |- manifest.json

Marketplace content

Your en.json file also needs to be split into individual products, for example:

Before

{  "app": {    "name": "Zen tunes",    "short_description": "Play the famous zen tunes in your Zendesk Support account.",    "long_description": "Play the famous zen tunes in your Zendesk Support account and \n listen to the beats it has to offer.",    "installation_instructions": "Simply click install."  }}

After

{  "app": {      "support": {        "name": "Zen tunes for Zendesk Support",        "short_description": "Play the famous zen tunes in your Zendesk Support account.",        "long_description": "Play the famous zen tunes in your Zendesk Support account and \n listen to the beats it has to offer.",        "installation_instructions": "Simply click install."    },      "chat": {        "name": "Zen tunes for Zendesk Chat",        "short_description": "Play the famous zen tunes in your Zendesk Chat account.",        "long_description": "Play the famous zen tunes in your Zendesk Chat account and \n listen to the beats it has to offer.",        "installation_instructions": "Simply click install."    },      "sell": {        "name": "Zen tunes for Zendesk Sell",        "short_description": "Play the famous zen tunes in your Zendesk Sell account.",        "long_description": "Play the famous zen tunes in your Zendesk Sell account and \n listen to the beats it has to offer.",        "installation_instructions": "Simply click install."      }  }}