How to Publish to the Salesforce AppExchange

Eric Bowden has over 19 years of software development experience around enterprise and departmental business productivity applications.

As a developer, it has been a great experience to methodically work through the process for building and publishing an application on the Salesforce AppExchange. Earlier this week, we were thrilled to announce the fruit of our labor, the latest version for Trove! Naturally, there are numerous details to consider, and the ISVforce guide should be your primary resource; however, we’d like to share with you the high level steps required.


In summary, the process for publishing an application on the AppExchange is largely about creating Salesforce orgs and requesting that features are enabled. There is also a security review required. And, of course, you’ll need to develop and test your app.

Step by Step

  1. First, identify your Salesforce business org. This is typically a paid for org which is used for tracking leads, accounts, opportunities, and so on.
  2. Submit a request for Salesforce to provision the Environment Hub application in your business org. The Environment Hub application is required in order to associate related orgs, and it is used for creating orgs for testing your app.
  3. Login to the AppExchange, select the Publishing Console, and create a listing for your application, even if your application hasn’t been developed yet. The listing will not be public, but you must create the listing and decide if it will be paid/free before you can proceed to the next step.
  4. Submit a request for Salesforce to provision the License Management Application in your business org. The License Management Application is used to track organizations which subscribe to your app, licenses, and so on.
  5. Use the Environment Hub to create a Developer Edition org which will serve as the packaging org. Or, if you have already created a packaging org, you can use the Environment Hub to associate the pre-existing packaging org with the Environment Hub.
  6. Create separate developer edition orgs to build and test your product. Use the Eclipse based IDE to write/debug code and store the source in your favorite source code repository. There are other tools that can be used for app dev such as the developer console and the Salesforce setup menu. The following is an awesome overview of the app the dev lifecycle for Salesforce projects: Team Development and Release Management for ISVs.
  7. Once app dev is complete, create a managed package in your packaging org and upload your source. Note: Many attributes of managed packages are difficult to change once they’ve been set and after a managed package has been released.
  8. Next, you’ll upload a beta version of your application to the AppExchange for testing. Click Upload from the package in the packaging org and be sure to select “Beta.” Note: Do not upload a Release package until the application has completed all testing. Some aspects of the managed package cannot be modified after it has been uploaded as a release.
  9. Use the link from the beta upload (prior step) to install and test your application. Since beta versions cannot be installed in production orgs, you’ll need to use the Environment Hub to create test orgs to test different editions of Salesforce (e.g. Group Edition, Professional Edition, Enterprise Edition, etc…).
  10. Upload a release version of your application once testing has completed.
  11. Login to the AppExchange, access the publishing console, and confirm that your application appears in the section titled Your Uploaded Packages. It may take 30 minutes or longer for your application to appear in the publishing console.
  12. Next, it’s time to begin the security review. Your application cannot be listed publicly in the AppExchange until it has passed the security review. Click start review and work your way through the wizard. A few hints: You’ll need to have completed the automated security code scanner and repair any issues found. You’ll also need to create an environment in which Salesforce engineers can test your app.
  13. Submit a request for Salesforce to enable the patch feature in your packaging org. This will allow you to create patch upgrades which can be published to the AppExchange and can be pushed to existing subscribers. You may not need to create a patch just yet, but you’ll want to be ready if/when a patch is needed.
  14. Did your app pass the security review? Congratulations, you are ready to set your listing on the AppExchange to public!
  15. Now that your app is live on the AppExchange, you can use the License Management Application to monitor the installations. In the Subscribers tab of the License Management Application, you’ll see a line item for each org in which your application has been installed, including test orgs.
  16. Submit a request to have the Usage Metrics application installed. The Usage Metrics application will let you know how your application is being used, such as which Visualforce pages and custom objects are being accessed by your subscribers.

Easy, right? We’ve learned a lot through study and experience. Ask below or contact us if you have questions about publishing your app in the Salesforce AppExchange.

read more
Eric BowdenHow to Publish to the Salesforce AppExchange