- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-11-2018 12:23 AM
Hi,
I am wondering how the frequency option works. I if i for example choose monthly, how does the counter work, when does it start etc?
And a sidenote to this? Isn't there a notification related to this? If so, what its called....i can't find it...
Solved! Go to Solution.
- 2,281 Views

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-30-2018 05:20 AM
There is a frequency flag on the profile and on the control. When a control is created, if the frequency is set on the profile then the control will inherit that value. It can be changed. Then as ashik,uhammed stated a nightly job called "Control attestation nightly run" will process all the control attestations.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-29-2025 03:43 AM
A scheduled job named "checkAndMoveControlsToAttestByFrequency" runs daily to set the entity/control state to "Attest" based on Attestation frequency(Anually,Weekly,Monthly,Quaterly,Daily,Semi-Anually) and executes the following script:
Within the checkAndMoveControlsToAttestByFrequency() function, we can trigger a custom event using gs.eventQueue(). This enables us to notify stakeholders when controls are moved for attestation based on their defined frequency.
A notification can then be configured in ServiceNow to listen for this event:
- Event name: controls.to.attest
- Table: The relevant table (e.g., sn_compliance_control)
- Condition: Optional, based on control attributes
- Recipients: Users or groups to be notified
Alternative Approach (Non-OOB Modification)
To avoid modifying out-of-the-box (OOB) components, we can:
- Create a copy of the scheduled job checkAndMoveControlsToAttestByFrequency
- Duplicate the Script Include ControlAttestationUtils and rename it (e.g., CustomControlAttestationUtils)
- Update the copied scheduled job to call the custom function:CustomControlAttestationUtils().checkAndMoveControlsToAttestByFrequency();
This approach ensures that OOB functionality remains untouched, making upgrades smoother and maintaining platform integrity.