Genesys Cloud - Developer Community!

Sign Up

Expand all | Collapse all

Architect Dependency Search for voices

  • 1.  Architect Dependency Search for voices

    Posted 6 days ago

    I am looking to filter the selection down to just the voices that are already being used in the different Architect Flows.

    Can you please help me in getting that?

    In Dependency Search we can use filter for Text to Speech Engine => Genesys Enhanced TTS => Select a voice 

    Need the list of voices used in the org (Full list not required) 


    #Architect

    ------------------------------
    AJAY KUMAR
    ------------------------------


  • 2.  RE: Architect Dependency Search for voices

    Posted 6 days ago

    Hi Ajay,

    From my understanding, I don't believe there's currently a built-in way to generate a consolidated list of only the TTS voices referenced across all Architect flows. The Dependency Search feature allows you to search by TTS engine and voice to identify which flows use that combination, but I haven't found a report or API that returns the unique set of voices currently in use across an organisation. If anyone has found a different approach, I'd be interested as well. Following this post.

    Resources:



    ------------------------------
    Phaneendra
    Technical Solutions Consultant
    ------------------------------



  • 3.  RE: Architect Dependency Search for voices

    Posted 6 days ago

    Is it possible via Archy or with the help of API's?



    ------------------------------
    AJAY KUMAR
    ------------------------------



  • 4.  RE: Architect Dependency Search for voices

    Posted 6 days ago
    Based on the current documentation, there isn't a native way to retrieve a consolidated list of all TTS voices currently in use across an organization.
     
    The supported method is Dependency Search, which lets you search by TTS Engine and Voice, but only one voice at a time.
     
    If you need to automate this, you could export the flow definitions with Archy or retrieve them through the Architect APIs and parse the exported YAML/JSON to extract the configured TTS voices. This isn't a built-in capability, but it can be achieved with a custom solution.
     
    Since this seems like a common administrative need, it might also be worth submitting an enhancement request through the Genesys Cloud Ideas Portal. A native report or API endpoint that returns the distinct TTS voices referenced across all Architect flows would simplify audits, voice migrations, and ongoing TTS administration.


    ------------------------------
    Raphael Poliesi
    ------------------------------



  • 5.  RE: Architect Dependency Search for voices

    Posted 4 days ago

    Thanks @Phaneendra Avatapalli



    ------------------------------
    AJAY KUMAR
    ------------------------------



  • 6.  RE: Architect Dependency Search for voices

    Posted 5 days ago

    Export your flows - give them to an AI like Copilot and let it search and extract all voices used... 
    Not that I would have tried this exact task, but I believe it should work easily... 



    ------------------------------
    Michael Lukoschek
    NA
    ------------------------------



  • 7.  RE: Architect Dependency Search for voices

    Posted 4 days ago

    I am planning to go with Export flows and then filter voices in those flows.



    ------------------------------
    AJAY KUMAR
    ------------------------------



  • 8.  RE: Architect Dependency Search for voices

    Posted 5 days ago

    It's possible through APIs, you can use the GC CLI to get it too. It is essentially use the CLI to get the list of flows, then query the configuration for each one to see the TTS voice in use.

    If you already have the CLI configured I can share a PowerShell script to do this.



    ------------------------------
    James Dunn
    Telecoms Specialist
    ------------------------------



  • 9.  RE: Architect Dependency Search for voices

    Posted 5 days ago

    I agree with @James Dunn. You can try to filter using PowerShell Script.



    ------------------------------
    Rohit Yadav
    ------------------------------



  • 10.  RE: Architect Dependency Search for voices

    Posted 4 days ago

    Yes, CLI is already configured. Please share the script so that I can try and test it.
    Thanks in Advacne @James Dunn 



    ------------------------------
    AJAY KUMAR
    ------------------------------



  • 11.  RE: Architect Dependency Search for voices

    Posted 4 days ago

    Here's the script. 

    1) You need to put the profile name you use in CLI in the $Profile variable

    2) The CLI executable on my machine is named gccli.exe so that when I access it through my Path variable I use 'gccli <command>'. If yours is named differently, replace 'gccli' with whatever yours is (maybe just gc) - it's in there a few times so just find and replace.

    param(
        [string]$Profile = "<<< ENTER YOUR PROFILE NAME HERE >>>",
        [string]$OutputPath = ".\GenesysFlowTtsVoiceReport.csv"
    )
    
    $ErrorActionPreference = "Stop"
    
    Write-Host "Fetching all flows via gccli..." -ForegroundColor Cyan
    
    # --- Step 1: Get all flows ---
    $flowsRaw = & gccli flows list -p $Profile -a
    $flows = $flowsRaw | Out-String | ConvertFrom-Json
    
    if (-not $flows) {
        Write-Warning "No flows returned. Check profile/connectivity."
        return
    }
    
    Write-Host "Retrieved $($flows.Count) flows. Pulling configuration for each published version..." -ForegroundColor Cyan
    
    $results = [System.Collections.Generic.List[PSCustomObject]]::new()
    $counter = 0
    
    foreach ($flow in $flows) {
    
        $counter++
        $flowId = $flow.id
    
        if (-not $flow.publishedVersion -or -not $flow.publishedVersion.id) {
            Write-Warning "[$counter/$($flows.Count)] Skipping '$($flow.name)' ($flowId) - no published version."
            continue
        }
    
        $versionId = $flow.publishedVersion.id
    
        Write-Host "[$counter/$($flows.Count)] $($flow.name)  (v$versionId)" -ForegroundColor DarkGray
    
        try {
            $configRaw = & gccli flows versions configuration get $flowId $versionId -p $Profile
            $config = $configRaw | Out-String | ConvertFrom-Json
        }
        catch {
            Write-Warning "  Failed to get configuration for $flowId / $versionId : $($_.Exception.Message)"
            continue
        }
    
        # ttsVoice can have zero, one, or many entries in the manifest - join names if multiple
        $ttsVoiceNames = $config.manifest.ttsVoice.name
        $ttsVoiceNameJoined = if ($ttsVoiceNames) { ($ttsVoiceNames -join "; ") } else { "" }
    
        $results.Add([PSCustomObject]@{
            "Flow Id"      = $flowId
            "Flow Name"    = $config.name
            "Flow Version" = $versionId
            "Flow Type"    = $config.type
            "TTS Voice Name" = $ttsVoiceNameJoined
        })
    }
    
    # --- Step 2: Export to CSV ---
    $results | Export-Csv -Path $OutputPath -NoTypeInformation -Encoding UTF8
    
    Write-Host "`nDone. $($results.Count) flows written to $OutputPath" -ForegroundColor Green


    ------------------------------
    James Dunn
    Telecoms Specialist
    ------------------------------



  • 12.  RE: Architect Dependency Search for voices
    Best Answer

    Posted 4 days ago

    Yesterday I have Joined Archy workshop and figured it out how to export the flows in yaml. We can automate it with the help of CLI or Rest API.

    1. Fetch list of flows
    2. Download flows by name/type
    3. Filter voices within the flows

    By doing this we will get the all the unique voices used in the system. Please share your advice.  It will work or not?



    ------------------------------
    AJAY KUMAR
    ------------------------------