arazzo: 1.0.1 info: title: Airtable Offboard an Enterprise User summary: Revoke a user's admin access and then remove them from the enterprise. description: >- A clean enterprise offboarding flow for a single user. The workflow first revokes the user's enterprise admin access so they lose administrative privileges, then removes the user from the enterprise account, optionally reassigning their shared resources to a replacement owner. 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 sourceDescriptions: - name: airtableEnterpriseApi url: ../openapi/airtable-enterprise-api-openapi.yml type: openapi workflows: - workflowId: offboard-enterprise-user summary: Revoke admin access from a user and remove them from the enterprise. description: >- Revokes the user's enterprise admin privileges and then removes the user from the enterprise account, reassigning their shared resources to an optional replacement owner. inputs: type: object required: - enterpriseAccountId - userId properties: enterpriseAccountId: type: string description: The enterprise account identifier (starts with 'ent'). userId: type: string description: The unique identifier of the user being offboarded. replacementOwnerId: type: string description: >- Optional ID of the user who will take ownership of the removed user's shared resources. steps: - stepId: revokeAdmin description: >- Revoke enterprise admin access from the user. The user retains regular enterprise membership but loses admin privileges. operationId: revokeAdminAccess parameters: - name: enterpriseAccountId in: path value: $inputs.enterpriseAccountId requestBody: contentType: application/json payload: userIds: - $inputs.userId successCriteria: - condition: $statusCode == 200 outputs: revokeErrors: $response.body#/errors - stepId: removeUser description: >- Remove the user from the enterprise account, reassigning their shared resources to the optional replacement owner. operationId: removeUserFromEnterprise parameters: - name: enterpriseAccountId in: path value: $inputs.enterpriseAccountId - name: userId in: path value: $inputs.userId requestBody: contentType: application/json payload: replacementOwnerId: $inputs.replacementOwnerId successCriteria: - condition: $statusCode == 200 outputs: removedUserId: $response.body#/id sharedBases: $response.body#/sharedBases unsharedBases: $response.body#/unsharedBases outputs: revokeErrors: $steps.revokeAdmin.outputs.revokeErrors removedUserId: $steps.removeUser.outputs.removedUserId