# Setting up Subscription based App with Upgrade/downgrade option

**URL:** <https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967>\
**Category:** Ask for Help\
**Created:** [November 3, 2021, 3:02pm UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967 "2021-11-03T15:02:36Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pratik\_Shah](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/pratik_shah/32/12416_2.png) [@Pratik\_Shah](https://community.glideapps.com/u/Pratik_Shah)\
**Post date:** [November 3, 2021, 3:02pm UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/1 "2021-11-03T15:02:36Z")

</div>

Hello All,

I have set up my app which is subscription based app.

My current set up (without upgrade option):  
I have right now four plans (Free, Plan 1, Plan 2 and Plan 3)

Free plan is Promo/Launch plan which will be accessible only upto particular date (say 31st March 2022).  
I have user profile sheet which contains all current plan details of each user.

What I want to achieve:  
User can upgrade to new plan at any time during free period or at the expiry of Free Plan. I want to know what can be best set up capturing Upgrade plan details (including dates of start and expiry, payment details etc.) and get these details (updated details in User-profile sheet).

Also how can I keep all such plan details of each user in such a way that, if user wants to see all his/her transactions, can see it at once place. Need help in structuring the data.

Thank you in advance

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [November 3, 2021, 5:10pm UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/2 "2021-11-03T17:10:01Z")

</div>

What I would probably do is have a table to record each subscription purchase, with an email, a plan type, and date.

In you user sheet, create a relation joining email to your purchase log table. This relation can be used to display purchase history. Then create a rollup column that will get the max date from the relation. Then create a template column in both tables that joins both the email and the date together. Then create a new single relation to link the template columns together. This will give you a final single relation containing the last purchase record for each user. From there you can use Lookup columns to get the purchased plan and purchase date. Then you can use a series of IF columns and math columns to calculate the expiration date. Now you will have the plan type and expiration date in the user profile, that you can use for filters or visibility conditions of content.

---

<div class="post-metadata">

**Author:** ![Pratik\_Shah](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/pratik_shah/32/12416_2.png) [@Pratik\_Shah](https://community.glideapps.com/u/Pratik_Shah)\
**Post date:** [November 3, 2021, 6:25pm UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/3 "2021-11-03T18:25:46Z")

</div>

Thank you Jeff for detailed explanation as always. Will set this up and will let you know. Thanks

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [November 3, 2021, 11:02pm UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/4 "2021-11-03T23:02:11Z")

</div>

Another alternative is using PayHere + Integromat, I have done that quite a few times and they handle this well enough for you, through the pieces of info sent through webhook.

---

<div class="post-metadata">

**Author:** ![Pratik\_Shah](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/pratik_shah/32/12416_2.png) [@Pratik\_Shah](https://community.glideapps.com/u/Pratik_Shah)\
**Post date:** [November 4, 2021, 3:40am UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/5 "2021-11-04T03:40:17Z")

</div>

Thank you @ThinhDinh. I wanted to use Indian payment gateway as payhere only has Stripe integration.

@Purvang_Joshi has given a tutorial on integrating Razorpay with Glideapp through Google App script.

However I would also like to know how to integrate payhere using integromat. I am sure you must be having some tutorial for this. Can you please share knowledge purpose?

Thanks

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [November 4, 2021, 7:24am UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/6 "2021-11-04T07:24:31Z")

</div>

> [@gem\_stone Monetize your membership app using Payhere + Make (Updated 2024)](https://community.glideapps.com/t/create-a-membership-app-using-payhere/26646/):
>
> Updated 2024! wave Hey fellow Gliders! I just released a 3-part series on using [Payhere](https://payhere.co/?affiliate=aYXvr) + [Make](https://www.make.com/en/register?pc=robert) to monetize a Glide app! Since Glide doesn’t offer a native way of monetizing an app or accepting payments, we need to build it ourselves. I’m starting the series with demonstrating how to accept one-off payments and how to create membership apps by allowing users to subscribe to an app in order to gain access to premium content hidden behind a paywall. popcorn Enjoy! Part 1: The Setup [[M…](https://www.youtube.com/watch?v=BNZtlZkyZvs)

The master of tutorials has already done it 😉

---

<div class="post-metadata">

**Author:** ![Pratik\_Shah](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/pratik_shah/32/12416_2.png) [@Pratik\_Shah](https://community.glideapps.com/u/Pratik_Shah)\
**Post date:** [November 4, 2021, 7:39am UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/7 "2021-11-04T07:39:39Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [November 5, 2021, 7:40am UTC](https://community.glideapps.com/t/setting-up-subscription-based-app-with-upgrade-downgrade-option/33967/8 "2021-11-05T07:40:19Z")

</div>

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
