Skip navigation

Do It

1 Post authored by: Ryan Wheler-Oracle

Often you may encounter a situation where a salesperson needs to change the email address on a contact record in your CRM.  Since Eloqua uses email address as the unique identifier, the auto-synch will run and try to find a match using the new email address. However, since this change has only been made in the CRM, it will not find a match in Eloqua and therefore create a new record instead of modifying the existing contact.  Ideally you will want to configure your integration to update existing contacts in cases such as this in order to avoid sending duplicate communications a two addresses owned by the same contact, or sending emails to an inactive address.

 

There are two ways to change the email address on an existing contact:

 

  1. Perform and upload with the purpose of “Change Email Address”.  This will allow you to upload a file containing a list of old email addresses and new email address, and Eloqua will make the updates.  Jordo’s Playbook outlines a solution using this method for CRM systems track contact field history (such as Salesforce)
  2. Perform a contact upload using a field other than email address as the unique identifier for the purpose of the upload.  This is the method we will be using in this solution.

 

In order to automate email address changes using a unique identifier other than email address, we need to find a field that exists and is unique for all contacts in Eloqua; for this purpose we will be using the Eloqua Contact ID field.  This is a system generated ID which is assigned to an Eloqua contact upon creation.

We also need to ensure that this same unique identifier is available on any leads or contacts in your CRM system.  This is easy for leads created by Eloqua (just map Eloqua Contact ID in your Create Lead external call), but can be a bit trickier for leads created directly in your CRM.  We can account for both kinds of records using the following process:

 

Standard Integrations

  1. Create a field in your CRM system called “Eloqua Contact ID”
  2. Update your Create Lead, Update Lead and Create Contact External Calls so the Eloqua “Eloqua Contact ID” field is mapped to the corresponding field in the CRM.  This will ensure that all leads originating from Eloqua will have an Eloqua Contact ID.  To handle contacts and leads who originate from the CRM, we will need to make changes to our auotsynchs.
  3. Create a new Get Leads autosynch and a new Get Contacts Autosynch (Jordo's Playbook contains step by step instructions for creating autosynchs), and add a filter to the syncs so that they only retrieve leads/contacts who have an Eloqua Contact ID in the CRM.  Both of these synchs should use Eloqua Contact ID as their unique key.  This will ensure when any lead or contact in your CRM who has an Eloqua contact ID changes their email address, Eloqua will update their existing Eloqua contact record instead of creating a new record.
  4. Create a new Integration rule collection called Update Eloqua Contact IDs.  This collection should contain 2 rules:
    - If a contact has a CRM Contact ID, run the Update Contact external call- If a contact has a CRM Lead ID, run the Update Lead external call
  5. Create a second Get Leads autosynch and a new Get Contacts autosynch (Call them Get Leads (Email) and Get Contacts (Email) to keep things straight).  Add a filter to these syncs so that they only retrieve leads/contacts that do not have an Eloqua Contact ID in the CRM. Both of these synchs should use Email Address as the unique identifier
  6. Modify the Upload action on the Get Leads (Email) and Get Contacts (Email) autosynchs, and configure it to run the Update Eloqua Contact IDs integration rule collection.  This will ensure that any time a record without an Eloqua contact ID is brought over from your CRM, Eloqua will immediately update the CRM record with the Eloqua contact ID.  This means that a contact will never come through the email autosynchs more than once.

to recap, in total you should have 4 autosynchs:

 

Get Leads (Eloqua Contact ID) – Will run on all leads with an Eloqua contact ID.  Matches Eloqua contacts using Eloqua Contact ID as the unique identifier

Get Contacts (Eloqua Contact ID) – Will run on all leads with an Eloqua contact ID.  Matches Eloqua contacts using Eloqua Contact ID as the unique identifier

Get Leads (Email) – Will run on all leads without an Eloqua contact ID.  Matches Eloqua contacts using Email address as the unique identifier, and executes the Update Eloqua Contact IDs integration rule collection to write Eloqua Contact IDs to your CRM

Get Contacts (Email) – Will run on all leads without an Eloqua contact ID.  Matches Eloqua contacts using Email Address as the unique identifier, and executes the Update Eloqua Contact IDs integration rule collection to write Eloqua Contact IDs to your CRM


Custom Integrations

 

For custom integrations using the Data Export and Import area of the application, the steps are a little different since Data Imports do not have upload actions which can be used write contact IDs back to your CRM.  If you have a data import/export based integration, your solution will look like  this:

  1. In Eloqua, create a new checkbox contact field called “Sync Contact ID”
  2. On your CRM side, create two files for import into Eloqua, one should contain all contacts to be synced over from your CRM which have an Eloqua Contact ID, and one should contain all contacts to be imported that do not have an Eloqua Contact ID
  3. Set up an import to pull in the contacts that already have Eloqua contact IDs, this should use Eloqua Contact ID as the key field.
  4. Set up an import to pull in the contacts that do not have Eloqua contact IDs.  This import should use Email address as the unique key.  Every record in this import should also write a value of TRUE to the “Sync Contact ID” field
  5. Create a new segment called “Contact IDs to be synced”.  This segment should contain one filter which looks for any contacts that have a value of TRUE in the “Sync Contact ID” field.  Share this filter and save the segment
  6. Create a new export to push contact IDs to your CRM system.  This export push all of the members of the “Contact IDs to be synced” segment to your CRM and should be scheduled to run 1 hour after your imports.
  7. Create a new program in program builder with three steps:
    i. Wait two hoursii. Run Update Rule – Set “Contact IDs to be Synced” to FALSEiii. Remove from program
  8. Set up a feeder on this program to feed the members of your “Contact IDs to be Synced” filter to the program after your imports run.  This program will ensure that contacts are removed from the “Contact IDs to be Synced” segment after they are pushed to the CRM system

 

 

To recap, in the custom integration solution you will have:

 

Two imports

  • One to bring in records with an Eloqua Contact ID using Eloqua Contact ID as the key field
  • One to bring in records without an Eloqua Contact ID using Email Address as the key field, and writing a value of TRUE to the “Sync Contact ID” field

One Export

  • This Export will push all contacts with a value of TRUE in the “Sync Contact ID” field to your CRM

One Program

  • This program will clear the “Sync Contact ID” flag after contacts’ IDs have been exported.

Filter Blog

By date: By tag: