You have to think about how users are going to register. All with the same registration form or with different ones? You could use a dropdown to let the user select his role, or split it in two roles only. Free and pro user. Everyone that registers has the “group” (user field) -> “free” and they can upgrade to “paid” (or make it a boolean). If they register with a valid .edu mail they get the pro group automatically (you can extract the domain ending with regex).
That’s it. Now you only have to build a dashboard that shows buttons and allows options accordingly to the users group.
Thanks for your quick reply. Sorry I should have explained a bit more. I want every user to be able to use the 30 day free trial(without having to put credit card information in, then after that have a prompt that has them choose to sign up for:
Option A (Free Model): User loses full access and gets only a certain amount of allowable tasks (Is this even possible?) if they dont buy subscription
Option B (Paid Model): User either buys the month to month plan or the yearly plan
Option C: College student gets discounted yearly plan with .edu email
Not sure how to:
A. After 30 days, trigger a sign up form to the paid subscriptions AND reduce the users access (to 2 tasks)
B. Sign the users up to their different plans
C. Have user be able to change the options at any time (not exactly a pressing matter at this stage)
I am thinking a create a pop up with the types of plans so when the 30 days comes they can choose, after that it gets murky.
With conditions you can set whenever a button or workflow should be accessible if something is given. So for example you can only show certain elements if the user is on the paid plan. You could make them inactive aswell… and so on
You can use stripe integration to manage subscriptions.
As I have explained, get the domain ending and add a boolean field like “isStudent” and set it to true if the mail is .edu or if the user is a verified student.
A. You can shedule an API workflow for a month later during the signup workflow and set the user plan to another state when the workflow runs (= end trial).
B. Simplest not best way: Add a user field “plan” with type text. Set it to trial or pro after signup and change it after 30 days to free (shedule API WF). If the user has an .edu adress set a boolean field “student” to true. You can use this to charge different prices.
C. Would do it monthly.
Why not putting the user on the free plan with a reminder that they don’t have pro anymore.
TBH in your case I suggest doing the function of your app first and then creating the member system.