Associating Salesforce accounts and leads to calls
  • 4 minute read
  • Contributors

Associating Salesforce accounts and leads to calls

Article summary

When a call recording ends the system goes through the following algorithm to associate it with a Salesforce account or lead:

  • The system extracts the list of meeting invitees from the calendar invite

  • The system connects to the conference provider (e.g. Zoom or WebEx) and retrieves the list of attendees (this list depends on the email the attendees typed when connecting to the conference so it’s not always accurate)

  • The system merges the two lists into a single list of potential participants

  • The system performs the following steps per each participant in the list:

  1. Uses the participant’s email address to find a Salesforce contact with the exact same email address. If found, the system retrieves the account connected to that contact and associates the call with that account.

  2. Uses the participant’s email address to find a Salesforce lead with the exact same email address. If found, the system associates the call to the lead.

  3. If an account or a lead was associated with the call using either of the above two methods, the system then continues to the next participant in the list and repeats step 1.

If no association is found, the system extracts the domain from the participant’s email address, and searches in Salesforce for a contact with the same email domain:

  • The system associates the call with the account connected to that contact

  • The system creates a virtual contact with the participant’s email address. Going forward, if a real Salesforce contact was found during the batch sync, then this virtual contact is connected to the real Salesforce contact.

  • The system continues to the next participant in the list and repeats step 1

If no contact is found using the email domain, the system searches in Salesforce for a lead with the same email domain as the participant. If a match is found:

  • The system creates a virtual lead with the email address of the participant and the same company name as the found lead, and connects the call to the virtual lead. The virtual lead is converted to a real lead if that lead is later found during the batch sync.

  • The system associates the newly created lead with the call

  • The system continues to the next participant in the list and repeats step 1


  • For some participants a match between the participant’s email address and both contact (step 1) and lead (step 2) will be found. When this occurs, the call is associated with the account connected to the contact and the lead

  • The system may find an association of different accounts and/or leads to different participants. When this occurs, all the found accounts and/or Leads are associated with the call

  • When an account is associated with a call, the system looks for all the open opportunities of that account, and within them it looks for the opportunity that had an activity (with an activity date closest to the date of the call); and it associates this opportunity with the call (an 'activity' includes any change in an Opportunity field, for example change of stage or close date, etc.).

Batch sync

Since entities in Salesforce are changing all the time, and because entities can be created after the call took place and processed, the system also runs the following algorithm on an hourly basis:

  1. Retrieves all the accounts, leads, and contacts from Salesforce that were modified since the previous batch sync.

  2. For each entity, check if a meaningful field has changed (e.g. the email address of a contact or a lead, the list of contacts linked to an account, etc.). If a meaningful change was made, try to associate the changed entity to all of the calls in the system using an inverse version of the call association algorithm.

During the batch sync the system also discovers leads that were converted to accounts. For each such conversion Salesforce reports the source lead and the account and contact it was converted to. For each such lead the system retrieves all the calls associated with that lead, and to each one adds an association to the account - meaning the calls that took place when the account was still a lead will be associated with both the account and its originating lead.


The batch sync is limited to syncing approximately 100,000 records of each entity type. If more than 100,000 record were changed since the last sync, the algorithm may not capture all the changes in one run, and it may take a few more runs (which means a few more hours) until all changes are synced and displayed in Gong. The limitation on the number of synced entities prevents the system from reaching the customer’s API limit.

Association via lead conversion data

When a lead is converted to a contact in Salesforce, the batch sync process extracts the conversion data (contact ID, account Id, and possible opportunity ID). If the lead is already connected to calls in Gong, the sync process links those calls to the account the lead was converted into.

After connecting to Gong

Once your team members are set to import their emails automatically to Gong, Gong takes all the emails for the previous twelve months. It matches the sender or recipient with a CRM account and adds the emails to the customer’s account info. So, for the previous year and going forward, you’ll see not only the recorded calls, but also any email correspondence with that account. All other emails are quarantined for twelve months and then destroyed. The quarantine is to enable Gong to match accounts with emails if there was a delay in registering them in your CRM.

Was this article helpful?


Eddy AI, a genAI helper, will scrub our help center to give you an answer that summarizes our content. Ask a question in plain language and let me do the rest.