UKG · Arazzo Workflow

UKG Pro HCM Submit Personnel Change

Version 1.0.0

Validate an employee, submit a personnel action, and branch on its status.

1 workflow 1 source API 1 provider
View Spec View on GitHub Human Capital ManagementHCMWorkforce ManagementHRPayrollTime and AttendanceBenefitsSchedulingArazzoWorkflows

Provider

ukg

Workflows

submit-personnel-change
Submit a personnel action change request and branch on its returned status.
Validates the employee, captures the current job for an audit trail, submits the personnel change request, and routes on the returned processing status.
4 steps inputs: actionType, effectiveDate, employeeId, newDepartmentId, newJobTitle, newPayRate, reason outputs: requestId, status
1
validateEmployee
getEmployee
Confirm the employee exists and is in a state that can accept a personnel action by reading the detailed record.
2
captureCurrentJob
getEmployeeJobs
Capture the current job assignment so the change request has a documented before-state.
3
submitChange
createPersonnelChangeRequest
Submit the personnel change request. The API returns a request identifier and a processing status.
4
confirmApproved
getEmployee
Re-read the employee record after an immediately-approved change to confirm the resulting employment status.

Source API Descriptions

Arazzo Workflow Specification

ukg-submit-personnel-change-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: UKG Pro HCM Submit Personnel Change
  summary: Validate an employee, submit a personnel action, and branch on its status.
  description: >-
    Drives a personnel action through the UKG Pro HCM API. The workflow first
    confirms the target employee exists and reads their current job assignment
    for context, then submits a personnel change request such as a job change or
    pay change. The submission response carries a processing status, so the flow
    branches on whether the change is already approved or still pending review.
    Every step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: ukgProHcmApi
  url: ../openapi/ukg-pro-hcm-openapi.yml
  type: openapi
workflows:
- workflowId: submit-personnel-change
  summary: Submit a personnel action change request and branch on its returned status.
  description: >-
    Validates the employee, captures the current job for an audit trail, submits
    the personnel change request, and routes on the returned processing status.
  inputs:
    type: object
    required:
    - employeeId
    - actionType
    - effectiveDate
    properties:
      employeeId:
        type: string
        description: The employee the personnel action applies to (e.g. EMP001).
      actionType:
        type: string
        description: >-
          The personnel action type, one of Job Change, Pay Change, Status
          Change, Department Transfer, Termination, or Leave of Absence.
      effectiveDate:
        type: string
        description: The effective date of the change (YYYY-MM-DD).
      reason:
        type: string
        description: The reason for the change (e.g. Promotion).
      newDepartmentId:
        type: string
        description: The new department identifier, for transfers.
      newJobTitle:
        type: string
        description: The new job title, for job changes.
      newPayRate:
        type: number
        description: The new pay rate amount, for pay changes.
  steps:
  - stepId: validateEmployee
    description: >-
      Confirm the employee exists and is in a state that can accept a personnel
      action by reading the detailed record.
    operationId: getEmployee
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      employmentStatus: $response.body#/employmentStatus
      departmentId: $response.body#/departmentId
  - stepId: captureCurrentJob
    description: >-
      Capture the current job assignment so the change request has a documented
      before-state.
    operationId: getEmployeeJobs
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      currentJobTitle: $response.body#/jobTitle
      currentJobCode: $response.body#/jobCode
  - stepId: submitChange
    description: >-
      Submit the personnel change request. The API returns a request identifier
      and a processing status.
    operationId: createPersonnelChangeRequest
    requestBody:
      contentType: application/json
      payload:
        employeeId: $inputs.employeeId
        actionType: $inputs.actionType
        effectiveDate: $inputs.effectiveDate
        reason: $inputs.reason
        newDepartmentId: $inputs.newDepartmentId
        newJobTitle: $inputs.newJobTitle
        newPayRate: $inputs.newPayRate
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      requestId: $response.body#/requestId
      status: $response.body#/status
      submittedAt: $response.body#/submittedAt
    onSuccess:
    - name: alreadyApproved
      type: goto
      stepId: confirmApproved
      criteria:
      - context: $response.body
        condition: $.status == 'Approved'
        type: jsonpath
    - name: stillPending
      type: end
      criteria:
      - context: $response.body
        condition: $.status == 'Pending'
        type: jsonpath
  - stepId: confirmApproved
    description: >-
      Re-read the employee record after an immediately-approved change to
      confirm the resulting employment status.
    operationId: getEmployee
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      employmentStatus: $response.body#/employmentStatus
  outputs:
    requestId: $steps.submitChange.outputs.requestId
    status: $steps.submitChange.outputs.status