Managed Vs. Unmanaged AppExchange Packages

Managed Vs. Unmanaged AppExchange Packages

When working with Salesforce, one of the key aspects that contribute to customizing and enhancing the Salesforce environment is the use of AppExchange Packages. These packages are containers used to distribute components, apps, or features in the Salesforce system, and they can significantly improve productivity by integrating useful functionalities.

However, there are two types of packages: Managed and Unmanaged Packages, which will be discussed in the following part of the blog.

What is a Salesforce Package?

Salesforce Package

 

Before exploring the managed and unmanaged packages, it’s important to understand what a Salesforce package is. In simple terms, a package is a container that bundles various Salesforce components such as custom objects, fields, Apex classes, triggers, Lightning components, and other metadata.

Salesforce packages can be shared and installed across various Salesforce orgs. They can be used for internal applications, third-party app distribution, or open-source projects.

Packages are available in two main Salesforce interfaces: Classic (though it’s not supported in all Salesforce orgs) and Lightning Experience. Packages can be created and distributed using Salesforce tools, and they can be installed in several editions, including Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions.

What Is a Salesforce Managed Package?

A Managed package is a collection of components (apps, features, etc.) that are created and distributed by Salesforce ISVs (Independent Software Vendors) and partners via the AppExchange marketplace. These packages are typically versioned and supported, offering both intellectual property protection and customization control.

Key Characteristics of Managed Packages:

  1. Versioning Support: Managed packages are upgradable. If a new version of the package is released, it can be installed easily without affecting the existing components. The package will also keep track of version history and allow you to roll back to earlier versions if necessary.
  2. Licensing: Developers can use the License Management Application (LMA) to control user-based licenses, enabling them to sell their apps or components.
  3. Protected Intellectual Property: Certain components, such as Apex code, are obfuscated to prevent tampering or reverse engineering, protecting the intellectual property of the package creator.
  4. Security: Managed packages must undergo a security review before being published on the AppExchange. This ensures that they meet Salesforce’s security standards, making them more reliable and less prone to vulnerabilities.
  5. Component Ownership: Managed packages allow developers to retain ownership of components. Even after installation, the original creator can control updates, patches, and modifications.

Benefits of Managed Packages:

  • Once a package is installed, it’s easy to update it to the latest version without causing data loss or breaking existing configurations.
  • Managed packages are reviewed by Salesforce and offer official support channels. Users can expect timely assistance in case of technical issues.
  • Managed packages allow developers to distribute apps through the AppExchange, giving them access to a global customer base.
  • Though the original components are protected, developers can still provide custom configuration options for end-users within the package.

Also Read: How Salesforce Managed Services Help Your Business?

What Is a Salesforce Unmanaged Package?

An Unmanaged package, on the other hand, is typically used by developers for open-source projects or as an app template. These packages are less controlled than managed ones, allowing more freedom for customization.

Unmanaged packages are often used when developers want to move metadata or components from one Salesforce org to another or share code snippets without worrying about version control or licensing.

Key Characteristics of Unmanaged Packages:

  1. No Versioning: Unlike managed packages, unmanaged packages don’t have built-in versioning support. If a new version of an app or component is released, you would need to manually reinstall the package in the target org. This can potentially cause issues with data or custom configurations.
  2. No Intellectual Property Protection: The components in unmanaged packages are open-source, meaning that other developers can modify, extend, or reuse them freely.
  3. Customization Freedom: Because unmanaged packages are essentially just a collection of Salesforce components, they offer complete freedom for the end user to modify the components. Users can change the code or structure as needed without restrictions from the package creator.
  4. No Licensing or Support: There’s no formal licensing or support structure for unmanaged packages. If you run into issues, you’re generally on your own.

Benefits of Unmanaged Packages:

  1. Since you can edit the code and components freely, it’s a great option for customizing apps or creating internal tools.
  2. They’re often used to migrate metadata from one Salesforce org to another. You can move components without worrying about ownership or restrictions.
  3. Many unmanaged packages are free and open-source, making them a cost-effective option for developers who want to share their work with the Salesforce community.

When to Use Managed vs. Unmanaged Packages?

When to Use Managed Packages:

  • If you are creating an app to be sold or distributed on AppExchange.
  • When you want intellectual property protection for your components, such as when dealing with Apex code.
  • When you need to provide official support and version updates for your users.
  • If you’re distributing apps that require strict security protocols and governance.
  • If you want to control and manage how your app’s components are configured and updated in your users’ Salesforce environments.

When to Use Unmanaged Packages:

  • If you are creating open-source apps or code snippets that you want to share without restrictions.
  • When you need to migrate metadata between Salesforce orgs and don’t need version control or licensing management.
  • If you are working on internal Salesforce projects and want to customize the components freely.
  • When you want a simple, non-commercial package that users can modify as they see fit.

Connect with Certified Salesforce Implementation Partner

Contact Us

We hope by now you have been clear about both the terms and have even understood how they differ from each other. But you can still be unsure about when to go for managed packages and when to go for unmanaged packages.
Contact CRM Masters for the best Salesforce Consulting Services, we can guide you through the right path and suggest better. We have been providing business solutions using Salesforce since 2016 with a team of 100+ experts.

Let us know your requirements by connecting with us on a free consultation call and we will evaluate your requirements and provide you with the best solution.