arazzo: 1.0.1
info:
title: Auth0 Find User by Email and Add to an Organization
summary: Resolve a user by email and, when found, add them as a member of an existing organization.
description: >-
A find-then-act membership flow. The workflow searches for a user by email
and branches on the result: when a matching user is found it adds that user
as a member of the supplied organization and confirms by listing members,
and when no user matches it ends without making changes. Each 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: auth0-users-by-email-api-openapi.yml
confidence: 0.75
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: organizationsApi
url: ../openapi/auth0-organizations-api-openapi.yml
type: openapi
- name: usersByEmailApi
url: ../openapi/auth0-users-by-email-api-openapi.yml
type: openapi
workflows:
- workflowId: find-user-add-to-org
summary: Resolve a user by email then add them to an organization when found.
description: >-
Searches users by email and, when a match is found, adds the user to the
supplied organization and lists the members to verify.
inputs:
type: object
required:
- email
- orgId
properties:
email:
type: string
description: Email address to look the user up by (case-sensitive).
orgId:
type: string
description: Identifier of the existing organization to add the user to.
steps:
- stepId: findUser
description: >-
Search for a user by email address.
operationId: get_users-by-email
parameters:
- name: email
in: query
value: $inputs.email
successCriteria:
- condition: $statusCode == 200
outputs:
matchedUserId: $response.body#/0/user_id
onSuccess:
- name: userFound
type: goto
stepId: addMember
criteria:
- context: $response.body
condition: $.length > 0
type: jsonpath
- name: userMissing
type: end
criteria:
- context: $response.body
condition: $.length == 0
type: jsonpath
- stepId: addMember
description: >-
Add the matched user as a member of the supplied organization.
operationId: post_members
parameters:
- name: id
in: path
value: $inputs.orgId
requestBody:
contentType: application/json
payload:
members:
- $steps.findUser.outputs.matchedUserId
successCriteria:
- condition: $statusCode == 204
- stepId: listMembers
description: >-
List the organization's members to confirm the user was added.
operationId: get_organization_members
parameters:
- name: id
in: path
value: $inputs.orgId
successCriteria:
- condition: $statusCode == 200
outputs:
members: $response.body
outputs:
matchedUserId: $steps.findUser.outputs.matchedUserId
members: $steps.listMembers.outputs.members
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.