Creating a Webhook for passing real time Bubble data to an external party

Hi, I built a loyalty app where a “Shopper” checks-in via my Bubble app. The following step is that the cashier has to assign points depending on the amount spent. Today the cashier is taking such a step via my Bubble app but I’d like to create an integration with the cash register.

In practice I need the following to happen:

  1. the shopper checks-in on my Bubble app;
  2. my Webhook passes the information to the cash register that there is a transaction waiting for points;

What I don’t want is the cash register to keep polling my endpoint as it would skyrocket my WUs.

I did already build a “regular” endpoint that can reply with the information:

  • “No, there are no new transactions”, or
  • “Yes, here’s a transaction that is waiting for points”

But this requires the cash register to keep polling.

I there a way so that I can pass the info just when a new transaction is waiting for points? I want the cash register to call an API of mine. I don’t want to post on an API of the cash register.

Thank you in advance!

Set up a backend DB trigger, and make an API call to the cash register/service whenever X happens, no?

‘Poke me when X happens’ (API call from Bubble to cash register) is always much more efficient than ‘Keep poking me to check if X has happened’ (cash register polling Bubble backend workflow).

Hi, I apologize if I ask dumb questions but I’m not a developer:
I would like to set up a set of APIs so that different cash registers will always use the same APIs. I’d rather avoid setting up in my code the endpoint of a specific cash register (I would also need a token to authenticate at each of them).

Is it possible that I set up my endpoint so that:

  • a specific cash registers can “listen” when something changes
  • it is the specific cash register that has a token to authenticate in my app
  • the communication takes place just when something on my end changes and there is no need for the cash register to keep polling.

I’m completely ignorant on the topic but maybe the above has to do with websocket.

Thx

Yes… as long as the cash register (which I know nothing about) can support receiving an API call from Bubble (a webhook). Each cash register would have a unique URL to send the API call to…

This is literally describing making Bubble the sender (sending an API call to the cash register) and the cash register receiving it (the same way a Bubble BE WF receives data from places like Stripe).

Trying to do it any other way in native Bubble is not a good idea.

If I correctly understand:

  1. A new transaction waiting for points takes place in my app
  2. My app has to “ping” the endpoint of the relevant cash register (ideally, I will need no token). This action is like saying “hey, it’s time to poll new data!”
  3. The cash register wakes up and polls the data (he will do need a token)

As there could be hundreds of cash registers, is there a way to take step #2 without using the API connector? Or maybe I should use the API connector so that the endpoint url is just a variable that changes depending on the relevant cash register?

Thx

No, you just send the data when you ‘poke’ the cash register… ‘here’s an update - and here’s the data you need’

1 Like