The integration of ClaudIA with Zendesk was designed with a focus on high performance and resource exhaustion prevention.
To achieve this, we adopted:
-
Rate Limit Handling Logic: We implemented an exponential backoff strategy to space out requests and allow the API to recover before new attempts, preventing limit errors.
-
Controlled Shutdown: We maintain the ability to disable ClaudIA easily if needed to immediately reduce the load on external services.
Integration Structure and Request Usage Details
Our integration exploits Zendesk/Sunshine endpoints in an optimized way, minimizing the number of requests. This ensures ClaudIA uses only the calls truly necessary for proper operation.
API Calls
Below, we describe the main API calls ClaudIA makes during its interaction with Zendesk:
-
Send Message
-
Description: Sends a message from ClaudIA to the end user
-
Frequency: 1 request per message
-
-
Resolve Ticket
-
Description: Marks the ticket as resolved
-
Frequency: 2 requests per ticket (happens at ticket closure)
-
-
Reassign Ticket (Handover to humans)
-
Description: Reassigns the ticket to a human agent when necessary.
-
Frequency: 1 request per ticket, only at closure (occurs in 20 to 50% of cases, depending on the project)
-
Monthly Usage Calculation (Based on 60k tickets)
Assuming an average of 3 messages sent by ClaudIA per ticket, the scenario for 60,000 tickets per month is:
-
Sending Message:
-
3 messages per ticket
-
3 × 60,000 = 180,000 requests
-
-
Resolve Ticket:
-
2 requests per ticket
-
2 × 60,000 = 120,000 requests
-
-
Reassign Ticket (Handover):
-
0.5 request per ticket (as it occurs in less than 50% of cases)
-
0.5 × 60,000 = 30,000 requests
-
Estimated Total: 180,000 + 120,000 + 30,000 = 330,000 requests per month.
Request Distribution (RPM)
To illustrate request spikes, consider the following hypothesis:
-
All 60,000 tickets are distributed over only 20 business days (a pessimistic estimate since tickets also arrive on weekends)
-
All tickets arrive only during 8 hours of business hours daily
The RPM (Requests Per Minute) calculation is:
Total monthly requests: 330,000
Business days: 20
Business hours per day: 8
Minutes per hour: 60
Average RPM = 330,000 ÷ 20 ÷ 8 ÷ 60 ≈ 34 requests/minute
Recently, we added a feature called Split Message Automatic Message Splitting: How It Works and How to Configure. This increases the number of requests per minute that ClaudIA and Eddie consume.
Comparison with Zendesk Limit
The default RPM limit of Zendesk. It can be updated, so we suggest checking this page: https://support.zendesk.com/hc/en-us/articles/4408836402074-Managing-API-usage-in-your-Zendesk-account
You can check your current status on the following page: https://{{CLIENT}}.zendesk.com/admin/apps-integrations/apis/api-analytics
OR
https://{{CLIENT}}.zendesk.com/admin/account/usage/api
What to Do if You Reach the Rate Limit?
If you reach the Rate Limit, we suggest four possible actions:
1 - Contact Zendesk to inquire about increasing the API limit
2 - Disable some of the request-heavy functionalities (or run them only outside business hours)
3 - Disable message splitting or increase its MAX characters (each message sent is an API call). If you have Eddie at the start, it also performs message splitting, which can impact performance; disabling it might be better.
4 - Upgrade your Zendesk plan
5 - Consider migrating to Cloud Chat, as many Zendesk clients have done. Cloud Chat does not have this type of limitation.