Workday · Arazzo Workflow

Workday Person Contact 360

Version 1.0.0

Search people, load the first match's detail, then gather home and work contact information.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud ComputingEnterprise SoftwareFinancial ManagementHCMSaaSArazzoWorkflows

Provider

workday

Workflows

person-contact-360
Search people, load the first match, then gather home and work contact info.
Searches people by name, then branches: if a person matched it loads the person's detail and both home and work contact information, otherwise it ends.
4 steps inputs: authorization, search outputs: homeContact, matchedPersonId, personDescriptor, workContact
1
searchPeople
getPeople
Search the people collection by name.
2
getPersonDetail
getPersonById
Load the detail record for the first matched person.
3
getHomeContact
getHomeContactInformation
Gather the person's home contact information.
4
getWorkContact
getWorkContactInformation
Gather the person's work contact information.

Source API Descriptions

Arazzo Workflow Specification

workday-person-contact-360-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workday Person Contact 360
  summary: Search people, load the first match's detail, then gather home and work contact information.
  description: >-
    A person contact lookup flow. It searches the people collection by name and
    branches on whether a match was found: when at least one person matches it
    loads the person detail and gathers both home and work contact information,
    and when nothing matches it ends. 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: personApi
  url: ../openapi/person.yml
  type: openapi
workflows:
- workflowId: person-contact-360
  summary: Search people, load the first match, then gather home and work contact info.
  description: >-
    Searches people by name, then branches: if a person matched it loads the
    person's detail and both home and work contact information, otherwise it
    ends.
  inputs:
    type: object
    required:
    - authorization
    - search
    properties:
      authorization:
        type: string
        description: OAuth2 bearer token, e.g. "Bearer eyJ...".
      search:
        type: string
        description: The name to search people by.
  steps:
  - stepId: searchPeople
    description: Search the people collection by name.
    operationId: getPeople
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: search
      in: query
      value: $inputs.search
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchedPersonId: $response.body#/data/0/id
    onSuccess:
    - name: personFound
      type: goto
      stepId: getPersonDetail
      criteria:
      - context: $response.body
        condition: $.data.length > 0
        type: jsonpath
    - name: noPerson
      type: end
      criteria:
      - context: $response.body
        condition: $.data.length == 0
        type: jsonpath
  - stepId: getPersonDetail
    description: Load the detail record for the first matched person.
    operationId: getPersonById
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $steps.searchPeople.outputs.matchedPersonId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      personDescriptor: $response.body#/descriptor
  - stepId: getHomeContact
    description: Gather the person's home contact information.
    operationId: getHomeContactInformation
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $steps.searchPeople.outputs.matchedPersonId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      homeContact: $response.body
  - stepId: getWorkContact
    description: Gather the person's work contact information.
    operationId: getWorkContactInformation
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $steps.searchPeople.outputs.matchedPersonId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workContact: $response.body
  outputs:
    matchedPersonId: $steps.searchPeople.outputs.matchedPersonId
    personDescriptor: $steps.getPersonDetail.outputs.personDescriptor
    homeContact: $steps.getHomeContact.outputs.homeContact
    workContact: $steps.getWorkContact.outputs.workContact