This guide will demonstrate how to sync campaign members from Salesforce to a custom object in Eloqua.  It will discuss why custom objects are a good solution, walk through setting up the custom object, the auto-sync to pull the data, and how to use the custom object in segmentation.

 

Part 1 - Why Custom Objects for Salesforce Campaign Members?


Unfortunately campaigns do not always originate from Eloqua, there are some sources you simply cannot get between (e.g. AppExchange, partner integrations, etc.).  As a result, campaign associations can occur outside of Eloqua, but you may want to segment on these campaign associations.  Even for some campaigns that originate from Eloqua, doing segmentation through the Campaign Member object can still be an easier way of achieving complex segments.  Custom objects will allow you to mirror the Campaign Member object in Salesforce in Eloqua, and segment on Campaign Member values the same way you would generate reports of Campaign Members in Salesforce.  This allows you to bypass having to do list pulls from Salesforce and list uploads in Eloqua.

 

Part 2 - Setting up the Custom Object in Eloqua


Step 1 - Load the Custom Objects area


Go to Contacts > Custom Objects

 

0a5f6ef7-4b28-4c6c-98dd-99e960897c7b.png

 

Step 2 - Create a New Custom Data Object

 

Go to Events > New Custom Data Object

 

0d3563fe-98a5-487a-b5bd-0c518a9f214c.png

 

Provide a display name, description, and folder organization, and click next.

 

ce65306b-ca58-4b2d-9a5c-c9c88c13e3a6.png

 

Add the Campaign Member fields you want to sync to Eloqua.  You can add fields by accessing the Data Card Fields drop-down in the top right, and selecting Add New Field.

 

e4206c13-5f9b-4e58-a90e-0864d4fa2eb4.png

 

Sample: Campaign Name

 

b5dcf9b3-b44f-496f-89b5-ecb80618e21b.png

 

Continue to add the fields you want to sync - below is a screenshot of a set of fields you may want to start with.

 

b44aeec2-73d9-4725-af26-5424f767b970.png

 

You can click Next on the Header Fields step (you can always make edits to fields later).

 

Step 3 - Configure the Data Card Set field details


To connect the custom data object record to a contact in Eloqua, you need to map the email address fields.  You also need to map the unique code field to the Campaign Member ID field so when the AutoSync fires it knows whether to create a new record, or update an existing record based off of the Campaign Member ID.

 

Update your field mappings, and click Save.

 

a23ce358-bc8d-43db-89eb-658f5651cec0.png

 


Part 3 - Setting up the AutoSync to Pull the Data from Salesforce


Now that the custom object has been created to store the Campaign Member data, we need to create the AutoSync that will automatically populate the custom data object from Salesforce.

 

Step 1 - Load the Inbound Integration Page


Go to Setup > Integration and click the Inbound tab.

 

6c4bc47c-a660-4c82-a590-735e68168dd5.png

343d5324-7d3e-4e44-a2db-e7f91d6f09b9.png

 

Step 2 - Start the Create a new Data Source with External Call Wizard


Go to Create Data Sources > Create Data Source with External Call


495a1d27-ce41-43ca-9237-c613787db95f.png

 

We will actually need to create two Data Sources, one for leads, and one for contacts, so we can map the lead id and contact id correctly, and so we can grab the lead or contact's email address for mapping to the contact in Eloqua.  This guide will walk through the process of creating the lead campaign member auto-sync, you will need to repeat this process for creating the contacts auto-sync.

 

Step 3 - Provide the External Call Details

 

Provide the external call details and the Data Upload Source Details.  Configure your auto-sync to mirror the screenshot below.

 

e80126d7-ed87-4c38-ba5f-f9df56a00ad3.png

 

Step 4 - Specify the Source Details


Select Retrieve as the action, and Campaign Member as the entity.

 

*Important* - Mark the checkbox to retrieve 18 character IDs.  Since Eloqua does not do lookups with case sensitivity, the 18 character id is required to ensure the unique code value is unique for lookup and matching.

 

0d06aed3-eea3-446e-9e99-a39e4fbf38db.png

 

Step 5 - Select Salesforce Fields


Select the fields to populate your custom object fields.

 

8f6312e0-03e1-44f5-8f5d-169cdcd12ed2.png

 

You will need to click on the Salesforce Related Fields - Campaign area on the right and select Name, that will be the campaign name for mapping in the next step.

 

2d207ead-7519-44d1-9e2f-faf9533f532b.png

...

03342590-780a-44f5-9593-9e9432156192.png

 

Also, since this auto-sync is for the lead auto-sync, you'll want to open the Salesforce Related Fields - Lead object as well to select the email field for mapping in the next step.  When you create the contact auto-sync, you'll want to select the Email field from the Salesforce Related Fields - Contact object.

 

a935342b-301f-4c7f-83ae-4681b1c4a58d.png

5201c98f-34fd-4c15-847c-f6ed19ec1a28.png

 

If there are other related fields you added during the custom object creation process, you'll want to select those fields here as well.

 

Step 6 - Select the Filter Details


To create an auto-sync, you'll need to have it filter by last modified date and Last Successful Upload.

 

Select last modified date in the Salesforce Campaign Member Fields column.

 

47836938-a1a9-4daf-b861-9fe72a92c20b.png

 

Select Greater Than or Equal as the operator, and click the drop-down carrot on the Expression and select Add Date.  Choose the Use the start date of the last successful upload option and click Save and Close.

 

f131091f-095f-4c2f-8c25-a0bef6be160e.png

 

b7c3bf10-cc34-45fc-905a-a4a58c79e545.png

 

The result should look like this:

 

5554b55c-4b92-4cd5-8a97-cf221fbdcf36.png

 

Step 7 - Field Mapping


We now need to map the selected fields from step 5 to the fields we created in our custom object.  Since this is the lead auto-sync, we'll map the lead id, when you repeat this process for the contact auto-sync, you will map it to the contact id.

 

527d1cb1-2c3b-495e-b9a2-9ec793441636.png

 

Step 8 - Specify the Upload Actions


This step is where we instruct the auto-sync to match the campaign member to the Eloqua contact record based off of email address.  Mirror you configurations to resemble the screenshot below.

 

ac1fe224-e33c-49a9-bae1-059c46a8c2d7.png

 

Be sure you've marked the Map data cards field and have selected the correct source field for the object's email address.

 

Note: You'll want to select the Contact: Email field when you repeat this process for contacts.

 

Step 9 - Configuring the Auto-Sync

 

The Summary page can be a bit misleading, because you might not realize you need to schedule the auto-sync in this step.  At the bottom of the summary, select the Schedule automatic data imports using these settings option, and configure the interval in which you'd like it to sync.  You can configure it to run nightly, or at an interval as short as every 30 minutes.

 

bad0bd59-9ae5-473f-9a20-52b1f655e8e5.png

 

Step 9 - Click Finish and Let it Sync

 

Once you click Finish you'll see a loading screen.  Do not leave this screen.  It may take quite a while to run for the first time because it's going to pull in all of the historical data.  Just let it run until it finishes.

 

Step 10 - Repeat this process for creating the contact auto-sync.


Execute steps 1 - 10 again, but this time configuring it for syncing contacts instead of leads.

 

Note: If an error has occurred, you can access the auto-sync configurations by selecting the "Management" tab at the top - and selecting "Auto Syncs".  You can then open an auto-sync and modify your field mapping, filter selections, and execution interval.

 

Part 4 - Confirming the Integration was Successful


You can confirm the integration was successful by either viewing the custom data object records, or creating a segment using the custom data object records.  I recommend first checking the custom data objects are populated and mapped to your contact records.

 

Step 1 - Confirm Custom Data Object Records are Populated


Go back to Contacts > Custom Objects.

 

Select the Salesforce Campaign Members custom object you created in Part 2 of this guide.

 

You should see a number in the Total Number of Data Cards field.

 

Click the View Data Cards button.

 

You should see a listing of the data cards, and in the right-hand column the Mapped field should be Yes.

 

ff0f126c-fcad-4ded-872d-7094a28a6fae.png

 

When you open a data card, the fields should be populated, and the mapped contact record should be displayed.

 

df58e0ff-e83e-4df9-8717-342b2043cf3c.png

 

Step 2 - Segmenting on the Custom Object


Now that you've confirmed the custom object records populated successfully, and the records were successfully mapped to Eloqua contact records, you can segment on this data.

 

Inside of a segment choose the Has Linked Record in Custom Object filter criteria.

 

c92d0a73-7530-4743-9c4c-94fe3ff54bc2.png

 

Double-click the placed filter criteria, and select the Salesforce Campaign Members custom object you created.

 

You can then add up to three filter criteria to search for the specific custom objects records you want to segment on.

 

bc54254f-dc71-4eb3-ab91-a60bc0b2d740.png

 

cb5f3daf-8272-4fda-811d-976772130b92.png

 

 

Conclusion


Custom objects are a powerful tool for evolving your Eloqua environment to a truly robust system for creating intelligent segments, nurture campaigns, and programs.  You can use custom objects for a wide variety of use cases, from campaign member tracking, to product usage tracking, to referrer source tracking.  If you have a highly customized Salesforce environment, custom objects can be a great way of porting over the custom objects from Salesforce into Eloqua for easy segmentation and scoring.

 

Cheers,

Ryan