Skip to main content

Requirements for Marketplace app

Level: intermediate

Make sure the Marketplace app meets the following groups of requirements:

  • requirements for compatibility
  • requirements for package
  • requirements for metadata
  • requirements for localization
  • requirements for front-end
  • requirements for functionality
  • requirements for licensing
  • requirements for security
  • requirements for demo records

Requirements for compatibility

  • Implement compatibility with the MS SQL and PostgreSQL databases for new Marketplace apps. Implementing compatibility with the Oracle database for Marketplace apps is optional.
  • The Marketplace app must support .NET Framework. .NET Core and .NET 6 support is optional.
  • Implement compatibility with the latest Creatio version of the Marketplace app.
  • Implement compatibility with the existing Marketplace app updates with the previous app version.
  • Describe all implemented corrections and modifications when you release the new version of the existing Marketplace app.
  • The Marketplace app must be compatible with base Creatio products and versions. If you use the Studio Creatio platform as a base product, the Marketplace app is compatible with all base Creatio products.
  • Support all versions of the Marketplace that the users use with actual Marketplace app licenses or the paid support package.
  • Use the file management API in your Marketplace app instead of direct SQL queries. The API lets you access files stored in the database and external storage. Learn more: API for file management.

Requirements for package

  • Release the Marketplace app as a single Creatio app and/or setting in an external app.

  • Fill out the Marketplace app metadata before delivery.

  • The Marketplace app functionality must be stored in an assembly package. Learn more: Assembly package.

  • Deliver the implemented customization as a package. Do not customize Creatio beyond the configuration, for example, create or change files in the Creatio file system.

  • The Marketplace app functionality must include the unique prefix of the app developer. Learn more: Development tab (Developer prefix property). Do not develop a Marketplace app without a prefix or with the Usr prefix.

  • The Maintainer package property must include the maintainer specified in the public profile. Learn more: Development tab (Developer maintainer property). Do not develop a Marketplace app using the Customer maintainer.

  • Upload the Marketplace app as a *.zip archive that contains one or more *.gz packages.

  • Add all *.gz package archives in the root folder of the *.zip archive. Do not use subfolders.

  • Name the *.zip archive based on the following template: Marketplace-app-name-Version.Number.

    View an example that names the *.zip archive of the custom Marketplace app below.

    Example of a custom *.zip archive

    Salesloft-connector-1.15.zip

    Salesloft_connector_01.06.2022_10_16.zip

Requirements for metadata

  • Do not use the base metadata template generated automatically.

  • The Please name your application field value entered when creating the app must match the app name on Creatio Marketplace.

  • You can select any icon in the Select icon and color block or use custom icon. The icon must match Marketplace app functionality.

  • You can select any icon color in the Select icon and color block.

  • The Version metadata property must be numbered following the X.Y.Z format, e.g., 1.0.25.

  • Update the Version metadata property for each new release.

  • The Maintainer metadata property must include the maintainer specified in the public profile. Learn more: Development tab (Developer maintainer property). Do not use the Customer maintainer.

  • If you use custom icon for the Marketplace app, make sure the icon meets the following requirements:

    • Format: *.svg.
    • Size: 32x32 pixels.
    • Style of icon: a flat white minimalist image, rounded corners.
    • Style of icon background: background must be transparent.
    • Recommended line width of icon: 2 pixels.
    • Focus is on the center of the icon.
    • The icon matches Marketplace app functionality.
    • The icon detailing matches the other icons.

Requirements for localization

  • English version is mandatory.

  • Translations to other languages are optional.

  • Translate the following elements if users can use the Marketplace app in other languages:

    • app UI, for example, sections, details, fields, dashboards, notifications, etc.
    • localizable strings
    • bound data, for example, lookup values, demo data, system settings, etc.
  • Translation of system data is optional. For example, headings and elements of business processes, headings of objects and schemas, and log data.

Requirements for front-end

  • New Marketplace apps must be developed in Freedom UI. Freedom UI sections can include Classic UI section counterparts.

  • Existing Marketplace apps developed in Classic UI can be updated on the Creatio Marketplace without migrating to Freedom UI.

  • Requirements for the icon of the Marketplace app section are as follows:

    • Style: a flat white image without small elements or lines, background must be transparent.
    • Format: *.svg.
    • Size: 32x32 pixels. Note that the required icon size without border margins is 24x24 pixels.
    • We recommend selecting an icon of the Marketplace app section from the section icon library.
  • Capitalize the first word of the UI element name. Using the capital letter for each word of the interface element name is unnecessary.

    View an example of a custom field name below.

    Example of a custom field name

    Serial number

    Serial Number

  • Use the basic page and navigation elements of the Creatio instance for the Marketplace app interface. For example, fields, buttons, tabs, etc.

  • Enable the user to use the base Creatio functionality in its original form, whether implementing the new functionality or extending the basic Creatio functionality in the Marketplace app.

  • Follow these principles when you develop the Marketplace app functionality:

    • Clarity. Develop a clear and logical interface to help users orient in the Marketplace app. Name UI elements as calls to action, for example, add, upload, etc.
    • Consistency. Design the app functionality so that it solves a specific business problem in its entirety as opposed to improving the experience of an individual functional or organizational role.
    • Specificity. Let the user use the additional technology implemented in the Marketplace app, for example, keyboard and mouse input, touch input, etc.

Requirements for functionality

  • Use the Marketplace app to solve a business task that cannot solve with the basic development tools, or this solution is time-consuming or optimizes the business task solution.

  • Do not duplicate base Creatio functionality in the Marketplace app. If the Marketplace app extends base functionality, use existing Creatio functionality.

    Examples that comply with the requirement:

    • Extend the CTI panel tab functionality of the base communication panel that use for the call management during the new telephony connector development.
    • Extend the Chats tab functionality of the base communication panel used for the chat management during the new chat connector development. You need not develop a UI that displays chats.
    • Develop a custom contact action and add it to the Actions button menu of the contact page toolbar. Replacing the CSS styles and developing the new button in another place on the contact page are unnecessary.

Requirements for licensing

  • Paid Marketplace apps must be licensed.

  • Custom objects of your Marketplace app must be licensed.

  • The name of a licensed operation must include the prefix specified in the public profile. Learn more: Development tab (Developer prefix property).

  • Set up licenses based on the rules in the table below.

    Rules for licensed elements

    Licensed element

    Licensing requirement

    Limitations

    Objects

    The objects of a custom section must be licensed. Required for an object that meets the condition.

    Maximum number of licensed objects: 20.

    Key objects that contain active data changes must be licensed. Required for an object that meets the condition.

    Object that has static data must not be licensed. For example, lookups.

    Functionality-licensing operations

    License operations if the package does not contain licensed objects.

    Maximum number of licensed operations: unlimited.

    Component-licensing operations

    License operations with a custom Freedom UI component.

    Number of licensed operations: one operation per component.

    Important

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

Requirements for security

  • Make sure the Marketplace app settings related to information security meet the settings listed in a separate article: Recommended information security settings (user documentation).

  • The Marketplace app must not decrease Creatio performance.

  • The Marketplace app must follow information security best practices. Use the recommended API Creatio calls in the Marketplace app. Ensure that Open Web Application Security Project (OWASP) Top 10 vulnerabilities are absent in the Marketplace app. Do not use components with known vulnerabilities. Learn more about vulnerabilities on the official OWASP website.

  • Use the law way to get data access, and do not send data from the Creatio instance in the Marketplace app. Describe the data sending on the Marketplace app page and restrict the data sending before the user authorization when you integrate with external apps.

  • Do not use anonymous web services in Marketplace apps if other integration options are available. Instead, integrate the Marketplace app with an external app using webhooks or web services that use OAuth 2.0 authorization. If secure integration options do not let you solve all business problems, you can use anonymous web services as long as you meet the following requirements:

    • Implement verification of incoming requests. For example, use an access token.
    • Do not transfer confidential information via an anonymous web service.

    Marketplace apps that use anonymous web services have higher publishing time since the security department must review the anonymous web service.

  • Do not use external libraries from unknown sources in the Marketplace app.

  • Deliver Marketplace app functionality as packages that are not linked to external repositories. For example, NuGet, npm, CDN, etc. Add the entire set of JS and CSS files that include the complete source code of the app functionality to the packages. Implement and test the app on a single Creatio instance. Use an external connection that is described in the app documentation on the Creatio Marketplace only for data exchange.

  • Use package install scripts to execute CRUD operations with data as part of the package installation process instead of SQL scripts. Install scripts execute operations with data using the Entity class. Learn more: Customize delivery process.

  • Encrypt sensitive data such as API keys, passwords, etc. and store them in the Encrypted string field. Learn more: Set up secure password storage.

  • If you use the Encrypted string field on a Creatio form page, implement custom front-end logic to hide the field value on a page.

Requirements for demo records

  • The number of section records must provide enough data for nice-looking analytics (20 on average).
  • The first three section records must be showcase records.
  • You can add up to 1000 demo records to the corresponding database table.
  • Record data must be logically consistent.
  • Demo data must be relevant for the target audience and region where you are going to distribute the app (addresses, names, phone numbers).
  • Each section record must be unique. The record variety must be reflected in folders and analytics.
  • Use records that are logically related to records of other sections. We recommend creating record chains instead of going from section to section.
  • Bind the demo records to base demo data for data integrity.
  • Add demo records not only to sections, but also feed records, reminders, notifications, emails, comments, likes, etc.
  • Demo data must have a positive message.
  • Demo data must be in English.
  • You can fill out lookups using either softkey or demo data.
  • Lookup records must be unique.
  • If Creatio must add the corresponding activities when you add demo records, verify that the records are present in the activity schedule.
  • If demo data must include dashboard analytics, verify the charts in each section and take the update date into account.
  • Some sections use preconfigured filters by owner and period, for example Activities, Invoices. Ensure the section list includes demo records that match the filter conditions.
  • Implement a demo mode for connectors. You can do it using pre-configured test users or a simulated integration that showcase how the connector operates.

See also

Steps to publish the Marketplace app using Creatio Marketplace Console

Steps to publish a public profile

API for file management

Communication panel (user documentation)

Recommended information security settings (user documentation)

Customize delivery process

Recommendations for front-end development of a Marketplace app

Assembly package


Resources

Section icon library

Official OWASP website

Marketplace updates