Cross-Provider Workflow

Auth0 User Create to Role Assignment to Slack Notify

Version 1.0.0

Create an Auth0 user, assign a role, then announce it in Slack.

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

Providers Orchestrated

auth0 slack

Workflows

create-user-assign-role
Create an Auth0 user, assign a role, and notify Slack.
Creates a user in Auth0, assigns a role to the new user, and posts a Slack message confirming the role grant.
3 steps inputs: connection, email, password, roleId, slackChannel outputs: assignStatus, auth0UserId, messageTs
1
create-user
$sourceDescriptions.auth0Api.post_users
Register the new user in Auth0.
2
assign-role
$sourceDescriptions.auth0Api.post_user_roles
Assign a role to the newly created user.
3
notify-slack
$sourceDescriptions.slackApi.postChatPostmessage
Confirm the role grant in Slack.

Source API Descriptions

Arazzo Workflow Specification

id-auth0-create-user-assign-role-slack.yml Raw ↑
arazzo: 1.0.1
info:
  title: Auth0 User Create to Role Assignment to Slack Notify
  summary: Create an Auth0 user, assign a role, then announce it in Slack.
  description: >-
    A customer-identity provisioning workflow that registers a new user in the
    Auth0 Management API, assigns a role to that user to grant them application
    permissions, and posts a Slack confirmation. Chains the created Auth0 user
    id into the role assignment request body.
  version: 1.0.0
sourceDescriptions:
  - name: auth0Api
    url: https://raw.githubusercontent.com/api-evangelist/auth0/refs/heads/main/openapi/auth0-management-api-openapi.yml
    type: openapi
  - name: slackApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
workflows:
  - workflowId: create-user-assign-role
    summary: Create an Auth0 user, assign a role, and notify Slack.
    description: >-
      Creates a user in Auth0, assigns a role to the new user, and posts a Slack
      message confirming the role grant.
    inputs:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
        connection:
          type: string
        roleId:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: create-user
        description: Register the new user in Auth0.
        operationId: $sourceDescriptions.auth0Api.post_users
        requestBody:
          contentType: application/json
          payload:
            email: $inputs.email
            password: $inputs.password
            connection: $inputs.connection
            email_verified: false
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          auth0UserId: $response.body#/user_id
          userEmail: $response.body#/email
      - stepId: assign-role
        description: Assign a role to the newly created user.
        operationId: $sourceDescriptions.auth0Api.post_user_roles
        parameters:
          - name: id
            in: path
            value: $steps.create-user.outputs.auth0UserId
        requestBody:
          contentType: application/json
          payload:
            roles:
              - $inputs.roleId
        successCriteria:
          - condition: $statusCode == 204
        outputs:
          assignStatus: $statusCode
      - stepId: notify-slack
        description: Confirm the role grant in Slack.
        operationId: $sourceDescriptions.slackApi.postChatPostmessage
        requestBody:
          contentType: application/json
          payload:
            channel: $inputs.slackChannel
            text: Assigned role $inputs.roleId to $inputs.email in Auth0.
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      auth0UserId: $steps.create-user.outputs.auth0UserId
      assignStatus: $steps.assign-role.outputs.assignStatus
      messageTs: $steps.notify-slack.outputs.messageTs