Microsoft Entra · Arazzo Workflow

Microsoft Entra Find And Update Group

Version 1.0.0

Find a group by display name, update it, and read it back.

1 workflow 1 source API 1 provider
View Spec View on GitHub Access ManagementAuthenticationAzure ADEntraIdentityIdentity GovernanceMicrosoftNetwork SecuritySecurityZero TrustArazzoWorkflows

Provider

microsoft-entra

Workflows

find-and-update-group
Filter groups by displayName, patch the match, then re-read it.
Searches for a group by display name, updates its description, and fetches the updated group object.
3 steps inputs: accessToken, description, displayName outputs: description, groupId
1
findGroup
listGroups
Filter the groups collection on displayName to locate the target group and capture its object id.
2
updateGroup
updateGroup
Patch the matched group with the new description. Returns 204 with no body.
3
getGroup
getGroup
Read the updated group back to confirm the new description.

Source API Descriptions

Arazzo Workflow Specification

microsoft-entra-find-and-update-group-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Entra Find And Update Group
  summary: Find a group by display name, update it, and read it back.
  description: >-
    Locates a group in Microsoft Entra ID by filtering the groups collection on
    displayName, patches its description (and optionally visibility), and reads
    the group back to confirm the change. Because Graph update operations
    return 204 with no body, the final get retrieves the refreshed object.
    Every request is inlined so the chain reads end to end.
  version: 1.0.0
sourceDescriptions:
- name: graphIdentityApi
  url: ../openapi/microsoft-entra-graph-identity-openapi.yml
  type: openapi
workflows:
- workflowId: find-and-update-group
  summary: Filter groups by displayName, patch the match, then re-read it.
  description: >-
    Searches for a group by display name, updates its description, and fetches
    the updated group object.
  inputs:
    type: object
    required:
    - accessToken
    - displayName
    - description
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token with Group.ReadWrite.All.
      displayName:
        type: string
        description: Display name of the group to locate.
      description:
        type: string
        description: New description to set on the matched group.
  steps:
  - stepId: findGroup
    description: >-
      Filter the groups collection on displayName to locate the target group
      and capture its object id.
    operationId: listGroups
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: $filter
      in: query
      value: "displayName eq '$inputs.displayName'"
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchedGroupId: $response.body#/value/0/id
    onSuccess:
    - name: groupFound
      type: goto
      stepId: updateGroup
      criteria:
      - context: $response.body
        condition: $.value.length > 0
        type: jsonpath
  - stepId: updateGroup
    description: >-
      Patch the matched group with the new description. Returns 204 with no
      body.
    operationId: updateGroup
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: group-id
      in: path
      value: $steps.findGroup.outputs.matchedGroupId
    requestBody:
      contentType: application/json
      payload:
        description: $inputs.description
    successCriteria:
    - condition: $statusCode == 204
    outputs:
      updateStatus: $statusCode
  - stepId: getGroup
    description: Read the updated group back to confirm the new description.
    operationId: getGroup
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: group-id
      in: path
      value: $steps.findGroup.outputs.matchedGroupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      description: $response.body#/description
  outputs:
    groupId: $steps.findGroup.outputs.matchedGroupId
    description: $steps.getGroup.outputs.description