Developer ToolsFree calculatorPDF, Excel, Word export

Teams Webhook Rate Limit Queue Drain Time Calculator

Posting ERP exceptions, approvals or machine alerts into Teams works until a burst arrives and the endpoint answers with throttling errors. This calculator shows how long the queue takes to clear and whether batching or more endpoints is the better fix.

Your numbers

messages

For example a nightly MRP exception run that posts one card per exception.

msg/sec

Take this from current Microsoft documentation and your own tests. Limits change.

1 endpoints

Separate webhooks or workflows posting to separate channels.

10 %

Share that hit throttling and must be retried.

per card

Digest cards group several exceptions in one message.

Your results

Time to drain
2.8 min
Share of hourly capacity used
4.6%
Cards to post
600
Posts including retries
660
Capacity per hour
14,400
Time to drain in seconds
165

Teams and Power Automate limits differ by plan and change over time. Confirm the current limit before sizing.

Save results:

Drain time vs parallel endpoints

Sweeps Parallel endpoints from 1 to 20, holding your other inputs fixed.

Need a queued Teams alert layer for your ERP?

An optional design review of batching, retries and channel routing for ERP alerts.

Optional. The tool and every export work without this. No spam.

How to use it

Enter the size of your largest burst, not the average. For an ERP that is typically a scheduled job such as an MRP run, a nightly inventory reconciliation or a month end close. Add the per endpoint rate you have measured or read from Microsoft documentation, the number of parallel webhooks or workflows you can split across, and the share of calls that get retried. Setting exceptions per card above one models digest cards.

  • Size for the biggest burst of the week
  • Measure the real rate with a test channel first
  • Split by plant or team, not randomly, so channels stay readable

Formula and reading the result

Cards equal burst divided by exceptions per card, rounded up. Posts including retries equal cards times one plus the retry share. Drain time equals posts divided by rate times endpoints. If 600 exceptions go out one per card at 4 per second with 10 percent retries, that is 660 posts and about 2.75 minutes. The percent of hourly capacity used shows whether you are close to the ceiling when other flows share the same endpoint.

Common mistakes

Retrying immediately makes throttling worse, so respect the Retry-After header and use exponential backoff. Posting one card per exception floods a channel and trains people to mute it. A digest card with a count and a link to the ERP list is usually kinder to both the endpoint and the readers. Also queue messages in your integration layer instead of in the ERP job, so a slow Teams call never blocks the ERP.

  • Honor Retry-After before the next call
  • Prefer a digest when more than a handful of items arrive together
  • Keep the queue outside the ERP transaction

Frequently Asked Questions

What is the Teams webhook rate limit?

It varies by connector type and plan and Microsoft changes it. Look up the current figure in Microsoft documentation and confirm it with a load test, then enter it as the rate here.

Does batching really help?

Yes. Combining ten exceptions into one card cuts posts by about ten times and makes the channel readable. The trade-off is less detail per card, so link each card to the ERP exception list.

Should I use more webhooks to beat the limit?

Splitting by plant or topic is fine and the chart shows the gain. Spreading one flow across many hooks only to evade throttling is fragile and may breach usage policy, so prefer batching first.

Does this cover Slack or other chat tools?

The arithmetic is generic. Replace the rate with the target platform's documented limit and the result holds.

If you want ERP alerts routed to Teams through a queued, private integration with throttling handled properly, Netray can design and run it with you.