> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gainsight as a data source

> Bring data from Gainsight NXT to your Lakehouse.

Gainsight NXT is a customer success platform: it keeps your customers' companies and relationships, the people you work with at each account, the activities your team logs on the Timeline, Cockpit CTAs and Success Plans, health scores, and any custom object your Gainsight admins create. This connector extracts all of them. The streams and columns you get mirror exactly how your Gainsight tenant is modeled, custom objects and fields included.

## Configuring Gainsight as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Gainsight option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

Gainsight authenticates API calls with an **Access Key**. A Gainsight **Super Admin** finds it in **Administration > Connectors 2.0**, in the **Gainsight API** connection. For more information, check the official [documentation](https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/Generate_REST_API/Generate_REST_API_Key).

<Warning>
  Gainsight allows only **one Access Key per tenant**. If your company already uses it for another integration, reuse the same key. Do **not** regenerate it: regenerating creates a new key and stops every integration that still uses the old one.
</Warning>

The following configurations are available:

* **Gainsight Domain**: the address of your Gainsight tenant, the same one you use to open Gainsight, e.g. `https://yourcompany.gainsightcloud.com`. Required.

* **Access Key**: the Gainsight REST API access key. Required.

* **Objects** (advanced): the API names of the Gainsight objects to sync, e.g. `company`, `relationship`, `activity_timeline` or `my_object__gc`. Leave it empty to sync every standard and custom object of your tenant. You can find the API names in Gainsight's **Administration > Data Management**.

* **Initial sync date** (advanced): for objects that track modifications, only records modified after this date are extracted on the first sync. Objects without a modification date are always extracted in full. Leave it empty to extract the full history.

* **Requests Per Minute** (advanced): how fast the connector may call Gainsight. Gainsight allows 100 requests per minute per tenant, shared with your other Gainsight integrations. The default is 80.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

<Info>
  If you don't see an object you were expecting, add its API name to the **Objects** setting. When that setting is filled, the connector reads exactly the objects you list, including Gainsight system objects.
</Info>

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: objects that have a modification date (`modified_date`) support INCREMENTAL; the others are FULL\_TABLE. Read more about Sync Types [here](https://docs.nekt.com/get-started/core-concepts/types-of-sync).

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/get-started/core-concepts/triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

<Note>
  Incremental syncs pick up new and changed records, but they cannot see records that were deleted in Gainsight. Schedule an **Additional Full Sync** to remove deleted records from your tables.
</Note>

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

Streams are discovered from your tenant's data model: the connector creates **one stream per Gainsight object**, standard and custom alike, and one column per field. API reference: [Gainsight NXT API](https://support.gainsight.com/gainsight_nxt/API_and_Developer_Docs/About/API_Documentation_Overview).

Stream names are the snake\_case version of the object's API name, so the custom object `nps_feedback__gc` becomes `nps_feedback_gc`. Standard objects you will typically find:

| Stream                | Description                                                                                           |
| --------------------- | ----------------------------------------------------------------------------------------------------- |
| `company`             | Your customer companies (accounts) and their attributes, such as stage, status, ARR and renewal date. |
| `relationship`        | Relationships: products, business units or projects you manage inside a company.                      |
| `person`              | People known to Gainsight, with their contact details.                                                |
| `company_person`      | Links between people and the companies they are associated with.                                      |
| `relationship_person` | Links between people and relationships.                                                               |
| `gsuser`              | Gainsight users (your team members).                                                                  |
| `activity_timeline`   | Activities logged on the Timeline: calls, meetings, emails, notes and updates.                        |
| `call_to_action`      | Cockpit Calls to Action (CTAs).                                                                       |
| `cta_group`           | Success Plans.                                                                                        |

Any other object of your tenant, including the ones your admins created, shows up as an additional stream automatically. SYSTEM objects (internal Gainsight tables such as raw email events) are only synced when named in the **Objects** setting.

About the columns you'll see in the Catalog:

* Column names are the snake\_case version of the Gainsight field API names, e.g. `ModifiedDate` becomes `modified_date` and `Renewal_Date__gc` becomes `renewal_date_gc`. Column descriptions come from the field labels in Gainsight.
* `gsid`, the Gainsight ID of the record, is the primary key. `modified_date` is the incremental replication key of the objects that have it.
* Dates and date-times arrive as dates and UTC timestamps.
* Dropdown fields and lookup fields (like a company's CSM) hold the **GSID** of the selected item or referenced record. Join them with the referenced object's `gsid` column to get the name.
* Values that are lists or objects arrive as JSON strings, ready to be parsed in a Query or Notebook.

<Note>
  Gainsight does not allow some field types to be exported through its API. When a field is refused, the connector leaves that column empty, syncs everything else and adds a warning to the run log naming the field. An object that the API cannot read at all is skipped with a warning.
</Note>

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download Gainsight skills file" icon="wand-magic-sparkles" href="/sources/gainsight.md">
  Gainsight connector documentation as plain markdown, for use in AI agent contexts.
</Card>
