Merge · Arazzo Workflow

Merge HRIS Submit a Time Off Request

Version 1.0.0

Resolve an employee on a linked HRIS account and submit a time off request on their behalf.

1 workflow 1 source API 1 provider
View Spec View on GitHub IntegrationsPlatformUnified APIAgent HandlerLLM GatewayArazzoWorkflows

Provider

merge

Workflows

create-time-off
Submit a time off request for a named employee on a linked HRIS account.
Resolves an employee by display name, creates a time off request for that employee, and confirms the created request.
3 steps inputs: accountToken, amount, authorization, employeeDisplayName, employeeNote, endTime, requestType, startTime, units outputs: employeeId, status, timeOffId
1
resolveEmployee
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees/get
Find the employee whose display full name matches the supplied value, returning at most one match.
2
createTimeOff
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off/post
Create a time off request for the resolved employee using the supplied window, type, and amount.
3
confirmTimeOff
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off~1{id}/get
Read the created time off request back to confirm it was persisted.

Source API Descriptions

Arazzo Workflow Specification

merge-hris-create-time-off-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Merge HRIS Submit a Time Off Request
  summary: Resolve an employee on a linked HRIS account and submit a time off request on their behalf.
  description: >-
    A write-oriented HRIS pattern. The workflow resolves the target employee by
    listing employees and matching on display name, then creates a time off
    request for that employee and finally reads the created request back to
    confirm it was written. 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: hrisApi
  url: ../openapi/merge-hris-api-openapi.yaml
  type: openapi
workflows:
- workflowId: create-time-off
  summary: Submit a time off request for a named employee on a linked HRIS account.
  description: >-
    Resolves an employee by display name, creates a time off request for that
    employee, and confirms the created request.
  inputs:
    type: object
    required:
    - authorization
    - accountToken
    - employeeDisplayName
    - requestType
    - startTime
    - endTime
    - units
    - amount
    properties:
      authorization:
        type: string
        description: Production access token with the required "Bearer " prefix.
      accountToken:
        type: string
        description: The account token identifying the linked HRIS end user.
      employeeDisplayName:
        type: string
        description: The display full name of the employee to match.
      requestType:
        type: string
        description: The type of time off (e.g. VACATION, SICK, PERSONAL).
      startTime:
        type: string
        description: The day and time the time off starts (ISO 8601).
      endTime:
        type: string
        description: The day and time the time off ends (ISO 8601).
      units:
        type: string
        description: The measurement unit for the amount (e.g. DAYS, HOURS).
      amount:
        type: number
        description: The quantity of units requested.
      employeeNote:
        type: string
        description: An optional note from the employee.
  steps:
  - stepId: resolveEmployee
    description: >-
      Find the employee whose display full name matches the supplied value,
      returning at most one match.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees/get'
    parameters:
    - name: display_full_name
      in: query
      value: $inputs.employeeDisplayName
    - name: page_size
      in: query
      value: 1
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.results.length > 0
      type: jsonpath
    outputs:
      employeeId: $response.body#/results/0/id
  - stepId: createTimeOff
    description: >-
      Create a time off request for the resolved employee using the supplied
      window, type, and amount.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off/post'
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    requestBody:
      contentType: application/json
      payload:
        model:
          employee: $steps.resolveEmployee.outputs.employeeId
          request_type: $inputs.requestType
          start_time: $inputs.startTime
          end_time: $inputs.endTime
          units: $inputs.units
          amount: $inputs.amount
          employee_note: $inputs.employeeNote
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      timeOffId: $response.body#/model/id
  - stepId: confirmTimeOff
    description: >-
      Read the created time off request back to confirm it was persisted.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off~1{id}/get'
    parameters:
    - name: id
      in: path
      value: $steps.createTimeOff.outputs.timeOffId
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      timeOffId: $response.body#/id
      status: $response.body#/status
  outputs:
    employeeId: $steps.resolveEmployee.outputs.employeeId
    timeOffId: $steps.confirmTimeOff.outputs.timeOffId
    status: $steps.confirmTimeOff.outputs.status