Gainsight · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Gainsight Users API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/users'].get
$.paths['/users'].post
$.paths['/users/{userId}'].get
$.paths['/users/{userId}'].put
$.paths['/users/{userId}'].delete
$.paths['/users/{userId}'].patch
$.paths['/users/{userId}/deactivate'].post
$.paths['/v1/users'].get
$.paths['/v1/users'].post
$.paths['/v1/users/delete'].delete
$.paths['/v1/users/denylist/{identifyId}'].get
$.paths['/v1/users/denylist/{identifyId}'].put
$.paths['/v1/users/update'].put
$.paths['/v1/users/{identifyId}'].get
$.paths['/v1/users/{identifyId}'].put

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 Gainsight Users API
  version: 1.0.0
extends: openapi/gainsight-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: 16
- target: $.paths['/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List Gainsight users
      effect: read
      questions:
      - Who are the users in my Gainsight instance?
      - Can I page through users by page number?
      instructions:
      - text: List users, page {pageNumber}.
        slots:
          pageNumber: query.pageNumber
      - text: Show all Gainsight users, {pageSize} per page.
        slots:
          pageSize: query.pageSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update a product user
      effect: write
      questions:
      - How do I add an end user to Gainsight PX, or overwrite them if they exist?
      - Can I link a new PX user to an account when creating them?
      instructions:
      - text: Upsert PX user {identifyId} with email {email}.
        slots:
          identifyId: requestBody.identifyId
          email: requestBody.email
      - text: Create or update user {identifyId} on account {accountId} with role {role}.
        slots:
          identifyId: requestBody.identifyId
          accountId: requestBody.accountId
          role: requestBody.role
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a Gainsight user
      effect: read
      questions:
      - Where can I look up a Gainsight user by user ID?
      - What details are stored for one user?
      instructions:
      - text: Get user {userId}.
        slots:
          userId: path.userId
      - text: Show the Gainsight user record {userId}.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/{userId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a user's license or role
      effect: write
      questions:
      - Can I change a Gainsight user's license type or user type?
      - Is it possible to update a user's role and email in Gainsight?
      instructions:
      - text: Set license type {LicenseType} for user {userId}.
        slots:
          LicenseType: requestBody.LicenseType
          userId: path.userId
      - text: Change user {userId}'s role to {Role} and user type to {UserType}.
        slots:
          userId: path.userId
          Role: requestBody.Role
          UserType: requestBody.UserType
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a product user
      effect: destructive
      questions:
      - Can I delete a user from Gainsight PX by user ID?
      - How is a PX user removed?
      instructions:
      - text: Delete user {userId}.
        slots:
          userId: path.userId
      - text: Remove user {userId} from Gainsight PX.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/{userId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a product user
      effect: write
      questions:
      - Can I patch just a PX user's title or phone?
      - Can a PX user be moved to a different account?
      instructions:
      - text: Patch user {userId} ({identifyId}) with title {title}.
        slots:
          userId: path.userId
          identifyId: requestBody.identifyId
          title: requestBody.title
      - text: Move PX user {userId} ({identifyId}) to account {accountId}.
        slots:
          userId: path.userId
          identifyId: requestBody.identifyId
          accountId: requestBody.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/users/{userId}/deactivate'].post
  update:
    x-apievangelist-phrasing:
      intent: Deactivate a user
      effect: destructive
      questions:
      - Is there a way to deactivate a user without deleting them?
      - Can I disable a Gainsight user account?
      instructions:
      - text: Deactivate user {userId}.
        slots:
          userId: path.userId
      - text: Disable the account of user {userId}.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users'].get
  update:
    x-apievangelist-phrasing:
      intent: Filter users with the v1 API
      effect: read
      questions:
      - Which users match a filter such as role or last seen date?
      - Does the v1 user listing support sorting and scroll paging?
      instructions:
      - text: Get v1 users matching {filter}.
        slots:
          filter: query.filter
      - text: List v1 users sorted by {sort}.
        slots:
          sort: query.sort
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a user with product tag keys
      effect: write
      questions:
      - What does the v1 endpoint require to create a user?
      - Can I set a Salesforce contact ID when creating a v1 user?
      instructions:
      - text: Create v1 user {identifyId} under product key {propertyKeys}.
        slots:
          identifyId: requestBody.identifyId
          propertyKeys: requestBody.propertyKeys
      - text: Add v1 user {identifyId} ({propertyKeys}) with email {email} and account {accountId}.
        slots:
          identifyId: requestBody.identifyId
          propertyKeys: requestBody.propertyKeys
          email: requestBody.email
          accountId: requestBody.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user whose ID has special characters
      effect: destructive
      questions:
      - How do I delete a user whose identify ID can't go in the URL?
      - Is there a delete that takes the user ID in the request body?
      instructions:
      - text: Delete user {identifyId}, passing the ID in the body.
        slots:
          identifyId: requestBody.identifyId
      - text: Hard-delete ({hardDelete}) body-identified user {identifyId}.
        slots:
          hardDelete: query.hardDelete
          identifyId: requestBody.identifyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/denylist/{identifyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check whether a user is denylisted
      effect: read
      questions:
      - Is a given user on the denylist?
      - Are a user's events being ignored by PX?
      instructions:
      - text: Check the denylist flag for user {identifyId}.
        slots:
          identifyId: path.identifyId
      - text: Tell me if user {identifyId} is denied.
        slots:
          identifyId: path.identifyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/denylist/{identifyId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Denylist a user
      effect: write
      questions:
      - Can I make PX ignore all events from a test user?
      - Can I take a user off the denylist?
      instructions:
      - text: Set the denylist flag for user {identifyId} to {denied}.
        slots:
          identifyId: path.identifyId
          denied: requestBody.denied
      - text: Stop recording events from user {identifyId} by setting denied to {denied}.
        slots:
          identifyId: path.identifyId
          denied: requestBody.denied
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/update'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a user whose ID has special characters
      effect: write
      questions:
      - How do I update a user whose identify ID can't go in the URL path?
      - Is there a v1 update that takes the user ID in the body?
      instructions:
      - text: Update user {identifyId} (ID in body) with product key {propertyKeys}.
        slots:
          identifyId: requestBody.identifyId
          propertyKeys: requestBody.propertyKeys
      - text: Change the email of body-identified user {identifyId} to {email}, key {propertyKeys}.
        slots:
          identifyId: requestBody.identifyId
          email: requestBody.email
          propertyKeys: requestBody.propertyKeys
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/{identifyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user with the v1 API
      effect: read
      questions:
      - What does a user's full v1 profile contain when fetched by identify ID?
      - Can I see a user's number of visits and last seen date?
      instructions:
      - text: Retrieve v1 user {identifyId}.
        slots:
          identifyId: path.identifyId
      - text: Show visits and last seen date for user {identifyId}.
        slots:
          identifyId: path.identifyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/{identifyId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a user's data by identify ID
      effect: write
      questions:
      - Can I overwrite a v1 user's record using the identify ID in the URL?
      - Can I update a user's title through the v1 API?
      instructions:
      - text: Replace v1 user {identifyId} with body ID {bodyIdentifyId} and product key {propertyKeys}.
        slots:
          identifyId: path.identifyId
          bodyIdentifyId: requestBody.identifyId
          propertyKeys: requestBody.propertyKeys
      - text: Set v1 user {identifyId}'s title to {title} (body ID {bodyIdentifyId}, key {propertyKeys}).
        slots:
          identifyId: path.identifyId
          title: requestBody.title
          bodyIdentifyId: requestBody.identifyId
          propertyKeys: requestBody.propertyKeys
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/users/{identifyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by identify ID
      effect: destructive
      questions:
      - If I delete a user and they come back within 7 days, is their history revived?
      - How do I permanently delete a user so they can't be revived?
      instructions:
      - text: Delete v1 user {identifyId}.
        slots:
          identifyId: path.identifyId
      - text: Hard-delete user {identifyId} with hardDelete {hardDelete}.
        slots:
          identifyId: path.identifyId
          hardDelete: query.hardDelete
      method: generated
      generated: '2026-09-26'