Skip to content
BPMN 2.0 templates

Employee role transfer with provisional access rollback

Prepare new-role entitlements, check conflicts and then finalize the transfer or remove provisional access without erasing the existing role record. Editable collaboration with role lanes, decisions and explicit rollback activities. Illustrative policy and timing; adapt to local requirements.

Template previewBPMN 2.0
Rendering…

What this template contains

Source
71 lines

Make it your own.

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="user_role_transfer_definitions" targetNamespace="urn:flowss:advanced">
  <bpmn:message id="user_role_transfer_message" name="Role transfer approved"/>
  
  <bpmn:process id="user_role_transfer_process" name="Employee role transfer with provisional access rollback" isExecutable="false">
    <bpmn:documentation>Prepare new-role entitlements, check conflicts and then finalize the transfer or remove provisional access without erasing the existing role record. Inputs: Role transfer approved. Rollback activities are explicit modelled tasks, not engine-level BPMN compensation handlers. All policy choices, durations and conditions are illustrative. Replace example rules with approved local policy; configure integrations and review before execution. This non-executable template does not assert legal compliance or a real completed case.</bpmn:documentation>
    <bpmn:laneSet id="user_role_transfer_lanes"><bpmn:lane id="user_role_transfer_lane_0" name="Identity operator"><bpmn:flowNodeRef>user_role_transfer_start</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_intake_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_prepare_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_prepare_2</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_commit_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_commit_rest_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_commit_rest_2</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_complete</bpmn:flowNodeRef></bpmn:lane><bpmn:lane id="user_role_transfer_lane_1" name="Access reviewer"><bpmn:flowNodeRef>user_role_transfer_verification</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_decision</bpmn:flowNodeRef></bpmn:lane><bpmn:lane id="user_role_transfer_lane_2" name="Access recovery"><bpmn:flowNodeRef>user_role_transfer_rollback_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_rollback_rest_1</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_rollback_rest_2</bpmn:flowNodeRef><bpmn:flowNodeRef>user_role_transfer_alternate</bpmn:flowNodeRef></bpmn:lane></bpmn:laneSet>
    <bpmn:startEvent id="user_role_transfer_start" name="Role transfer approved"><bpmn:messageEventDefinition id="user_role_transfer_start_def" messageRef="user_role_transfer_message"/></bpmn:startEvent>
    <bpmn:userTask id="user_role_transfer_intake_1" name="Pin current entitlement snapshot"></bpmn:userTask>
    <bpmn:userTask id="user_role_transfer_prepare_1" name="Stage new-role groups"></bpmn:userTask>
    <bpmn:userTask id="user_role_transfer_prepare_2" name="Apply scoped test access"></bpmn:userTask>
    <bpmn:userTask id="user_role_transfer_verification" name="Check segregation conflicts"></bpmn:userTask>
    <bpmn:exclusiveGateway id="user_role_transfer_decision" name="Role access acceptable?" default="user_role_transfer_flow_7"></bpmn:exclusiveGateway>
    <bpmn:serviceTask id="user_role_transfer_commit_1" name="Activate new-role access"></bpmn:serviceTask>
    <bpmn:serviceTask id="user_role_transfer_rollback_1" name="Remove provisional access"></bpmn:serviceTask>
    <bpmn:serviceTask id="user_role_transfer_commit_rest_1" name="Remove obsolete entitlements"></bpmn:serviceTask>
    <bpmn:serviceTask id="user_role_transfer_commit_rest_2" name="Record manager attestation"></bpmn:serviceTask>
    <bpmn:serviceTask id="user_role_transfer_rollback_rest_1" name="Restore prior group snapshot"></bpmn:serviceTask>
    <bpmn:serviceTask id="user_role_transfer_rollback_rest_2" name="Record blocked transfer"></bpmn:serviceTask>
    <bpmn:endEvent id="user_role_transfer_complete" name="Role access transferred"></bpmn:endEvent>
    <bpmn:endEvent id="user_role_transfer_alternate" name="Prior access retained"></bpmn:endEvent>
    <bpmn:sequenceFlow id="user_role_transfer_flow_1" sourceRef="user_role_transfer_start" targetRef="user_role_transfer_intake_1"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_2" sourceRef="user_role_transfer_intake_1" targetRef="user_role_transfer_prepare_1"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_3" sourceRef="user_role_transfer_prepare_1" targetRef="user_role_transfer_prepare_2"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_4" sourceRef="user_role_transfer_prepare_2" targetRef="user_role_transfer_verification"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_5" sourceRef="user_role_transfer_verification" targetRef="user_role_transfer_decision"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_6" sourceRef="user_role_transfer_decision" targetRef="user_role_transfer_commit_1" name="Yes"><bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=roleAccessAcceptable = true</bpmn:conditionExpression></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_7" sourceRef="user_role_transfer_decision" targetRef="user_role_transfer_rollback_1" name="Otherwise"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_8" sourceRef="user_role_transfer_commit_1" targetRef="user_role_transfer_commit_rest_1"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_9" sourceRef="user_role_transfer_commit_rest_1" targetRef="user_role_transfer_commit_rest_2"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_10" sourceRef="user_role_transfer_rollback_1" targetRef="user_role_transfer_rollback_rest_1"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_11" sourceRef="user_role_transfer_rollback_rest_1" targetRef="user_role_transfer_rollback_rest_2"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_12" sourceRef="user_role_transfer_commit_rest_2" targetRef="user_role_transfer_complete"></bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="user_role_transfer_flow_13" sourceRef="user_role_transfer_rollback_rest_2" targetRef="user_role_transfer_alternate"></bpmn:sequenceFlow>
  </bpmn:process>
  <bpmn:collaboration id="user_role_transfer_collaboration"><bpmn:participant id="user_role_transfer_party" name="HR role service"/><bpmn:participant id="user_role_transfer_pool" name="Employee role transfer with provisional access rollback" processRef="user_role_transfer_process"/><bpmn:messageFlow id="user_role_transfer_request" sourceRef="user_role_transfer_party" targetRef="user_role_transfer_start"/></bpmn:collaboration>
  <bpmndi:BPMNDiagram id="user_role_transfer_diagram"><bpmndi:BPMNPlane id="user_role_transfer_plane" bpmnElement="user_role_transfer_collaboration">
    <bpmndi:BPMNShape id="user_role_transfer_party_di" bpmnElement="user_role_transfer_party" isHorizontal="true"><dc:Bounds x="20" y="20" width="2210" height="70"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_pool_di" bpmnElement="user_role_transfer_pool" isHorizontal="true"><dc:Bounds x="20" y="180" width="2210" height="780"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_lane_0_di" bpmnElement="user_role_transfer_lane_0" isHorizontal="true"><dc:Bounds x="50" y="180" width="2180" height="260"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_lane_1_di" bpmnElement="user_role_transfer_lane_1" isHorizontal="true"><dc:Bounds x="50" y="440" width="2180" height="260"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_lane_2_di" bpmnElement="user_role_transfer_lane_2" isHorizontal="true"><dc:Bounds x="50" y="700" width="2180" height="260"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_start_di" bpmnElement="user_role_transfer_start"><dc:Bounds x="162" y="292" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="108" y="335" width="144" height="40"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_intake_1_di" bpmnElement="user_role_transfer_intake_1"><dc:Bounds x="325" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_prepare_1_di" bpmnElement="user_role_transfer_prepare_1"><dc:Bounds x="535" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_prepare_2_di" bpmnElement="user_role_transfer_prepare_2"><dc:Bounds x="745" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_verification_di" bpmnElement="user_role_transfer_verification"><dc:Bounds x="955" y="532" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_decision_di" bpmnElement="user_role_transfer_decision" isMarkerVisible="true"><dc:Bounds x="1206" y="546" width="48" height="48"/><bpmndi:BPMNLabel><dc:Bounds x="1158" y="496" width="144" height="40"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_commit_1_di" bpmnElement="user_role_transfer_commit_1"><dc:Bounds x="1375" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_rollback_1_di" bpmnElement="user_role_transfer_rollback_1"><dc:Bounds x="1375" y="792" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_commit_rest_1_di" bpmnElement="user_role_transfer_commit_rest_1"><dc:Bounds x="1585" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_commit_rest_2_di" bpmnElement="user_role_transfer_commit_rest_2"><dc:Bounds x="1795" y="272" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_rollback_rest_1_di" bpmnElement="user_role_transfer_rollback_rest_1"><dc:Bounds x="1585" y="792" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_rollback_rest_2_di" bpmnElement="user_role_transfer_rollback_rest_2"><dc:Bounds x="1795" y="792" width="130" height="76"/></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_complete_di" bpmnElement="user_role_transfer_complete"><dc:Bounds x="2052" y="292" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="1998" y="335" width="144" height="40"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="user_role_transfer_alternate_di" bpmnElement="user_role_transfer_alternate"><dc:Bounds x="2052" y="812" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="1998" y="855" width="144" height="40"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_1_di" bpmnElement="user_role_transfer_flow_1"><di:waypoint x="198" y="310"/><di:waypoint x="325" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_2_di" bpmnElement="user_role_transfer_flow_2"><di:waypoint x="455" y="310"/><di:waypoint x="535" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_3_di" bpmnElement="user_role_transfer_flow_3"><di:waypoint x="665" y="310"/><di:waypoint x="745" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_4_di" bpmnElement="user_role_transfer_flow_4"><di:waypoint x="875" y="310"/><di:waypoint x="915" y="310"/><di:waypoint x="915" y="570"/><di:waypoint x="955" y="570"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_5_di" bpmnElement="user_role_transfer_flow_5"><di:waypoint x="1085" y="570"/><di:waypoint x="1206" y="570"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_6_di" bpmnElement="user_role_transfer_flow_6"><di:waypoint x="1254" y="570"/><di:waypoint x="1315" y="570"/><di:waypoint x="1315" y="310"/><di:waypoint x="1375" y="310"/><bpmndi:BPMNLabel><dc:Bounds x="1262" y="543" width="100" height="22"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_7_di" bpmnElement="user_role_transfer_flow_7"><di:waypoint x="1254" y="570"/><di:waypoint x="1315" y="570"/><di:waypoint x="1315" y="830"/><di:waypoint x="1375" y="830"/><bpmndi:BPMNLabel><dc:Bounds x="1262" y="580" width="100" height="22"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_8_di" bpmnElement="user_role_transfer_flow_8"><di:waypoint x="1505" y="310"/><di:waypoint x="1585" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_9_di" bpmnElement="user_role_transfer_flow_9"><di:waypoint x="1715" y="310"/><di:waypoint x="1795" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_10_di" bpmnElement="user_role_transfer_flow_10"><di:waypoint x="1505" y="830"/><di:waypoint x="1585" y="830"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_11_di" bpmnElement="user_role_transfer_flow_11"><di:waypoint x="1715" y="830"/><di:waypoint x="1795" y="830"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_12_di" bpmnElement="user_role_transfer_flow_12"><di:waypoint x="1925" y="310"/><di:waypoint x="2052" y="310"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_flow_13_di" bpmnElement="user_role_transfer_flow_13"><di:waypoint x="1925" y="830"/><di:waypoint x="2052" y="830"/></bpmndi:BPMNEdge>
    <bpmndi:BPMNEdge id="user_role_transfer_request_di" bpmnElement="user_role_transfer_request"><di:waypoint x="180" y="90"/><di:waypoint x="180" y="292"/></bpmndi:BPMNEdge>
    
  </bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</bpmn:definitions>