Add ContractID to records

  • 18 February 2023
  • 3 replies

Hello! Wondering if anyone can advise me here. I’d like to track and correlate activities in Gainsight to the contract active at that time on the account. Basically how does our CS work (realizing/verifying outcomes, doing QBRs, completing projects, etc) drive the result of the contract? Upsell, downsell, churn, etc.

My initial idea was to add an “active contract” field to the company object (done), and then hopefully find a way to copy that value (not reference to it as it is dynamic) to the record in question. My GS experience isn’t extensive, so I am still trying to understand the Object schema and how they relate to each other, so couple of questions:

  1. Am I looking at this the right way from a logic perspective? Is there a built-in feature that would allow us to do this already? Like Journey orchestrator, or milestones?
  2. If not, would it be best to pull that to a CTA? I do care about calls, emails, etc. but primarily, I care about high value work (or lack thereof) and how that impacts the contract at the time.
  3. I guess the same concept can be applied towards health scores, surveys, etc. So maybe I am looking at it the wrong way?
  4. Is there another solution that I haven’t even brought up yet or has anyone used a similar approach to this problem?


3 replies

Userlevel 5
Badge +5

Hi @Admir!
It’s Monday morning and my brain is still preheating, but I don’t think that you can push directly the value to Timeline, maybe via API you could do something but I’m an absolute rookie regarding API.

Without knowing what the source of that value off the top of my head is to have a Custom Object to either take a snapshot in a cadence that makes sense for you (weekly, monthly) or capture when the value changes via Real Time rules. Then you can use the field and DD to create a dataspace for reporting... Maybe the easiest way will be a daily snapshot so you can easily match Activity Timeline → Activity Date to Snapshot Date.

Regarding Milestones, you can run a report from Timeline to verify if how the data is captured works for your use case (eg: this is how a CSM change is stored), but you will need DD assistance too to extract the values and match Activity Timeline → Activity Date with the value of the contract on that same date

Hope this helps start a conversation, I’m intrigued to know how someone else would deal with this use case 🤓

Thank you for your response. Just to be clear, I am not looking to identify or report the changes. What I want, ultimately, is for the activity (CTA, objective, Goal, Timeline, etc) to copy a record entry from the company object and paste it into a string field so it cannot be changed. 

Basically, right now, our customers are on annual contracts. If today I am looking at a company, they have an active contract number 0001999 which ends 3/1/2023. So on their account the “active contract” field shows: 0001999. Starting 3/2/2023, a new contract 0003999 goes live and the field value on the company object gets updated to 0003999. 

If we run a report on CTAs or timeline activities, ideally, the actions would copy that field value as they are created so we can know contract 0001999 had X CTAs, 30 activities, etc.



Userlevel 6
Badge +1

Hi Amir,


Sharing a potential solution here, but may not be straightforward to implement: 

Create a custom field that can store the snapshotted active contract number, in all relevant objects (Timeline, CTAs, Success Plans, Customer Goals, etc.). If any of these is getting created from the Rules Engine, we can push the active contract number into this custom field at the time of creation. And for manual creation and non-Rules Engine scenarios, we can use the Rules Engine still to update all these actions and activities to push the contract number. CTAs and Success Plans have direct update actions available in the Rules Engine. Timeline and Customer Goals can be updated using their respective update APIs + Call External API action, or we could just skip these in phase-I.