Hi All,
I sell to schools and it’s normal for the price to only include a certain number of seats. Is there a way I can limit the amount of seats (users) for a school? Say for example only 200 students are able to log in based on the tier the school purchased. Is there a way to restrict any other students from logging in?
What might be a workaround to accomplish this?
Thanks
I’ll assume @ajmeri368292’s ChatGPT answer won’t help.
You should have a Billing Account data type. This handles all billing data associated with a User. In the case of a school, multiple users will share the same Billing Account.
Each user also has a School Field (or it may be User’s Billing Account’s School). Your Billing Account data type should have numberPermitted and numberActive number fields.
Set up a backend trigger such that whenever a user’s School changes, the Billing Account’s numberActive increases/decreases by one. When numberActive >= numberPermitted, stop the user logging in/accessing the relevant feature/product.
There are two alternative approaches. I’ll explain them briefly and why I don’t like them:
- Do a search for Users (School = X):count (how many users are part of this school) - this requires running a search every time, which is slow, and possibly inefficient as this number won’t change very often
- List of Users on Billing Account or School data type. This is inefficient as the list could in theory be very large, meaning it would not be performant.
5 Likes
Very helpful. I will explore the Billing Account data type option.