Rate Limit for Salesforce Managed Package for Genesys

Hi,

We have an implementation here where case routing is achieved through Genesys managed package instance for Salesforce.

There are various rate limits documented here on this page.
https://developer.genesys.cloud/organization/organization/limits.

We use client credentials grant for Oauth authentication from Salesforce to Genesys Cloud and are aware that there is a limit of 300 per minute per client credentials grant.

Our question is does the rate limit apply to the Genesys Managed packaged for Salesforce as well? Does the managed package have an inherent ability to limit the number of requests sent to Genesys Cloud per minute.

Hi @Shashank_Kasarla
I can say that the limits apply to the API resources themselves, so any rate limits should occur regardless of the medium through which the API is called.
The Genesys Cloud for Salesforce Integration provides an SDK for working with the Genesys Cloud API, so if there's something custom you need to do you could implement retry logic using the SDK

The last action that is done by our Salesforce team is to create a record in this table - purecloud__PureCloud_Routing_Request__c.

Somehow contents of that table are taken and an email interaction is being created using the POST /api/v2/conversations/email.

We believe that who ever has developed the managed package has written this process of reading the contents of above table and creating email conversations.

if our premise is correct, We would like to know in this implementation if rate limits are being adhered to?

Some of the other fields of this table are below -

Select Id, purecloud__Title__c, purecloud__Display_Address__c, purecloud__Remote_Name__c, purecloud__Salesforce_Object_ID__c , Name, createdDate from purecloud__PureCloud_Routing_Request__c Order by createdDate DESC

Yes, as Jacob mentioned, all API usage is subject to rate limits. No apps are able to bypass rate limits, including ones developed by Genesys.

Hi Tim,

Thank you for your response.
Our question was more like - the team that built the managed package, have they implemented a way within the application to not go over the 300 (client credential grant )requests per minute rate limit that Genesys needs every application to adhere to.

Is there a way to reach out to the product team to understand that?

Thank You,
Shashank

Someone from that team might be able to jump in, but you'll need to ask a more pointed question than "how does the app make less than 300 requests per minute?". The only real answer to that question is "it makes the requests it needs to and that's less than 300 requests, and your app should do that too". I'm sure you mean something other than that high level question though. Are you having a specific problem that you're trying to diagnose? What's your purpose behind asking about rate limits?

The fact that you're mentioning client credentials makes me wonder how you've built your application and why you're comparing it to a per-user client application. The Genesys Cloud for SFDC client authorizes per-user, so each user gets 300 RPM to run their client. If you're implementing some kind of backend and trying to make requests for all your users using client credentials, you're likely to run into rate limits. Client credentials are not for fulfilling user activity. If that is indeed what you're doing, you'll need to implement a user-based auth flow so each user authorizes the app with their own token (implicit for a frontend app, auth code for a backend app, or saml2 bearer if you use SSO).

  1. yes, we observe the platform rate limits and the retry after period that is communicated in the event of a 429 response.
  2. the authorization token is utilized inside the context of the apex job we are running to execute the api calls. when the apex job completes, the token is destroyed. on the next execution of the apex job, it generates a new token for use within the context of that job. the apex jobs schedule the next apex job to run at their conclusion. so the whole process is self sustaining, and generally designed to avoid experiencing rate limiting by way of token generation
  3. In the event of a failed api invocation, that error is stored into the the purecloud_log__c object to record the issue
  4. things like failed routing attempts can be retried using the steps described here: Fix failed routing requests - Genesys Cloud Resource Center

I would like to understand better the source of your question. Have you run into an issue that is causing you to investigate rate limits, or is this more academic curiosity?

1 Like

Hi Richard,

Thank you so much for your response!

We did not run into any issue creating email conversations in bulk. We couldn't find any documentation that explicitly states what you explained.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.