Gainsight CS Success Plan API

The Success Plan API enables creating, updating, and fetching Success Plans and their configurations, supporting structured goal tracking for customer engagements.

OpenAPI Specification

gainsight-cs-success-plan-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Gainsight CS Success Plan API
  description: >-
    The Success Plan API enables creating, updating, and fetching Success Plans
    and their configurations, supporting structured goal tracking for customer
    engagements.
  version: '1.0'
  contact:
    name: Gainsight Support
    url: https://support.gainsight.com
    email: [email protected]
  termsOfService: https://www.gainsight.com/terms-of-service/
externalDocs:
  description: Success Plan API Documentation
  url: https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Success_Plan_APIs/Success_Plan_APIs
servers:
  - url: https://{domain}.gainsightcloud.com/v1
    description: Gainsight CS Production
    variables:
      domain:
        default: customer
        description: Customer-specific domain prefix
tags:
  - name: Configuration
    description: Success plan configuration
  - name: Objectives
    description: Manage success plan objectives
  - name: Success Plans
    description: Manage success plans
security:
  - apiKey: []
paths:
  /successplans:
    post:
      operationId: createSuccessPlan
      summary: Gainsight Create a success plan
      description: Create a new success plan for a company.
      tags:
        - Success Plans
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuccessPlanInput'
      responses:
        '200':
          description: Success plan created
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/SuccessPlan'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /successplans/{planId}:
    get:
      operationId: getSuccessPlan
      summary: Gainsight Get a success plan
      description: Retrieve a specific success plan by ID.
      tags:
        - Success Plans
      parameters:
        - $ref: '#/components/parameters/planId'
      responses:
        '200':
          description: Success plan returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/SuccessPlan'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSuccessPlan
      summary: Gainsight Update a success plan
      description: Update an existing success plan.
      tags:
        - Success Plans
      parameters:
        - $ref: '#/components/parameters/planId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuccessPlanInput'
      responses:
        '200':
          description: Success plan updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/SuccessPlan'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /successplans/search:
    post:
      operationId: searchSuccessPlans
      summary: Gainsight Search success plans
      description: Search for success plans using filter criteria.
      tags:
        - Success Plans
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Success plans returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: object
                    properties:
                      records:
                        type: array
                        items:
                          $ref: '#/components/schemas/SuccessPlan'
                      totalCount:
                        type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /successplans/{planId}/objectives:
    get:
      operationId: listObjectives
      summary: Gainsight List objectives
      description: Retrieve objectives for a specific success plan.
      tags:
        - Objectives
      parameters:
        - $ref: '#/components/parameters/planId'
      responses:
        '200':
          description: Objectives returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Objective'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: createObjective
      summary: Gainsight Create an objective
      description: Add a new objective to a success plan.
      tags:
        - Objectives
      parameters:
        - $ref: '#/components/parameters/planId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectiveInput'
      responses:
        '200':
          description: Objective created
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/Objective'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /successplans/config/types:
    get:
      operationId: getSuccessPlanTypes
      summary: Gainsight Get success plan types
      description: Retrieve configured success plan types.
      tags:
        - Configuration
      responses:
        '200':
          description: Success plan types returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: accessKey
      in: header
      description: Gainsight CS REST API access key
  parameters:
    planId:
      name: planId
      in: path
      required: true
      description: Success plan unique identifier
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication failed or access key is missing
    BadRequest:
      description: Invalid request body or parameters
    NotFound:
      description: The requested resource was not found
  schemas:
    SearchRequest:
      type: object
      properties:
        select:
          type: array
          items:
            type: string
        where:
          type: object
          properties:
            conditions:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  value: {}
                  operator:
                    type: string
            expression:
              type: string
        limit:
          type: integer
        offset:
          type: integer
    SuccessPlan:
      type: object
      properties:
        Gsid:
          type: string
          description: Success plan unique identifier
        Name:
          type: string
          description: Plan name
        CompanyId:
          type: string
          description: Associated company Gsid
        CompanyName:
          type: string
          description: Associated company name
        TypeId:
          type: string
          description: Success plan type identifier
        TypeName:
          type: string
          description: Type name
        Status:
          type: string
          enum:
            - Active
            - Completed
            - Archived
          description: Plan status
        OwnerId:
          type: string
          description: Plan owner user ID
        OwnerName:
          type: string
          description: Plan owner name
        StartDate:
          type: string
          format: date
          description: Plan start date
        EndDate:
          type: string
          format: date
          description: Plan end date
        Comments:
          type: string
          description: Plan comments
        CreatedDate:
          type: string
          format: date-time
          description: Record creation timestamp
        ModifiedDate:
          type: string
          format: date-time
          description: Last modification timestamp
    SuccessPlanInput:
      type: object
      required:
        - Name
        - CompanyId
        - TypeId
      properties:
        Name:
          type: string
        CompanyId:
          type: string
        TypeId:
          type: string
        Status:
          type: string
          enum:
            - Active
            - Completed
            - Archived
        OwnerId:
          type: string
        StartDate:
          type: string
          format: date
        EndDate:
          type: string
          format: date
        Comments:
          type: string
    Objective:
      type: object
      properties:
        Gsid:
          type: string
          description: Objective unique identifier
        Name:
          type: string
          description: Objective name
        Description:
          type: string
          description: Objective description
        SuccessPlanId:
          type: string
          description: Parent success plan Gsid
        Status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Completed
          description: Objective status
        Priority:
          type: string
          description: Objective priority
        DueDate:
          type: string
          format: date
          description: Objective due date
        CompletionPercentage:
          type: number
          description: Completion percentage
        CreatedDate:
          type: string
          format: date-time
        ModifiedDate:
          type: string
          format: date-time
    ObjectiveInput:
      type: object
      required:
        - Name
      properties:
        Name:
          type: string
        Description:
          type: string
        Status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Completed
        Priority:
          type: string
        DueDate:
          type: string
          format: date