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
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
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.