Public/Get-GCQualityEvaluations.ps1

<#
.SYNOPSIS
    Retrieves a list of quality evaluations from Genesys Cloud.

.DESCRIPTION
    Queries the Genesys Cloud API to retrieve a paginated list of quality evaluations.
    Supports filtering by conversation ID, agent user ID, and evaluator user ID.
    API Endpoint: GET /api/v2/quality/evaluations/query

.PARAMETER PageSize
    The number of results per page. Default is 25.

.PARAMETER PageNumber
    The page number to retrieve. Default is 1.

.PARAMETER ConversationId
    Filter evaluations by conversation ID.

.PARAMETER AgentUserId
    Filter evaluations by agent user ID.

.PARAMETER EvaluatorUserId
    Filter evaluations by evaluator user ID.

.EXAMPLE
    Get-GCQualityEvaluations
    Retrieves the first page of quality evaluations with default page size.

.EXAMPLE
    Get-GCQualityEvaluations -ConversationId 'conv-id-1' -AgentUserId 'agent-id-1'
    Retrieves evaluations for a specific conversation and agent.

.NOTES
    Genesys Cloud API: GET /api/v2/quality/evaluations/query
#>

function Get-GCQualityEvaluations {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $false)]
        [int]$PageSize = 25,

        [Parameter(Mandatory = $false)]
        [int]$PageNumber = 1,

        [Parameter(Mandatory = $false)]
        [string]$ConversationId,

        [Parameter(Mandatory = $false)]
        [string]$AgentUserId,

        [Parameter(Mandatory = $false)]
        [string]$EvaluatorUserId
    )

    $queryParams = @{
        pageSize   = $PageSize
        pageNumber = $PageNumber
    }

    if ($ConversationId) { $queryParams['conversationId'] = $ConversationId }
    if ($AgentUserId) { $queryParams['agentUserId'] = $AgentUserId }
    if ($EvaluatorUserId) { $queryParams['evaluatorUserId'] = $EvaluatorUserId }

    $endpoint = "quality/evaluations/query"
    return Invoke-GCApiRequest -Endpoint $endpoint -Method GET -QueryParameters $queryParams
}