I am trying to learn sailpoint coding and got stuck with understanding how and where exactly should i be changing the subprocess in workflows based on a usecase. Appreciate if someone can post a usecase and the exact things to be modified in a provisioning workflow or any of its subprocess.
In workflows, subprocesses are defined using the <WorkflowRef> tag, which includes the name and ID of the sub-workflow. To invoke a different workflow, simply replace the existing workflow’s name with the desired one.
Here’s a simple use case that involves modifying a subprocess in the provisioning workflow, specifically the “Approve and Provision” subprocess:
Use Case: Two-Level Approval (Manager + Entitlement Owner)
Imagine you have certain entitlements that require approval from both the user’s manager and the entitlement owner during an access request.
To implement this:
Steps to Modify Workflow:
Write an Approval Assignment Rule:
This rule defines who needs to approve based on the entitlement.
You can check if the entitlement requires dual approval and add the manager and owner accordingly.
LCM Provisioning Workflow
This is the main workflow triggered during access requests.
It has a step called “Approve and Provision”, which calls the subprocess: “Approve and Provision Subprocess”
Open “Approve and Provision Subprocess”
Inside it, locate the step named “Approve”.
Edit the “Approve” Step
Assign your custom Approval Assignment Rule here.
This rule returns a list of approvers (e.g., manager + entitlement owner).
This is a scenario where you modify a subprocess (Approve and Provision) and apply business logic using a custom rule to meet access governance requirements.
Note:
It’s not recommended to modify OOB workflows directly.
Best practice: Copy the workflow and subprocess, rename them, make your changes, and use the new versions.