Workflow Automation: Throttling Webhooks

Workflow Automation will Throttle any App or Webhook Flow Requests that has too many concurrent processing webhook events as well as Apps that cause too much load on the server over a 5-minute interval.

If more hooks are received, they are queued. A separate cron job processes the queue every minute, re-initiating up to 100 queued hook events at a time until caught up. Since Workflow Automation was not designed to perform Updates to hundreds of Podio Items at a time, we have had to place this Throttling Code to slow down these events. These Throttled events will show on the main Account page of your account. Disable the Triggered Flow(s) to stop its operation.

This is done to protect users from the bad neighbor effect - ie experiencing Workflow Automation slow downs due to someone else’s Excel import, and to protect Workflow Automation from badly designed flows bringing down the whole system. With fast moving flows, this may never even kick in, but with slow moving flows that have actions like “Get View”, it will delay execution for the greater good.

Recommended Solution to complete a Large Update to data

  1. Create a Podio View the only returns the Items that need updating
  2. Create an Hourly Flow to run each hour, collecting the Podio View

This process will then complete the Updates in batches over a period of time.

Note: The number in the batch should be representative of the flow complexity. For example, if there are PDF actions, batches should be 10 or less. If there are Get Views with for each loops, then 100 or less, and if it’s a simple update, then probably 500-1000 at a time (also note your Collector limit for the account level).


Example

First, create a Podio View that contains the imported data. Here, a Category field that is set to “Imported” to distinguish imported items in our app. Once View is created, be sure to Refresh the workspace so GlobiFlow can pick up the changes.

Throttling Webhooks 1

Next, create a By Date or Date flow.

Throttling Webhooks 2

Then collect the items using the Get Podio View collector. It’s recommended that you set a limit to how many items you collect.

Throttling Webhooks 3

Then, loop through the collected items using a For Each. In order to prevent our flow from running out of hourly actions, use a Sanity Check inside the loop to determine if the Actions Remaining is sufficient enough for processing the current item. Be sure to add the Category Field to unset from “Imported”.

Throttling Webhooks 4

The created flow will run each hour, collect the “Imported” items, loop through each item, and update it if there are enough actions remaining in the hour. If we do not have enough actions remaining, the flow will simply pick up any items we haven’t unset the “Imported” field in the next hour.

Workflow Automation: Throttling Webhooks