Tray.ai · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Tray Ai Users API

20 actions 20 updates phrasing extends openapi/tray-ai-users-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Tray.ai's API. It is a proposal applied on top of the contract, not a document Tray.ai publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/graphql'].post
$.paths['/graphql#getUsers'].post
$.paths['/graphql#updateExternalUser'].post
$.paths['/graphql#removeUser'].post
$.paths['/'].post
$.paths['/ '].post
$.paths['/ '].post
$.paths['/ '].post
$.paths['/ '].post
$.paths['/ '].post
$.paths['/users'].get
$.paths['/users/invite'].post
$.paths['/core/v1/invites'].post
$.paths['/core/v1/roles'].get
$.paths['/core/v1/users'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Tray Ai Users API
  version: 1.0.0
extends: openapi/tray-ai-users-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 19
- target: $.paths['/graphql'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an external user for embedded
      effect: write
      questions:
      - How do I add one of my customers as an external user with the GraphQL createExternalUser mutation?
      - Can I mark a new external user as a test user so they are excluded from billing?
      instructions:
      - text: Run the createExternalUser GraphQL mutation with name and externalUserId in {variables}.
        slots:
          variables: requestBody.variables
      - text: Send GraphQL mutation {mutation} to create an external test user.
        slots:
          mutation: requestBody.query
      method: generated
      generated: '2026-09-26'
- target: $.paths['/graphql#getUsers'].post
  update:
    x-apievangelist-phrasing:
      intent: Query external users via GraphQL
      effect: read
      questions:
      - Which external users exist in my embedded application, queried over GraphQL?
      - Does the GraphQL getUsers query return a pagination cursor?
      instructions:
      - text: Run the getUsers GraphQL query {query} with my master token.
        slots:
          query: requestBody.query
      - text: Query GraphQL for external users after cursor {variables}.
        slots:
          variables: requestBody.variables
      method: generated
      generated: '2026-09-26'
- target: $.paths['/graphql#updateExternalUser'].post
  update:
    x-apievangelist-phrasing:
      intent: Update an external user's properties
      effect: write
      questions:
      - Can I flag an existing external user as a test user after creating them?
      - Which GraphQL mutation changes an external user's properties?
      instructions:
      - text: Run the updateExternalUser GraphQL mutation with {variables}.
        slots:
          variables: requestBody.variables
      - text: Send GraphQL mutation {mutation} to mark an external user as a test user.
        slots:
          mutation: requestBody.query
      method: generated
      generated: '2026-09-26'
- target: $.paths['/graphql#removeUser'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove an external user and their data
      effect: destructive
      questions:
      - Does removing an external user with the GraphQL removeUser mutation also delete their solution instances and authentications?
      - How do I offboard a customer from my embedded application completely?
      instructions:
      - text: Run the removeUser GraphQL mutation for external user {user}.
        slots:
          user: requestBody.variables
      - text: Send GraphQL mutation {mutation} to remove an external user with all their instances and auths.
        slots:
          mutation: requestBody.query
      method: generated
      generated: '2026-09-26'
- target: $.paths['/'].post
  update:
    x-apievangelist-phrasing:
      intent: Get users via the embedded root endpoint
      effect: read
      questions:
      - Can I list embedded users by posting to the embedded root endpoint with a master token?
      - Which embedded root call returns my end users?
      instructions:
      - text: Post a get-users request to the embedded root with {variables}.
        slots:
          variables: requestBody.variables
      - text: Fetch end users through the embedded root endpoint using my master token.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ '].post
  update:
    x-apievangelist-phrasing:
      intent: Create an end user via the embedded root
      effect: write
      questions:
      - Is there an embedded root call that creates a new end user with a master token?
      - Which master-token request posted to the embedded root adds an end user?
      instructions:
      - text: Post a create-new-user request to the embedded root with {variables}.
        slots:
          variables: requestBody.variables
      - text: Add a new end user through the embedded root endpoint.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/  '].post
  update:
    x-apievangelist-phrasing:
      intent: Create a user token via the embedded root
      effect: write
      questions:
      - Can I mint a user token by posting to the embedded root with a master token?
      - Which embedded root call gives me a bearer token scoped to one end user?
      instructions:
      - text: Post a create-user-token request to the embedded root for user {variables}.
        slots:
          variables: requestBody.variables
      - text: Mint a user-scoped token through the embedded root endpoint.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/   '].post
  update:
    x-apievangelist-phrasing:
      intent: Create an auth code for the config wizard
      effect: write
      questions:
      - How do I get an authorization code to open the Auth or Config dialog for an end user?
      - What do I need before showing the configuration wizard to a user?
      instructions:
      - text: Create a config wizard authorization code for user {variables}.
        slots:
          variables: requestBody.variables
      - text: Generate an Auth/Config dialog code using my master token.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/    '].post
  update:
    x-apievangelist-phrasing:
      intent: Update an end user via the embedded root
      effect: write
      questions:
      - Can I update an end user by posting to the embedded root with a master token?
      - Which embedded root call edits an existing end user?
      instructions:
      - text: Post an update-user request to the embedded root with {variables}.
        slots:
          variables: requestBody.variables
      - text: Edit an end user through the embedded root endpoint.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/     '].post
  update:
    x-apievangelist-phrasing:
      intent: Delete an end user via the embedded root
      effect: destructive
      questions:
      - Is there an embedded root call that deletes an end user with a master token?
      - Which master-token request posted to the embedded root deletes a user?
      instructions:
      - text: Post a delete-user request to the embedded root for {variables}.
        slots:
          variables: requestBody.variables
      - text: Delete an end user through the embedded root endpoint.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List organization users with roles (unversioned)
      effect: read
      questions:
      - Who are the members of my Tray organization and what roles do they have?
      - Can I see members' emails and roles on the unversioned /users endpoint?
      instructions:
      - text: List users in my organization from the unversioned users endpoint.
      - text: Show each organization member's name, email and role.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/invite'].post
  update:
    x-apievangelist-phrasing:
      intent: Invite a user by email (unversioned)
      effect: write
      questions:
      - How do I invite a teammate to my organization by email?
      - Can an invite on the unversioned endpoint also put the person in a specific workspace?
      instructions:
      - text: Invite {email} to the organization with role {role}.
        slots:
          email: requestBody.email
          role: requestBody.role
      - text: Send an unversioned invite to {email} for workspace {workspace}.
        slots:
          email: requestBody.email
          workspace: requestBody.workspaceId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/invites'].post
  update:
    x-apievangelist-phrasing:
      intent: Invite a user to the organization (core v1)
      effect: write
      questions:
      - Does a core v1 invite email the person a link to create their account?
      - Which organization role id do I need to invite someone through core v1?
      instructions:
      - text: Send a core v1 invite to {email} with organization role {role}.
        slots:
          email: requestBody.email
          role: requestBody.organizationRoleId
      - text: Email {email} an account-creation link and give them role {role}.
        slots:
          email: requestBody.email
          role: requestBody.organizationRoleId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/roles'].get
  update:
    x-apievangelist-phrasing:
      intent: List organization roles
      effect: read
      questions:
      - Which organization roles can I assign to users?
      - Where do I find the role id to give a new user?
      instructions:
      - text: List the roles in my organization.
      - text: Show the first {count} organization roles.
        slots:
          count: query.first
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List or find organization users (core v1)
      effect: read
      questions:
      - Can I look up an organization user by email address?
      - How many users are in my organization, according to core v1?
      instructions:
      - text: Find the organization user with email {email}.
        slots:
          email: query.email
      - text: List organization users via core v1, {count} per page.
        slots:
          count: query.first
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an organization user without an invite
      effect: write
      questions:
      - How do I add a user when my organization uses SSO and I don't want an invite email sent?
      - Can I create an organization user directly with a name, email and role?
      instructions:
      - text: Create organization user {name} with email {email} and role {role}, no invitation.
        slots:
          name: requestBody.name
          email: requestBody.email
          role: requestBody.organizationRoleId
      - text: Add SSO user {email} named {name} as role {role}.
        slots:
          email: requestBody.email
          name: requestBody.name
          role: requestBody.organizationRoleId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/users/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an organization user by id
      effect: read
      questions:
      - What details does Tray hold for a specific organization user?
      - Can I fetch one user record if I know its id?
      instructions:
      - text: Get organization user {user}.
        slots:
          user: path.userId
      - text: Show the profile of user id {user}.
        slots:
          user: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/users/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an organization user
      effect: destructive
      questions:
      - Can I delete someone from my organization by user id?
      - Which call removes an organization user entirely?
      instructions:
      - text: Delete organization user {user}.
        slots:
          user: path.userId
      - text: Remove user {user} from the organization entirely.
        slots:
          user: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/v1/users/{userId}/roles'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a user's organization role
      effect: write
      questions:
      - How do I promote or demote a user's role across the organization?
      - Can I change someone's organization-level role without touching workspace roles?
      instructions:
      - text: Change the organization role of user {user} to {role}.
        slots:
          user: path.userId
          role: requestBody.roleId
      - text: Set user {user}'s org-wide role to {role}.
        slots:
          user: path.userId
          role: requestBody.roleId
      method: generated
      generated: '2026-09-26'