Microsoft Office 365 · Arazzo Workflow

Microsoft Office 365 Provision User

Version 1.0.0

Create a new user, then read it back to confirm provisioning.

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

Provider

microsoft-office-365

Workflows

provision-user
Create a Microsoft 365 user and confirm it by reading it back.
Creates a user via POST /users (returns 201 with the new id), then fetches the same user via GET /users/{user-id} to verify the account was created.
2 steps inputs: department, displayName, jobTitle, mailNickname, password, userPrincipalName outputs: displayName, userId, userPrincipalName
1
createUser
Create a new, enabled user account with the supplied identity properties and an initial password profile that forces a password change at next sign-in.
2
confirmUser
Read the newly created user back by id to confirm provisioning and capture the durable profile properties.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Office 365 Provision User
  summary: Create a new user, then read it back to confirm provisioning.
  description: >-
    A foundational onboarding flow against Microsoft Graph. The workflow creates
    a new user object with the required identity properties and an initial
    password profile, then immediately reads the created user back by its id to
    confirm the account exists and capture its server-assigned properties. 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
  x-realizes-capability-ids:
  - BC-620.20
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-620.20
      capability_name: Identity & Access Management
      spec: microsoft-office-365-users-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: usersApi
  url: ../openapi/microsoft-office-365-users-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-user
  summary: Create a Microsoft 365 user and confirm it by reading it back.
  description: >-
    Creates a user via POST /users (returns 201 with the new id), then fetches
    the same user via GET /users/{user-id} to verify the account was created.
  inputs:
    type: object
    required:
    - displayName
    - mailNickname
    - userPrincipalName
    - password
    properties:
      displayName:
        type: string
        description: The name displayed in the address book for the user.
      mailNickname:
        type: string
        description: The mail alias for the user.
      userPrincipalName:
        type: string
        description: The user principal name (e.g. someone@contoso.com).
      password:
        type: string
        description: The initial password for the user's password profile.
      jobTitle:
        type: string
        description: The user's job title.
      department:
        type: string
        description: The department the user belongs to.
  steps:
  - stepId: createUser
    description: >-
      Create a new, enabled user account with the supplied identity properties
      and an initial password profile that forces a password change at next
      sign-in.
    operationId: createUser
    requestBody:
      contentType: application/json
      payload:
        accountEnabled: true
        displayName: $inputs.displayName
        mailNickname: $inputs.mailNickname
        userPrincipalName: $inputs.userPrincipalName
        passwordProfile:
          forceChangePasswordNextSignIn: true
          password: $inputs.password
        jobTitle: $inputs.jobTitle
        department: $inputs.department
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      userId: $response.body#/id
      userPrincipalName: $response.body#/userPrincipalName
  - stepId: confirmUser
    description: >-
      Read the newly created user back by id to confirm provisioning and capture
      the durable profile properties.
    operationId: getUser
    parameters:
    - name: user-id
      in: path
      value: $steps.createUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
      displayName: $response.body#/displayName
      mail: $response.body#/mail
  outputs:
    userId: $steps.confirmUser.outputs.userId
    userPrincipalName: $steps.createUser.outputs.userPrincipalName
    displayName: $steps.confirmUser.outputs.displayName

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/microsoft-office-365-provision-user-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.