PropelAuth · Arazzo Workflow

PropelAuth Invite User To Org

Version 1.0.0

Create an organization, email an invite to a user, and confirm the invite is pending.

1 workflow 1 source API 1 provider
View Spec View on GitHub AuthenticationIdentityB2BMulti-TenancyAuthorizationRBACSSOSCIMMCPAPI KeysArazzoWorkflows

Provider

propelauth

Workflows

invite-user-to-org
Create an org, invite a user by email, then verify the invite is pending.
Creates a tenant organization, emails an invite to the supplied address with the requested role, and reads back the organization's pending invites to confirm the invitation is outstanding.
3 steps inputs: backendApiKey, inviteeEmail, orgName, role outputs: orgId, totalInvites
1
createOrg
createOrg
Create the organization the user will be invited into.
2
inviteUser
inviteUserToOrg
Send an invitation email for the supplied address with the requested role.
3
verifyPending
fetchPendingInvites
Read the organization's pending invites to confirm the invitation is outstanding.

Source API Descriptions

Arazzo Workflow Specification

propelauth-invite-user-to-org-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: PropelAuth Invite User To Org
  summary: Create an organization, email an invite to a user, and confirm the invite is pending.
  description: >-
    Drives the invite-based onboarding path for PropelAuth B2B tenants. The
    workflow creates a new organization, sends an invitation email for the
    supplied address with a role, and then reads the pending invites for that
    organization to confirm the invitation is outstanding. Each step inlines its
    request, including the Backend Integration API key as a bearer token.
  version: 1.0.0
sourceDescriptions:
- name: orgApi
  url: ../openapi/propelauth-org-api-openapi.yml
  type: openapi
workflows:
- workflowId: invite-user-to-org
  summary: Create an org, invite a user by email, then verify the invite is pending.
  description: >-
    Creates a tenant organization, emails an invite to the supplied address with
    the requested role, and reads back the organization's pending invites to
    confirm the invitation is outstanding.
  inputs:
    type: object
    required:
    - backendApiKey
    - orgName
    - inviteeEmail
    - role
    properties:
      backendApiKey:
        type: string
        description: PropelAuth Backend Integration API key presented as a bearer token.
      orgName:
        type: string
        description: Name of the new organization to create.
      inviteeEmail:
        type: string
        description: Email address to invite into the organization.
      role:
        type: string
        description: The role the invited user will hold once they accept.
  steps:
  - stepId: createOrg
    description: Create the organization the user will be invited into.
    operationId: createOrg
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.orgName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      orgId: $response.body#/org_id
  - stepId: inviteUser
    description: Send an invitation email for the supplied address with the requested role.
    operationId: inviteUserToOrg
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    requestBody:
      contentType: application/json
      payload:
        email: $inputs.inviteeEmail
        org_id: $steps.createOrg.outputs.orgId
        role: $inputs.role
    successCriteria:
    - condition: $statusCode == 200
  - stepId: verifyPending
    description: Read the organization's pending invites to confirm the invitation is outstanding.
    operationId: fetchPendingInvites
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    - name: org_id
      in: query
      value: $steps.createOrg.outputs.orgId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      totalInvites: $response.body#/total_invites
      firstInviteeEmail: $response.body#/invites/0/invitee_email
  outputs:
    orgId: $steps.createOrg.outputs.orgId
    totalInvites: $steps.verifyPending.outputs.totalInvites