Connecting Apps
The way your Gumball works is simple: it listens to HTTP requests sent to its unique “ping” URL. Every time a request is received, it turns on.
Ping URL: https://app-gumball.com/request?id=gumball_xxxxxxx&action=track_1
👉 Try it now: in your browser, copy/paste the URL above into a new tab and hit enter. This will make your Gumball turn on instantly. (Make sure to replace “gumball_xxxxxx
“ with yours).
Now, the fun actually begins when the requests are sent automatically from your desired apps. This can be done in several ways:
Method 1 – Via the apps themselves
Most popular apps let you natively send HTTP requests via “webhooks”. This is usually done from the app’s settings page. In general, it’s just a matter of specifying where to send the request when a particular event happens. In your case, you want the request to be sent to your Gumball’s unique ping URL.
Shopify example
Here’s a quick example to make your Gumball turn on whenever you get a new order from your Shopify store:
- In Shopify, go to “Settings > Notifications > Create a webhook”
- Choose “Order created” as the event triggering the webhook
- Add your ping URL (with your own
gumball_xxxxxxx
) - DONE 🎉 – Now every new order will turn your Gumball on

This Shopify example gives a good idea of the workflow for most apps. As long as the app supports webhooks with HTTP POST or GET, it should be compatible. For more examples, check out our list of guides for popular apps.
Method 2: Via automation tools (Zapier, Make, IFTTT, etc)
If your app doesn’t let you create webhooks natively, or if you want to set up more complex notifications patterns (for example, be notified only when Shopify orders are over $100), you can use automation tools like Zapier, Make, IFTTT, n8n, etc.
For example, in Zapier, pick a trigger for your desired app (a “new order” on “Shopify” for example), then add a “send a webhook” as the action triggered. Specify your Gumball’s ping URL in the webhook destination URL. Done!
Check out our list of guides for popular apps
Method 3: Via code (developers)
To integrate Gumball within your own app, simply make an HTTP GET or POST request to your Gumball’s unique ping URL.
const Http = new XMLHttpRequest();
const url=‘https://app-gumball.com/request?id=gumball_xxxxxxx&action=track_1’;
Http.open(“GET”, url);
Http.send();
Http.onreadystatechange = (e) => {
console.log(Http.responseText)
}
import urllib.request
contents = urllib.request.urlopen("https://app-gumball.com/request?id=gumball_xxxxxxx&action=track_1").read()
// Create a neat value object to hold the URL
URL url = new URL("https://app-gumball.com/request?id=gumball_xxxxxxx&action=track_1");
// Open a connection(?) on the URL(??) and cast the response(???)
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// Now it's "open", we can set the request method, headers etc.
connection.setRequestProperty("accept", "application/json");
// This line makes the request
InputStream responseStream = connection.getInputStream();
// Manually converting the response body InputStream to APOD using Jackson
ObjectMapper mapper = new ObjectMapper();
APOD apod = mapper.readValue(responseStream, APOD.class);
// Finally we have the response
System.out.println(apod.title);
const https = require('https'); https.get('https://app-gumball.com/request?id=gumball_xxxxxxx&action=track_1', (resp) => { let data = ''; // A chunk of data has been received. resp.on('data', (chunk) => { data += chunk; }); // The whole response has been received. Print out the result. resp.on('end', () => { console.log(JSON.parse(data).explanation); }); }).on("error", (err) => { console.log("Error: " + err.message); });
🎵 Next: Personalize with your own sound!