Webhooks are automated HTTP requests sent from one system to another when a specific event occurs. They enable real-time data transfer and can trigger actions in connected applications. This allows systems to communicate and automate processes efficiently.
How do Webhooks work?
Webhooks work by having one application (the sending application) send an HTTP request—usually a POST request—to another application (the receiving application) when a specific event occurs. To set up a webhook, the receiving application provides a unique URL, known as the webhook endpoint, to the sending application.
When the specified event happens—like a new user signing up or a payment being processed—the sending application automatically makes an HTTP request to that URL. This request includes data about the event in the body of the request. The receiving application then processes the data and performs an action based on it, such as updating records, triggering a notification, or starting another process.
Webhooks are one-way, meaning the sending application only communicates when the event occurs. This eliminates the need for the receiving application to constantly check for updates.
Some platforms, like IFTTT, Google Apps Script, and Slack, provide user-friendly interfaces to set up webhooks. More advanced users can manually send webhook requests using tools like the terminal or command-line utilities such as curl
.
Using webhooks on IFTTT
Using webhooks on IFTTT allows you to connect and automate actions with services that aren’t directly supported by the platform. By sending a simple HTTP request to a unique webhook URL, you can trigger custom Applets and create more flexible, personalized automations.
How to set up a webhook Applet
Here’s a step-by-step guide to setting up a webhook Applet on IFTTT, whether you want to trigger an Applet using a webhook or send a webhook to an external endpoint.
Setting Up a Webhook Trigger (Receiving a Webhook)
-
Connect to the Webhooks Service:
- Log in to your IFTTT account.
- Search for the Webhooks service and click connect.
-
Create a New Applet:
- Click Create and press Add to the right of If This to set-up your Applet's trigger.
- Select Webhooks as the service and choose Receive a web request as the trigger.
- Give the event a name (e.g.,
new_user
orpayment_received
). This will be used in the webhook URL (the endpoint).
-
Define the Action:
- Click Then That and choose an action service (like sending a notification, posting to social media, or updating a spreadsheet).
- Configure the action as needed.
-
Find Your Webhook URL:
- After clicking finish in the Applet setup, you will see your webhook URL on the following page, under "your webhook URL"
-
If you need to find it later, the URL will follow this format:
https://maker.ifttt.com/trigger/{event_name}/with/key/{your_key}
.- Replace
{event_name}
with the name chosen in Step 2. - Replace
{your_key}
with your webhook key. -
NB: the the above URL does not include
/json/
after the event name.- When using the Receive a web request trigger
/json/
will not be included in the URL, vs when using Receive a web request with a JSON payload/json/
will be included after the event name.
- When using the Receive a web request trigger
- Replace
- After clicking finish in the Applet setup, you will see your webhook URL on the following page, under "your webhook URL"
-
Trigger the Webhook:
- You can manually trigger the Applet by pasting the webhook URL into your browser and hitting Enter.
- Alternatively, configure an external service like Google Apps Script or Slack to send an HTTP POST request to the URL, which will trigger the Applet.
Setting Up a Webhook Action (Sending a Webhook to an External Endpoint)
-
Create a New Applet:
- Click Create and choose the service you want as the trigger (e.g., receiving an email, a calendar event, or a smart light activation).
-
Select Webhooks as the Action:
- For the action step, choose the Webhooks service and select Make a web request.
- For the action step, choose the Webhooks service and select Make a web request.
-
Configure the Webhook Request:
- Enter the external endpoint URL where the webhook should be sent.
- Choose the method (typically POST).
- Specify the content type (like
application/json
orapplication/x-www-form-urlencoded
). - Add any required data in the body of the request.
-
Complete and Test the Applet:
- Finalize the Applet setup and test it by performing the trigger event.
- Check the external system to confirm that it received the webhook correctly.
What is a JSON payload?
When selecting Webhooks for your trigger, you'll see the following options:
A JSON payload is a structured format used to send data in an HTTP request. JSON (JavaScript Object Notation) organizes data into key-value pairs, making it easy to transfer complex information like user details, event data, or nested objects. For example:
{
"username": "biffmcifttt",
"email": "biff@ifttt.com",
"order": {
"id": "1234",
"total": 49.99
}
}
- Use "Receive a web request" for simple data passed as URL parameters (e.g.,
?value1=abc&value2=123
). - Use "Receive a web request with a JSON payload" when sending structured, complex data that needs to be processed in actions or filter code.
- Similar to before, after clicking finish in the Applet setup when creating an Applet using a receive a web-request with JSON payload trigger, you will see your webhook URL on the following page, under "your webhook URL"
-
If you need to find it later, the URL will follow this format:
https://maker.ifttt.com/trigger/{event_name}/JSON/with/key/{your_key}
.-
NB: the the above URL does include
/json/
after the event name.- When using the Receive a web request trigger
/json/
will not be included in the URL, vs when using Receive a web request with a JSON payload/json/
will be included after the event name.
- When using the Receive a web request trigger
-
NB: the the above URL does include
For more details on handling and parsing JSON data in an Applet, check out our article: Parsing a JSON Body with Filter Code.
Troubleshooting Webhooks Applets
In some cases, your webhook key may become outdated. Once you've ensured that the URL is correct, and your Applet is still not triggering, you can try regenerating your webhooks key. To do this, head to ifttt.com/maker_webhooks/settings and click regenerate key.
For webhook actions that are not working, refer to our guide on Troubleshooting Outbound Webhooks.
-
Check Your Webhook URL:
- Go to My Applets and click on the relevant Applet. The URL is listed under "Your webhook URL."
-
Test from the webhooks documentation page
- Applets that use a webhooks trigger can also be tested from the Webhooks documentation page available here.
- To test, simply enter the event name for the Applet you'd like to test then press test it. You can also include test data.
- The To trigger an Event with an arbitrary JSON payload section can be used to test Applets that are using a Receive a web request with a JSON payload trigger
- The To trigger an Event with 3 JSON values section can be used to test Applets that are using a Receive a web request trigger
-
Regenerate Your Webhook Key:
- If the Applet isn’t triggering, your webhook key may be outdated.
- Visit ifttt.com/maker_webhooks/settings and click Regenerate Key.
Note: This will invalidate all previous webhook URLs, so you'll need to update the key in any external services using outbound webhooks.
-
Check Outbound Webhooks:
- If webhook actions aren’t working, refer to our guide on Troubleshooting Outbound Webhooks.
Summary and Conclusion
Webhooks are a powerful way to automate workflows by enabling applications to communicate through simple HTTP requests. On IFTTT, setting up webhook triggers and actions allows you to connect with external systems, expand automation possibilities, and handle complex data using JSON payloads.
For more information on using webhooks and troubleshooting common issues, visit our Webhooks service FAQ.