Using IFTTT Webhooks to Trigger Custom Scripts from Any Service
Learn how to use IFTTT Webhooks as a flexible HTTP trigger or action to run custom scripts from services like GitHub, with a worked example, limits, and verification steps.
30 Jun 2026, 05:48 UTC

The problem: you need a reliable way to start your own code from a third‑party service
Many DIY automation projects hit a wall when the service you want to react to (a weather API, a smart‑plug, a GitHub push) doesn’t have a native IFTTT integration. You could poll the service constantly, but that wastes resources and adds latency. IFTTT’s Webhooks service solves this by letting IFTTT act as both a sender and a receiver of arbitrary HTTP requests, so you can bridge any HTTP‑capable system to your own scripts or devices.
Thesis: Webhooks give you a low‑overhead, rate‑limited HTTP bridge that works as a trigger or an action, provided you handle ordering and secrecy yourself.
How Webhooks fit into an applet
When you add the Webhooks service to an applet you choose either:
- Trigger – IFTTT exposes a unique
Maker URL. Any HTTP POST to that URL (with an optional JSON payload) launches the rest of the applet. - Action – IFTTT sends an HTTP request to a URL you specify, letting you define method, headers, content type, and a body that can include ingredient values from earlier services.
Both sides share the same limits: roughly 60 requests per minute per account and a maximum payload size of 256 KB. These limits protect the platform while still accommodating most automation workloads.
Worked example: fire a local script when a GitHub repository receives a new star
We’ll use Webhooks as a trigger because GitHub can send a POST to a URL we control via its webhook feature.
- Create the IFTTT applet
- In IFTTT, click
Create→If This→ search forWebhooks→ chooseReceive a web request. - Give the event a name, e.g.,
github_star. ClickCreate trigger. - For
That, chooseWebhooksagain →Make a web request. - Set the URL to your local machine’s public endpoint (you can use a tool like
ngrokto exposehttp://localhost:8080/handle). - Method:
POST, Content Type:application/json, Body:{ "starred_by": "{{Value1}}", "repo": "{{Value2}}" } - Finish the applet.
- In IFTTT, click
At this point IFTTT shows you the Maker URL on the Webhooks service page: https://maker.ifttt.com/trigger/github_star/with/key/YOUR_KEY.
Configure GitHub
- In your repository, go to
Settings → Webhooks → Add webhook. - Payload URL: paste the Maker URL above.
- Content type:
application/json. - Which events: let GitHub send only the
Watchevent (triggered when someone stars). - Save the webhook.
Handle the request locally
# Simple Python Flask listener (run on the same machine exposed by ngrok)
from flask import Flask, request
app = Flask(__name__)
@app.route('/handle', methods=['POST'])
def handle():
data = request.get_json(silent=True) or {}
# IFTTT will have already sent a POST to the Maker URL,
# which in turn triggers the action we defined above.
# Here we just log the incoming payload for demonstration.
print('Received from IFTTT:', data)
# Place your real automation logic here, e.g., turn on a light.
return '', 204
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
When a user stars the repo, GitHub POSTs to the Maker URL, IFTTT fires the action, which POSTs the JSON body to your local Flask app. You can verify the flow by checking the IFTTT Activity log and watching the console output of your script.
Trade‑off and limitation
Webhooks do not guarantee delivery order or exactly‑once semantics. If your automation depends on processing events in the exact sequence they occurred, you must embed a monotonic identifier (like a timestamp or incrementing counter) in value1, value2, or value3 and deduplicate on the receiver side. Additionally, treat the Maker URL’s key as a secret; leaking it lets anyone trigger your applets. Rotate the key immediately if you suspect exposure.
Practical verification steps
- Trigger the applet manually from the IFTTT Webhooks page (click
Test) and confirm the request appears in your local logger. - Use
curlto simulate a GitHub star:curl -X POST -H \"Content-Type: application/json\" -d '\"{\"value1\":\"alice\",\"value2\":\"my-repo\"}\"' https://maker.ifttt.com/trigger/github_star/with/key/YOUR_KEY. You should see a 200 response from IFTTT and the corresponding log entry locally. - To check the rate limit, send rapid requests in a loop (e.g.,
for i in {1..70}; do curl -s -o /dev/null -w \"%{http_code}\" https://maker.ifttt.com/trigger/github_star/with/key/YOUR_KEY; done). After about 60 calls you will start receiving429 Too Many Requestsresponses, confirming the limit is active.
Actionable takeaway
If you need to connect any HTTP‑capable service to your own code or devices, IFTTT Webhooks provide a quick, low‑maintenance bridge. Build the applet, secure the Maker URL, add sequencing or deduplication logic if order matters, and verify with a request bin or local endpoint before moving to production.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.