April 18, 2024

Tech

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.

What are Packages in Salesforce?

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:

  • Components: These are the building blocks of a package. They can be things like custom objects and fields.
  • Attributes: Think of these as the characteristics of a component, like its properties.
  • Package: It's like a container for putting together small pieces (like objects or fields) or entire applications.

In Salesforce, there are two main types of packages: managed and unmanaged.

What are Salesforce Managed Packages?

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

  • Managed – Beta: This is a test version of the managed package for trying out apps.
  • Managed – Released: Once tested, the package is made available on AppExchange for everyone.
  • Managed and Installed: This package is installed by another Salesforce organisation and is managed and updated by the creator.

Benefits of Managed Package

  • These tools help you move parts of your organisation to another easily.
  • They let you keep track of different versions of your components.
  • You can make changes to previous versions easily.
  • You can send updates to subscribers without hassle.
  • They ensure smooth installations without conflicts.
  • Listing your app on the AppExchange helps others find it easily.
  • Listing your app on the AppExchange helps others find it easily.
  • You get automatic upgrades.
  • They make it easy to manage payments and licencing.
  • You have full access to the API, no matter the edition.

What are Salesforce Unmanaged 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.

Benefits of Unmanaged Package

  • These tools are available for free and are used to move different parts of one organisation to another.
  • You can't update unmanaged packages. So, if a new version comes out, you'll need to reinstall the package.
  • Since they don't have a unique identifier, you can create multiple packages with the same name.

Choosing the Right Package

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.

When to use Managed Packages:

  • App Distribution: If you plan to share your app or solution on the Salesforce AppExchange .
  • Version Management: Keeping track of versions is important for maintaining and updating customisations across several organisations.
  • Licence Control: For situations where you need to manage who can access and change the packaged elements.
  • ISV Solutions: If you're an independent software vendor providing solutions to multiple Salesforce organisations.

When to Use Unmanaged Packages:

  • Early Development: During the initial stages of building, when customisation needs are changing fast, adaptability is key.
  • Single-Org Tweaks: For making one-off adjustments in a particular organisation without needing version control.
  • Rapid Changes: When you prefer quick updates and direct tweaks in the destination organisation, unmanaged packages are suitable. This is especially for rapid changes where flexibility and immediate adjustments are necessary.

Salesforce Managed vs Unmanaged Package: A Quick Comparison

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:

Modification

  • Unmanaged Packages: Unmanaged packages are typically distributed for internal development or small-scale use. They can be easily shared via links or files provided by the developer. The installer does not need a Salesforce account or access to the AppExchange to install them.
  • Managed Packages: Managed packages are suitable for commercial distribution and scalability. They can be distributed via links provided by the developer or directly through the Salesforce AppExchange. Installers require a Salesforce account and access to the AppExchange or provided link. Developers can monitor installation data and control access to the package.

Customization

  • Unmanaged Packages: Components in unmanaged packages are fully customisable. Organisations can freely modify the components according to their specific needs. This flexibility allows for extensive customisation tailored to the organisation's requirements.
  • Managed Packages: In contrast, managed packages have locked components, meaning the installing organisation cannot modify them. This restriction ensures the integrity of the package's functionality and prevents unintended alterations. While this protects the package's core functionality, it limits customisation options for the installation organisation.

Installation Source

  • Unmanaged Packages: Unmanaged packages can be easily installed from a link or file shared by the developer. This straightforward installation process allows developers to distribute packages without requiring installers to have a Salesforce account or access to the AppExchange.
  • Managed Packages: Managed packages can be installed from either a link provided by the developer or directly from the Salesforce AppExchange. However, installers must have a Salesforce account and access to the AppExchange or provided link. Additionally, developers have more control over access to the package and can monitor installation data.

Upgrade

  • Unmanaged Packages: Once installed, unmanaged packages cannot be upgraded. Installers must uninstall and reinstall the package to access newer versions. This manual upgrade process can lead to data loss or configuration issues and prevents developers from pushing updates automatically.
  • Managed Packages: Managed packages can be upgraded by the developer, and installers have the option to install updates. Developers can release new versions with improved functionality or security, and installers receive notifications about available updates. This automated update process ensures that installers can access the latest features without data loss or manual intervention.

Security

  • Unmanaged Packages: Unmanaged packages lack security features, providing installing organisations with complete control. They can modify or delete package components as needed, but this freedom also comes with the responsibility to manage security.
  • Managed Packages: Managed packages undergo rigorous testing and are often listed on the Salesforce AppExchange. Installers have limited access to package components and data, as determined by the developer. Developers can enforce security policies, such as requiring a licence, encrypting data, or setting component visibility.

Usages

  • Unmanaged Packages: Unmanaged packages are ideal for sharing open-source projects or templates. Developers can distribute them as starting points for customisation and extension without the need for ongoing maintenance or support.
  • Managed Packages: Managed packages are suitable for selling or licencing commercial applications or components. Developers provide them as finished products meeting installer requirements, and ongoing maintenance and support are necessary.

Org Limits

  • Unmanaged Packages: Unmanaged packages count against the organisational limits of the installer's organisation. Installers must ensure they have sufficient available resources and features before installation and can uninstall the package to free up resources.
  • Managed Packages: Managed packages do not count against the organisational limits of the installer's organisation. However, developers must comply with the organisational limits of the packaging organisation, and installers can install the package without concern for resource limitations but cannot uninstall it without contacting the developer.

Which one is better: Managed or Unmanaged Packaging?

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.


Load More