Gainsight PX AWS S3 Integration

Updated 2 weeks ago by Kiran Devathi

Overview

This article explains how you can enable Gainsight PX’s integration with AWS S3 to export usage data. When a connection to your S3 bucket is configured, Gainsight PX will periodically export user, account, and event data rollups to the S3 bucket in the format (JSON, XML or CSV) you choose. For more information about S3, refer to the Amazon S3 site.

Benefits

The advantages of integrating Gainsight PX with S3 are:

  • Store usage data for further processing by other services such as security logs and for future reference
  • Integrating with data warehouse platforms
  • Run machine-learning algorithms

Prerequisite

S3 Credentials

Make sure that you already possess an AWS S3 bucket with valid credentials and write permission to the bucket.

Time Zone

Make sure your time zone is set as per your location, PX exports the data to your S3 bucket every few hours and completes it by EOD. For example: In order to create the daily rollups for user events, PX sums up all events for the day based on your timezone.

Configure your time zone:

Navigate to Settings > Company Details > Time Zone.

Integrate S3 Export

To create a connection between Gainsight PX and S3 bucket:

  1. Login to Gainsight PX with your personal credentials. Gainsight PX Dashboard is displayed.
  2. Navigate to Settings > Integrations.
  1. Click the Settings icon or Authorize button on the Amazon S3 Export card. AWS S3 Settings dialog appears.
  2. Enter the following details to access your S3 Bucket:
  • S3 Bucket Name: Bucket name and any optional sub-folder(s) separated by slashes. This is the name of the bucket that was created in S3. For Example, to export files to a bucket called ABC123 with a folder called “export” use ABC123/export.
  • Credentials of your S3 bucket AWS Access Key and AWS Security Token. Ensure that you enter valid credentials to establish an S3 integration.
  1. Choose data type from the Export Format drop-down list
  • CSV
  • JSON
  • XML
  1. Click Apply. The system displays the message “Amazon S3 details successfully Saved”.
  2. If the credentials of your S3 bucket are correct and valid, the status of integration changes to Authorized. Also, you can see the Synchronize button.
  1. System will export the daily updates every day at midnight (Refer Time Zone above). The first export will include data for the prior six months of usage (if applicable). The subsequent exports will contain only the previous 24 hours.
  1. Once you click on the Synchronize button, the system displays a message when the next sync is scheduled.
Click the Disable Integration icon to disable integration if required, in future.
  1. An Integration to your AWS S3 bucket is established now.

Export Files Definition

Below are definitions of the output files, including field names and types. Once you receive the data from S3 bucket, use the information below to help you write and process the data. The files are compressed using gzip.

Filename Structure:

The filenames are of the form: GainsightPX_{ExtractType}_{ISODateTime}.{json|csv|xml}.gz

Below tables give an overview about each export at its summary level.

Export Type: Account Exports

Export

Summary

Accounts

Account attributes

Account_Custom_Event_Rollups

Daily counts of custom events, grouped by day, account, event

Account_Email_Engagement_Rollups

Daily counts of email engagements, grouped by day, account, engagement, eventType

Account_Event_Rollups

Daily counts of FORM_SUBMIT, PAGE_VIEW, SEGMENT, SESSION_INITIALIZED events grouped by day, account, eventType

Account_Feature_Match_Rollups

Daily counts of feature matches, grouped by day, account, feature

Account_InApp_Event_Rollups

Daily counts of In-App engagements, grouped by day, account, engagement, eventType

Export Type: User Exports

Export

Summary

User_Custom_Event_Rollups

Daily counts of custom events grouped by day,user,productKey, account, event

User_Engagement_Rollups

Daily counts of In-App engagements grouped by day, user, propertyKey, account, engagement, eventType

User_Event_Rollups

Daily counts of FORM_SUBMIT, PAGE_VIEW, SEGMENT, SESSION_INITIALIZED events grouped by day, user, productKey, account, eventType

User_Feature_Rollups

Daily counts of feature matches grouped by day, user, propertyKey, account, feature

Users

User attributes

Export Type: Survey/Feedback Exports

Export

Summary

Survey_Responses

Surveys Response events

Feedback_Responses

Feedback events

Export Type: Metadata Exports

Export

Summary

Engagements

Engagement attributes

Features

Feature attributes

Export File Column Definitions

Name: GainsightPX_Accounts

Content: Account attributes

Field Name

Field Type

id

String

name

String

lastModifiedDate

String

createDate

String

plan

String

numberOfEmployees

Long

isDeleted

Boolean

naicsCode

String

trackedSubscriptionId

String

sfdcId

String

lastSeenDate

String

industry

String

dunsNumber

String

sicCode

String

website

String

totalUsers

Long

dailyActiveUsers

Long

monthlyActiveUsers

Long

location_*

Location (See Below)

customAttribute_{customAttributeApiName}

type varies

Name: GainsightPX_Account_Custom_Event_Rollups

Content: Account Custom Event Rollup attributes

Field Name

Field Type

date

String

accountId

String

eventName

String

count

Long

Name: GainsightPX_Account_Email_Engagement_Rollups

Content: Account Email Engagement Rollup attributes

Field Name

Field Type

date

String

accountId

String

engagementId

String

featureName

String

type

String

count

Long

Name: GainsightPX_Account_Event_Rollups

Content: Account Event Rollup attributes

Field Name

Field Type

date

String

accountId

String

type

String

count

Long

Name: GainsightPX_Account_Feature_Match_Rollups

Content: Account Feature Match Rollup attributes

Field Name

Field Type

date

String

accountId

String

featureId

String

count

Long

featureName

String

featurePath

String

Name: GainsightPX_Account_InApp_Event_Rollups

Content: Account InApp Event Rollup attributes

Field Name

Field Type

date

String

accountId

String

engagementId

String

featureName

String

type

String

count

Long

Name: GainsightPX_User_Custom_Event_Rollups

Content: User Custom Event Rollup attributes

Field Name

Field Type

date

String

identifyId

String

productKey

String

accountId

String

eventName

String

count

Long

Name: GainsightPX_User_Engagement_Rollups

Content: User Engagement Rollup attributes

Field Name

Field Type

date

String

identifyId

String

productKey

String

accountId

String

engagementId

String

featureName

String

type

String

count

Long

Name: GainsightPX_User_Event_Rollups

Content: User Event Rollup attributes

Field Name

Field Type

date

String

identifyId

String

accountId

String

productKey

String

type

String

count

Long

Name: GainsightPX_User_Feature_Rollups

Content: User Feature Rollup attributes

Field Name

Field Type

date

String

identifyId

String

accountId

String

productKey

String

featureId

String

count

Long

featureName

String

featurePath

String

Name: GainsightPX_Users

Content: User attributes

Field Name

Field Type

aptrinsicId

String

email

String

identifyId

String

accountId

String

firstName

String

lastName

String

lastInferredDataSyncDate

String

webAppVisits

Long

globalUnsubscribe

Boolean

signUpDate

String

leadId

String

leadDate

String

createDate

String

trackedUserRole

String

type

String

lastModifiedDate

String

numberOfVisits

Long

gender

String

isDeleted

Boolean

lastSeenDate

String

score

Long

phone

String

firstVisitDate

String

title

String

sfdcContactId

String

location_*

Location (See Below)

lastInferredOrganization_name

String

lastInferredOrganization_numberOfEmployees

String

lastInferredOrganization_revenue

String

lastInferredOrganization_industry

String

lastInferredOrganization_sicCode

String

lastInferredOrganization_duns

String

lastInferredOrganization_naicsCode

String

lastInferredOrganization_webDomain

String

lastInferredOrganization_orbNum

String

lastInferredOrganization_parentOrbNum

String

lastInferredOrganization_location_*

Location (See Below)

lastInferredLocation_*

Location (See Below)

lastUserAgentData_rawUserAgent

String

lastUserAgentData_device

String

lastUserAgentData_platformType

String

lastUserAgentData_platformVersion

String

lastUserAgentData_browserType

String

lastUserAgentData_browserVersion

String

customAttribute_{customAttributeApiName}

type varies

Name: GainsightPX_Survey_Responses

Content: Survey Response attributes

Field Name

Field Type

date

String

identifyId

String

productKey

String

accountId

String

engagementId

String

score

Int

comment

String

type

String

Name: GainsightPX_Feedback_Responses

Content: Feedback Response attributes

Field Name

Field Type

date

String

identifyId

String

productKey

String

accountId

String

subject

String

category

String

description

String

labels

String

Name: GainsightPX_Engagements

Content: Engagement attributes

Field Name

Field Type

id

String

name

String

type

String

Name: GainsightPX_Features

Content: Feature attributes

Field Name

Field Type

id

String

name

String

type

String

parentFeatureId

String

propertyKey

String

status

String

type

String

Name: Location

Content: Location fields

Field Name

Field Type

countryCode

String

countryName

String

stateCode

String

stateName

String

cityName

String

continentCode

String

postalCode

String

regionName

String

timeZone

String

street

String


How did we do?