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.
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
# 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'