# 🤑 Enable Users to Subscribe to Your Glide App Using Payhere + Call API Columns

**URL:** <https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204>\
**Category:** Community Resources\
**Tags:** api, tutorial\
**Created:** [August 20, 2023, 3:17am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204 "2023-08-20T03:17:40Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [August 20, 2023, 3:17am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/1 "2023-08-20T03:17:40Z")

</div>

# 👋 Hey fellow Gliders

In this video, learn how to utilize [Glide Call API](https://community.glideapps.com/t/call-api-tutorial-connect-almost-anything-to-glide/64982/2) and [Payhere](https://payhere.co/?affiliate=aYXvr) payment gateway to enable your users to easily subscribe and access premium features within your app.

🎉 No more Make. No more Zapier.

### This video covers:

- Glide Call API and Payhere: no more middleman needed in order to create a smooth subscription experience
- Setting Up Payhere Account: set up user-specific payment plan links
- Glide App Configuration: configure Call API columns, create a user-friendly subscription screen, and design an intuitive subscription flow
- Handling Subscription Status: manage subscription statuses using the Glide Call API. Grant access to premium content only for subscribed users

One note is that at 25:25, I discuss a technique known as cache busting in order to refresh the endpoint in order to fetch the latest subscription status. In the video I use the “now” value which would effectively call the API every 10 seconds = LOTS of updates.

To mitigate, you can use a Math column to update, let’s say, every 24 hours. Use a math column to calculate a daily value `YEAR(D)*10^4+MONTH(D)*10^2+DAY(D)` where `D` is `now`. Then use this value instead of `now`.

🍿 Enjoy!

[![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/9/d/9d35000411a8e0819841dfe3d713fc2dbf7181b9.jpeg "Enable Users to Subscribe to Your Glide App Using Payhere + Call API Columns") ](https://www.youtube.com/watch?v=pGjMm-RFXZY)

---

<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:** [August 20, 2023, 4:07am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/2 "2023-08-20T04:07:26Z")

</div>

Thank you for sharing!

---

<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:** [August 20, 2023, 4:15am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/3 "2023-08-20T04:15:05Z")

</div>

May be a silly question, can we Call Glide API using this column? I want to add multiple rows based on various conditions. Currently, we have to use Make to iterate it and adding multiple rows using Glide API. Can we skip Make in my use case using Call API column by any chance?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [August 20, 2023, 4:26am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/4 "2023-08-20T04:26:53Z")

</div>

Yes, you can. Here is how:

---

<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:** [August 20, 2023, 5:07am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/5 "2023-08-20T05:07:03Z")

</div>

Thank you for sharing. Are you saying, I will be able to do following action (add rows based on numbers) using Call API column and Glide API?  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/a/1a7cf7f1a4ef06eddf5f8b59db24529efe1b3fcd.png)

If yes, can you help me set up this or share code to be used in this?

I am really to sorry to ask this but I clearly don’t understand any codings/api, I am still trying to learn.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [August 20, 2023, 7:38am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/6 "2023-08-20T07:38:42Z")

</div>

> [@Pratik\_Shah](#):
>
> Are you saying, I will be able to do following action (add rows based on numbers) using Call API column and Glide API?

Yes, exactly.  
But instead of all those conditional branches in your action, you can do it with a single API call, regardless of the number of rows to be added. It’s just a matter of preparing all the mutations, joining them together, and then sending the API call - just like in my example.

> [@Pratik\_Shah](#):
>
> If yes, can you help me set up this or share code to be used in this?
> 
> I am really to sorry to ask this but I clearly don’t understand any codings/api, I am still trying to learn.

Why don’t you try it for yourself first?  
You might find that it isn’t as difficult as you think it is.  
I can’t give you specific instructions, as every use case will be slightly different. But the video I shared - and especially Bob’s tutorial - shows you the general approach. You just need to take that and apply it to your own situation.

---

<div class="post-metadata">

**Author:** ![Hobe](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/hobe/32/55866_2.png) [@Hobe](https://community.glideapps.com/u/Hobe)\
**Post date:** [August 20, 2023, 8:14pm UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/7 "2023-08-20T20:14:15Z")

</div>

What you did at minute 1:35 was a game changer for me, I didn’t know it was possible to copy and paste multiple lines that way

---

<div class="post-metadata">

**Author:** ![Mns\_Glide](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mns_glide/32/2514_2.png) [@Mns\_Glide](https://community.glideapps.com/u/Mns_Glide)\
**Post date:** [August 21, 2023, 4:52am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/8 "2023-08-21T04:52:13Z")

</div>

what is the command to do multiple row copy and paste? I try highlight columns to copy and then use ctrl C and ctrl V, but unsuccessful.  
TQ.

---

<div class="post-metadata">

**Author:** ![david](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/david/32/62831_2.png) [@david](https://community.glideapps.com/u/david)\
**Post date:** [August 21, 2023, 5:15am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/9 "2023-08-21T05:15:28Z")

</div>

Call API will use 1 update each time you call it to fetch new data, so I advice against configuring it to invalidate every 10 seconds by putting the current timestamp in the URL!

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [August 21, 2023, 5:33am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/10 "2023-08-21T05:33:49Z")

</div>

> [@Mns\_Glide](#):
>
> I try highlight columns to copy and then use ctrl C and ctrl V, but unsuccessful.

Ctrl-c/Ctrl-v (Windows) or Cmd-c/Cmd-v (Mac) should work.  
Note that you can only paste values into non-computed columns (obviously).

---

<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:** [August 21, 2023, 5:59am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/11 "2023-08-21T05:59:43Z")

</div>

> [@Darren\_Murphy](#):
>
> Yes, exactly.

That’s good to hear. I am happy that I asked that question.

> [@Darren\_Murphy](#):
>
> Why don’t you try it for yourself first?

Yes absolutely, I will try from my end. Your video is a good start for me to understand it. Thank you so much the help. I will get back to you if I need any help.

---

<div class="post-metadata">

**Author:** ![Mns\_Glide](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mns_glide/32/2514_2.png) [@Mns\_Glide](https://community.glideapps.com/u/Mns_Glide)\
**Post date:** [September 9, 2023, 2:18pm UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/12 "2023-09-09T14:18:07Z")

</div>

Hi Darren,  
I cannot understand why I am having so much difficulty to copy multiple rows like what you have shown. My process is like this.

1. Highlight rows to copy (non-computed column). Press Ctrl-C to copy
2. Click on row (non-computed column) to paste and press Ctrl-V

I cannot paste into individual columns. However, if I double-click on a cell (meaning I enter the cell) and do Ctrl-V, then all the copied rows will be pasted. But this is pasting, eg 3 rows of value into a single cell.

Any other suggestions? Is there a system setting I need to change?

Thank you

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [September 9, 2023, 2:24pm UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/13 "2023-09-09T14:24:21Z")

</div>

I don’t know. It should work if you do it as you described. That said, a few of us have been noticing some odd behaviour with copy/paste recently, so maybe there is a gremlin in there somewhere 🤷🏼‍♂️

---

<div class="post-metadata">

**Author:** ![Mns\_Glide](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mns_glide/32/2514_2.png) [@Mns\_Glide](https://community.glideapps.com/u/Mns_Glide)\
**Post date:** [September 11, 2023, 2:54am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/14 "2023-09-11T02:54:10Z")

</div>

just in case anyone has same issue … need to go to your browser privacy setting and allow site to see what has been copied to clipboard … now efficiency will improve

 ![sec](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/6/b6924171dd43371de29223347aa1dc2c4a62f6da.jpeg)

---

<div class="post-metadata">

**Author:** ![Joe\_Gabriele](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/joe_gabriele/32/57595_2.png) [@Joe\_Gabriele](https://community.glideapps.com/u/Joe_Gabriele)\
**Post date:** [February 25, 2024, 11:14pm UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/15 "2024-02-25T23:14:35Z")

</div>

![Screenshot 2024-02-25 at 6.11.53 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/1/3120db6f6c2a87745230140e335735ea4121bd51.png)

I know you mentioned to replace the Now → Current Date in the End Point → Customer ID Construct URL with that Math formula, but I noticed that there is a “Refresh after” which states that if nothing is set, the data will be refreshed after 30 days. Is this a substitute for the Now? Should we make this 1500 (24 hours \* 60 minutes) so it refreshes daily?

I know I have it set for 1 minute to force an instant change I was testing.

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [February 26, 2024, 2:12am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/16 "2024-02-26T02:12:40Z")

</div>

Yes. This field wasn’t available at the time of the video.

---

<div class="post-metadata">

**Author:** ![Joe\_Gabriele](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/joe_gabriele/32/57595_2.png) [@Joe\_Gabriele](https://community.glideapps.com/u/Joe_Gabriele)\
**Post date:** [February 26, 2024, 11:32am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/17 "2024-02-26T11:32:39Z")

</div>

Great! Follow up question, if a new user subscribes, will their status update immediately or only after the Call API triggers, which could be up to 24 hours? If its up to 24 hrs, is there a way to force the Call API to trigger through an action/button?

---

<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:** [February 26, 2024, 11:58pm UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/18 "2024-02-26T23:58:40Z")

</div>

How about using a query field that isn’t “harmful” (like you can set anything to it and it won’t affect the ability to return data from the endpoint), then point it to a user-specific column? Then you can set a random ID to that field when the user clicks a button, and hopefully that forces Call API to run again since there’s a change in the input.

---

<div class="post-metadata">

**Author:** ![Joe\_Gabriele](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/joe_gabriele/32/57595_2.png) [@Joe\_Gabriele](https://community.glideapps.com/u/Joe_Gabriele)\
**Post date:** [February 27, 2024, 1:16am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/19 "2024-02-27T01:16:03Z")

</div>

So add a User Specific Column, map it to the Query in the Call API and then have a button with set column action to “complete” their subscription and force the change?

---

<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:** [February 27, 2024, 1:16am UTC](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204/20 "2024-02-27T01:16:30Z")

</div>

Yeah, I think so.

[Next page](https://community.glideapps.com/t/enable-users-to-subscribe-to-your-glide-app-using-payhere-call-api-columns/65204.md?page=2)
