Microsoft Office 365 · Arazzo Workflow

Microsoft Office 365 Update User Profile

Version 1.0.0

Patch a user's profile properties, then read the user back to verify.

1 workflow 1 source API 1 provider
View Spec View on GitHub CloudCollaborationEnterpriseMicrosoftProductivityArazzoWorkflows

Provider

microsoft-office-365

Workflows

update-user-profile
Update a user's profile and confirm via read-back.
Patches a user via PATCH /users/{user-id} (204 no content), then reads the user via GET /users/{user-id} (200) to verify the updated properties.
2 steps inputs: department, jobTitle, officeLocation, userId outputs: department, jobTitle, userId
1
updateUser
updateUser
Patch the user with the supplied job title, department, and office location. Only the provided properties change.
2
verifyUser
getUser
Read the user back by id to confirm the updated profile properties.

Source API Descriptions

Arazzo Workflow Specification

microsoft-office-365-update-user-profile-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Office 365 Update User Profile
  summary: Patch a user's profile properties, then read the user back to verify.
  description: >-
    Maintains an existing user's directory profile. The workflow patches a user's
    job title, department, and office location, then reads the user back by id to
    confirm the changes. Because the update returns 204 with no body, the
    read-back is the only way to observe the new state. 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: graphApi
  url: ../openapi/microsoft-graph-api-openapi.yml
  type: openapi
workflows:
- workflowId: update-user-profile
  summary: Update a user's profile and confirm via read-back.
  description: >-
    Patches a user via PATCH /users/{user-id} (204 no content), then reads the
    user via GET /users/{user-id} (200) to verify the updated properties.
  inputs:
    type: object
    required:
    - userId
    properties:
      userId:
        type: string
        description: The id of the user to update.
      jobTitle:
        type: string
        description: The new job title.
      department:
        type: string
        description: The new department.
      officeLocation:
        type: string
        description: The new office location.
  steps:
  - stepId: updateUser
    description: >-
      Patch the user with the supplied job title, department, and office
      location. Only the provided properties change.
    operationId: updateUser
    parameters:
    - name: user-id
      in: path
      value: $inputs.userId
    requestBody:
      contentType: application/json
      payload:
        jobTitle: $inputs.jobTitle
        department: $inputs.department
        officeLocation: $inputs.officeLocation
    successCriteria:
    - condition: $statusCode == 204
    outputs:
      userId: $inputs.userId
  - stepId: verifyUser
    description: Read the user back by id to confirm the updated profile properties.
    operationId: getUser
    parameters:
    - name: user-id
      in: path
      value: $inputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
      jobTitle: $response.body#/jobTitle
      department: $response.body#/department
  outputs:
    userId: $steps.verifyUser.outputs.userId
    jobTitle: $steps.verifyUser.outputs.jobTitle
    department: $steps.verifyUser.outputs.department