Skip navigation

Every good marketer hates having bad data in their Marketing Automation Platform. It can be increasingly difficult to manage data quality, when there is a globally shared instance of Eloqua and a variety of data sources. One of our hurdles was cleaning and keeping clean data. To effectively address this problem, we had create an Eloqua program that had the capability of performing the following:

  • Check country assignment and normalize data
  • Check zip codes and normalize data
  • Assign Regional ID, Territory and Branch based on zip codes
  • Update State or Province from zip code


The benchmark for success is that we reduce the number of contacts that either contain incorrect or missing data in the fields noted above. Since contacts can be uploaded into Eloqua or brought in from different data sources, we needed to create the program to correct, or add in missing data. If you will be implementing a program like the example below, please make sure you audit your data and account for the different data sources prior to creating the program. This will be critical to help you identify the data format in the "Compare Contact" steps in the program below.

The program below contains the following steps to address our challenge.



Segment: Create a feeder that pulls in the contacts you would like the program to evaluate. In this example, we pulled in any contact that could be in the United States or Canada. You can separate these programs regionally.


Compare Contact Step: Contacts who have a “Country” that is equal to “United States”. Since this is our preferred format, if yes, send to Has 5 digit zip code. No, routes to Compare Contact step to check for Zip Code.


Compare Contact Step: US with Space? Evaluates whether the data contains a space. Yes, send to Fix Country Rule Set.  Send back to United States? Step. No, Send to Canadian Check. (As shown in Part #2).


Compare Contact Step: Has 5 digit zip code? This step checks for a wildcard pattern for 5 digit format. If yes, send to the Update Rules where we use the zip code to Zip/Postal to assign APR/Territory/Branch. If no, send to Compare Contact Step: Has 5+4 Zip Code.


Compare Contact Step: Has 5+4 Zip Code? This step checks to see if the record has full zip code of 5 + 4. If yes, send to the Obtain 5 digit zip Contact Washing Machine. This is necessary to normalize the data. Send back to the Update Rules where we use the zip code to Zip/Postal to assign APR/Territory/Branch. If no, send to Compare Contact Step: Has 9 Zip Code.


Compare Contact Step: Has 9 Zip Code? This step checks to see if the record has full zip code with 9 characters. If yes, send to the Obtain 5 digit zip Contact Washing Machine. This is necessary to standardize the data. Send back to the Update Rules where we use the zip code to Zip/Postal to assign APR/Territory/Branch. If no, send to Wait Step.


Wait Step: This step is necessary to wait for 1 day and then push contact to the Compare Contact Step: United States.


Compare Contact Step: Has State? This step checks to make sure the state field is not blank. If yes, send to Wait Step. If no, send to the Update Rules Step and update the contact with the US Zip Code to State based on Zip Code.


Compare Contact Step: Compare Contact Field. This step checks to see if the contacts “Last Modified Date” is within the last 4 hours. If yes, the contact will be sent back to the first Compare Contact Step to make sure that we re-check all of the fields we checked in the previous steps. If no, send back to previous wait step.


We then took a similar approach to build out the Canadian portion of the program.

Part 2




There are a few Oracle Marketing Cloud Academy courses that have directly influenced this campaign. Those are: B2B Data Cleansing and Program Builder Overview.


This program has drastically improved the quality of our data and is easy to test and build. From a business perspective, this has allowed us to correctly route contact data to sales staff. In addition, this program has allowed us to consider using field merges from the correct contact data. Lastly, this has greatly impacted our ability to segment correctly. We have been able to pull in contacts regionally, to deliver regionally relevant content. Overall, I would recommend this program as an easy way to standardize your data in Eloqua.

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

immixGroup helps software companies sell to the government through various partnerships. While we have had many of our partners for several years, we are continuously looking to grow our portfolio and bring in new suppliers.


The Challenge

We regularly reach out to our prospects through marketing campaigns, networking events, and call campaigns, but we weren’t able to track the true level of engagement with our prospective suppliers. This made it difficult for our Corporate Sales Manager to have meaningful conversations with prospects while trying to show the value of partnering with our company.


Strategy for Tackling the Challenge

After taking the B2B: Lead Scoring course, I began working with our Corporate Sales Manager on updating and developing a more targeted lead scoring model. First, we needed to do a content audit to get a sense of our existing online resources and how they could be re-purposed for campaigns.


Once we had an idea of our content inventory and decided their level of importance, we needed to determine profile aspects, such as titles, company, and job level, and which of our marketing efforts are most important. We also wanted to determine how those actions should be scored.


When scoring on a contact’s profile, we determined which companies would be considered Strategic (100%), Tier 1 (70%), and Tier 2 (50%) based on email address domain, while also looking at specific words contained in the contact’s title. For example, Federal, Public Sector, SLED, as well as their title normalized, such as Vice President, Director, or Manager. For engagement, we looked at how resources on our website performed, such as downloads for whitepapers, sign-ups for on-demand webinars, our in-person events versus our online events. We also looked at email opens, clicks, forms submitted, as well as website visits. All of these elements were assigned appropriate weights for scoring.

Lead Score Profile.JPG

Lead Score Engagment.JPG


To determine which leads get passed to our Corporate Sales Manager, we needed to evaluate the different levels within the lead scoring model and decide which scores were of most value to us. We drafted an action chart showing the explicit criteria and the implicit criteria, as well as a chart to show which leads needed immediate follow-up, which could use a little more nurturing from our sales team, and which needed further qualification from marketing and sales.

Lead Score Action Chart 2.JPG

Lead Score Action Chart.JPG


The Results

After running the updated lead scoring model, we moved our prospective suppliers to our “cold list,” then re-engaged them through newsletter campaigns, invitations to our webinars on sales opportunities within the government, and other nurture campaigns. Eventually, we were able to identify which suppliers were serious about cultivating a relationship and were still interested in working with us in the future.


Below is an example of the Lead Scoring Dashboard our Corporate Sales Manager uses. This dashboard allows access vital information, such as their job title, company, as well as the engagement associated with the prospect's lead score providing our Corporate Sales manager with the means to pursue a potential partnership with them.

Lead Score Tracking Example.JPG


Through our lead scoring model, we saw a few prospective suppliers were still engaging with us, even after they had decided they were not ready for to use our platform for distribution in the public sector. However, they kept showing up on our hot leads list, so we kept a close eye on them and eventually re-engaged with them as clients in January.


Another prospective supplier was also signed in January after our Corporate Sales Manager was able to reference the level of their engagement with us through our lead scoring model. This allowed him to show them exactly what their sales teams were downloading, such as webinars and whitepapers, and how our company has been providing them value, which directly translated into acquiring this supplier as a client. As a result of acquiring these two suppliers through the help of our lead scoring model, we are projecting to surpass our annual goal by over 100% in FY16.



Tip: When creating or updating a lead scoring model, have your goals clearly outlined and make sure your marketing efforts and goals align with the your sales team. It is important to have everyone in agreement on the level of importance of your marketing efforts, profile aspects, and level of contact engagement before you begin to ensure accurate scoring in the future. When possible, leverage the Topliners community for creative ideas on ramping up your nurture campaigns, social sharing, and challenges or difficulties others have experienced while implementing lead scoring and how they were able overcome them.


Having this lead scoring model has provided us with great insight into what our prospective suppliers are interested in and through which avenues they’re engaging with us the most. It is a model that is constantly being updated as we learn more about our audience and as our company grows but has so far proven extremely beneficial.


Helpful Academy Courses:

  1. B2B: Lead Scoring
  2. B2B: Blind Form Submits
  3. B2B: Effective Marketing with Custom Objects
  4. B2B: Personalizing Campaigns


Helpful Guides:

  1. Lead Scoring: Guide for Modern Marketers
  2. Lead Nurturing: Guide for Modern Marketers
  3. Digital Body Language: Reading and Responding to Online Digital Buying Behaviors

Filter Blog

By date: By tag: