Why are my webhooks firing multiple times?
The standard use-case for a webhook integration is to send one webhook for every parsed email. This means that all extracted data fields are packed into one payload and sent to your API or Zapier in one single request.
There are however situations when you want to have multiple webhooks sent for one email. For example if you are extracting line-items of an order confirmation or other kind of tabular data, you probably want to have one webhook request for each "row".
This is why the standard behaviour of webhooks is the following:
One webhook request for each email if no tabular data was extracted. Multiple webhook requests if tabular data can be found in the parsed results.
How to prevent sending of multiple webhooks requests?
If you find yourself with multiple webhook requests for one email but you actually just want to have one, try the following. Flip through the parsed emails and check if any of your parsing rules return multiple values. In the image below you'll see the difference between parsing rules which only return one value (Customer Email, Invoice Number) and another one which returns multiple results (Line Items). In the case below, three webhook requests would be sent, one for each Line Items.
If one of your parsing rules returns multiple values but you actually want have only one text block, you can easily modify your parsing rule to return a single block. All you need to do is to open the parsing rule editor and then add another filter at the end which will merge all extracted rows into one single block.
How to send multiple parsing results in one single webhook?
The method above describes how you can alter the parsing results so that one single webhook request is produced. If you don't want to alter the output of your parsing because you want all parsing results appear in one single webhook, you can use a 'Generic Webhook' with modified advanced settings.
The advanced options of a 'Generic Webhook' allow you to set the parameter 'Repeating Data Behaviour' to 'One request per Email' (default value is 'One request per row'). Once set, only one webhook request will be sent per email including all parsed items. If a parsing rule returns multiple results (rows), the parsed data is represented as an array.