UKG · Arazzo Workflow

UKG Pro HCM Employee 360 Profile

Version 1.0.0

Resolve an employee from the directory and assemble their core HCM profile.

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

Provider

ukg

Workflows

employee-360-profile
Look up an employee and gather their demographics, job, and pay rate.
Confirms the employee exists in the directory, retrieves the detailed record, and chains the job assignment and pay rate endpoints to produce a single consolidated profile.
4 steps inputs: employeeId outputs: basePay, employmentStatus, jobTitle
1
locateEmployee
listEmployees
Query the directory filtered by employee ID to confirm the employee is visible to the service account before pulling detailed records.
2
getDetails
getEmployee
Retrieve the full employee record including demographics and employment status.
3
getJob
getEmployeeJobs
Retrieve the current job assignment and classification for the employee.
4
getPay
getEmployeePayRates
Retrieve the current pay rate to complete the consolidated profile.

Source API Descriptions

Arazzo Workflow Specification

ukg-employee-360-profile-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: UKG Pro HCM Employee 360 Profile
  summary: Resolve an employee from the directory and assemble their core HCM profile.
  description: >-
    Builds a consolidated view of a single employee out of the UKG Pro HCM API.
    The workflow looks the employee up in the directory listing, retrieves the
    full demographic and employment record, then layers on the current job
    assignment and pay rate so a downstream system has the complete profile in
    one pass. 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: employee-360-profile
  summary: Look up an employee and gather their demographics, job, and pay rate.
  description: >-
    Confirms the employee exists in the directory, retrieves the detailed
    record, and chains the job assignment and pay rate endpoints to produce a
    single consolidated profile.
  inputs:
    type: object
    required:
    - employeeId
    properties:
      employeeId:
        type: string
        description: The employee identifier to build the profile for (e.g. EMP001).
  steps:
  - stepId: locateEmployee
    description: >-
      Query the directory filtered by employee ID to confirm the employee is
      visible to the service account before pulling detailed records.
    operationId: listEmployees
    parameters:
    - name: employeeId
      in: query
      value: $inputs.employeeId
    - name: per_page
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      total: $response.body#/total
  - stepId: getDetails
    description: >-
      Retrieve the full employee record including demographics and employment
      status.
    operationId: getEmployee
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstName: $response.body#/firstName
      lastName: $response.body#/lastName
      employmentStatus: $response.body#/employmentStatus
      departmentId: $response.body#/departmentId
      locationId: $response.body#/locationId
  - stepId: getJob
    description: >-
      Retrieve the current job assignment and classification for the employee.
    operationId: getEmployeeJobs
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobTitle: $response.body#/jobTitle
      jobCode: $response.body#/jobCode
      flsaStatus: $response.body#/flsaStatus
      employmentType: $response.body#/employmentType
  - stepId: getPay
    description: >-
      Retrieve the current pay rate to complete the consolidated profile.
    operationId: getEmployeePayRates
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      payType: $response.body#/payType
      basePay: $response.body#/basePay
      payFrequency: $response.body#/payFrequency
  outputs:
    employmentStatus: $steps.getDetails.outputs.employmentStatus
    jobTitle: $steps.getJob.outputs.jobTitle
    basePay: $steps.getPay.outputs.basePay