Pricing versioning

Pricing versioning is a powerful way to provide a better customer experience and update your app according to feedback and data. This mechanism lets you change the plan prices and add new plans, ultimately enabling you to run multiple pricing versions simultaneously.

Let's say you created an app with seat-based pricing and submitted it to the marketplace. After a while, you notice that most customers purchase the biggest plan because the other options don't have enough seats. You could use this data to create new plan pricing and update the pricing version to offer plans that better suit your customer's needs.

monday.com offers a straightforward versioning process that enables you to change your pricing seamlessly. This guide will walk you through the pricing versioning details, show you how to create a new version, and explain how to obtain an account's version ID!

Versioning basics

Each app monetized by monday must determine the app's pricing structure, which includes deciding if the plans will use feature or seat-based pricing, the billing frequency, and how many plans you will offer. Upon submission, your app's first pricing structure has a version ID of 1.

If you eventually want to change your app's pricing, you need to create a new pricing version. The latest version can include updated prices for specific plans or add new plans. Please note that we do not currently support removing free plans.

The version ID will change to whatever integer you select when updating your pricing version. 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.).

Once you update your app’s pricing version, the new prices will appear in the marketplace just for brand-new users (those without an existing subscription) and those on a free plan. Users with existing active subscriptions, including trial users but excluding free users, will not see the updated pricing. If an existing user requires an updated pricing version, they would need to cancel their current subscription and create a new one.

Creating a new version

Once you've communicated your changes to customers and are ready to create a new pricing version, follow these four steps:

  1. Choose the version ID based on the numbering pattern you wish to follow. 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.

Exposing the version ID

The pricing version is only exposed to developers, so users cannot see an app's pricing version. All subscription webhooks will return the pricing_version field with the pricing version when the account starts the subscription.

{
  "type":"app_subscription_created",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2, 
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_subscription_changed",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_subscription_renewed",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_subscription_cancelled_by_user",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,  
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_subscription_cancelled",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,  
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_subscription_cancellation_revoked_by_user",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":false,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_trial_subscription_started",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":true,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}
{
  "type":"app_trial_subscription_ended",
  "data":{
    "app_id":1000000000,
    "user_id":1,
    "user_email":"[email protected]",
    "user_name": "User 1",
    "user_cluster": 'other',
    "account_tier": 'free',
    "account_name": "Demo Account",
    "account_slug": "test",
    "account_max_users": 10000,
    "account_id":777777,
    "version_data":{
      "major":1,
      "minor":2,
      "patch":0,
      "type":"minor"
    },
    "timestamp":"2022-06-23T00:00:00.000+00:00",
    "subscription":{
      "plan_id":"plan1",
      "renewal_date":"2022-07-19T00:00:00+00:00",
      "is_trial":true,
      "billing_period":"monthly",
      "days_left":26,
      "pricing_version":5
    }
  }
}

📘

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! 😎