Salesforce Packages: A Comparison of Managed and Unmanaged

Salesforce Packages: A Comparison of Managed and Unmanaged

December 7, 2023 eye-glyph 78

Table of Contents

Are you interested in building, sharing, and managing apps on Salesforce? Packages are a simple way to develop, distribute, and manage applications on the Salesforce platform.

Salesforce packages bundle all the app components together. Different organizations can install, update, and uninstall these packages.

There are two types of Salesforce packages – managed packages and unmanaged packages. Each package has its benefits and drawbacks, making it ideal for different needs.

Which Salesforce AppExchange package is an appropriate choice for you? The decision relies on the use cases and requirements.

In this blog, we will compare Salesforce unmanaged vs managed packages. So you can learn the basics of them, and leverage them for your needs. However, let’s first develop a comprehensive understanding of Salesforce packages and the key terminologies used in them.

What are Salesforce packages?

Packages in Salesforce are a collection of codes, components, objects, fields, automation, analytical layouts, and other resources that provide additional features or services within Salesforce.

You can create a Salesforce package comprising metadata and distribute it to your organization and other Salesforce users through the Salesforce AppExchange portal or installation link. You can upload and install packages in different Salesforce editions such as Developer, Enterprise, Essentials, Professionals, and Unlimited.

Before proceeding further let’s first understand the key terminologies that build the foundations of Salesforce packages;

  • Components: A component can be a custom object or field, considered part of a package. A fusion of different components can produce a power-packed feature or application.
  • Attributes: An Attribute is a field on a component, for example, the Allow Reports checkbox on a custom object, or it could be the name of an email template.
  • Package version: It is a number that refers to the set of components uploaded in the packages.

Now, let’s proceed further to get an overview of the Salesforce managed and unmanaged packages in detail.

What is the Salesforce Unmanaged Package?

what are unmanaged packages in Salesforce

Salesforce unmanaged packages are used to distribute open-source projects that can be modified by anyone. Components become editable in the organization once installed from an unmanaged package. The developer who created the unmanaged package has no control over the installed components and cannot make changes or upgrades.

Unmanaged packages are often used to provide code samples, templates, or features that can be modified by the developers who install them.

Some characteristics of the Salesforce unmanaged packages are;

  • They are free and, therefore, used for transporting unrelated components from an existing org to another org.
  • Unmanaged packages cannot be upgraded. Therefore, whenever a new version is released, you may have to reinstall the package.
  • They have no namespace prefix, therefore, multiple packages can be created with a similar name leading to name conflicts in the organization.

Still, do you lack the understanding of what Salesforce unmanaged packages are? Let’s take the help of the following example of unmanaged packages;

An example of an Unmanaged package in the Dreamhouse App. It is a sample application that demonstrates how to build a custom app for the real estate industry on the Salesforce platform. The application can be easily installed by any user who wants to learn Salesforce app development. They can customize this application to make it apt to their unique needs.

This is how Salesforce unmanaged packages work. Now, let’s move ahead to discuss some other important information about unmanaged Salesforce packages.

What are Salesforce Managed Packages?

what are managed packages in Salesforce

Managed Packages in Salesforce are used mainly by Salesforce partners for selling and distributing applications to customers. These packages are created by an organization having Developer Edition of Salesforce. Developers can trade and manage user-based licenses to the app with the License Management Application (LMA) and the AppExchange platform.

Salesforce managed packages are often used by Salesforce partners who want to distribute or sell their applications through AppExchange.

Some characteristics of managed packages in Salesforce are;

  • Managed packages can only be modified by the developers who created them. The end users who install them cannot modify the package.
  • These packages are upgradable. Therefore, the organization that created them can make enhancements, and push them to the organizations that installed them. The end users have the option to accept or deny the upgrade.
  • Managed packages in Salesforce have a name prefix. This means each component in the package has a unique identifier, eliminating the scope of name conflicts.
  • These packages also undergo a security review before being listed on the AppExchange platform. This means the package is free from security threats, so organizations can install it.

Do you still lack the clarity to understand what are managed packages in Salesforce, and how they work? Let’s take the help of the following example;

Salesforce CPQ (Configure, Price, Quote) is the best example of managed packages. This managed package can be easily installed from the AppExchange marketplace and helps the sales team create accurate quotes for complicated services. This package can be upgraded easily by Salesforce to offer new features and capabilities to the organization that uses it.

Salesforce managed packages often go through different stages such as;

  • Beta: This is the initial stage where the developer creates and tests the package. The package can also be installed on other orgs for testing purposes.
  • Released: This is the final stage where the developer submits the package for a security review and lists it on the AppExchange. The developer can upload the package as a release version and install it in customer orgs. Release packages are listed on the AppExchange and can be upgraded.
  • Patch: This is an optional stage where the developer fixes bugs or minor issues in the package without changing the functionality or adding new features. The developer can upload the package as a patch version and push it to the customer orgs. Patch packages are not listed on the AppExchange and do not require a security review

Salesforce Unmanaged vs Managed Package: A Quick Comparison

After having a complete understanding of unmanaged and managed packages. Now, let’s compare both of them on different parameters;

quick comparison between unmanaged and managed packages

1. Customization

Components in unmanaged packages are customizable. While the components of managed packages are locked, and cannot be modified by the installing organization. Let’s have a detailed overview of the customization options available in Salesforce packages;

2. Installation source

Unmanaged packages can be easily installed from the link or file shared by the developer. The developer can share the package with anyone. The installer does not need a Salesforce account or the AppExchange.

Managed packages, on the other hand, can be installed either through the install link shared by the developer or from AppExchange. The installer needs a Salesforce account and the AppExchange or a link to install the package. The developer can limit access to the package and monitor the installation data.

3. Upgrade

An unmanaged package cannot be upgraded after installation. The installer has to uninstall and reinstall the package to get the latest version. This may cause data loss or configuration issues. The developer cannot push any updates to the installers automatically.

A managed package can be upgraded by the developer and the installer can choose to install the updates. The developer can release new package versions with improved functionality or security. The installer can receive notifications about the available updates and install them without losing any data or settings. The developer can also push critical updates to the installers automatically.

4. Security

Unmanaged packages lack the security features. The installing organization has complete control over the package, they can modify or delete the package.

The managed packages are often listed on Salesforce AppExchange, where they are rigorously tested. Also, the installer organization has limited access to the package components and data. The installer cannot modify or delete the package components and data unless the developer allows it. The developer can enforce security policies and permissions on the package, such as requiring a license, encrypting the data, or setting the visibility of the components.

5. Usages

An unmanaged package is ideal for sharing or distributing open-source projects or templates. The developer can distribute the package as a starting point for the installer to customize and extend. The developer does not need to maintain or support the package after installation. The installer can use the package as a learning resource or a base for their development.

A managed package is suitable for selling or licensing commercial applications or components. The developer can provide the package as a finished product that meets the installer’s requirements. The developer has to maintain and support the package after installation. The installer can use the package as a plug-and-play solution or a value-added service.

6. Org limits

An unmanaged package counts against the org limits of the installer’s organization. The installer has to confirm that they have enough available resources and features to install the package. The installer can also uninstall the package and free up the resources and features.

A managed package does not count against the org limits of the installer’s organization. The developer has to ensure that they comply with the org limits of the packaging organization. The installer can install the package without worrying about the resources and features. The installer cannot uninstall the package without contacting the developer.

When to use Salesforce Unmanaged Packages?

when to choose unmanage packages in Salesforce

You need Unmanaged Packages when you want to customize your application after installation. Unmanaged Packages let you see and edit the code as you need in your org.

You can also use unmanaged packages to move components or metadata between different Salesforce orgs. It does not matter if the orgs are related or not. It is easier to install an unmanaged package than to create one in the org.

However, unmanaged packages have a drawback. The package creator cannot control the components after the installation only the installer can.

Unmanaged Packages are free and easy to launch. But you should give customized codes to your important customers.

When to use Salesforce Managed packages?

when to choose managed packages in Salesforce

Managed packages are great for growing and succeeding with your product in the Salesforce ecosystem. They are scalable and trustworthy. They are on the AppExchange platform after passing a full security review.

Managed packages are a good choice in the following use cases;

  • You want to offer generic products with unique features to different customers.
  • You want to allow local customization of functionalities across multiple Salesforce orgs.
  • You want to use collective products that can be locally implemented to add functionality and meet customer needs. This is like the plug-in approach.
  • You want to reuse code libraries with secure source code.

Final take

Hopefully, now you have a better understanding of which Salesforce package is the right option for you. However, if you nevertheless struggle to figure out which one is better?

A Salesforce consulting partner like Cyntexa can guide you on the right path. As a Salesforce Crest (gold) Consulting Partner, we are a team of more than 300+ Salesforce experts, helping businesses leverage the Salesforce platform.

Frequently Asked Questions

The main difference between managed and unmanaged packages is the customization and security. Unmanaged packages have no built-in security but are fully customizable. While the managed package offers security, components are protected and locked.

Creating a managed package in Salesforce is begun by creating a developer edition organization. Activate Dev Hub's feature, create a package, and add components and metadata. After that, create a package version and upload the package to AppExchange.

An unmanaged package can be created by creating a Salesforce organization and adding all the components and metadata. Go to the setup menu, create a package, and then upload the package to generate a URL or a file.

To install an unmanaged package in Salesforce, you need to have the link or the file of the package. You can run the link in the browser or can install the file from the setup menu.

You can install a managed package in Salesforce either from AppExchange or the installation link of the package created by the developer. It is a must to have a Salesforce account and license to install the package.