The Challenge

Our challenge is a pretty universal one for Modern Marketers: to get the most helpful and informative content to the right people.



The goal of this project was to create a global preference center that would allow our marketers to better segment our audience by aligning email marketing content with their choices. Because our audience is global and our company has a design-focused culture, I created a custom preference center so that we could maintain multiple language versions and control the page design.


Email group: The first thing to consider was the existing Email Groups. We had three existing groups for industry thought leadership, product training and a general content marketing group. We decided to add a fourth for events and conferences. We are in the process of bringing on new teams to our instance of Eloqua and plan to add new Email Groups as needed.


Footers: We decided to make some changes to our footers as part of this project. Previously, we had a standard generic footer for all groups with a link to an Opt-out form. Our new footers would be unique to each group and would specify, for the customer, which category the email belongs to, along with a link to Unsubscribe from that group. A separate link would be included to manage all Email preferences with the Preference Center page.


Web Data Lookups /JavaScript:  As the title of this post suggests, I built a custom page using web data lookups and JavaScript. The DLPrepop article on Topliners was helpful in gaining an understanding of how Web Lookups could be used. But unlike the example given in that article, I chose not to use the cookie as the unique identifier because we could not assume everyone will be visiting the Preference Center page from a browser with the correct cookie, or any cookie for that matter.  What we can assume is that the contact will be visiting the page from an Email Footer hyperlink and we want everyone to be able to update their preferences. So instead, I implemented a solution using QueryStrings to pass the necessary data to the page for the lookup.




Prerequisite: To implement this project you’ll likely need Customer Admin level access to your instance, the ability to hack some JavaScript code together and an understanding of Email Groups, Footers and Field Merges.


Step 1: Email Groups

If you aren’t familiar with how to create an Email Group, the Oracle Eloqua Help Center has step by step instructions. One thing to note for this project is that each Email Group has a GUID for both the Subscribe and Unsubscribe Status. This will be useful later. Access the GUIDs by clicking on the information button to the right of the Email Group Name.




Step 2: Footers

Here is an example of a Footer for our new Events and Conferences Email Group:



The Unsubscribe hyperlink is enabled as a System Action to unsubscribe from the Email Group.


The Email Preferences hyperlink includes a QueryString and Field Merges to pass the required data to the Preference Center page.



Step 3: Web Data Lookups

Navigate to Assets  > Website Setup  >  Web Data Lookup

From the Get Started bar, select  Data Lookup >  New Data Lookup.

Eloqua offers several Data Lookup types. To retrieve Email Group Subscription Preferences choose Contact Group Memberships.



You’ll need to choose a unique identifier to do the Lookup. I started with Email Address but with one addition I’ll show in the next step.  Save your Lookup.



After saving, you’ll see that you can add criteria for the Lookup.


This is important for security; I used a QueryString to pass the identifier to the page for the lookup. If we pass only Email Address, then it would be possible to pull records by plugging different Email Address values into the URL. Luckily, Eloqua has another unique identifier on each contact record called Eloqua Contact ID. By using both criteria, the QueryString cannot be guessed by a third party and must come from an Eloqua generated Email (at least initially, it could be shared or bookmarked).


Save your lookup again. Eloqua helpfully provides example JavaScript needed to interact with your new Lookup.

Navigate to Data Lookup Options  > Get Data Lookup Scripts




Here you’ll need a bit of understanding of how to edit some code, which is beyond the scope of this post. Some links will be provided in the References section below. The important thing to note here is that the GUID you need to pass to the GetElqGroupMembershipStatus() method is from the Email Group information button in Step 1.


In this example, I set the form checkbox to be checked if the contact is not Unsubscribed.



The end result is a simple form with a few checkboxes that let our contacts Opt-Out and Opt-In to the content they find interesting.






The Preference Center has been live for a couple of months now. One interesting result relates to the new Email Group we added. By segmenting this content (Events and Conferences) we can see that it was a large part of our overall Sends during this time (38%). It also has a relatively low Unsubscribe rate compared to our other categories (0.19% vs 0.40%). Also, the general marketing group has seen a subsequent jump in the Unsubscribe Rate now that the Events content has been removed. By implementing this project we have taken a step towards improving our user experience. Our next steps will be to look for additional content categories to segment with the goal of getting all categories to the benchmark Unsubscribe Rate for our industry.




Oracle Marketing Cloud Academy:  All Fundamental and RPM Series, Advanced Segmentation, Web Profiling and Custom Subscription Management


Oracle Eloqua Help Center:  Email Groups, Footers and Web Data Lookup Scripting


Topliners: Field Merge and Web Data Lookups


Eloqua Artisan: Query Strings and JavaScript