Marketplace app licensing

Medium

The purpose of licensing is to control the use of paid Marketplace apps. Learn about licensing in a separate guide: Licensing.

If Creatio has no licenses uploaded for a product, Creatio demo mode is turned on. The entirety of app functionality is available in this mode. However, users can add only up to 1000 records to each database table.

The licensing process consists of the following steps:

  1. Generate the index of licensed elements.
  2. Define the license type.
  3. Send data obtained on previous steps to the Creatio Marketplace support (marketplace@creatio.com). The developer must send data via the Developer profile when publishing the Marketplace app. Learn more in a separate article: Steps to publish the Marketplace app.
  4. Creatio Marketplace support generates licenses for the Marketplace app based on the received data.

The developer must take steps 1–2 when developing the Marketplace app.

1. Generate the index of licensed elements 

The licensed elements are as follows:

  • Licensed objects. Names of custom objects added to the Marketplace app. Licensed objects are any custom objects, for example, section, detail, or lookup objects.
  • Licensed operations. Names of operations added to the Marketplace app logic to verify the availability of a license for specific functionality. For example, an additional action was added to a base Creatio section. The action must be connected to the licensed operation. When the action is called, the app program logic verifies the license availability. Based on the result, Creatio executes or interrupts the functionality.

The license can include licensed objects and/or licensed operations. Make sure the licensed elements meet the requirements specified in a separate article: Requirements for published Marketplace app resources. The licensed elements do not depend on the license type.

2. Define the license type 

Creatio provides the following license types:

  • Personal licenses. Grant access to the app for specific users. Bound to the user account and cannot be used by other users. The system administrator can redistribute licenses among users at any time.
  • Server licenses. Grant access to the app without binding access to specific users. All Creatio users that have the corresponding permissions have access to the licensed functionality.

The Marketplace app developer can contact Creatio Marketplace support (marketplace@creatio.com) to find out the number of paid and granted licenses.

The licensed options of the Marketplace app depend on the license type and licensed element.

Licensed options of the Marketplace app
Licensed element
Marketplace app type
Subscription type
Personal license
Objects
New Creatio section. Paid per user that works with the section.
Operations
Connector to an external service, for example, a telephony connector. Paid per user that can access to the service. For example, access to a telephony connector is paid per individual user.
Objects and/or operations
Section with records that use connectors to various external services. Paid per user that can access the section, and paid per service connector. For example, the Requests section was improved. The section is integrated with an external system that registers requests. The customer pays for access to the section functionality per user.
Server license
Objects
New Creatio section. Fixed price regardless of the number of users that work with the section.
Operations
Connector to an external service, for example, web chat that registers leads or requests in Creatio. Fixed price regardless of the number of users that have access to the service.

Attention. Do not use personal and server licenses that control the same objects and operations at the same time.

The license lasts for 365 days regardless of the type. The license expiration date is specified in the license and controlled by Creatio.

You can verify the license expiration date in the following ways:

  • If the licensed objects are included in the license, you do not need to implement the license availability verification. This verification is performed using out-of-the-box Creatio tools. The name of the licensed object starts with the prefix specified in the Developer prefix field of the Developer profile. Learn more about the Developer profile in a separate article: Prepare to develop a Marketplace app.
  • If the licensed operations are included in the license, implement the availability verification for the operation license in the Marketplace app source code.

Attention. The schema source code can be read and replaced. Therefore, we do not recommend implementing the availability verification for the operation license in configuration element schemas as this option is insecure. Use the licensed objects to determine the license expiration date instead. We recommend implementing the availability verification for the operation license in an external assembly. To do this, follow the instruction in a separate article: Plagiarism-proof the source code of a Marketplace app.

You can implement the license availability verification in the following ways:

  • in the back-end
  • in the front-end

To verify the availability of the operation license in the back-end, use the following methods of the Terrasoft.Core.LicHelper class:

  • GetHasOperationLicense(string sysPackageOperationCode). If the license is found, returns true. Otherwise returns false.
  • CheckHasOperationLicense(string sysPackageOperationCode). If the license is found, returns true. Otherwise generates the LicException exception.

sysPackageOperationCode. A string parameter that contains the name of the licensed operation. Specify this name in the Developer profile when publishing the Marketplace app. Learn more in a separate article: Steps to publish the Marketplace app.

UserConnection.LicHelper.GetHasOperationLicense("MyMarketplaceApplication.Use");
UserConnection.LicHelper.CheckHasOperationLicense("MyMarketplaceApplication.Use");

To implement the license availability verification in the front-end:

  • Implement the custom configuration web service that verifies the license availability.
  • Add the program logic of the request to the implemented web service.