UKG · Arazzo Workflow

UKG Pro WFM Clock In and Verify

Version 1.0.0

Resolve a WFM employee, submit a clock punch, and verify it landed.

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

Provider

ukg

Workflows

clock-in-and-verify
Submit a clock punch for an employee and read back the punch list.
Confirms the employee is on the WFM roster, submits the punch, then retrieves the punch records for the day to verify the punch was recorded.
3 steps inputs: employeeId, jobCode, locationId, punchDate, punchTime, punchType outputs: punchId, recordedPunchType
1
resolveEmployee
listWfmEmployees
Confirm the employee is present on the WFM roster before submitting a punch on their behalf.
2
submitPunch
createPunch
Submit the clock punch for the employee with the supplied timestamp and type.
3
verifyPunch
getEmployeePunches
Read back the punch records for the day to confirm the submitted punch was captured.

Source API Descriptions

Arazzo Workflow Specification

ukg-clock-in-and-verify-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: UKG Pro WFM Clock In and Verify
  summary: Resolve a WFM employee, submit a clock punch, and verify it landed.
  description: >-
    Records a clock punch for an employee in the UKG Pro Workforce Management
    API and confirms it was captured. The workflow resolves the employee from
    the WFM roster, submits the punch with its timestamp and type, and then reads
    back the punch records for the day to verify the new punch is present. 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: clock-in-and-verify
  summary: Submit a clock punch for an employee and read back the punch list.
  description: >-
    Confirms the employee is on the WFM roster, submits the punch, then retrieves
    the punch records for the day to verify the punch was recorded.
  inputs:
    type: object
    required:
    - employeeId
    - punchTime
    - punchType
    properties:
      employeeId:
        type: string
        description: The employee submitting the punch (e.g. EMP001).
      punchTime:
        type: string
        description: The punch timestamp in ISO 8601 (e.g. 2026-01-15T09:00:00Z).
      punchType:
        type: string
        description: The punch type, one of In, Out, or Transfer.
      locationId:
        type: string
        description: The location identifier where the punch occurred.
      jobCode:
        type: string
        description: The job code to associate with the punch.
      punchDate:
        type: string
        description: The calendar date of the punch for verification (YYYY-MM-DD).
  steps:
  - stepId: resolveEmployee
    description: >-
      Confirm the employee is present on the WFM roster before submitting a
      punch on their behalf.
    operationId: listWfmEmployees
    parameters:
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstEmployeeId: $response.body#/0/employeeId
  - stepId: submitPunch
    description: >-
      Submit the clock punch for the employee with the supplied timestamp and
      type.
    operationId: createPunch
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    requestBody:
      contentType: application/json
      payload:
        punchTime: $inputs.punchTime
        punchType: $inputs.punchType
        locationId: $inputs.locationId
        jobCode: $inputs.jobCode
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      punchId: $response.body#/punchId
      recordedPunchType: $response.body#/punchType
  - stepId: verifyPunch
    description: >-
      Read back the punch records for the day to confirm the submitted punch was
      captured.
    operationId: getEmployeePunches
    parameters:
    - name: employeeId
      in: path
      value: $inputs.employeeId
    - name: startDate
      in: query
      value: $inputs.punchDate
    - name: endDate
      in: query
      value: $inputs.punchDate
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstPunchId: $response.body#/0/punchId
      firstPunchType: $response.body#/0/punchType
  outputs:
    punchId: $steps.submitPunch.outputs.punchId
    recordedPunchType: $steps.submitPunch.outputs.recordedPunchType