Mastering Salesforce Packages: A Comprehensive Guide

Karan Jain
4 min readSep 22, 2023

--

Salesforce packages are containers for storing built applications, codes, layouts, permissions, automation, etc. and sharing with other Orgs.

It is important to ensure that we use the correct package while developing the Salesforce app exchange application. Salesforce claims that it provides top-notch security for all data entered and stored in its CRM, but some insecure applications can create an exception.

When these apps are reviewed and approved by Salesforce’s Security Review team, they can take your data management practice to a whole new level.

Let’s find out how you can create a secure app using the packages on App Exchange.

Package: what is it?

A package is a collection of components and applications developed by Salesforce. Upon creating a package, we can share it with other Salesforce organisations, and it will remain completely private until you publish it on the app exchange.

In Salesforce, there are two types of packages. In order to understand the types of packages, let’s first understand these terms

Component — A component is like a building block in software. You use these blocks to create features. In unmanaged packages, once added, they’re hard to change. In managed packages, some can be upgraded, making updates easier. Think of it like Legos — some pieces can be swapped out, while others are stuck together.

Attributes — Attributes are like settings for components, like the name of an email template or a checkbox for reports.

In unchangeable components (in both unmanaged and managed packages), both the developer and user can make changes.

In upgrade able components in a managed package, some settings can be changed by the developer, some by the user, and some can’t be changed by anyone. It’s like having adjustable, user-only, and locked settings.

Manage package -

Manage package is the collection of the components and applications. Many partners and 80% of applications on app exchange are widely use the this package. There is reason why mange package is so popular because source code for many component are not available unlike the unmanaged package. And we upgrade this managed package too.

We can store permission set and profile. Developers can use permission sets or profile settings to grant permissions and other actions in packages. But when talking about seamless upgrading certain destructive changes, like we cannot remove the objects,fields which cannot be deleted from managed packages.

In manage package there two types 1 Generation & 2 Generation

Unmanaged package —

Unmanaged package is used to distribute open source applications to provide developers with with basic functionality.

– We can edit unmanaged package components after installing the unmanaged package in a Salesforce organisation.

– The developer who created unmanaged package has no control on installed components, can’t edit & can’t upgrade.

Certainly! In Salesforce, you have two main options when it comes to integrating third-party applications from the App Exchange: unmanaged packages and managed packages. Unmanaged packages offer full customization control, allowing you to modify components as needed, like building with individual tools. On the other hand, managed packages are pre-made solutions that are easier to set up but offer less customisation. They come with automatic updates, while with unmanaged packages, you need to manually handle updates. Your choice between the two depends on your project’s customisation needs and how much control you want over the components SO.

When to use Managed Package

Managed packages are the best options for those who seek growth and success for their product in the Salesforce ecosystem

1. Ease of Distribution: Managed packages are easy to distribute and install for other Salesforce organisations.

2. Version Control: They offer version control, allowing you to release updates and enhancements systematically.

3. IP Protection: Managed packages protect your intellectual property and prevent unauthorised customisation.

4. License Management: You can manage licenses and control who can use your package

5. Automatic Updates: Managed packages enable automatic updates for your users, ensuring they have the latest features and bug fixes.

When to use unmanaged package

You should consider using an unmanaged package in Salesforce when:

1. Full Customisation Control: You need complete control to customise, modify, or extend the package components to meet unique business requirements.

2. In-House Development: Your organisation has the development expertise to make extensive customisation and wants to build upon the package’s foundation.

3. Limited Distribution: You are not distributing the package to other Salesforce organisations and are using it solely for your own customisation needs.

4. No Automatic Updates: You prefer to manage updates manually, allowing you to carefully control changes to the package components.

5. Experimental or Development Purposes: Unmanaged packages can be used for experimentation, prototyping, or development where customisation requirements are extensive and may change frequently.

--

--

Karan Jain

Enthusiastic Salesforce Developer || 3x Salesforce Certified || Trailhead Power Ranger