Getting API response back from webhook

I am trying to integrate my glide app with a local payment gateway not supported by glide.

I’ve used the webhook to send POST request but no way to get back the return. Adalo has this feature.

I need to get back the response from that api, how do i do this on glide ?

1 Like

No response I suggest you do an open link action better but as far as I know no response handler which I wish there is of course

2 Likes

What I would try to do:

  • Send info through webhook to Make.

  • Add a HTTP module in Make to call a POST request to your payment gateway.

  • Parse the response (providing your payment gateway does provide a response).

  • Write that back to Glide, either by using a HTTP call (with Glide Tables) or update a row (Google Sheets).

This is all assuming you can live with the fact that it does take time for the response to show up in Glide. It would be great if you let us know how you design this flow.

1 Like

i think i understand your method, so here’s the flow :

  1. User klik “purchase” button

  2. Server will POST request this endpoint with all the parameters → https://api.xendit.co/v2/invoices

  3. Inside the response from that endpoint will have an URL link like this →
    “invoice_url”: “https://invoice.xendit.co/web/invoices/595b6248c763ac05592e3eb4

  4. User need to open that link ( webview ) and choose payment method.

  5. Done.

Is this still possible with your method ?

That should be possible, albeit it will take a bit of time to update the invoice URL back.

What you will send to the API, I assume, will contain all fields related to the purchase, PLUS the rowID (so you can update back).

After the HTTP call returns a response, you will then update this back to Glide using the rowID (assuming you want to update back to the same row), otherwise you can still use the add row API to add a new row.

hmmm… i still dont understand how glide will redirect my user to open the URL link,

after HTTP call returns a response → glide will then update this back using the row ID

how do i automatically force users to open the link ?

in traditional programming → after getting back the response → i would programmatically redirect user to another page and programmatically execute window.open({URL Link})

That will not force a redirect at all. You will then have to show a button for your user to open the link.

noted, just as i thought. Thank you !

1 Like

After I built my app I discovered that there is no way to capture the webhook response to a Glide table and it was very disappointing. I am trying to do it now through Google Sheets and Zapier, but I am stuck on Zapier talking to my backend script - for some reason the JSON they send through “webhooks by Zapier” doesn’t work. And I understand that the speed will be very slow until Glide is fully updated with the response. How have you solved that? After spending hours and hours on that I am really thinking of finding another platform that can just get back the response. Are there any plans to implement it on Glide? I’ve seen this discussed in various threads here for years.

Can you explain more about this? What is your full flow? Do you have access to the Glide API?

1 Like

Thank you very much for replying ThinhDinh.
My plan is Pro at the moment, but your question makes me think if Glide API is something that I should apply for, or the features I need are in another plan.

What I’m trying to do: The app is quite simple as an idea: the user takes a photo, which is analyzed on the backend along with some of the user’s data, and they receive back (ideally in a few seconds) some text information.

How I am trying to do it: The photo is sent along with some other user data as a JSON payload through a webhook (webhook trigger action) to my python script that lives in a google function. There, there are things going on, like OCR, chatGPT, and at the end a text is ready to be sent to the user.

I have two main issues at the moment:

  1. I cannot find a way to write the webhook’s response to a Glide table. As a workaround I added Sheets API to my script, to write to a google sheet which is connected to Glide (that part works).
  2. Not connected to the above: the JSON that I send from Glide through the webhook, arrives in a strange formatting to my google function, as I see in the Google Cloud logs, and therefore the whole thing doesn’t work yet on Glide (I’ve tested the function sending to it the same JSON from my terminal and it works fine). I’ve tried a few approaches, including preparing the JSON as a template column. I am now trying to either reformat the JSON that arrives with my scipt, or include Zapier or Integromat to handle it hopefully better.

If you include a RowID as part of your JSON payload, you should be able to use this to write the results directly back to Glide using the API. (You need a Pro Plan or higher to access the API).

That’s interesting. I send JSON via webhooks from Glide extensively - and process it with both Make and Apps Script - and I’ve never had any problems like this. Can you provide more details about this? Perhaps show an example of the JSON that you send and how it looks when it arrives?

2 Likes

Thank you very much ThinhDinh and Darren.
It seems I hadn’t found where Glide API is (right-clicking the table > show API).
Everything works great now.
For the JSON, I had to not leave any blank characters in the template column that prepares the JSON payload, and I also had to run the incoming JSON through this function in my script where I receive it:
def remove_non_printable_chars(s):
return ‘’.join(c for c in s if c in string.printable)
I don’t know why, but it works like that.

So can you confirm that you are now using the Glide API and the only problem is that blank characters caused problems when sending a payload?

Hi ThinhDinh, exactly!

1 Like

Yes, I can imagine how that would break the JSON.
What you should be able to do is URL Encode your strings before feeding them into your JSON template, which should avoid that issue.

There is also the Make JSON computed column that should take care of properly escaping any reserved characters.

1 Like

This will do it: 🆕 Call API: call custom APIs, and return data back to your app