Skip to content

Step-by-step: Define a New Product in Planship

In this guide, we'll walk through how to add a hypothetical product in the Planship Console. Let's get started.

Our hypothetical product

For the purpose of this guide, we'll model a hypothetical product capable of sending notifications via Email, Slack and SMS. The product will offer auto-renewing subscription plans that provide tiered access to product functionality as follows:

Free Personal Team
Email only Email and Slack Email, Slack, and SMS
Up to 5 notifications per month Up to 50 notifications per month Up to 200 notifications per month
Up to 120 characters per message Up to 240 characters per message Up to 1000 characters per message

Identifying Planship levers

From the plans above, we can identify three pricing dimensions of our product:

  • Available integrations (Email, Slack, and/or SMS)
  • Maximum number of notifications per month
  • Notification message size limit

Understanding the dimensions is critical because they directly correspond to Planship feature and metered levers. In turn, correctly defined Planship levers will enable us to apply appropriate entitlements to various plans and enforce these entitlements in our product code. The dimensions that we identified will map to the following Planship levers.

  1. Integrations - feature lever of list type
  2. Notifications per period - metered lever with total usage per subscription period aggregation formula
  3. Notification max characters - feature lever of integer type

Creating a new product

Let's start by signing into the Planship Console. If you don't have a Planship account yet, sign up now.

Once signed in, navigate to the desired organization (E.g. the default organization automatically created by Planship) by clicking on it. Then create a new product by clicking the New product button. Give the new product a name (E.g. 'My product'), and click the Create button to save it.

Planship console screenshot showing a new product creation using Create a product dialog
Create a new product

The name that we choose for our new product is important as Planship will use it to generate a product slug (E.g. 'My product' -> my-product). The product slug is the unique identifer of a product in Planship API operations. For instance, we will use it to identify the product when initializing the Planship API client.

Note

The Planship API uses slugs to identify resources like products, plans, and levers, and they are unique within the scope of their parent and type. Please note that changing a product, plan, or lever name will result in a change of its slug, which will likely break your existing Planship SDK integration unless a refactor is performed.

Now, navigate to the newly created product by clicking its name.

Creating levers

The new product is empty; it has no plans or levers defined in it. Let's start by defining all of the levers that we identified earlier, starting with the Integrations list feature lever.

Integrations list feature lever

On the product page, switch to the Levers tab, and click the New lever button. This will open the Create a lever dialog. Enter a name for the new lever (Integrations), and select List as the lever type.

Note

Just like the product, the new lever's name will be used by Planship to generate a slug that will become the unique identifier for it in Planship API operations. For instance, lever slugs are used as keys in the entitlements dictionary returned by Planship.

Planship console screenshot showing a new 'Integrations' list lever creation using the Create a lever dialog
Create 'Integrations' lever

Now it's time to configure the values for the new lever. We chose the list feature type for this Integrations lever because it maps to a product feature best represented by a list of strings (E.g. ['Email', 'Slack'] if both Email and Slack integrations are available to a customer). Add all supported values (Email, Slack, and SMS) to the Items field, and optionally choose items for the lever's Default value. The default value is applied automatically to all plans without an explicit entitlement that overrides it.

Planship console screenshot showing the 'Integrations' list lever configuration using Create a lever dialog
Configure the 'Integrations' lever's items and default value

Click the Create button to save the new Integrations lever, and click the New lever button again to repeat the process for the next lever: Notifications per period.

Notifications per period metered usage lever

This time, after choosing a name for the new lever (Notifications per period), we are going to pick Metered as its type. Leave all configuration fields set to their default values, with the exception of the Metering Identifiers field, where we are going to enter notification. In Planship, a Metering ID is an arbitrary string that identifies a unit of raw usage reported to Planship. You can read more about Metering IDs here.

Planship console screenshot showing the 'Notifications per period' metered lever creation using the Create a lever dialog
Create and configure the 'Notifications per period' metered lever

Click the Create button to save changes, and repeat the process for the remaining Notifications max characters lever.

Notifications max characters integer feature lever

Click the New lever button, choose a lever name (Notifications max characters), and pick Integer for its type. This lever represents a numerical limit that we may want enforce in our product code. We are going to leave all of the configuration fields set to their defaults except for the Default value, which we'll set to 120.

Planship console screenshot showing 'Notifications max characters' integer lever creation using Create a lever dialog
Create and configure the 'Notifications max characters' integer lever

Click the Create button to save changes. Now we're ready to define plans and configure entitlements.

Planship console screenshot showing product 'Levers' tab with three different levers
All levers defined for the 'My product' product

Creating plans

Switch to the Plans tab, and click the New plan button. Enter 'Free' as the plan name, and click the Create button to create it.

Free plan

Planship console screenshot showing the 'Create a plan' dialog
Create 'Free' plan

We should now see the Entitlements tab of the newly created Free plan. Since we haven't defined any feature or metered entitlements for this plan explicitly, it only has implicit entitlements that come from the default values of the levers that we defined earlier:

  • Integrations: Email
  • Notification max characters: 120
  • Notifications per period: 0
Planship console screenshot showing initial entitlements for the new 'Free' plan
Initial entitlements for the 'Free' plan

While the Integrations and Notification max characters entitlement values are identical to what we intended for the Free plan, Notifications per period entitlement value is not; it should be 5 notificatons per period instead of 0. To change the value we need to to create an explicit entitlement for the Notifications per period lever.

Planship console screenshot showing creation of an explicit entitlement for the **Notifications per period** lever
Create an explicit entitlement for the Notifications per period lever

Click the Notifications per period implicit entitlement to open the Create an explicit entitlement dialog, change the Usage limit value to 5, and click the Create button to save the entitlement.

Planship console screenshot showing explicit and implicit entitlements of the 'Free' plan
Fully configured entititlements of the 'Free' plan

Before we move on to create and configure our two remaining plans, let's make sure that the Free plan has correct subscription renewal settings. Switch to the Settings tab and review the value of the Auto renew, Auto renew plan, and Duration fields. By default, they should be set to True, Free, and 1 month respectively. This means that all subscriptions to this plan will automatically renew to the Free plan every month unless they are configured otherwise.

Planship console screenshot showing the settings tab of the 'Free' plan
Settings tab of the 'Free' plan

Personal and Team plans

Click the New plan button to repeat the process for the Personal plan. The Personal plan should include both Email and Slack integrations, up to 50 notifications per subscription, and a 240 character limit.

Planship console screenshot showing creation of an explicit entitlement for the **Integrations** lever
Create an explicit entitlement for the 'Integrations' lever

To accomplish this, we need to replace the plan's implicit entitlements (default values) with explicit ones. Let's start with the Integrations lever by clicking on its implicit entitlement, or the New entitlement button and choosing Integrations from the list. Then, select the Integrations values that should be supported on the Personal plan (Email and Slack), and click the Create button to save your changes.

Planship console screenshot showing explicit entitlements of the **Personal** plan
Fully configured entititlements of the 'Personal' plan

Repeat the process for the remaining two levers until all entitlements match the desired values for the Personal plan, and follow the same steps to create the Team plan with the desired entitlements.

Planship console screenshot showing explicit entitlements of the **Team** plan
Fully configured entititlements of the 'Team' plan

Next steps

With our new product fully defined including levers, plans, and plan entitlements, we can now register customers, subscribe them to plans, retrieve entitlements, and more through the Planship SDK of our choosing. To get started, check out the Planship code integration guide.