Genesys Cloud - Developer Community!

 View Only

Sign Up

  • 1.  Pushing Content/Metadata collected by a third party Voice AI Agent to an Architect Flow

    Posted 09-17-2025 21:33

    When using Genesys Cloud CX and BYOC SIP to connect into a third party voice AI Agent, is there a way for the Voice AI Agent to push data back into an Architect flow or active interaction when the AI Agent transfers back to route to a human agent or is this handled by have Architect make a REST API call to pull in this data?

    For example, NiCE and Amazon Connect have API's that let you update the state of an active contact or flow.

    UpdateContactAttributes (Amazon Connect)

    NICE CXone Signal API

    I want to make sure I am not missing anything.

    Note: The customer has chosen not to move forward with Audio Connector because of the cost difference with SIP BYOC.

    This is a follow on to a another post around how to hand back the call to Genesys Cloud CX  covered HERE.


    #PlatformAPI

    ------------------------------
    Alan Klein
    SA
    ------------------------------


  • 2.  RE: Pushing Content/Metadata collected by a third party Voice AI Agent to an Architect Flow

    Posted 09-17-2025 21:41

    Hi Alan, how you describe is more or less how a number of third party bots/AI agents operate.  You provide them with oauth credentials and while they're processing things on their side they attach/update participant data.  The call then goes back to Genesys Cloud.  Most of this is relying on the conversation staying the same all the way through.  When Genesys sends the call to the third party, the conversation id would normally be in the INVITE headers so the third party platform can use that.  When the call comes back to Genesys it's done as a REINVITE and again using the same conversation ID.  So the flow triggered on return back to Genesys will be able to do simple GET participant data requests to see what's been added by that other party.



    ------------------------------
    Vaun McCarthy
    ------------------------------



  • 3.  RE: Pushing Content/Metadata collected by a third party Voice AI Agent to an Architect Flow

    Posted 09-19-2025 15:15

    @Vaun McCarthy I got of of it figured out but what is the most efficient way to get the visitor participant ID in Architect to send over to my AI Agent so it can call the REST API to update the contact attributes.

    The steps I have are:

    1. Being able to look up the Interaction ID to get the participant ID (need both to update contact attributes)
    GET /api/v2/conversations/calls/92f6fc39-b4e5-48cc-b6bc-5ddcb9f6c41f HTTP/1.1
    https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-analytics-conversations--conversationId--details
    * Is there a built in dynamic variable in Architect that surfaces the participant ID?
    ---
     
    2. Being able to push attributes 
     
    PATCH /api/v2/conversations/{conversationId}/participants/{participantId}/attributes
    https://developer.genesys.cloud/devapps/api-explorer#patch-api-v2-conversations--conversationId--participants--participantId--attributes
     
    Content-Type: application/json
    Authorization: Bearer <access_token>
     
    {
      "attributes": {
        "customerId": "12345",
        "priority": "high",
        "caseNumber": "ABC-6789"
      }
    }
     
    ---
     
    3. Being able to view attributes once updated
     
    GET /api/v2/conversations/{conversationId}
    https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations-calls--conversationId-
    * I imagine I can refer to these contact attibutes in Architect some way (Get Participant Data?)


    ------------------------------
    Alan Klein
    SA
    ------------------------------



  • 4.  RE: Pushing Content/Metadata collected by a third party Voice AI Agent to an Architect Flow

    Posted 09-22-2025 07:18
    Edited by Anders Vejen 09-22-2025 07:25

    Hi Alan

    To obtain the participantId normally you would make a PureCloud data action that calls:

    [GET /api/v2/conversations/messages/{conversationId}]

    or similar in Conversations or Analytics:
     and then cycle through the result using JSONpath (I use JSONpath.com to evaluate expressions) to fetch the participant id based on the correct "purpose", similar to this:

    "translationMap": {
        "participantId": "$.conversations[*].participants[?(@.purpose == 'agent')].id",
    Be aware that multiple types of a given participant "purpose" might be present in the conversation object.

    ------------------------------
    Best regards

    Anders Vejen
    NetDesign A/S, a part of Nuuday A/S
    ------------------------------