Loyalty Program for Small Business

Hi all, would appreciate some assistance. I’m trying to make a simple loyalty program for small businesses. It will be very simple for businesses to use with limited customisation incl logo, colours and custom rewards they can set when customers reach a certain level of points.

The issue im having is with the database. I have managed to work out functionality for one user with one small business, however, i am unsure how to structure with multiple vendors.

For example, Where a customer orders a pizza at a restaurant, they get points, they can then use those points to save on their next purchase at that same restaurant when they scan their custom barcode. However what if i have two different small pizza restaurants using the app and the customer wants to be a loyalty member for both? How can I structure the database so that one user can be a loyalty member for multiple restaurants?

Thanks Kindly :slight_smile:

For example, if i have a pizza restaurant and sushi place, both very different, both needing users to have their own loyalty points. thanks

Hi there, @netanelm… it sounds like a custom data type called something like Reward or Program might do the trick here. The data type would have a field that links to the Restaurant data type, and it would also have fields for points and anything else you want to track as part of a program.

When a user becomes a loyalty member of a restaurant’s program, create a new thing in the Reward data type (the new thing will be associated with the user through the built-in Created by field), link the new thing to the appropriate restaurant, and you should be good to go.

Hope this helps.


Thanks @mikeloc!
I found a bit of a workaround that seems to work.
I created a Data type called ‘Loyalty Points’ with the fields ‘User’, ‘Vendor’, and ‘Current Points Earned’ & ‘Lifetime Points Earned’. I didn’t consider that the ‘User’ field is redundant as the ‘created by’ field will be the same.

Each time the QR code is scanned, it will give the vendor the option to add a certain number of points to which, when a certain number of points is pressed, it will make changes to the data type ‘Loyalty Points’ > ‘Points Earned,’ that match both the user and the vendor, using conditions.

That way the database should be quite versatile.
For examaple, I can do a search for each vendor’s active members by ‘do a search for Loyalty Points > Vendor = Current User (aka current logged in Vendor) > each item’s Full name.’

And I can do a search for a user’s most active store, by ‘do a search for Loyalty Points > User = Current User (aka current logged in customer) > each users Lifetime points earned’ and then show in descending order.

Hope this makes sense!

1 Like

For what it’s worth, nothing about what you described is a workaround, in my opinion. It is pretty much what I was trying to describe, and it is probably the way I (and most other folks) would go, too. So, in other words, good stuff!

That is true and what you said definitely did help, thankyou @mikeloc! By workaround, I meant compared to the structure I had that was not working. Probably could have phrased that better, whoops :slight_smile:

1 Like