Gainsight PX is a popular product experience platform that offers cutting-edge product analytics and product engagement features. It allows the product teams to optimize their customer adoption and onboarding flows and design relevant product experiences through email, dialogue, and effective user guides.
RudderStack supports Gainsight PX as a destination to which you can send your event data seamlessly.
Getting started
Before you get started, check if the source platform is supported by Gainsight PX by referring to the table below:
Connection Mode | Web | Mobile | Server |
---|---|---|---|
Device mode | - | - | - |
Cloud mode | Supported | Supported | Supported |
Once you've confirmed that the source platform supports sending events to RudderStack, follow these steps:
- From your RudderStack dashboard, add the source and select Gainsight PX from the list of supported destinations.
- Assign a name to this destination and click on Next. You should then see the following Connection Settings screen:
You will need to enter the following settings under Connection Settings:
- API Key: Enter the API key required for using the Gainsight PX REST API. To generate the API Key, go to your Gainsight dashboard and navigate to Administration - Integrations - Rest API.
More information on the Gainsight PX Rest API can be found here.
- Product Tag Key: Provide the Tag key for your product. To create a new product or copy a product tag key, go to Administration - Products as shown below:
Custom Attributes
You can send Custom Attributes for both the User
and Account
objects using RudderStack.
To create custom attributes in Gainsight PX, go to your Gainsight dashboard and navigate to Administration - Attributes. Then, click on the New Attribute button as shown in the image below:
You can then provide these mappings in the RudderStack dashboard as shown:
Identify
RudderStack creates a User
object in Gainsight PX for the identify
call. Gainsight uses the identifyId
field as the unique identifier for this object. RudderStack will then map the userId
from the message to this identifyId
.
If userId
is not present, anonymousId
will be used instead.
RudderStack supports all the default attributes for the User
object. For the custom attributes, you can map the RudderStack payload attribute to the Gainsight PX attribute in the RudderStack dashboard under the User Attribute Mapping section, as shown:
RudderStack will drop the custom attributes that are not defined in the mapping and send the rest of the attributes to Gainsight PX.
A sample identify
call is as shown below:
rudderanalytics.identify("sample-user-id", { email: "user@domain.com", name: "Some User", gender: "M", countryName: "INDIA", countryCode: "IN", city: "CHENNAI", score: 100, hobbyCustomField: "Painting", title: "Doctor",})
In the above example, hobbyCustomField
is a custom field. You will need to provide the mapping for hobbyCustomField
to the corresponding Custom Attribute name (hobby
, as shown in the screenshot above) in Gainsight PX. If this mapping is not provided, RudderStack will drop the hobbyCustomField
attribute and send the other attributes to Gainsight PX.
Location Attribute Mapping
The mapping of the location properties from the Gainsight PX User
object to the RudderStack payload is as shown:
Gainsight PX Property | RudderStack Trait Name |
---|---|
location.countryName | countryName |
location.countryCode | countryCode |
location.stateName | stateName |
location.stateCode | stateCode |
location.city | city |
location.street | street |
location.postalCode | postalCode |
location.continent | continent |
location.regionName | regionName |
location.timeZone | timeZone |
location.coordinates.latitude | latitude |
location.coordinates.longitude | longitude |
Group
For the group
calls, RudderStack associates a User
with an Account
in Gainsight PX. RudderStack will map the groupId
to the accountId
in the Gainsight PX payload.
All the default fields for Account
object are supported. For custom attributes, you can map the custom RudderStack attributes to Gainsight custom attributes in the RudderStack dashboard under Account Attribute Mapping, as shown below:
A sample group
call is as shown:
rudderanalytics.group("sample-group-id", { name: "Example Group", industry: "Online Streaming", numberOfEmployees: 10000, website: "www.exmaple-group.com", cultureCustomField: "cool",})
In the above example, cultureCustomField
is a custom field. You will need to provide the mapping for cultureCustomField
to the corressponding Custom Attribute name in Gainsight PX. If this mapping is not provided, RudderStack will drop the cultureCustomField
attribute and send the other default attributes to Gainsight.
Location Attribute Mapping
The mapping of the location properties from your Gainsight PX Account
object to the RudderStack payload is as shown:
Gainsight PX Property | RudderStack Trait Name |
---|---|
location.countryName | countryName |
location.countryCode | countryCode |
location.stateName | stateName |
location.stateCode | stateCode |
location.city | city |
location.street | street |
location.postalCode | postalCode |
location.continent | continent |
location.regionName | regionName |
location.timeZone | timeZone |
location.coordinates.latitude | latitude |
location.coordinates.longitude | longitude |
Track
RudderStack uses the Gainsight PX's Custom Event API for sending the track
calls.
A sample track
call is as shown:
rudderanalytics.track("Track User", { description: "Example track call", status: "demo",})
The event
field in the RudderStack payload is mapped to the eventName
field in the Gainsight PX payload.
You can also set the Global Context metadata for the custom events. The key-value pairs for Global Context must be set in the RudderStack dashboard under Global Context Mapping as shown in the image below:
For more information on the Global Context feature and how to use it, refer to the Gainsight PX documentation.
The Global Context metadata can also be provided in the track
payload, as shown in the following example:
rudderanalytics.track("Track User", { description: "Example track call", status: "demo", globalContext: { projectId: "p-123", },})
In case the Global Context metadata is provided in the RudderStack dashboard (under Global Context Mapping) as well as the payload, the payload will take a higher precedence.
For identify
, group
and track
calls, userId
is required. If userId
is not present, anonymousId
will be used instead.
Contact us
If you come across any issues while configuring Gainsight PX with RudderStack, feel free to contact us or start a conversation in our Slack community.