Hi Folks,
I am looking for APIs to get list of all campaigns completed post due date. Can someone please help?
Hi Folks,
I am looking for APIs to get list of all campaigns completed post due date. Can someone please help?
Hi Mahesh,
Have you tried looking at the API documentation?
Hi @maheshtare ,
I didn’t find any. We have GET “List Campaigns” API which gives only STATUS and Deadline but not the “completed” date. Other manual way is to download the cert status report from UI and look for last signoff date and compare it with the due date.
Hello, I think it is not possible to gahter this info becuase it depends on the reviewer. and via API i think we can only check the whole status of the campaign, not just by reviewer.
Regards.
Pablo
You have to search at the certification level, because that includes both the due date and sign-off date
Here’s an example of how you would do that using the PowerShell SDK
Import-Module PSSailpoint
$reportOutput = @()
$campaignfilter = "name sw `"2024`""
$campaigns = Invoke-Paginate -Function "Get-ActiveCampaigns" -InitialOffset 0 -Limit 10000 -Increment 250 -Parameters @{"Filter" = $campaignfilter}
foreach ($campaign in $campaigns) {
$certs = Invoke-Paginate -Function "Get-IdentityCertifications" -InitialOffset 0 -Limit 10000 -Increment 250 -Parameters @{"Filters" ="campaign.id eq `"$($campaign.id)`""}
foreach ($cert in $certs) {
if($cert.due -le $cert.signed){
$reportObject = [PSCustomObject]@{
CampaignName = $campaign.name
ReviewerName = $cert.reviewer.name
DecisionsTotal = $cert.decisionsTotal
DecisionsMade = $cert.decisionsMade
DueDate = $cert.due
SignedOff = $cert.signed
}
$reportOutput += $reportObject
}
}
}
$reportOutput | Sort-Object CampaignName,ReviewerName
Here’s an example output
Alternatively, if you just want the campaign, it’s basically the same script
Import-Module PSSailpoint
$reportOutput = @()
$campaignfilter = ""
$campaigns = Invoke-Paginate -Function "Get-ActiveCampaigns" -InitialOffset 0 -Limit 10000 -Increment 250 -Parameters @{"Filter" = $campaignfilter}
foreach ($campaign in $campaigns) {
$certs = Invoke-Paginate -Function "Get-IdentityCertifications" -InitialOffset 0 -Limit 10000 -Increment 250 -Parameters @{"Filters" ="campaign.id eq `"$($campaign.id)`""}
foreach ($cert in $certs) {
if($cert.due -le $cert.signed){
$reportObject = [PSCustomObject]@{
CampaignName = $campaign.name
}
$reportOutput += $reportObject
}
}
}
$reportOutput | Select-Object CampaignName -Unique| Sort-Object CampaignName
That output looks like this
Hi @maheshtare,
As @JackSparrow mentioned we don’t have specific api to do that.
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.