The Features module helps you define the various features offered as part of your product line. It also allows you to define the entitlements that catalog items and subscriptions can have towards said features.
This results in a better customer experience for your users, and greater operational efficiency for your business.
There is a many-to-many relationship between features and product catalog items such as plans, addons & charges. An item can be assigned multiple features, and a feature can belong to multiple items.
All Features in Chargebee carry a name, description, and ID. Features can be created, updated, activated, archived, and deleted. Learn more.
Levels determine the extent to which a feature can be diversified when associating them with product catalog items. With a feature having three entitlement levels, you can assign each level to a catalog item - higher value entitlement levels to premium plans, and basic entitlement levels to starter plans.
This is explained more in the following section on Feature Entitlement Types. This section, along with Adding Features to Entitlements will help you understand the implementation of levels.
Entitlement type defines the nature of entitlement levels that are available to users for a feature. The different feature entitlement types are as listed below:
Switch - For features that are either Available or Not Available to a user. Also called feature flags or toggles in other systems.
Quantity - For features that are offered with pre-defined numerical limits to users.
Range - For features that can be offered with numerical limits within a certain range.
Custom - For features and benefits that have various entitlement levels, but aren't numerical by nature.
With a switch-type feature, you can restrict the feature access to a set of applicable product catalog items.
Switch-type features have available/ not available options as entitlement levels.
Example: Let's consider Analytics as a premium feature, for which only the Platinum and Gold plan users are entitled. You can select Switch as the entitlement type and configure it as available only for the premium plans.
Quantity type allows you to create numerical value-based features.
If the consumption of a feature entitlement can be tracked and measured against a limit using numerical values, then using a quantity type is recommended.
Applicable when you intend to closely control the entitlement levels by setting specific limits for each level. You can also add more entitlement levels. Learn more.
You can configure several quantity-based entitlement levels for a quantity type feature.
Example: Let's say you are running a streaming service and need to restrict the number of movies a user watches in a month based on their plan. Quantity-based entitlements would be the best fit here. You can set the Entitlement unit as movies/month, and set the levels as 20, 30 and 50 movies/month.
Range is applicable when you do not intend to closely control the entitlement levels. Unlike predefined values, you cannot set several limits but rather only a minimum and maximum value. Learn more.
Range can also be used when you want to experiment with a range to understand the levels that your customers will respond to.
Example: Let's consider that you sell your SaaS product in two countries - country A and B. Since API traffic in country A is usually high compared to the B, you intend to provide an API limit based on that. The plans you provide are A-basic, A-premium for country A and B-basic, B-premium for country B.
To tackle this use case, you can set a range from 100 to 1000 and configure API limits for each plan and country within that range. A-basic : 500 requests/min, A-premium : 800 requests/min, whereas B-basic : 150 requests/min and B-premium : 400 requests/min.
"Custom" type features help define service levels effectively. For example, onboarding, implementation, support, and success service levels.
It also allows you to configure any feature that doesn't come essentially under switch or quantity types. You can define several levels of entitlement using custom text or labels.
Example: Let's say that you have various service levels for the Support you offer. You can set Email Support, Chat Support, Phone Support & Priority Phone Support as the Entitlement levels from lowest to highest.