Managed vs Unmanaged Salesforce AppExchange Packages: Which is Better?
Salesforce AppExchange is more than just a marketplace; it is a platform where ideas transform into valuable products. Considering that each Salesforce client has unique requirements and use cases for their products, AppExchange offers bundled packages. These Salesforce AppExchange packages are primarily divided into categories of managed and unmanaged packages and contain unique applications, components, and various customizations. This blog highlights the difference between these two packages so that you can make an informed decision.
What are Salesforce Managed Packages?
A Salesforce managed package has hidden codes and is introduced as a single entity. Similar to other apps in the platform, the end users get the benefits of the products, but code access remains restricted. This package is preferred primarily by Salesforce partners to distribute and sell applications on the AppExchange. A managed package allows easy upgrades and automatic updating of codes.
Versions of Managed Packaged
- Beta: This version is used for application testing
- Released: The version is live on AppExchange and available to the public.
- Installed: While it is installed from another Salesforce org, the package remains managed.
When to Use Managed Package?
Managed packages are effective for scaling products in the Salesforce org. They only go live on AppExchange after successfully passing a stringent security review, providing reliability. A managed package is a good choice if:
- You are developing generic products that give unique features to different sets of customers.
- You want customizations of different components across the Salesforce org.
- You want to locally implement products to add functionality and cater to diverse customer needs.
- You wish to access secure code libraries.
Salesforce Unmanaged Packages
Salesforce unmanaged packages are used for open-source projects. The developers of unmanaged packages have no control over their components and cannot modify or upgrade them. These packages are generally used to provide templates, samples, or features that can be edited by developers.
When to Use Salesforce Unmanaged Packages?
If you want to customize applications after installation, unmanaged packages are the right pick for you. You can also use these packages to transfer metadata or components between Salesforce orgs. However, a drawback of unmanaged packages is that the creator loses control over components after installation; only the installer can make alterations.
Differentiating Factors Between Managed and Unmanaged Packages in Salesforce
Customization
Unmanaged packages are raw collections of metadata components, such as custom objects, fields, workflows, and Apex classes, that can be easily customized and modified directly in the org where they are installed. Developers can freely modify and extend the components without restrictions.
Managed packages, on the other hand, encapsulate the customizations and code into a controlled environment. Components within managed packages are protected, meaning they cannot be directly modified by the organization where the package is installed. Instead, developers must work within the boundaries of the package and use extension points provided by the package developers.
Security
Security in unmanaged packages relies on the native security mechanisms of the Salesforce platform. Administrators have full control over permissions and access settings for the components included in the package.
Managed packages offer enhanced security features. Developers can enforce access controls and hide certain components to prevent unauthorized access or modification. Additionally, managed packages can include license management, allowing developers to control who can access and use the package.
Installation Source
Unmanaged packages can be installed from various sources, including Salesforce AppExchange, GitHub, or directly from a URL. They are typically used for distributing open-source solutions, sample code, or components that require customization.
Managed packages are primarily distributed through the Salesforce AppExchange. This centralized distribution platform ensures that the package undergoes security review and meets certain quality standards before being made available to customers. Managed packages can also be installed from a direct link provided by the package publisher.
Upgrade
Upgrading unmanaged packages can be challenging as developers need to manually track and merge any changes made to the package components. Since modifications can be made directly in the org, there is a risk of overwriting customizations during the upgrade process.
Managed packages offer a streamlined upgrade process. Developers can release new versions of the package with updates and bug fixes, and subscribers can easily upgrade to the latest version with a few clicks. Managed packages also support versioning, allowing subscribers to choose when to upgrade and providing rollback options.
Final Thoughts:
Managed and unmanaged packages have different components catering to varied business goals. While unmanaged packages offer more flexibility, managed packages are more secure. Companies must weigh the pros and cons of each package against their end goal before making a final decision.
Looking for the right package for your business? Our experts at Dazeworks, an iLink Digital Company, can help you along the process so that you choose the right package to reap optimum benefits.
If you need any additional support, please feel free to reach us!