Non-instant trigger zaps poll their respective APIs once every 5 or 15 minutes depending what Zapier plan you're on.
When multiple new items are found, this results in multiple zap runs triggering at the same time.
This is often fine, but occasionally other apps in your zap might not be able to handle being inundated by new data all at the same time, causing zap errors.
This happened with two clients of mine:
- The first has a Shopify store that at peak times can receive anything from 5 - 15 orders in a 5 minute period. One of their zaps creates Trello cards for each order and at times Trello would not be able to handle creating so many cards at once and would throw errors.
- The other had a zap that watches quite a busy RSS feed and sends the articles to Buffer. They found buffer would often throw errors when trying to post multiple articles at once.
Auto-replay for failed zaps is a great feature, but not suitable for everyone - so I looked for a way to space out zap runs.
A simple code step saves the day:
return {
randomNumber: Math.random() * (3 - 1) + 1
};
This generates a random(ish) number
(these bounds can be changes
needed), which
can be fed
a "Delay For" step.
The result is a zap triggers 10 times at the same time, will find the action steps of each run starting at a slightly different time, hopefully taking pressure off the apps they are sending data to.
If anyone has other ways of doing this - I'd love to discuss