Plans and pricing

After creating your app, you must define the number of plans you want to offer, the difference between each tier, the type of price model they follow, and the price of each.

This guide will cover the available plan types, pricing your plans, and pricing versioning. You can also check out our pricing report for a deeper look into selecting plan types, pricing your plans, selecting plan tiers, and how to measure success.

Types of plans

Your app can support up to 10 feature- or seat-based plans, including one trial and one recommended plan. You can also create an optional free plan.

Feature or seat-based plans

Your plans can follow two different pricing models: feature-based and seat-based. Our apps framework UI intuitively displays pricing information in different formats based on your app's pricing model.


Feature-based pricing defines plan tiers based on the number of accessible features. For example, an app may offer 2 features on the basic plan, 4 on the advanced plan, and 6 on the premium plan.

This model works well for apps offering multiple features or measuring usage. Customers can select their subscription level based on their desired functionality or consumption level, so they don't pay for anything they don't need! This provides them with flexible and customizable tiers to meet their needs and creates new opportunities to upsell. Still, it may create new challenges while determining how best to bundle your app features into tiers.



Seat-based pricing allows you to create plan tiers based on the permitted number of users. For example, your app could permit up to 5 users per account on your basic plan, 10 on the advanced plan, and 20 on the premium plan.

This model works best for apps focusing on one main capability instead of several features. It is simple, straightforward, and scalable for users, but it can also deter companies or organizations with more seats from subscribing.

The number of seats is calculated by counting all active account users that are not guests or viewers. Our UI will intuitively recommend a plan based on the number of seats an account has across all products. The same calculation is used for accounts that start an app subscription while their account is in a trial period.


If you have a view app, dashboard widget, or custom object, we will automatically monitor user access by comparing account size to plan size. Let's say a user signs up for a plan with 200 seats and creates a subscription with your app. When they eventually upgrade to 300 seats, your app would then prompt them to upgrade to whichever tier supports 300 seats by indicating the need to upgrade on the Installed Apps page and a pop-up in the app's view. Throughout this time, the user will still have access and can use the app.

For all other apps, you can use our GraphQL API to check how many users an account has and block or allow access accordingly.

A note on per-user pricing: Since you can define a maximum of 15 plans, you cannot charge users per seat on their account. Instead, you must group each account into a user bucket. For example, a "20-50 seat plan" for all accounts with more than 20 and less than 50 users.

Trial and free plans

Trial plan

After deciding between feature or seat-based plans, you can decide which tier will be utilized as the trial plan.

Trial plans allow customers to see what your app is capable of and understand the value they can get from it before committing to a subscription. They help attract a wider audience, increase brand awareness, and ideally help increase the number of app subscriptions.

Your trial plan automatically lasts for 14 days - no more, or no less. If a customer requests a longer trial, you can manually extend their trial. App admins will receive a notification that they need to upgrade their plan once their trial period ends, and they will also be prompted to upgrade on the Installed Apps page. For view apps, customer access will be blocked in the app's view where they will also be prompted to upgrade.

Free plan

Free plans are optional but can be leveraged to attract more app users. With a free plan, users can experience parts of your app and explore its benefits without committing to a paid subscription. They also are a great way to retain trial users after their initial trial subscription ends.


After defining the plan tiers, you should decide how much each level costs in USD. If you don't effectively price your plans, you may not make enough revenue to sustain development.

Part of defining your app's pricing involves deciding if your app will follow a monthly or annual billing schedule. If you choose the annual option, the fee must be a round number when divided by 12 because the monthly price is displayed in the marketplace. Let's say you want your annual price to be $75. That comes to $6.25/month and is not a round number. You would need to adjust your annual fee to $72, which comes to $6/month.

When you eventually monetize your app, you will need to submit the following details for each plan:

  • App plan ID: The string that will be sent to your backend as the plan_id (less than 255 characters).
  • Name: The plan title that the user will see in our marketplace.
  • Description: The plan tier description (less than 255 characters).
  • Bullet points for plan features: Three to five bullet points that list the tier's features. Use short sentences of up to ten words.
  • Monthly price: List the monthly price in USD using only whole numbers.
  • Yearly price: List the yearly price in USD using only whole numbers.

If you need to make changes to your plans or pricing after your initial submission, you can do so using pricing versioning.

Update your pricing

Pricing versioning allows you to change existing plan prices and add new plans by creating a new pricing version. The new prices and plans will appear in the marketplace just for brand-new users (those without an existing subscription) and users on free plans. Users with existing active subscriptions, including trial users, will not see the updated pricing.

You can follow these four steps to create a new pricing version:

  1. Choose the version ID based on the numbering pattern you wish to follow. You may decide to number the version IDs evenly (1, 2, 3, 4, etc.), or you can follow your own numbering pattern (1, 10, 20, 30, 40, etc.). If you don't provide an updated version ID, it will automatically default to the following consecutive number.
  2. Compile the updated plan pricing information. Ensure you include the new prices for each plan you want to update and explain the new plans you are adding.
  3. Submit the new pricing information using the plans and pricing form, and be sure to complete the Pricing Versioning field.
  4. That's it! After you submit the form, our review team will process your submission and update your plans accordingly.

The pricing version ID is only exposed to developers and is accessible through subscription webhooks. Therefore, users do not know when a new pricing version is created. If an existing user requires different plans or prices, they would need to cancel their current subscription and create a new one.


Join our developer community!

We've created a community specifically for our devs where you can search through previous topics to find solutions, ask new questions, hear about new features and updates, and learn tips and tricks from other devs. Come join in on the fun! 😎