When to use requiresPeriodicRefresh property in Transforms of SailPoint ISC to Improve Identity Refresh Performance?

Problem

The identity refresh was taking too much amount of time even though the identity count was lesser. This eventually impacted the performance.

Diagnosis

One of the main reason’s was the way Transforms were developed. In each and every transform, the property named as “requiresPeriodicRefresh”: true was getting used which raised a lot of eyebrows.

Solution

What “requiresPeriodicRefresh”: true Does?

requiresPeriodicRefresh: true tells ISC to re-evaluate that transform during scheduled/periodic Identity Refresh even if no upstream account/profile data changed. It’s for values that can change “on their own.”

When to use “requiresPeriodicRefresh”: true ?

Time-dependent logic (e.g., age/tenure bands, “isContractEndingIn30Days”, grace-period flags).

Calculations using “now/today/current date”.

Lookups or reference tables that can change independently of source data (e.g., cost-center→region mapping maintained outside aggregation).

Any output that should update on a cadence regardless of new source events.

When not to use “requiresPeriodicRefresh”: true ?

Simple mappings like accountAttribute, firstValid, string/regex/concat that only change when source attributes change.

Static defaults and normalization that don’t depend on time or external reference data.

Why be selective in using “requiresPeriodicRefresh”: true ?

Turning it on everywhere makes Identity Refresh do extra work for no benefit and can noticeably increase refresh duration and queue load.

1 Like

see here: requiresPeriodicRefresh - strangely undocumented?