As you can see at the bottom, I have 4 plans (Free, Starter, Scale, Premium) and each plan has a load of fields attached to it.
These fields are important, as you use them to store the specifics of each plan, such as how many emails that plan is allowed to send and the value of the plan in $.
Storing all this data in option sets means if you want to change any of these values later, it’s super easy.
The data from these option sets even power my pricing grid itself, so any changes I make are reflected everywhere.
We need to create a field on your main ‘Company’ record which links to a plan. That way we always know which plan a user’s company is linked to.
That will mean we’re able to do things like limit access to specific features later on.
If your plans are linked to usage in some way, you need to store all that data in a table.
For example, my app limits the number of emails a user can send depending on their plan allowance.
Therefore, I need to have a table where I store a record every time a user sends an email. My table is called ‘Sends’ and a new record is created linked to the user’s ‘Company’ every time they send an email.
That means we’re able to do counts on how many emails a user has sent each month, and compare that to what their plan says they are allowed to use.
How do you encourage users to upgrade from a freemium plan to a paid one?
If your app has a fremium plan, you will want to make sure you are encouraging users as much as possible to upgrade to one of your paid plans.
There are a few ways of doing this in your application.
The first one we are going to look at is through prompts in your UI.
Here is a prompt which appears in the UserLoop UI when a user has exceeded the number of emails they are allowed to send with their current plan…