Organization rate limits
To ensure platform reliability and consistent performance for the entire platform, Rewst applies rate limits to inbound webhook traffic at the organization level.
Microsoft Graph notification limits
Microsoft Graph subscriptions accept at most 200 notifications per request. Notifications beyond that limit are dropped, and the request still counts once against your organization’s rate limit.
Common causes of rate limit errors
Misconfigured integrations sending duplicate events
Bulk operations triggering large volumes of webhooks simultaneously
Retry storms from upstream services
Response when limit is exceeded
If your webhook traffic exceeds our limits, Rewst will respond with an HTTP 429 Too Many Requests status code. This is a standard response that signals the sending service to slow down and retry. The response includes a Retry-After header indicating how many seconds to wait before your organization’s rate-limit window resets, along with a JSON body describing the error. This response does not include X-RateLimit-* headers.
As webhook requests originate from external platforms, Rewst can't retry the request on your behalf. The event is lost once it's rejected, unless the external platform is configured to retry on 429 responses. Most well-designed webhook senders will automatically back-off and retry when they receive a 429 response. WHRL However, note that Rewst has built integrations with MSP-requested tools, and not all tools have 429 responses built in yet.
Example response
Below is an example of the 429 response Rewst sends back to the involved partner app when your organization is rate limited. Use this table to reference its meaning.
HTTP status code - status
429
Too Many Requests — rate limit exceeded
Retry after - retry-after
10
Wait 10 seconds before retrying the request
Retry after (body) - retryAfter
10
Same wait time as the Retry-After header,
included in the JSON response body
Synchronous responses
If a webhook trigger is configured with rewst_respond=sync or rewst_respond=hold, Rewst holds the connection open and waits for a synchronous result for up to 5 minutes. If a result isn’t ready within that window, Rewst falls back to an HTTP 202 response that includes a statusUrl you can poll for the result.
Each organization can hold at most 32 synchronous connections at a time. Once that limit is reached, additional synchronous requests receive an immediate 202 response instead of waiting. Responses larger than 5 MiB are never returned synchronously; those always come back with a statusUrl instead. Results are retained for 24 hours.
Deduplication
To deduplicate webhook requests, include an X-Idempotency-Key header with a unique value for each logical event. Rewst retains idempotency keys for 24 hours.
How to resolve and prevent rate limit issues
Review your integration configuration to ensure that events aren't being sent multiple times.
Verify that upstream services are correctly handling 429 responses and implementing back-off.
If you're performing bulk operations, consider spacing them out over time.
Add delays or exponential back-off before retrying.
Filter events before sending requests. Configure the source system to only emit webhook events that are actually needed: limit event types, scopes, objects, environments, etc.
If supported, batch or consolidate events. Prefer sending fewer webhook requests that contain multiple changes or events, or use built-in batching aggregation options on the source platform to reduce request volume.
Contact Rewst support if you need further guidance on how to prevent rate limiting.
Supplemental partner documentation
Below are links to related documentation from some of the apps Rewst integrates with, which may help you in ensuring that your webhook triggers are within limit. Partner documentation may require logging in to that partner app to view content.
Receive change notifications through webhooks – Microsoft Graph: This is Microsoft’s direct documentation of webhook delivery semantics for Graph.
Webhooks error handling - Autotask Official Documentation: This contains an authoritative description of Autotask webhook retry behavior.
ConnectWise developer guide: This contains ConnectWise's documentation on how their product handles retries.
Webhook integration triggers reference table
Autotask PSA
Company Webhook
Creating a webhook enables you to subscribe to notifications for events that take place in Autotask.
Autotask PSA
Configuration Item Webhook
Creating a webhook enables you to subscribe to notifications for events that take place in Autotask.
Autotask PSA
Contact Webhook
Creating a webhook enables you to subscribe to notifications for events that take place in Autotask.
Autotask PSA
Ticket Note Webhook
Creating a webhook enables you to subscribe to notifications for events that take place in Autotask.
Autotask PSA
Ticket Webhook
Creating a webhook enables you to subscribe to notifications for events that take place in Autotask.
ConnectWise PSA
Activity Record Saved
Receive notifications when an Activity record is saved in CW Manage
ConnectWise PSA
Agreement Record Saved
Receive notifications when an Agreement record is saved in CW Manage
ConnectWise PSA
Company Record Saved
Receive notifications when a Company record is saved in CW Manage
ConnectWise PSA
Configuration Record Saved
Receive notifications when a Configuration record is saved in CW Manage
ConnectWise PSA
Contact Record Saved
Receive notifications when a Contact record is saved in CW Manage
ConnectWise PSA
Expense Record Saved
Receive notifications when an Expense record is saved in CW Manage
ConnectWise PSA
Invoice Record Saved
Receive notifications when an Invoice record is saved in CW Manage
ConnectWise PSA
Opportunity Record Saved
Receive notifications when an Opportunity record is saved in CW Manage
ConnectWise PSA
Product Catalog Record Saved
Receive notifications when a Product Catalog record is saved in CW Manage
ConnectWise PSA
Project Record Saved
Receive notifications when a Project record is saved in CW Manage
ConnectWise PSA
Purchase Order Record Saved
Receive notifications when a Purchase Order record is saved in CW Manage
ConnectWise PSA
Schedule Entry Record Saved
Receive notifications when a Schedule Entry record is saved in CW Manage
ConnectWise PSA
Ticket Record Saved
Receive notifications when a Ticket record is saved in CW Manage
ConnectWise PSA
Time Entry Record Saved
Receive notifications when a Time Entry record is saved in CW Manage
Core
Form Submission
Core
Webhook
Discord
Custom Interaction
Triggers a workflow for a custom interaction event. The command, modal or message component must be created first. See Discord API docs for more information.
Discord
Message Command
Triggers a workflow when a specified message command is activated in a guild (server)
Discord
Slash Command
Triggers a workflow when a specified slash command is sent to a guild (server) channel
Discord
User Command
Triggers a workflow when a specified user command is activated in a guild (server)
HubSpot
object_changed
Fires on create, update, delete of a hubspot item
Microsoft Graph
Chat Message Subscription
Subscribe to chat messages in all chats
Microsoft Graph
Chat Message Subscription by Chat ID
Subscribe to changes to chat messages in a specific chat
Microsoft Graph
Email Message Change Subscription
Subscribe to changes for a user's email messages. Does not allow specifying mailbox folder.
Microsoft Graph
Group Change Subscription
Subscribe to changes to all groups
Microsoft Graph
Security Alert Subscription
Receive notifications when a new Security Alert is produced in Microsoft Graph
Microsoft Graph
Teams Message Subscription
Subscribe to chat messages in all channels in all teams
Microsoft Graph
Teams Message Subscription by Team and Channel ID
Subscribe to changes to chat messages in a specific channel
Microsoft Graph
User Change Subscription
Subscribe to changes to all users
OpenText Core Endpoint Protection
File Detection
Event that is triggered when the WSA client detects a (potentially) malicious file.
OpenText Core Endpoint Protection
Web Threat Shield URL Action
Event that is triggered when Web Threat Shield (WTS) acts on a URL.
Slack
Slash Command
A Slack Slash Command
Last updated
Was this helpful?
