Genesys Cloud - Developer Community!

 View Only

Sign Up

  • 1.  How do I automate things that require user context?

    Posted 23 days ago

    We're in the process of migrating to Cloud CX form PureConnect (the previous Genesys platform for anyone not familiar). That platform had a provided development environment that allowed me to write handlers. Those could do basically any function in the platform, much like the APIs are supposed to do in Cloud CX. As I'm trying to recreate functionality that we used to have, I keep running into APIs that need a user context to run. I don't see an easy way to do that for operations that are running unattended on a server (probably on a schedule). 

    I don't understand why the Python SDK has all these functions if I can't use them. As a specific example, I need to automate the uploading of documents into workspaces. I had copilot help me out with the syntax for postcontentmanagementdocuments in the ContentManagementApi. When I went to run it, it said it needs to be in a user context.

    I don't understand why it won't work when I have the syntax correct and I'm using valid client authentication. If it really needs a user context, I'll create a service account for it to use. I don't see a way to do that. Am I missing something?


    #Integrations
    #PlatformAPI
    #PlatformSDK

    ------------------------------
    Dave Halderman
    Business Analyst
    ------------------------------


  • 2.  RE: How do I automate things that require user context?

    Posted 23 days ago

    Hi @Dave Halderman, not super confident on this one but here giving it a shot, let me know if this helps:

    What I have seen for server-based operations in Cloud CX is they use OAuth Client Credentials grant.

    The Client Credentials grant is specifically designed for headless applications that don't have a UI for user authentication but need to make authenticated API requests, which seems to be a good fit for your scheduled operations running on a server.

    How to Set It Up:

    Navigate to OAuth Settings
    Go to Admin > Integrations > OAuth (or Menu > IT and Integrations > OAuth)
    Create a New OAuth Client
    Click "Add Client"
    Enter a descriptive App Name
    Add an optional description
    Set the Token Duration (in seconds)
    Select Client Credentials Grant Type
    In the Grant Types field, select Client Credentials
    Assign Appropriate Roles
    Assign roles that have the permissions your automated operations need
    You can create custom roles with specific permissions for your use case
    Save and Capture Credentials
    Copy the Client ID and Client Secret - you'll use these in your server application

    I am aware that when using client credentials grant, resources like /api/v2/users/me will not be available because the auth token is not in the context of a specific user.

    Moreover, have heard also that there APIs that do require the user context and won't work with Client Credentials and there are already several Ideas submitted. If you encounter specific APIs that require user context for your automation needs, you may need to:

    Use an Authorization Code or Implicit Grant flow with a service account user
    Consider alternative APIs that provide similar functionality
    Use Genesys Cloud Workflows as an alternative automation method for some scenarios


    Also, there's been feedback that API documentation doesn't always clearly indicate which authorization type is required for each endpoint, which can lead to the confusion you're experiencing. When testing your migrated functionality, you may need to experiment or reach out to support for specific API endpoints.

    Hope it helps!



    ------------------------------
    Joaquin Garcia Fink
    Senior Customer Success Manager
    Genesys - Employees
    ------------------------------



  • 3.  RE: How do I automate things that require user context?

    Posted 4 days ago

    Is there a guide for how to use a service account user with my Python script to automate things? I just expected that if I am using the official Python SDK, and have a valid client ID and secret, that I'd be able to use ALL of the functions in the SDK. If I can't, why are they there? If things need to have a user attached to them to run, why can't I pass in a username to be used to run the operation?



    ------------------------------
    Dave Halderman
    Business Analyst
    ------------------------------



  • 4.  RE: How do I automate things that require user context?

    Posted 3 days ago

    "Also, there's been feedback that API documentation doesn't always clearly indicate which authorization type is required for each endpoint, which can lead to the confusion you're experiencing. When testing your migrated functionality, you may need to experiment or reach out to support for specific API endpoints."

    And an Idea raised for Genesys to clearly document this. Please vote on it Joaquin as it often seems that Genesys votes far outweigh customer ones!
    Clearly document which APIs require User | Genesys Cloud Ideas Portal



    ------------------------------
    Angus Huckle
    Chapter Lead
    ------------------------------



  • 5.  RE: How do I automate things that require user context?

    Posted 2 days ago
    Edited by Shankar S 2 days ago

    .


    ------------------------------
    Shankar S
    ------------------------------