Key Terminology

Here’s three terms specific to Kana which are vital to know in order to understand how we think about them and what we expect from them:

How does everything fit together?

Features & Package

You can create a feature.

You can also create a package. The feature can then be added to the package.

When a feature is added to a package, we record details about the feature as it exists in that particular package.

We create a PackageFeature in order to record these details.

This includes information such as:

  • The type of feature

  • The limit of the feature within that package

Feature Type

The type of the feature within the package can either be:

  • Binary: You give users access to the feature. There is no limit.

  • Consumable: You give users an amount of this feature. There will be a limit.

As the type of feature is added when a feature is created, and is related to the feature overall (not just when it’s added to a package), we will automatically record this based on what the type of the feature is.

Feature Limit

You can set an amount of a feature that is given to a user if they select this package. The type of feature changes the required values:

  • Binary: No limit needs to be provided.

  • Consumable: The number specifying the amount of the feature given in the package (ie. “500”).

The same feature can therefore be used across multiple packages with different limits. The type of feature will remain consistently the same throughout however.

What if I want to give an unlimited amount of a feature in a package?

You can specify that the amount should be unlimited via the Set to unlimited button.

Users & Subscriptions

You can create a user.

That user can then be subscribed to a package.

That user will then be entitled to the features within the package they are subscribed to.

We record this with an Entitlement which is linked to a particular feature and user.

When looking for how much of a feature a user is entitled to, you will see information on:

Subscription

You can see a package which the feature in question is linked to, plus the user that is subscribed to that package and thus has access to the feature in question.

What if a user is subscribed to multiple packages with the same feature?

If the user is subscribed to multiple package which contain the same feature, then we will look for the associated PackageSubscription with the highest limit and will only return the Entitlement (and thus Consumption) for that package/feature combination.

Consumption

You can see how much of the feature the user is entitled to, and the amount which they have currently used of that feature.

This only appears for a feature which is Consumable (as noted by the type of the feature on the related package). More here.

How do I report usage of a feature to Kana?

You will need to tell us when a user has used a particular feature, and how much of the feature they have used. You can do this through our API/SDKs with the recordUsage mutation.