Help

Trigger Zaps from webhooks

tutorial
Last updated:

Intro to webhooks

Webhooks are automated messages sent between apps—a type of notification that includes detailed information about new items in apps. With Webhooks by Zapier, you can trigger Zaps from webhooks. If you want to send a webhook when an action occurs in an app, learn how to send webhooks in Zaps.

Tip

Learn more about webhooks in this Zapier blog post: What are webhooks?.

Limitations

  • Zapier cannot 301 or 302 redirect you to a different URL and deliver/retrieve payloads from the new address.
  • Zapier will always return a success message with a payload of debugging information when collecting a webhook, regardless of whether there is a Zap behind the webhook or if it is paused or not. The only way to know if a URL is live is to visit the editor and look at the URL (which never changes for a Zap). There is no way to customize the response to the request you send to the Catch Hook URL, as the response is sent before the Zap triggers and runs on the webhook request.

1. Add a webhook trigger

  • In your Zap, click 1. When This Happens.
  • Search for and select Webhooks by Zapier.
  • Click the Choose Trigger Event dropdown menu and select your webhook type.

For most webhooks, the Catch Hook trigger will be the best one to use. Catch hooks work by giving you a unique URL that you can then make requests to. If you want Zapier to make a GET request of an external URL to check for new entries, use a Retrieve Poll webhook trigger.

In this example, we want to have a Zapier URL that we can send data to, so we select Catch Hook from the list of triggers.

Tip

If you want access to the raw body of the response, use the Catch Raw Hook trigger.

  • Click Continue.

2. Customize your webhook trigger

Next, you’ll be given the URL for your webhook and can customize your webhook:

  • Silent mode: some apps want to receive an empty body. If you don’t want to receive content in the response from Zapier, select the Silent mode checkbox.
  • Pick off child key: This is the specific key you want Zapier to use from the request you make to the webhook URL. This is useful if you only care about getting a subset of the data that is sent to the webhook.

In this example, we’ve chosen Silent Mode and specified that we only want the person part of the JSON payload. This is useful if you’re POSTing data to the URL with several elements in it but only want one.


3. Add the webhook URL to your app

Open the app you want to connect to Zapier, and find its webhooks settings page. You'll often find that in your app's core settings or options page, or inside the options for a specific project or list. Check your app's help and support documentation if you can't locate it.

Once you've found your app's webhook settings, you'll typically choose to add a new webhook connection. Paste the webhook URL you copied from Zapier, select any options that app offers including which data you want to receive via the webhook, and save your changes.

In this example, we’re adding the URL to a Mailchimp account and specifying what types of updates we want Mailchimp to send to it.


4. Send data to your new webhook

Webhooks integrations send data to your webhooks URL whenever something new is added. So, before going back to Zapier, add something new to your app.

Example

For example, if you're connecting to an email marketing app such as MailChimp, you could add a new subscriber, update an existing subscriber, or remove a contact, depending on the webhook type you selected.

Note

The request cannot be completely blank, so be sure to add something in the payload (or the URL parameters if it's a GET request) so the Zap can trigger.

Webhooks triggers support sending more than a single trigger event per webhook request. You can send an array of properly formed JSON objects, and Zapier will trigger the Zap once for each object in the array.

For example, if you POST this payload to a Webhook endpoint:

[
{
    "first_name": "Bryan",
    "last_name": "Helmig",
    "age": 27
},
{
    "first_name": "Mike",
    "last_name": "Knoop",
    "age": 28
},
{
    "first_name": "Wade",
    "last_name": "Foster",
    "age": 29
}
]

Zapier will trigger the actions three times, once for every object in the array.


5. Test your webhook

  • Back in Zapier, click Continue below your webhook URL.
  • Click Find Hook.
  • If your hook is found, the step will show it was successful and you can see the data received.

Here we see the first and last name of a new contact we sent to the webhook.

Zapier will split out each field from your webhook data so you can then select email addresses, names, project info, and much more in your Zapier action steps.

Note

If you don't get any sample data, first try adding a new item to your trigger app again, and see if Zapier pulls it in. If not, double-check the webhook settings in your trigger app to ensure you added Zapier's webhooks URL correctly.


6. (Optional) Trigger multiple Zaps with webhooks

If you have multiple webhooks you want to trigger at the same time, you can combine their URLs into a single URL. For example, if you have three Zaps with webhook URLs that look like this:

https://zapier.com/hooks/catch/433703/zbB61
https://zapier.com/hooks/catch/433703/kzXC4
https://zapier.com/hooks/catch/433703/2Ajjn

You can take the last part of the URLs and combine them into a single URL like this:

https://zapier.com/hooks/catch/433703/zbB61,kzXC4,2Ajjn

Requests sent to this URL will trigger all three webhook URLs at once.

Webhook throttling

  • Each users' webhooks are subject to a collective 429 status code rate limit after 10,000 requests in a 5-minute window. This includes subscription webhooks or REST Hooks.
  • Each individual webhook route will return a 429 status code after around 30 requests per second to encourage a smooth delivery of hooks vs. massive bursts. This includes subscription webhooks or REST Hooks.
  • Legacy webhook routes (which end with "/hooks/catch/abc123", instead of "/hooks/catch/1234567/abc123") will return a 429 status code after 1,000 requests received in a 5 minute window (this is per webhook route). This includes subscription webhooks or REST Hooks.
  • During heavy periods of sustained webhook activity, Zapier may return 200 status but still delay the processing of your webhooks by several minutes.
  • If you wish to enforce proper delivery of webhook, retry delivery on anything besides a 200 status code from Zapier and use an industry-standard exponential backoff interval for retries.

Once you’ve set up your webhook trigger, you’re ready to continue setting up the rest of your Zap.


Was this doc helpful?

Need More Help?

Zapier Support

Contact our world class support team and we’ll be happy to help you get up and running!
Contact Us

Hire an Expert

We have a directory of professionals across the globe who are ready to help.
Find a Zapier Expert