Certification Signed-Off After Due Date

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.

1 Like

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

3 Likes

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.