Trigger Zaps from webhooks

Intro to webhooks

Webhooks are automated messages sent between apps—a type of notification that includes detailed information about new items in apps. If you're on a paid plan, you can trigger Zaps from webhooks. You can also send a webhook when an event occurs in an app.

ratingStar icon 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 and 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. To find out if a URL is live, visit the Zap editor and look at the webhook URL (which is always the same for a Zap).
    • Although it's not possible to customize this response, you can remove it completely by using Silent Mode.
  • Zaps with Catch Hook and Catch Raw Hook triggers are linked to the owner of the Zap. If ownership of the Zap changes, the “Custom Webhook URL” of the Zap will also change.

1. Add a webhook trigger

  • Click the Trigger step.
  • Search for and select Webhooks by Zapier.
  • Click the Event dropdown menu and select your webhook type.
  • Click Continue.

For most webhooks, the Catch Hook trigger will be the best option. Catch hooks work by giving you a unique URL that you can make POST 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.

ratingStar icon Tip

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

2. Set up the webhook trigger

Next, you’ll be given the URL for your webhook and can set it up:

  • Silent Mode: some apps need 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 A 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 need a subset of the data that is sent to the webhook.

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 it in your app's core settings or options page. If you’re unable to find it, check your app's help and support documentation.

In 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. Test your webhook

  • After the trigger is set up, click Continue.
  • The three most recent live webhooks will be displayed as samples.

Zapier will separate each field from your webhook data, which lets you use them (e.g. email addresses, names, project info) in later steps in your Zap.

 

5. Send data to your webhook

The app that's connected to your Zapier webhook URL will send data to it whenever something new is added. To test a webhook trigger, you must first add something new to your app. For example, if you're connecting to an email marketing app such as MailChimp, you could add a new subscriber to Mailchimp.

  • After you send data from your connected app to the Webhook URL, return to your Zap's Test trigger section.
  • Click Test trigger.
miscEye icon Note

If you don't get any data in the test, try to add a new item to your trigger app again and see if the Zap receives it. If the data still doesn’t come in, double-check the webhook settings in your trigger app to ensure that Zapier's webhooks URL was added correctly.

Sending more than one event per webhook request

Webhook triggers can receive more than one event in a single 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.

6. Optional: Trigger multiple Zaps with webhooks

If you have multiple webhooks you want to trigger from the same event in your app, you can combine their URLs into a single URL. For example, if you have three Zaps, the URLs would look like this:

https://hooks.zapier.com/hooks/catch/123456/zbB61

https://hooks.zapier.com/hooks/catch/123456/kzXC4

https://hooks.zapier.com/hooks/catch/123456/2Ajjn

You can take the last part of each URLs and combine them into a single URL like this:
https://zapier.com/hooks/catch/123456/zbB61,kzXC4,2Ajjn

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

miscEye icon Note

In multi-user accounts (Zapier for Teams and Zapier for Companies), ensure that all webhooks are owned by the same user. You can see the user ID in the URL of the webhook, after /catch/.

7. Webhook throttling

When a large number of triggers or actions occur within a short time span, they may be throttled (limited) to reduce their frequency. Here are some cases where webhooks may be throttled:

  • All of your webhooks are subject to a collective limit of 10,000 requests in a 5-minute window. This includes subscription webhooks or REST Hooks.
  • Each individual webhook 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 webhooks (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). This includes subscription webhooks or REST hooks.
  • During heavy periods of sustained webhook activity, Zapier may return a 200 status but still delay the processing of webhooks by several minutes.
  • If you want 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.

8. Webhook Zap Ownership

Zaps that use Catch Hook and Catch Raw Hook triggers have a unique URL to send webhook requests to. This URL contains the Zap owner's user ID. If you transferred to another user of one of these Zaps to another user, this URL will change. This is because the Zap replaces the owner's user ID in the URL.

To ensure that the Zap continues receiving webhook requests, you must update the URL in the app that sends them. Otherwise, the Zap won’t trigger.

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

Was this article helpful?
8 out of 18 found this helpful