arazzo: 1.0.1 info: title: UKG Pro WFM Schedule Coverage Check summary: Pull a location schedule, drill into one employee, and check their accruals. description: >- Inspects scheduling coverage for a location in the UKG Pro Workforce Management API. The workflow lists the schedules for a location and date range, drills into a single employee's shifts within that window, and then reads that employee's accrual balances so a scheduler can weigh coverage against available time off before publishing changes. 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: ukgProWfmApi url: ../openapi/ukg-pro-wfm-openapi.yml type: openapi workflows: - workflowId: schedule-coverage-check summary: List a location schedule, get one employee's shifts, and read accruals. description: >- Lists schedules for a location and date range, drills into a single employee's shifts in that window, then reads that employee's accruals to inform coverage decisions. inputs: type: object required: - locationId - employeeId - startDate - endDate properties: locationId: type: string description: The location to pull schedules for (e.g. LOC-NYC). employeeId: type: string description: The employee to drill into within the schedule (e.g. EMP001). startDate: type: string description: Start date for schedule retrieval (YYYY-MM-DD). endDate: type: string description: End date for schedule retrieval (YYYY-MM-DD). steps: - stepId: listLocationSchedule description: >- Retrieve the schedule for the location across the requested date range to establish overall coverage. operationId: listSchedules parameters: - name: locationId in: query value: $inputs.locationId - name: startDate in: query value: $inputs.startDate - name: endDate in: query value: $inputs.endDate successCriteria: - condition: $statusCode == 200 outputs: firstShiftId: $response.body#/0/shiftId firstShiftEmployee: $response.body#/0/employeeId - stepId: getEmployeeShifts description: >- Drill into the targeted employee's scheduled shifts within the same window. operationId: getEmployeeShifts parameters: - name: employeeId in: path value: $inputs.employeeId - name: startDate in: query value: $inputs.startDate - name: endDate in: query value: $inputs.endDate successCriteria: - condition: $statusCode == 200 outputs: shiftId: $response.body#/0/shiftId shiftDate: $response.body#/0/shiftDate shiftStatus: $response.body#/0/status - stepId: getEmployeeAccruals description: >- Read the employee's accrual balances so the scheduler can weigh coverage against available time off. operationId: getEmployeeAccruals parameters: - name: employeeId in: path value: $inputs.employeeId successCriteria: - condition: $statusCode == 200 outputs: accrualName: $response.body#/0/accrualName balance: $response.body#/0/balance outputs: firstShiftEmployee: $steps.listLocationSchedule.outputs.firstShiftEmployee shiftDate: $steps.getEmployeeShifts.outputs.shiftDate balance: $steps.getEmployeeAccruals.outputs.balance