Skip to main content

Hello

I cannot find a way on how to create a report where I can see the current count of Members of each Agent Group.

How can this be done?

Thanks

Couldn't find a way to combined the to infos 

 

Here you have a app that can show you som Freshservice Admin Dashboard Integration | Freshworks Marketplace 


Hi Daniel

Thanks for the hint. As this is a paid app and I want to have this information maybe once every 4-5 months as a check, I have now created my own powershell script going to the API and pulling me the data I need in a simple text file. For now this is enough for me but I am surprised this is not built into the Analysis module of FreshService.


For anyone interested:

 
Function Get-FreshServiceAgents {
    Write-LogEntry -msg "getting Agents from FreshService"
    $data = @()
    $value = "agents"
    $endpointURL = $Script:FreshServiceConfig.URL + "/" + $value
    $webReturn = Invoke-WebRequest -Uri "$($endpointURL)" -Method "Get" -Headers $Script:FreshServiceHeaders
    if ($webReturn.Headers."X-Ratelimit-Remaining" -le 10) {
        Write-LogEntry -level WARNING -msg "FreshService Rate Limit exceeded - waiting 1 minute"
        Start-Sleep -Seconds 60
    }
    $data = ($webReturn.Content | ConvertFrom-Json).$value
    $dataNextLink = $webReturn.Headers.Link -Replace ">.*" -replace "<"
    $dataRelNext = $webReturn.Headers.Link -match "next"
 
    While ($dataRelNext) {
        $webReturn = Invoke-WebRequest -Uri "$($dataNextLink)" -Method "Get" -Headers $Script:FreshServiceHeaders
        if ($webReturn.Headers."X-Ratelimit-Remaining" -le 10) {
            Write-LogEntry -level WARNING -msg "FreshService Rate Limit exceeded - waiting 1 minute"
            Start-Sleep -Seconds 60
        }
        $dataNextLink = $webReturn.Headers.Link -Replace ">.*" -replace "<"
        $dataRelNext = $webReturn.Headers.Link -match "next"
        $data += ($webReturn.Content | ConvertFrom-Json).$value
    }
    return $data
  }
 
Function Get-FreshServiceGroups {
    Write-LogEntry -msg "getting Requesters from FreshService"
    $data = @()
    $value = "groups"
    $endpointURL = $Script:FreshServiceConfig.URL + "/" + $value
    $webReturn = Invoke-WebRequest -Uri "$($endpointURL)" -Method "Get" -Headers $Script:FreshServiceHeaders
    if ($webReturn.Headers."X-Ratelimit-Remaining" -le 10) {
        Write-LogEntry -level WARNING -msg "FreshService Rate Limit exceeded - waiting 1 minute"
        Start-Sleep -Seconds 60
    }
    $data = ($webReturn.Content | ConvertFrom-Json).$value
    $dataNextLink = $webReturn.Headers.Link -Replace ">.*" -replace "<"
    $dataRelNext = $webReturn.Headers.Link -match "next"
 
    While ($dataRelNext) {
        $webReturn = Invoke-WebRequest -Uri "$($dataNextLink)" -Method "Get" -Headers $Script:FreshServiceHeaders
        if ($webReturn.Headers."X-Ratelimit-Remaining" -le 10) {
            Write-LogEntry -level WARNING -msg "FreshService Rate Limit exceeded - waiting 1 minute"
            Start-Sleep -Seconds 60
        }
        $dataNextLink = $webReturn.Headers.Link -Replace ">.*" -replace "<"
        $dataRelNext = $webReturn.Headers.Link -match "next"
        $data += ($webReturn.Content | ConvertFrom-Json).$value
    }
    return $data
  }

 



 $FreshServiceAllAgents = Get-FreshServiceAgents | Where-Object { $_.active -eq $true }
 $FStotalAgents = $FreshServiceAllAgents.count
 $FreshServiceAllGroups = Get-FreshServiceGroups
 $FreshServiceAllGroups | Where-Object { $_.members.count -ne "0" } | Select-Object name, @{ Name = 'Member Count'; Expression = { $_.members.count } }
  Write-host "total Agents: $($FStotalAgents)”
 

Of course you need to modify $Script:FreshServiceHeaders and $Script:FreshServiceConfig.URL to fit your needs


Great work @msconfig87, we use a python script to get this information. Silly that it is not easily accessible.