Legacy Dev Forum Posts

 View Only

Sign Up

A couple of questions about Client Application Integrations

  • 1.  A couple of questions about Client Application Integrations

    Posted 06-05-2025 18:19

    draeder | 2021-04-16 19:47:45 UTC | #1

    Hi guys... I'm just getting started with client app integrations and have a couple of questions.

    First question:

    I have a client app that needs to run automatically, and 24/7 for the allowed group of users.

    Is it possible to automatically start an app upon logging into Genesys Cloud, or should I be looking into widgets or something else for something like that. And if it should be widgets, shouldn't I be concerned with lifecycle management potentially terminating my app?

    If it's simply not possible, then I suppose it will have to be a separate/standalone site using the code authorization grant flow.

    Second question:

    I am building an app that needs to play a sound upon an event received from my server.

    However, according to this link, playback of sound will only occur if a user interacts with the page, or if the top level iframe permits autoplay. This seems to be the case for most modern browsers at this time.

    It looks like the integration Iframe Sandbox Options does not include an allow-autoplay option since I am getting "Property Iframe Sandbox Options is invalid" when I try to use it.

    Do you have any plans to allow this sandbox option?

    Thanks, Dan


    Jerome.Saint-Marc | 2021-04-21 08:23:35 UTC | #2

    Hello,

    Regarding your first question:

    At this time, it is not possible to automatically start an application when login in the Genesys Cloud Desktop.

    When using Client Application integrations (Custom Client App in Standalone or Widget-Sidebar mode, or Interaction Widget), to embed a 3rd party web app inside the Genesys Desktop, the web/client app will only be invoked and loaded when the user selects and displays the app in the Genesys Desktop. It is a kind of "lazy-loading" - I mean the the client app will be loaded only after the user requests to display it a first time (in the current session). Once the user has selected the client app once, the client app code will continue to run even if the user switches to a different view/page/tab.

    In this page: Apps will be launched on-demand when a user requests it. Apps will continue to run, but will be hidden when a user navigates away from the app

    The client app is put "in cache" (in a pool of client apps) - it is not cleared from the web client - its associated code will continue to run (ex: if you have a websocket, a method that is executed periodically via setTimeout, ...).

    To clarify on the lifecycle management, it is not something you automatically need to worry about when using a Custom Client App (Standalone or Widget-Sidebar). What I mean is that the Genesys Desktop imposes a limit in the number of Client Apps that can be cached. At this time, the limit is of 10 apps per pool (10 for Standalone Client Apps, 10 for Widget-Sidebar Client Apps, 10 for Interaction Widgets). Please note that this number is subject to change if there is a need in the future. It doesn't mean you can't expose more than 10 Standalone or 10 Widget-Sidebar Client Apps in the Genesys Desktop. It just means that a max of 10 apps can run concurrently. If a user has 11 apps made available in the Widget-Sidebar, and if he has already selected/clicked on 10 of them (10 in the pool) - if he selects/clicks on an eleventh app, one app will be unloaded/cleared from the cache. You will then have a trigger on the stop lifecycle event of that app to notify you (if you have enabled this lifecyle event. So if you are not planning to expose more than 10 apps (10 in Widget-Sidebar, 10 in Standalone), then, you don't automatically need to worry about this.

    Coming back to your question, if you need to have your app be ready when the user logs in, and if having the user click/select a Standalone/Widget-Sidebar client app first is not acceptable in your scenario, then you will have to open your web app in a separate page.

    Two comments here. You can still use Implicit Grant flow. Unless of course you need to have a server side application make queries on behalf of the user (and in this case, you indeed need to use an Authorization Code Grant flow). If your app is running outside of the Genesys Desktop (I mean in a separate tab, browser, client), note that the Client App SDK cannot be leveraged. The Client App SDK is only operational when the app is running inside the Genesys Desktop (i.e. as a Custom Client App in Standalone or Widget-Sidebar mode, or as an Interaction Widget).

    Regarding your second question:

    I am not expert in browser iframe flags. But I am not sure there is an allow-autoplay (I mean for the browser itself). The IFrame Sandbox Options that you set in the integration relate to the iframe "sandbox" attribute. The link you have referenced, for autoplay, appears to relate to the iframe "allow" attribute. At this time, the Custom Client App automatically set it to "camera; microphone; geolocation;" (it is not configurable).

    As a note, if your client app is to run inside the Genesys Desktop, and can therefore leverage the Client App SDK, you could use the setAttentionCount as it will create a badge notification.

    Regarding your first and second questions:

    What I would suggest is to request a new feature and share your use case at https://genesyscloud.ideas.aha.io/ Possibly one for autoplay (or asking to have the iframe allow attribute be made configurable) and one for auto-start. The ideas are periodically reviewed by the Product Managers and having them created on the Ideas site (with some votes from other customers/partners) help them prioritizing such requests.

    Regards,


    draeder | 2021-04-21 18:47:47 UTC | #3

    Hi @Jerome.Saint-Marc,

    Thank you for the very detailed answer. For sounds, I'm working around this by using a toggle sounds button force user interaction to enable sounds. This seems to work for now, but allowing autoplay through the iframe would be ideal.

    I'll submit an idea for both questionswhen I have a moment.

    Thanks! Dan


    system | 2021-05-22 18:47:49 UTC | #4

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


    This post was migrated from the old Developer Forum.

    ref: 10662