Manage Your Licenses
Learning Objectives
After completing this unit, you’ll be able to:
- Define the License Management App and its purpose.
- Identify key features of the License Management App.
Meet the License Management App
You’ve created your amazing package, and you’ve learned the basics about licensing. Maybe you’ve even decided what kind of license to use. It’s time to set up things so that you can sell your package on AppExchange and track downloads.
Here’s where the License Management Application (LMA) comes in. The LMA keeps records on installs and licenses and provides basic tools that help you support your customers. Salesforce distributes it as a managed package that normally lives in your business org.
When you've configured the LMA, keeping track of licenses is simple. Whenever a prospect installs your package, the LMA creates two records in the org where the LMA is installed:
- A Lead record that identifies the prospect
- A License record for that prospect, based on the licensing terms for your package
The LMA also provides a support console that helps you get in touch with your customers to help them troubleshoot issues. The console allows you to find the orgs where your package is installed. It even lets you log in to a customer org and debug a problem, provided that the customer has given you access. We discuss customer support in more detail in the next unit.
Sounds great, doesn’t it? So how do you access this wonderful app? If you went through the standard partner signup process and got your Partner Business Org (PBO), the LMA will already be installed in your PBO. You can verify that the LMA is installed. From the App Launcher ( ), search for and select the License Management App.
If it’s not installed, log a support case on the Salesforce Partner Community to request access to the LMA. Make sure you have a signed partner agreement before you do this.
Request Access to the LMA
1. Log in to the Salesforce Partner Community.
2. Click the question icon and then click Log a Case for Help.
The partner operations team reviews your case and emails you an installation link.
Configure the LMA
Like any package, the LMA has several configurable settings, including the assignment of roles and access permissions. Leads and licenses provide you with crucial information about your revenue stream, so it’s worth your while to spend some time understanding these settings.
Set Object Permissions
Licenses | Most users in your org don’t need any permissions. Users who view licenses need the Read permission. Users who modify license records need Read and Edit permissions. |
---|---|
Packages |
Only users who assign the lead manager need Edit permission. Other users have either Read permission or no permissions. |
Package Versions |
All users have Read permission or no permissions, because they don’t need to create, modify, or delete these records. |
Set Field Level Security in Profiles or Permission Sets
Licenses | Your settings depend on how you want to manage these fields for different users in your org. |
---|---|
Packages |
Make all fields Read-Only. |
Package Versions |
Make all fields Read-Only. |
For details on configuring the LMA, see: Configure Permissions for the License Management App
Understand LMA Custom Objects
The LMA installs and maintains several custom objects.
Custom Object | What It Does | How It’s Used |
---|---|---|
Package |
Represents managed packages on AppExchange |
Associates customers with specific packages |
Package Version |
Represents the version number for a specific package |
Tells you which customers are using which versions of your package |
License |
Enforces license restrictions for packages |
Allows you to manage package licenses within specific customer orgs |
Modify Your License
You’ve set up the LMA with your package, and customers are installing it. Great! If your package is a big enough hit, you have to make adjustments to your licenses when:
- Customers using a free trial want to switch to the full version of your package.
- Paying customers need more license seats so that all of their employees can benefit from your work.
Fortunately, it’s easy to make these kinds of changes.
Modify a License
- From the App Launcher ( ) in your business org, select License Management App.
- In the LMA, navigate to Licenses.
- Select the record for the customer license you want to modify and click Modify License. Don’t click Edit—that’s different. If you don’t see Modify License for the record, add it to the page layout.
- Now modify the license record by changing the values in the appropriate fields.
Here’s a rundown of the fields you can modify in a License record:
Field | Description |
---|---|
Expiration |
This is the date of expiration for your package. After the date in this field, a customer no longer can use your package. Select Does not expire if you don’t want the license to expire. |
Seats |
This field defines the number of licensed seats, or the number of users in your customer’s org who can use the package. You can allocate up to 99,000,000 seats, and the customer’s admin assigns these seats to users. Alternatively, select Site License to allow all users in the customer’s org to use your package. |
Status |
This field controls whether a customer gets access to your package at all. Select a value from the picklist: Active - Allows the customer to use your offering according to the license agreement. Suspended - Prohibits the customer from accessing your offering. When a customer uninstalls your package, the Status field is set to Uninstalled, and the license can’t be modified. |
Get Fancy with Tracking Installations
Because the LMA is a managed package built on the Salesforce platform, it has all the power and flexibility that you expect. With a little elbow grease, you can customize it for your own needs. For instance, you can:
- Synchronize License and Lead records for customers who installed your package before you set up your LMA, or when you install the LMA in a different org.
- Create Apex triggers that control how Lead records are created, and notify members of your team when a license expires or when your package is installed or uninstalled. Look at our list of best practices for tips.
For example, you can notify your sales ops team when a customer uninstalls your package, or notify your sales rep when a customer’s license is about to expire. This helps you keep in touch with your customers and prevents licensing from disrupting their work—or your relationship with them.
And that’s licensing in a nutshell. At this point, you know why we named the License Management App the way we did. But as we mentioned, the LMA can help you in other ways. In the next unit we introduce some new tools that let you decide how to release new features for your package.
Resources
- Second-Generation Managed Packaging Developer Guide: Best Practices for the License Management App
- Second-Generation Managed Packaging Developer Guide: Lead and License Records in the License Management App
- Second-Generation Managed Packaging Developer Guide: Adding Custom Automation to License Management App Objects