Cross-Provider Workflow

Cross-Provision User Across Entra and Google Workspace

Version 1.0.0

Create a single identity in both Microsoft Entra ID and Google Workspace.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

microsoft-entra google-workspace

Workflows

dual-directory-provision
Provision the same user in Entra ID and Google Workspace.
Creates a user account in Microsoft Entra ID and then provisions a matching account in Google Workspace, carrying the display name into both directories.
2 steps inputs: displayName, entraPassword, familyName, givenName, googlePassword, googlePrimaryEmail, mailNickname, userPrincipalName outputs: entraUserId, googleEmail, googleUserId
1
create-entra-user
$sourceDescriptions.entraApi.createUser
Provision the new user in Microsoft Entra ID.
2
create-google-user
$sourceDescriptions.googleWorkspaceApi.insertUser
Mirror the identity into Google Workspace.

Source API Descriptions

Arazzo Workflow Specification

id-cross-provision-entra-google-workspace.yml Raw ↑
arazzo: 1.0.1
info:
  title: Cross-Provision User Across Entra and Google Workspace
  summary: Create a single identity in both Microsoft Entra ID and Google Workspace.
  description: >-
    A dual-directory provisioning workflow that establishes the same new hire
    identity in two corporate directories at once. Creates the user in Microsoft
    Entra ID, then mirrors the account into Google Workspace so the employee has
    sign-in across both ecosystems from day one.
  version: 1.0.0
sourceDescriptions:
  - name: entraApi
    url: https://raw.githubusercontent.com/api-evangelist/microsoft-entra/refs/heads/main/openapi/microsoft-entra-graph-identity-openapi.yml
    type: openapi
  - name: googleWorkspaceApi
    url: https://raw.githubusercontent.com/api-evangelist/google-workspace/refs/heads/main/openapi/admin-sdk-directory-api.yml
    type: openapi
workflows:
  - workflowId: dual-directory-provision
    summary: Provision the same user in Entra ID and Google Workspace.
    description: >-
      Creates a user account in Microsoft Entra ID and then provisions a matching
      account in Google Workspace, carrying the display name into both directories.
    inputs:
      type: object
      properties:
        displayName:
          type: string
        userPrincipalName:
          type: string
        mailNickname:
          type: string
        entraPassword:
          type: string
        googlePrimaryEmail:
          type: string
        givenName:
          type: string
        familyName:
          type: string
        googlePassword:
          type: string
    steps:
      - stepId: create-entra-user
        description: Provision the new user in Microsoft Entra ID.
        operationId: $sourceDescriptions.entraApi.createUser
        requestBody:
          contentType: application/json
          payload:
            accountEnabled: true
            displayName: $inputs.displayName
            userPrincipalName: $inputs.userPrincipalName
            mailNickname: $inputs.mailNickname
            passwordProfile:
              forceChangePasswordNextSignIn: true
              password: $inputs.entraPassword
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          entraUserId: $response.body#/id
      - stepId: create-google-user
        description: Mirror the identity into Google Workspace.
        operationId: $sourceDescriptions.googleWorkspaceApi.insertUser
        requestBody:
          contentType: application/json
          payload:
            primaryEmail: $inputs.googlePrimaryEmail
            name:
              givenName: $inputs.givenName
              familyName: $inputs.familyName
            password: $inputs.googlePassword
            changePasswordAtNextLogin: true
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          googleUserId: $response.body#/id
          googleEmail: $response.body#/primaryEmail
    outputs:
      entraUserId: $steps.create-entra-user.outputs.entraUserId
      googleUserId: $steps.create-google-user.outputs.googleUserId
      googleEmail: $steps.create-google-user.outputs.googleEmail

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/id-cross-provision-entra-google-workspace"
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 email required.

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