Features Overview
A Feature represents a specific capability or resource that your product offers to customers. Features are the building blocks of entitlements — they define what can be entitled, while product and subscription entitlements define how much of each feature a customer gets.
Key Concepts
- Features are defined at the product level — each feature belongs to a product.
- There is a many-to-many relationship between features and catalog items (rate plans, addons). A single feature can be attached to multiple rate plans, and a rate plan can have multiple features.
- Every feature has a type that determines the kind of values it can hold.
- Features go through a lifecycle (Draft → Active → Inactive) to allow safe development and rollout.
Feature Properties
Every feature has the following properties:
| Property | Required | Description |
|---|---|---|
| Name | Yes | Internal name used in the admin panel. Max 100 characters. |
| Feature Key | Yes | Unique identifier used in API calls. Auto-generated from the name. Cannot be changed after creation. Max 100 characters. |
| Feature Type | Yes | Determines value behavior: Switch, Quantity, Range, or Custom. Cannot be changed after creation. |
| Description | No | Internal description for admin reference. Max 200 characters. |
| External Name | No | Display name shown on pricing tables and the customer portal. Max 200 characters. |
| Unit of Measurement | No | Label for Quantity and Range types (e.g., “API calls”, “GB”, “users”). Max 50 characters. |
| Portal Visibility | No | Whether the feature is visible to customers in the self-serve portal. Default: visible. |
| Status | Auto | Lifecycle status: Draft, Active, or Inactive. |
Feature Types
BillHive supports four feature types. The type determines how entitlement values are defined, displayed, and aggregated.
Switch
A simple on/off toggle. The feature is either available or unavailable.
- Default Value: true or false
- Aggregation: OR logic — if any source (plan or addon) enables it, the feature is enabled
- Use cases: SSO, White-labeling, Advanced Analytics, Custom Branding
Quantity
A numeric value representing a count or limit.
- Default Quantity: An integer value
- Unit of Measurement: Label describing what is counted (e.g., “API calls”, “users”, “projects”)
- Aggregation: SUM — values from plan and addons are added together
- Use cases: API calls per month, number of team members, storage in GB
Range
A min/max bounded value, useful for limits that vary within defined boundaries.
- Min Value / Max Value: Integer bounds
- Unit of Measurement: Label for the range (e.g., “requests/min”, “GB”)
- Aggregation: SUM of min and max values, capped by the feature’s maximum
- Use cases: API rate limits, bandwidth allocation, concurrent connections
Custom
Named levels represented as text labels, ordered from lowest to highest.
- Custom Levels: An ordered array of level names (e.g., [“Email Support”, “Chat Support”, “Phone Support”, “Priority Support”])
- Default Value: One of the defined levels
- Aggregation: HIGHEST — the highest-positioned level wins
- Use cases: Support tiers, service levels, priority classes
Feature Statuses
| Status | Description |
|---|---|
| Draft | Initial state. The feature can be edited freely. Entitlements can be configured but do not take effect for subscribers. |
| Active | The feature is live. Entitlements are in effect and applied to subscriptions. |
| Inactive | The feature is disabled. Existing entitlements remain but cannot be modified. Can be reactivated. |
Feature Limits
- Maximum 400 features per tenant.
- Feature Key max length: 100 characters.
- Custom levels max length: 200 characters each.