April 18, 2024
Salesforce, renowned as the world’s leading CRM platform, empowers developers with an array of tools to customise and amplify its capabilities. Among these tools have the capability to craft and share packages. With packages, different groups can easily install, update, or remove apps on the Salesforce platform.
In essence, Salesforce packages serve as containers for organising and distributing components such as code, configurations, and assets within the Salesforce ecosystem. These packages streamline the process of installing, updating, and removing apps, allowing different groups to efficiently manage their Salesforce environments.
Salesforce packages can be broadly classified into two categories: managed packages and unmanaged packages. Each has its own perks and downsides. So picking the right one depends on what you need.
If you want a secure, consistent app that's easy to operate, go for managed packages. But if you prefer flexibility and don't mind keeping track of changes, unmanaged packages might be the way to go.
In our blog, we'll break down the basics of Salesforce-managed and unmanaged packages. This will help you understand them better and decide which one suits your needs best. But before diving into that, let's get a grasp of Salesforce packages and the key terms associated with them.
A "package" in Salesforce refers to a collection of elements bundled together, including codes, tools, and applications. Essentially, it's a consolidated unit that can be easily distributed and installed within the Salesforce platform. These packages are made within a Salesforce organisation and can be shared with other users, usually through the AppExchange platform. They remain private unless they're shared on AppExchange. You can mix different elements in one package to create useful features and apps.
Before diving deeper, let's understand some key terms:
In Salesforce, there are two main types of packages: managed and unmanaged.
A managed package is like a box containing all the parts of a Salesforce app. It's a way to install apps in Salesforce organisations. Essentially, this package contains all Salesforce app components, similar to a box containing the app's code. This package serves as a means to seamlessly install apps in Salesforce organisations. It consolidates the app into a single entity that can be easily installed from the AppExchange marketplace.
Usually, companies that make apps for Salesforce use managed packages to share and sell their apps. When someone uses an app from a managed package, they get all the benefits of the app, but they can't see or change its code. These packages are made by Salesforce themselves or by their partners. As a Salesforce partner, you can even list your app on Salesforce AppExchange using the Licence Management Application (LMA). Think of it like your computer's operating system updating automatically; managed packages can update themselves with new features.
For instance, consider a digital toolbox tailored for graphic designers. This toolbox, much like a managed package, contains a variety of design software, tools, and templates. Designers can acquire this toolbox from an online marketplace, similar to AppExchange, to streamline their workflow and create stunning visuals. As new design techniques emerge, updates to the toolbox enhance its capabilities, ensuring designers have access to the latest tools and features.
There are three types of managed packages
Unmanaged packages are like open-source tool kits that anyone can tweak. Once you hand them over to someone, you lose control over what they do with them. These packages aren't tied to any specific rules or updates. You can freely share components between different groups, even if they're not related. But if a new version is released, you won't simply upgrade; instead, you'll need to reinstall it elsewhere.
Keep in mind that unmanaged packages don't come with built-in ways to track versions, upgrade, or get support. Once installed, the unmanaged package becomes an integral component of the new environment, dissociating from its origin. So, if the original creator makes changes, the receiver has to update or reinstall it manually.
Simply put, in Salesforce, an unmanaged package is a bunch of custom stuff that you can share with others. Users can then freely change, add, or remove anything in that package.
For instance, imagine a travel planner toolkit package in Salesforce. It's like a comprehensive set of tools and templates specifically designed to streamline the process of creating custom travel planning apps. Whether you're a travel agency looking to enhance your services or an individual wanting to organise your travel plans more efficiently, this toolkit provides the essential components to get started quickly and customise as needed.
Choosing between managed and unmanaged packages depends on factors like who you're sharing with, how much control you need, and whether you expect to update or modify the package in the future.
Salesforce offers two types of packages: Managed and Unmanaged. Managed Packages are officially approved by Salesforce or their partners and can be found on the Salesforce AppExchange. They undergo a strict security check to ensure they're safe for users' organisations and data. On the contrary, Unmanaged Packages are not approved for the AppExchange and don't go through any security review. Let's explore the distinctions between these two types in more detail.
Aspects | Unmanaged Packages | Managed Packages |
---|---|---|
Modification | Source code can be modified freely | Source code is protected and cannot be modified |
Distribution | Shared via source code or file exchange | Distributed via AppExchange |
Customization | It is easier to customise according to specific needs | Limited customisation due to code protection |
Installation Source | Directly uploaded or manually installed in Salesforce | Installed from AppExchange or Salesforce UI |
Upgrades | Manual upgrades required | Automated upgrades provided |
Security | Components can be modified directly | Components are protected and cannot be modified |
Usages | Used for quick customisation or prototyping | Ideal for distributing proprietary solutions |
Org Limits | Unmanaged package components do not count towards limits | Managed package components count towards org limits |
Certainly! Here's an explanation of the differences between unmanaged and managed packages in the context of Salesforce packages:
When choosing the right package type, it's crucial to think about your specific needs.
Unmanaged packages seem appealing at first because they're free and quick to launch. However, they're best suited for custom codes intended for a selected group of priority customers. Keep in mind, though, that they may need to scale better.
On the other hand, managed packages are perfect for integrating with the Salesforce ecosystem to grow your product. They're scalable, trusted due to Salesforce's security review, and come with powerful tools to manage your app's features.
Managed packages work well for selling on the AppExchange, while unmanaged ones are better for moving components between different organisations.
If you're still unsure which option is best for you, consider consulting with experts like Dotsquares, a Salesforce consulting partner. We have a team of Salesforce specialists who can help you make the right choice for your business.