System Attributes
Computed properties for advanced workflow triggering and conditional transformations in Lifecycle Management
Overview
System attributes are computed properties that Lifecycle Management automatically generates during identity processing. These attributes enable advanced automation scenarios by providing runtime information about identity changes and transformation results.
All system attributes follow the sys_attr__ prefix convention and cannot be manually set or modified.
Available System Attributes
sys_attr__is_mover
sys_attr__is_moverA persistent boolean attribute that indicates whether an identity has undergone changes to monitored properties.
Type: Boolean Persistence: Stored with identity record Available in: Workflow triggers, conditions, and transformers
Configuration: Define monitored properties in the policy configuration:
{
  "mover_properties": ["department", "manager_id", "title", "location"]
}Workflow Trigger Example:
sys_attr__is_mover eq trueCombined Condition Example:
sys_attr__is_mover eq true and department eq "Engineering" and active eq trueThe attribute is automatically set to true when any property in mover_properties changes during identity update. It is cleared when the identity is unchanged in an extraction cycle, and excluded from change detection to prevent recursive updates.
System attribute names are case-sensitive and must be lowercase in all expressions.
sys_attr__would_be_value
sys_attr__would_be_valueA transient attribute that provides a preview of the transformation result during conditional evaluation.
Type: String Persistence: Transient (exists only during IF statement evaluation) Available in: Conditional transformers only
Usage Example - Conditional Domain Addition:
IF sys_attr__would_be_value co "@"
  {email | LOWER}
ELSE
  {email | LOWER}@company.comThe above transformer will check if the transformed email already contains "@", preserve existing email addresses, and add domain only when needed.
sys_attr__would_be_value_len
sys_attr__would_be_value_lenA transient attribute that provides the character length of the transformation result during conditional evaluation.
Type: Number Persistence: Transient (exists only during IF statement evaluation) Available in: Conditional transformers only
Usage Example - Progressive Username Truncation:
IF sys_attr__would_be_value_len le 30
  {first_name | LOWER}.{last_name | LOWER | NEXT_NUMBER, 2, 3}
ELSE IF sys_attr__would_be_value_len le 20
  {first_name | LOWER | FIRST_N, 10}.{last_name | LOWER | NEXT_NUMBER, 2, 3}
ELSE
  {first_name | LOWER | FIRST_N, 1}.{last_name | LOWER | FIRST_N, 1 | NEXT_NUMBER, 2, 3}For "Leonevenkataramanathan Foster":
- First check (≤30 chars): - leonevenkataramanathan.foster(30 chars - passes first condition)
- If >30 chars, second check (≤20 chars): - leonevenkataramana.foster(25 chars - fails second condition)
- If >20 chars, fallback: - l.f(3 chars - always succeeds)
- Alternatives with NEXT_NUMBER: - l.f2,- l.f3,- l.f4
Integration with NEXT_NUMBER
NEXT_NUMBERPreview attributes work with the NEXT_NUMBER transformer for generating unique alternatives:
IF sys_attr__would_be_value_len le 15
  {username | NEXT_NUMBER, 2, 5}
ELSE IF sys_attr__would_be_value_len le 15
  {username | FIRST_N, 13 | NEXT_NUMBER, 2, 5}This evaluates the base value length before applying numbering, ensuring the final result (including numbers) meets constraints.
Only one NEXT_NUMBER transformer is allowed per conditional branch.
Workflow Trigger Properties
The sys_attr__is_mover attribute supports additional trigger properties for fine-grained control:
{
  "trigger_properties": ["department", "location"],
  "trigger_string": "sys_attr__is_mover eq true and active eq true"
}This workflow triggers only when:
- The identity is marked as a mover (department or location changed) 
- The identity is active 
- At least one of the - trigger_propertieshas changed since last extraction
Performance Notes
Mover Detection: Comparison occurs for all properties in
mover_propertiesduring each extraction
Preview Evaluation: Each IF branch with preview attributes requires transformation execution
Optimization: Place most common conditions first to minimize preview evaluations
Caching: Preview values are calculated once per condition branch and reused
See Also
- Transformer Functions Reference - Complete list of transformation functions 
- Transformers - Attribute transformation concepts and examples 
- Policies - Configuring mover properties and workflows 
Last updated
Was this helpful?
