Gainsight · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Gainsight Accounts API

12 actions 12 updates phrasing extends openapi/gainsight-accounts-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 12

$.info
$.paths['/accounts'].get
$.paths['/accounts'].post
$.paths['/accounts/{accountId}'].get
$.paths['/accounts/{accountId}'].delete
$.paths['/accounts/{accountId}'].patch
$.paths['/v1/accounts'].get
$.paths['/v1/accounts'].post
$.paths['/v1/accounts/update'].put
$.paths['/v1/accounts/{accountId}'].get
$.paths['/v1/accounts/{accountId}'].put
$.paths['/v1/accounts/{accountId}'].delete

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 Accounts API
  version: 1.0.0
extends: openapi/gainsight-accounts-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: 11
- target: $.paths['/accounts'].get
  update:
    x-apievangelist-phrasing:
      intent: List product accounts
      effect: read
      questions:
      - How can I page through every account tracked in Gainsight PX?
      - Can I sort the account list by when each account was last seen?
      instructions:
      - text: List product accounts sorted by {sort}.
        slots:
          sort: query.sort
      - text: Show the next page of PX accounts using scroll ID {scrollId}.
        slots:
          scrollId: query.scrollId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/accounts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update a product account
      effect: write
      questions:
      - How do I add a customer account to Gainsight PX, or overwrite it if it already exists?
      - Can one call both create a new PX account and upsert an existing one?
      instructions:
      - text: Upsert PX account {id} with the name {name}.
        slots:
          id: requestBody.id
          name: requestBody.name
      - text: Create or update account {id} called {name} on the {plan} plan.
        slots:
          id: requestBody.id
          name: requestBody.name
          plan: requestBody.plan
      method: generated
      generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product account
      effect: read
      questions:
      - What does Gainsight PX currently store for a single account?
      - Where can I look up one PX account's plan and custom attributes?
      instructions:
      - text: Fetch PX account {accountId}.
        slots:
          accountId: path.accountId
      - text: Show me the details stored for account {accountId}.
        slots:
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a product account
      effect: destructive
      questions:
      - Can I remove an account from Gainsight PX entirely?
      - Is there a way to delete a PX account by its ID?
      instructions:
      - text: Delete PX account {accountId}.
        slots:
          accountId: path.accountId
      - text: Remove account {accountId} from Gainsight PX.
        slots:
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a product account
      effect: write
      questions:
      - Can I change just an account's plan without resending all its attributes?
      - How would I patch a single field on an existing PX account?
      instructions:
      - text: Patch account {accountId} so its plan is {plan}.
        slots:
          accountId: path.accountId
          plan: requestBody.plan
      - text: Change the Salesforce ID on account {accountId} to {sfdcId}.
        slots:
          accountId: path.accountId
          sfdcId: requestBody.sfdcId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts'].get
  update:
    x-apievangelist-phrasing:
      intent: Filter accounts with the v1 API
      effect: read
      questions:
      - Which accounts match a filter such as industry equals software in the v1 accounts API?
      - Does the v1 account listing support semicolon-separated filter expressions?
      instructions:
      - text: Get v1 accounts matching the filter {filter}.
        slots:
          filter: query.filter
      - text: Pull {pageSize} accounts per page from the v1 endpoint.
        slots:
          pageSize: query.pageSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an account with product tag keys
      effect: write
      questions:
      - What do I need to create a v1 account, and why does it ask for a property key?
      - Can I set health score, renewal date and industry when creating a v1 account?
      instructions:
      - text: Create v1 account {id} named {name} under product key {propertyKeys}.
        slots:
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
      - text: Add account {id} called {name} for tag {propertyKeys} with renewal date {renewalDate}.
        slots:
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
          renewalDate: requestBody.renewalDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts/update'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an account whose ID has special characters
      effect: write
      questions:
      - My account ID contains slashes, so how can I update it without putting it in the URL?
      - Is there an update route that takes the account ID in the body instead of the path?
      instructions:
      - text: Update account {id} (ID passed in the body) with name {name} and product key {propertyKeys}.
        slots:
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
      - text: Set the health score of body-identified account {id} to {healthScore}, keeping name {name} and key {propertyKeys}.
        slots:
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
          healthScore: requestBody.healthScore
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an account with the v1 API
      effect: read
      questions:
      - Can I fetch one account's full v1 record, including NPS and CSM?
      - What fields come back when I retrieve a single account from the v1 endpoint?
      instructions:
      - text: Retrieve v1 account {accountId}.
        slots:
          accountId: path.accountId
      - text: Look up the v1 record for account {accountId}, including its health score.
        slots:
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace an account's data by ID in the path
      effect: write
      questions:
      - How do I overwrite a v1 account's record when I have a clean account ID for the URL?
      - Can I update the number of employees on an account through the v1 API?
      instructions:
      - text: Replace v1 account {accountId} with name {name}, ID {id} and product key {propertyKeys}.
        slots:
          accountId: path.accountId
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
      - text: 'Update v1 account {accountId}: set employees to {numberOfEmployees}, id {id}, name {name}, key {propertyKeys}.'
        slots:
          accountId: path.accountId
          numberOfEmployees: requestBody.numberOfEmployees
          id: requestBody.id
          name: requestBody.name
          propertyKeys: requestBody.propertyKeys
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an account and all its users
      effect: destructive
      questions:
      - Does deleting a v1 account also delete the users attached to it?
      - How can I wipe an account along with every user under it?
      instructions:
      - text: Delete v1 account {accountId} and cascade to its users.
        slots:
          accountId: path.accountId
      - text: Permanently remove account {accountId} and all associated users.
        slots:
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'