Merge · Arazzo Workflow

Merge HRIS Employee Directory with Time Off

Version 1.0.0

List employees from a linked HRIS account, then read each employee's record and time off requests.

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

Provider

merge

Workflows

list-employees-and-time-off
List HRIS employees and pull one employee's record and time off requests.
Lists employees on a linked account, retrieves the first employee's full record, and lists their time off requests.
3 steps inputs: accountToken, authorization, pageSize outputs: employeeId, employees, timeOff
1
listEmployees
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees/get
List employees from the linked HRIS account, returning the paginated results envelope.
2
getEmployee
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees~1{id}/get
Retrieve the full record for the first employee returned by the listing.
3
listTimeOff
{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off/get
List the time off requests belonging to the resolved employee.

Source API Descriptions

Arazzo Workflow Specification

merge-hris-list-employees-and-time-off-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Merge HRIS Employee Directory with Time Off
  summary: List employees from a linked HRIS account, then read each employee's record and time off requests.
  description: >-
    A common HRIS read pattern that builds an employee directory view. The
    workflow lists employees from a linked HRIS account, retrieves the full
    record for the first employee, and then lists that employee's time off
    requests so a consumer can render a combined profile and absence summary.
    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: list-employees-and-time-off
  summary: List HRIS employees and pull one employee's record and time off requests.
  description: >-
    Lists employees on a linked account, retrieves the first employee's full
    record, and lists their time off requests.
  inputs:
    type: object
    required:
    - authorization
    - accountToken
    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.
      pageSize:
        type: integer
        description: Number of employees to return per page (maximum 100).
  steps:
  - stepId: listEmployees
    description: >-
      List employees from the linked HRIS account, returning the paginated
      results envelope.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees/get'
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    - name: page_size
      in: query
      value: $inputs.pageSize
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      employees: $response.body#/results
      firstEmployeeId: $response.body#/results/0/id
      next: $response.body#/next
  - stepId: getEmployee
    description: >-
      Retrieve the full record for the first employee returned by the listing.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1employees~1{id}/get'
    parameters:
    - name: id
      in: path
      value: $steps.listEmployees.outputs.firstEmployeeId
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      employeeId: $response.body#/id
      displayFullName: $response.body#/display_full_name
      workEmail: $response.body#/work_email
  - stepId: listTimeOff
    description: >-
      List the time off requests belonging to the resolved employee.
    operationPath: '{$sourceDescriptions.hrisApi.url}#/paths/~1hris~1v1~1time-off/get'
    parameters:
    - name: employee_id
      in: query
      value: $steps.getEmployee.outputs.employeeId
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: X-Account-Token
      in: header
      value: $inputs.accountToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      timeOff: $response.body#/results
  outputs:
    employees: $steps.listEmployees.outputs.employees
    employeeId: $steps.getEmployee.outputs.employeeId
    timeOff: $steps.listTimeOff.outputs.timeOff