01
What is Gainsight in Salesforce: two ways to run it
Gainsight CS runs as a standalone tenant (Gainsight NXT) and connects to your CRM over the Salesforce Connector. If your team wants to work inside Salesforce, Gainsight also ships a managed package on the AppExchange called Gainsight Customer Success, which adds a Gainsight tab and 360 widgets to Salesforce pages. Gainsight describes the new package as lightweight: one custom object, a few Visualforce pages, minimal Apex, and no triggers on standard objects, compared with the legacy CSM package (namespace JCXM) that added over 70 custom objects and a trigger on Task. The package needs Developer, Enterprise, or a higher Salesforce edition, the Download AppExchange Packages permission, and an active NXT tenant with the Salesforce Connector already configured and linked. Five licenses come with the install by default; the installing admin takes one, leaving four to assign under Setup, Installed Packages, Manage Licenses. Two more AppExchange packages matter for the connector itself: the Gainsight CS Data Connector US and EU connected apps, offered at no additional cost and chosen by tenant region. So when someone asks what Gainsight is in Salesforce, the honest answer is: the widgets are the package, the data is the connector, and you need both for write-back.
02
Gainsight Salesforce connector: setting up the connection
Setup follows three steps in Gainsight: create and authorize the connection, optionally edit the out-of-the-box jobs, then build any custom data sync jobs. Go to Administration, then Connectors 2.0, then Connections, choose Salesforce, and give the connection a unique name. Pick Production (login.salesforce.com) or Sandbox (test.salesforce.com), and enter the Salesforce URL in the classic my.salesforce.com form rather than a Lightning URL. Leave the Prefer signing in with your Salesforce URL toggle off unless you have a reason. Before you authorize, install the connected app package for your region: GAINSIGHT CS US (namespace GAINSIGHTCSUS) for US1 and US2 tenants, GAINSIGHT CS EU (namespace GAINSIGHTCSEU) for EU. The Salesforce user whose credentials authorize the connection must have API access, and if that user later changes their Salesforce password the connection is revoked, job schedules pause, and you have to re-authorize and reconfigure the schedules. Gainsight supports two Salesforce connections per tenant, but only the first gets the full set of default jobs; the second gets User Sync and Currency Sync only, and only one connection can be linked at a time. Metadata refreshes automatically every seven days, so a custom field you added this morning needs a manual Refresh Metadata before it shows up in a job.
03
Gainsight to Salesforce integration: what the out-of-the-box jobs sync
Authorizing the connection creates a set of default jobs that map Salesforce objects onto Gainsight objects: Account to Company, User to User, Contact to Person and Company Person, Case to Case, CurrencyType to GS Currency Coefficient (only when multi-currency is on), and Opportunity to GS Opportunity for tenants with Renewal Center. Any other Salesforce object can feed a custom Gainsight object through a custom job. The default job chain runs User Sync, then Company Sync, then Company Person Sync, in that order, because the later jobs depend on the earlier ones: Company Person Sync resolves Account ID to Company ID, and a Contact whose Account matches multiple Companies is marked as an error while one with no match is rejected. Company Sync requires at least one upsert key; the default identifier is Salesforce Account ID. Cases Sync carries Case Number, Type, Description, Priority, Subject, Status, and Last Modified Date, and uses derived lookups by email to set the assignee and requester, which is why Gainsight tells you to sync users before tickets. Lead Sync exists too, but a hidden filter limits it to leads whose Lead Source is Gainsight, so it is for leads Gainsight created through the Rules Engine, not your whole lead table. If you rename a field in Salesforce, remove it and re-add it in the job; the connector does not follow renames.
04
Gainsight and Salesforce integration in real time: write-back from Gainsight
Gainsight to Salesforce real-time sync lets a create or update on a Gainsight Company, Company Person, or Case write to the matching Salesforce Account, Contact, or Case as it happens. You build it as a Connectors 2.0 job, check Sync in Real Time on the fields that should move instantly, and add Salesforce as a destination. The limits are tight and worth planning around: one real-time job per object and a maximum of three in total, at most 20 fields per object, at most 10 identifiers and required fields combined, and events over 50K records are not handled. Null values are not supported, so clearing a field in Gainsight does not clear it in Salesforce. Formula, calculated, and Rich Text Area fields cannot sync in real time because Salesforce emits no change events for them, and you cannot write back to read-only Salesforce fields. The default behavior for a Gainsight create event is Create and Update in Salesforce; for an update event it is Update only, which means a record missing on the Salesforce side is not created. For the Salesforce user who authorized the connection, Gainsight asks for System Admin or Modify All Data, or at minimum Read and Edit on the object plus Read and Edit access on every mapped field. Gainsight states plainly that real-time bidirectional sync of the same field is not available; cyclic events are marked as ignored.
05
Gainsight integration with Salesforce in real time: inbound events
Salesforce to Gainsight real-time sync is the other direction and it is not on by default. You raise a support ticket, Gainsight enables it, sometimes in batches when demand is high, and then you can edit the Accounts, Contacts, and Cases jobs or build custom ones with real-time fields. Under the hood it relies on Salesforce Change Data Capture, which brings two constraints. First, the authorizing user needs Customize Application, Modify Metadata Through Metadata API Functions, View All Users, View Setup and Configuration, View Roles and Role Hierarchy, and View DeveloperName, or View All and Modify All on the specific objects; without these you get the error Object type PlatformEventChannel is not supported. Second, Salesforce caps the number of change events it passes to external apps based on your subscription, the cap is shared with every other app consuming events, and once you hit it updates pause until the limit resets and sync the next day. That is why Gainsight recommends against enabling real time on fields that get bulk-updated. A job that mixes real-time and scheduled fields updates only the real-time fields instantly and a create event builds the record from those fields alone; the rest fill in on the scheduled run. Each real-time job allows up to 10 filter conditions, delete events are logged but not replicated, and real-time activity logs are kept for three days only, so if you are debugging a missed update you need to look quickly.
06
Sync schedules and the problems to check first
Scheduled jobs and job chains run Daily (every weekday or every day), Weekly on a chosen day, or Monthly on a date or day, at a time you set in a chosen time zone region, with Once or Repeat recurrence between a start and end date. There is no hourly option in the schedule article; if you need faster than daily you are into real-time jobs. Import now runs a job immediately with three choices: data modified since the last sync, data modified within a specific date, or all data. Email notifications can fire on Success with N records, Success with zero records, Partial Success, Failed, and Aborted; set at least Partial Success and Failed on the Company Person chain, because that is where silent gaps appear. When counts do not match, check these in order. One, did the authorizing user change their password or lose a permission, which revokes the connection and pauses every schedule. Two, is a job in the chain waiting on an upstream job, since Company Person and Lead Sync fail or partially succeed if User and Company have not run. Three, are there duplicate matches on the upsert key, which produce an error file in User Sync and error-marked records in Company Person. Four, was the field renamed or newly created in Salesforce without a metadata refresh. Five, for real-time jobs, has the connection authorization expired, which deactivates them until you re-authorize from the Connections tab, and are you using Last Activity or Last Viewed Date as an identifier, which deactivates the job outright. The Activity page lets you download error logs; real-time logs come as JSON with the technical error on the last line.
07
Gainsight PX Salesforce integration: a separate bi-directional sync
Gainsight PX, the product analytics and in-app engagement product, does not use the CS connector. It has its own Salesforce integration that pulls Account and Contact fields into PX and pushes PX data back for reporting, workflows, tasks, and alerts. It is not an AppExchange listing; you install the Gainsight PX Data Connector managed package from a direct packaging link, and Salesforce sandboxes are not supported. The authorizing Salesforce user needs the API Enabled permission, Read access for pull-only and Read plus Write for bi-directional, which in practice means Enterprise, Unlimited, or Professional with the API add-on. Sync is on a fixed GMT clock: pull from Salesforce daily at midnight, map to PX at 4 AM, push to Salesforce at 3 AM, 11 AM, and 7 PM, with a manual Synchronize button. The first pull takes records modified in the past six months; later pulls take records updated the previous day. Account matching runs in order through Salesforce ID, a custom field, website domain, name, and finally the email domain of recent users (more than 50 of the 100 most recently seen users must share the domain). Contact matching runs Salesforce Contact ID, custom field, email, then phone, and an email or phone that returns more than one Contact is not counted. Only fields prefixed PX_ are pushed, including account KPIs such as weekly, monthly, and quarterly active users and NPS score; contacts receive attributes only, no KPIs or NPS. The documented trap is two PX records carrying the same Salesforce ID: both try to update the same Salesforce record in no particular order.
08
Gainsight Community Salesforce integration: one-way export
Gainsight Customer Communities (the former inSided platform) exports community engagement into Salesforce one way. You install the Salesforce app on the community side, install an unmanaged package with two custom objects in Salesforce, Community Member and Community Member Activity, and turn on the export under Control, Integrations, Apps, Salesforce. A second package version adds sample Reach, Engagement, and Ideation dashboards. Both objects link to Contact and Account, so you can report engagement per person and per company. Matching is by email, case-insensitive, against existing Contacts: a community member with no matching Contact gets no record, and no activity. Contacts are imported and matched every 12 hours; activity is pushed every 3 hours once a match exists. Activity covers visits (capped at one per 30 minutes per logged-in user), new topics, replies, idea votes, likes, and best answers. Historical activity is not backfilled, idea statuses and product areas are not exported, gamification data is not exported, and you cannot pick which activity types to send. Supported Salesforce editions are Enterprise, Unlimited, and Performance. Note that the main how-to dates from December 2019 and the FAQ from August 2021, so verify package names against current Gainsight support before installing.
09
The sync is the easy part: who owns the actions after the call
Every path above moves records. None of them moves commitments. A CSM finishes a renewal call having promised a follow-up on a pricing question, agreed to open a ticket for a bug, and learned the champion is leaving. Three systems now need writes: a CTA or Timeline entry in Gainsight, an Opportunity and Contact update in Salesforce, and an email to the customer. The connector will faithfully sync whatever gets typed, on its schedule, with the limits above. It cannot type it, and in a 20 to 300 person SaaS company nobody is paid to check whether it got typed. That gap is where renewals leak, and it is the gap Mindlyft works in. ASTRA takes the call outcome, drafts the Gainsight CTA, the Salesforce field updates, and the follow-up email, routes anything the customer will see through a human approval, writes the approved items into each tool, and logs what changed and who approved it. The Gainsight and Salesforce connectors then do what they are good at: keeping the two systems in step. If you are weighing Gainsight against alternatives first, our Planhat vs Gainsight comparison at /blog/planhat-vs-gainsight covers the CRM side of that decision, and /blog/ai-crm-updates covers how approval-gated CRM writes work. We build your first post-call workflow free: pick the call type, the Gainsight and Salesforce fields it should touch, and the approval rule, and we ship it. Start at https://mindlyft.io/talk-to-us.
Sources behind this piece
- 01Salesforce Connector, Gainsight NXT support
- 02Gainsight to Salesforce Real-Time Sync, Gainsight NXT support
- 03Salesforce to Gainsight Real-Time Sync, Gainsight NXT support
- 04Configuration of Job or Job Chain Schedule, Gainsight NXT support
- 05Install and Configure Gainsight Customer Success in Salesforce, Gainsight NXT support
- 06Salesforce Integration in Gainsight PX (Bi-Directional), Gainsight PX support
- 07How to export community member and activity data to Salesforce, Gainsight Community
- 08Exporting Community Data to Salesforce: integration FAQ and Tips, Gainsight Community
FAQ
What is Gainsight in Salesforce?
Two things. The Gainsight Customer Success managed package from the AppExchange adds a Gainsight tab and 360 widgets to Salesforce Account, Opportunity, and Case pages so users can work in Gainsight NXT from the Salesforce UI. The Salesforce Connector, configured in Gainsight under Connectors 2.0, is what actually moves Accounts, Users, Contacts, Cases, and Opportunities between the two systems. The package needs the connector configured and linked first.
Is the Gainsight Salesforce integration bidirectional?
Partly. Scheduled jobs pull Salesforce data into Gainsight. Real-time jobs can write Gainsight Company, Company Person, and Case records to Salesforce Accounts, Contacts, and Cases, and, once enabled by a support ticket, pull Salesforce changes into Gainsight in near real time. Gainsight states that real-time bidirectional sync of the same field is not available. Gainsight PX has a separate bi-directional sync on a fixed daily schedule; Gainsight Communities exports one way into Salesforce.
How often does Gainsight sync with Salesforce?
Scheduled connector jobs run Daily, Weekly, or Monthly at a set time, with an Import now option for an immediate run. Real-time jobs move Account, Contact, and Case changes as they happen, within Salesforce change-event limits. Gainsight PX pulls from Salesforce daily at midnight GMT and pushes at 3 AM, 11 AM, and 7 PM GMT. Gainsight Communities matches Contacts every 12 hours and pushes activity every 3 hours.
Why is Gainsight not syncing with Salesforce?
The common causes in Gainsight's documentation: the authorizing Salesforce user changed their password or lost a permission, which revokes the connection and pauses schedules; a downstream job such as Company Person Sync ran before User Sync and Company Sync; duplicate matches on the upsert key; a field renamed or added in Salesforce without a metadata refresh; or, for real-time jobs, an expired authorization, a hit on the Salesforce change-event limit, or an unsupported field type such as a formula or Rich Text Area.
Want the GTM engineer without the headcount?
Start with a Free GTM Engineering Review: 30 minutes, a working session, not a sales call. You leave with the first systems we would build, in order, and a straight answer on whether it is worth doing now.
Get your free review