Manage Your Licenses
After completing this unit, you’ll be able to:
- Define the License Management App and its purpose.
- Explain how to set up the License Management App.
- Identify key features of the License Management App.
You’ve created your amazing app, and you’ve learned the basics about licensing. Maybe you’ve even decided what kind of license to use. It’s time to set things up so that you can sell your app on AppExchange and track downloads.
This is 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 app, the LMA creates two records in the org where it's installed:
- A Lead record that identifies the prospect
- A License record for that prospect, based on the licensing terms for your app
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 app 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 pretty great, doesn’t it? So how do you get your hands on this wonderful app? Just log a case on the Salesforce Partner Community to request access to the LMA. Make sure you have a signed partner agreement before you do this.
If you went through the normal process of signing up as a partner and got your Partner Business Org (PBO), the LMA will already be installed. You can verify that the LMA is installed by clicking and looking for it in the App Launcher.
Request Access to the LMA
- From the Salesforce Partner Community, select Support.
- Click New Case.
- Under AppExchange Partner (ISV) Technology, select License Management Application (LMA).
- SubTopic and Description fields are prepopulated. Fill out the Subject. In the Description field, provide the ID of your business org and mention your signed partner contract.
- Click Submit Case.
The partner operations team reviews your case and emails you an installation link.
Install the LMA
- Log in to your business org. Usually this is the org that Salesforce created for you when you became a partner, and typically it contains your Environment Hub.
- Click the LMA installation link in the email you received from the partner operations team. Select the users in your business org who need access to the LMA.
- Confirm that the LMA is installed. Click and look for it in the App Launcher.
Now that you’ve installed the LMA in your business org, you can connect it to your app. Before you do this:
- You must have access to the publishing console. For this, you need the Manage Listings permission. Review how to request this permission in our Salesforce Partner Community module.
- Your packaging org must be connected to the publishing console. For a refresher on connecting your packaging org, refer to the ISVforce guide.
Connect Your App to the LMA
- From the Salesforce Partner Community, select Publishing.
- Select Packages to see the packages in your packaging org.
- Find your app’s package and select Manage License next to its entry.
- Select Register and log in to the org that contains your LMA (normally your business org).
- Select which license you want to use by default for this app, and click Save.
Once you’ve connected your app’s package to the LMA, you don’t need to do it again—later versions of your package are automatically connected to the LMA.
Configure the LMA
Like any app, 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, check out the ISVforce Guide.
The LMA installs and maintains several custom objects.
|Custom Object||What It Does||How It’s Used|
|Package||Represents managed packages (for apps or Lightning Components) on AppExchange||Associates customers with specific apps and components|
|Package Version||Represents the version number for a specific package||Tells you which customers are using which versions of your app|
|License||Enforces license restrictions for apps and components||Allows you to manage app or component licenses within specific customer orgs|
You’ve set up the LMA with your app, and customers are installing it. Great! If your app 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 app.
- 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 your business org, click .
- 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:
|Expiration||This is the date of expiration for your app. After the date in this field, a customer no longer can use your app. 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 app. 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 app.|
|Status||This field controls whether a customer gets access to your app at all. Select a value from the picklist:TrialAllows the customer to try your offering for up to 90 days. If you convert a trial license to an active license, you can't change it back
to a trial.ActiveAllows the customer to use your offering according to the license agreement.SuspendedProhibits the customer from accessing your offering.When a customer uninstalls your app, the Status field is set to Uninstalled, and the license
can’t be modified.
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 app 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 app is installed or uninstalled. Take a look at our list of best practices for things to keep in mind.
For example, you can notify your sales ops team when a customer uninstalls your app, 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 app.
- ISVforce Guide
- ISVforce Guide: Integrate the License Management App into Your Business Processes
- ISVforce Guide: Best Practices for the License Management App
- Salesforce Partner Community: License Management Application
- Trailhead: Lightning Experience Customization
- Trailhead: Salesforce Partner Community: Manage Your Team's Access to the Salesforce Partner Community
- SOAP API Developer Guide: UserLicense
- SOAP API Developer Guide: PackageLicense
- SOAP API Developer Guide: UserPackageLicense