Responsibly update app from free to paid


I’m the author of the app (dynamic content widget) on marketplace that hundreds of people use at the moment. It uses Atlassian Connect.

I’d like to change the app from free to paid. I want to do it as smooth as possible. I don’t want to break hundreds of pages at once.

I’ve reviewed Atlassian documentation about how to do it technically (,, . From technical point of view it is clear for me.

I still have some questions more in organisational area.

I’m looking for an advice/guidance on the following.

  1. I assume not everybody will want to upgrade to the paid version. What is a responsible way to allow people recover data stored in the existing macros? (I don’t store it on my servers, it is all in the macro body/parameters in Confluence).

  2. What is the best way to test the upgrade? I want to see what would happen to accounts who won’t agree to upgrade to the new version. How can I simulate account(s) that use previous (free) version when the new (paid) is already published to marketplace? What will ‘lic’ parameter be for such people?

I’d appreciate any help/experience.

1 Like

:wave: I can’t offer any good answers to your questions… but I wanted to recommend that maybe you also post this over in the Marketplace General Discussion category. I’m thinking there may be cloud developers on other products that could offer some good advice.

1 Like

Upgrading an app from free to paid is (from the Atlassian Marketplace perspective) a major descriptor change. Any major descriptor changes will require the administrator to approve the upgraded descriptor. This means that you may (and you will) have users on the previous descriptor (ie free) who will upgrade to the paid version.

My suggestion would be to float a descriptor upgrade before you do the paid upgrade to add in a url parameter for these users (since a url modification in the modules is not a major upgrade) - that way you can add in logic to message these users in your ui to contact their admin to upgrade the descriptor (and tell them why they should do it).

As far as the best way to test it - Use the Private Tokens feature - it will let you flip between the various states: