Skip navigation

When implementing Eloqua, there were 3 challenges made clear :

1. Email address was the only unique key to be used for each individual contact, mainly coming from our CRM, SalesForce or as we all call it SFDC.

2. There is a 1 to 1 relationship between each contact and an account

3. However, we realized our contacts database was composed for about 30% of duplicate contacts based on email address and that we had a bunch of contacts linked to multiple accounts.

Why ? --> Indeed our CRM was built in a way that allowed creation of contacts with the same email address, to allow for example :


- an contact to be shared accross branches of a big account. Say your info@ contat would be linked to 5 different local branches of a supermarket chain

- unfortunately allow a to be created once with a certain role "consultant" for company A and "sales" for company B and so on ...


2 years of SFDC growing data was going to have hard consequences on the CRM and we needed a quick fix because it was having hard consequences on marketing campaigns as well: the ASCIIbetical merging of duplicates via the CRM sync was mixing ALL of the data up ! Think wrong personalization, wrong segmentation, wrong data overall !


SO the goal became this : getting ALL contacts in the Eloqua DB without any merging of data ! That way we could at least segment and personalize correctly until we found a long term solution to fix the data modeling between Eloqua and our SFDC set up


HOW we did it :


1. Obviously, first we need to have a SFDC integration. We're using the out-of-the-box Cloud to Cloud connector built by Oracle with SFDC.

2. Built the first "Get Contacts" auto sync that will bring a "winning contact" from SFDC into the standard Contacts in Eloqua. That winning contact is flagged in SFDC following a scoring logic : the more complete, clean, recent contact gets scored the highest compared to all other contacts sharing that same email address and gets the flag Master Marketing Contact = True

The "Get contacts" auto sync is using an advanced filtering in our case, in which we included our winner filter "Winning contact."



Then we need the "secondary contacts" meaning the duplicates to also be included in the Eloqua DB without merging ! Thus we created a second Get Contacts - Secondary auto sync for this.

This auto sync actually brings in all contacts including the winning contacts and the "secondary" duplicate contacts.

That auto sync adds data cards to a CDO called "Contacts - Secondary". Make sure to use SFDC contact ID as unique identifier and email address as a link with Contacts.

auto sync secondary contacts.PNG

The creation/modification of records by this auto sync triggers a program :

This program makes sure that only "winning" contacts are in the standard Contacts object and "secondary" duplicates stay in the CDO.


The resulting duplicates in the CDO "Contacts- secondary" linked to the winning contact :


This allows us for example to segment correctly based on all contacts including duplicates :



How we make sure that we have cleaned up correctly :


1. Check amount of contacts with "Winning contact" = True in both systems is the same

2. Take a random sample of contacts to check data in both systems, using the SFDC contact ID


Now we are able to :

- not use bad data to segment, like job titles for example

- keep the relationship if a contact is linked with multiple accounts

- personalize correctly to a certain extent

- for specific needs like legal communication or operational communication where every account needs to receive communication, we are able to confirm that they received it even though we have 1 contact for multiple accounts.


Conclusion :


This is an example of how you can fix relatively quickly and with very low consequences on your CRM if you have a lot of contact duplicates that accumulated. Of course there are better ways. Our SFDC has been set up for stand alone use 2 years prior to Eloqua implementation. So if you are about to set up a CRM integration with Eloqua, do your home work and start a data & modeling audit to see how it fits together !


Some other ways we could have achieved this include :

- merging contacts (wouldn't work for us for numerous reasons short term)

- using the 1 to many accounts relationship in SFDC using the "Secondary Account" relationship (tutorials available online)

- switching the unique key from email to another field (not recommended by Oracle)


So if you're looking for a short term solution and this one suits your needs, holpe it helped you out !

When implementing Eloqua there were 3 challenges made clear :

1. Email address was the only unique key to be used for each individual contact, mainly coming from our CRM, SalesForce or as we all call it SFDC.

2. There is a 1 to 1 relationship between each contact and an account

3. However we realized our contacts database was composed for about 30% of duplicate contacts based on email address and that we had a bunch of contacts linked to multiple accounts.

Why ? --> Indeed our CRM was built in a way that allowed creation of contacts with the same email address, to allow for example :


- an contact to be shared accross branches of a big account. Say your info@ contat would be linked to 5 different local branches of a supermarket chain

- unfortunately allow a to be created once with a certain role "consultant" for company A and "sales" for company B and so on ...


2 years of SFDC growing data was going to have hard consequences on the CRM and we needed a quick fix because it was having hard consequences on marketing campaigns as well : the ASCIIbetical merging of duplicates via the CRM sync was mixing ALL of the data up ! Think wrong personalization, wrong segmentation, wrong data overall !


SO the goal became this : getting ALL contacts in the Eloqua DB without any merging of data ! That way we could at least segment and personalize correctly until we found a long term solution to fix the data modeling between Eloqua and our SFDC set up


HOW we did it :


1. Obviously first we need to have a SFDC integration. We're using the out-of-the-box Cloud to Cloud connector built by Oracle with SFDC.

2. Built the first "Get Contacts" auto sync that will bring a "winning contact" from SFDC into the standard Contacts in Eloqua. That winning contact is flagged in SFDC following a scoring logic : the more complete, clean, recent contact gets scored the highest compared to all other contacts sharing that same email address and gets the flag Master Marketing Contact = True

The "Get contacts" auto sync is using an advanced filtering in our case, in which we included our winner filter "Winning contact"



Then we need the "secondary contacts" meaning the duplicates to also be included in the Eloqua DB without merging ! Thus we created a second Get Contacts - Secondary auto sync for this

This auto sync actually brings in all contacts including the winning contacts and the "secondary" duplicate contacts

Creating a Stop Light/Touch governance for Eloqua Campaigns


The Request: 

Create a campaign touch governance that would help prevent contacts from being in multiple active campaigns at the same time and/or being over emailed.



The company was bringing to market new products and services and wanted to launch campaign series for each product and service to educate clients and create opportunities for the sales team.

Since the launch dates were within a close time frame and the segment inclusion criteria overlapped, there was a good chance that a contact would be in the criteria for multiple campaigns.

Stakeholders wanted to insure that contacts would not be “over emailed” during this period.  The marketing team also wanted to avoid having a high peak in sending volume during this period, since the included contacts made up a good percentage of the database.  Finally, the sales team wanted to prevent their leads from being entered into new once they opened an opportunity.


Goals for Success:

Create campaign assets that allows Users to exclude contacts that meet campaign exclusions criteria. Using these assets to improve contact engagement and avoid interfering with the Sales teams programs.

Prevent contacts from being over emailed.


Solution Summary:

Phase 1: Implement a Nurture Campaign Canvas template. The goal of Phase 1 was to be able track the amount of active campaigns a contact was in, and apply a segment exclusion for contacts who are in X amount of campaigns.  In Phase 1, we introduced modified campaign canvas templates, segment templates, and campaign count reporting

Primary Assets:

  • (2) Update Rule (+1 and -1 update rule)
  • Contact Number Field
  • Shared Filter (for saving to segment locally)

segment set up.JPG


When contacts enter the campaign the +1 update rule adds 1 to the Campaign Count Field and when the contact exit the canvas the -1 update rule subtracts a 1 from the contacts Campaign Count Field.

The Segment template was configured to exclude contacts that had a Campaign Count field value greater than 0.

NOTE: the Campaign Count Field is a number field and is not restricted to 1s and 0s, so if the campaign team wanted to create a campaign hierarchy, they could add +1,+2,+3, etc.

After Phase 1, we were able to do the following:

  • Stoplight Program: Prevent contacts from being in multiple campaigns at once.  Use the segment to prevent contacts who have a determined campaign governance field value.  i.e. “Exclude contacts who have a campaign governance field with a value greater than 3.”  Meaning any contact that is active in more than three campaigns will be excluded from the segment.
  • Target Eloqua contacts that are not in Campaigns: Design engagement specific campaigns and use the campaign governance field to better target Eloqua contacts and improve engagement.

Campagin Canvas.JPG



Phase 2: Implement a Bi-Variant Campaign Governance. 

Our goal with Phase 2, was to be able to identify the number of campaigns a contact was in and to use CRM Opportunities, Task, and Campaign Member information to prevent contacts who had certain records related to sales activities from being added to a campaign. To achieve this we needed to enhance the Get Opportunities, Get Task, and Get Campaign Member auto synchs.   The data from these auto synchs is stored in a unique CDO and mapped to the contact.

segmetn set up 2.JPG

NOTE: To prevent CRM contacts that are not in Eloqua from being created via these auto synchs. During the upload actions we mapped the CDO to  the Contact using the Lead or Contact ID.

At the end of Phase 2, we are now able to better control the amount of campaigns a contact is in and exclude contacts if they have CRM sales activity related to them.


Phase 3: Implement a Multi-Variant Campaign Governance.

Phase 3 implementation is still in business unit discovery for requirements gathering. The goal of Phase 3, is as we are developing more specific and personalized campaigns, we want to be able to have segmentation that better targets contacts that should receive the content.



  1. Regulate the amount of campaigns a contact is in.
  2. Regulate a contacts inclusion or exclusion in campaign based on CRM sales activity.
  3. Have the assets and data available in Eloqua to for better segmentation.


Solution Assets:

  • Update Rules
  • Custom Data Objects
  • Auto Synchs
  • Shared Filters
  • Campaign Templates
  • Segment Templates



The results we saw were the following:

  • More level sending volume.  With the batch and blast and broad segment criteria, during previous product and service launches we would see peaks and troughs in sending of a +100,000 and -100,000. After implementation, we continued to see volume level out as volume increased.
  • Higher engagement with product release campaigns.  Since contacts were not receiving emails from multiple streams, they were able to engage with a specific product or service without being overwhelmed with unrelated emails.
  • Sales reported better engagement with the clients in their pipeline.


Helpful Luminary Courses and Topliners post:

B2B: Engage & Enrich, B2B: Convert with Custom Objects, and B2B: CRM Integrations

Topliners Post:

As a data minded, marketing professional I’ve come across a very important marketing principle in my travels across the B2B and B2C marketing universe. That principle is the proper tagging and segmentation of marketing data. Every successful marketer knows that good data makes a successful marketing initiative. The three key areas where I’ve seen good data have a HUGELY positive impact on is Data Capture, Data Transfer and Data Reporting. See! I told you I was data mined. I’m going to share the knowledge and successes I’ve seen in each of these areas.


Data Capture – Or otherwise known as Lead Generation!

This may seem like a straight forward area, but it isn’t. When gathering information whether it be on your web forms, webinars or even tradeshows you can’t stop at the data that the prospect/customer provides you. You must take the data they provide and create a clear picture of the person. This clear picture will determine if they are the right fit or not. How do you do that you ask? You can accomplish this by adding and tagging additional information that will allow you to better segment and bucket your leads.

For example, if they provide you that their title is, Director of Process Improvement, it’s important to break the title out into two meaningful parts: One being title level and the other being buyer persona. Through marketing automation, you can tag additional fields with their respective title level and buyer persona.

The more you can use the existing data to your advantage the more meaningful picture you can create. This will allow you to take that data and send the right people down the right path the moment you gather their data, almost like PLINKO for Marketing Data!


Data Transfer – AKA the ever-important handoff to sales!

This area is one of the biggest struggles I’ve seen in my years of marketing. This ties directly into my first point that if you don’t capture and provide it to the Sales team in the right way, it can seriously affect the outcome and ROI of the marketing events that are run.

In my opinion, the best impression we can make as marketers to our sales counterparts is with clean, accurate data. Don’t get me wrong lavish customer dinners, amazing tradeshow booths and fancy websites are great, but what do each of those items have in common? That’s right… Data!! What does the sales team see on a daily basis (we hope) from marketing? That’s right… leads in their queues. Now imagine if you only put the right prospects in your sales teams with the most meaningful picture in their queues, how great would that relationship be? I’d say you have one foot in the door to having your leads followed up on faster and more effectively. A happy Sales Team member means a healthier marketing ROI!


Data Reporting – This one’s is exactly what it says it is!

In a perfect world, every CFO and CMO would allocate their marketing budget in their highest performing areas to get the most bang for their buck. Without accurate reporting this is an impossible task. What if I told you it’s totally possible but without hours upon hours pulling manual reports from 4+ different technology system! How do you achieve this you ask? Through tagging and proper segmentation!

Being able to identify your KPIs and metrics for reporting will allow you to best decide how to best tag and segment every lead that goes through marketing’s hands.

For example, it’s important to show what marketing program the prospect was generated from and that it directly affected sales revenue. But, if that’s all the data you have, you can’t make it repeatable or even make it more cost effective. Now, if you could tag the prospect at every crucial moment in the Lead Gen process and the date that moment happened you’d have much more data to report on. You can now look at your data in two new ways: one being accurate conversion rates and the other being conversion velocity. Each of those two directions can help you take a better strategic approach on your Lead Gen process.




In conclusion, good data is more important to marketing than you think! Even adding a few extra fields/data points can drastically improve your whole marketing approach. This helped our company immensely when sending more accurate and qualified leads to our sales team resulting a very measurable impact on the bottom line.

As many marketeers (especially in a B2B environment), we spend a lot of time and a lot of money on managing events.

A lot of our marketing colleagues are requesting a decent customer experience, and that always involves having confirmation Emails with QR codes.

In our case, it usually means outsourcing it to some event company that marks you up for a big price to use 'their' scanning mechanism and mark attendance.


So, this is our way of working out our own QR code generation, scanning and attendance.


In essence it uses a combination of known elements :


- Images in e-mails

- Field merges

- Blind form submits

- External events


Let's start with the creation of the QR code :


The code for the QR code is really simple.

We use the freely available API form google that allows you to dynamically create an image out of it.


QR CODE Source Code
<img src="" class="">


The only components you ever need to change are:


1) 'chs  =  size  x  size'

We've used 200x200 for columns and 300x300 for full width images. That seems to do the trick well.


2) 'chl  =  YOUR VALUE'

Here you edit your values that you want in the form, obviously you'd want to put something dynamic like a field merge.


As a next step, what you want is a blind form submit to be triggered from this QR code.

It's in essence the exact same as a regular blind form submit, only that it's now embedded in a slightly larger link, within image brackets.


As a refresher, blind form submits are made up like this :

Blind Form Submit


This now to be added into your QR code, making the total look like this, with all the bold segments things that you need to define:


Blind Form Submit Embedded in QR Code
<img src=";cht=qr&amp;chl=;choe=UTF-8" class="">



Next, in your form (yourformname ..) define the appropriate processing steps:


- Add to shared list

- Add to campaign

- Redirect to webpage


This really depends on how you prefer to work.

If you want to apply the external activities in an already existing campaign, make sure to add people to a shared list so you can filter on this criteria in your campaign.

If you want to do this in a mini, specially dedicated campaign, you can 'add to campaign' from the form processing.


For your confirmation page, something i find helpful is an 'auto-close' script.

It shows the confirmation and automatically closes the tab, so you can go back to scanning QR codes.


We usually paste in in the <head> section of the landing page :


Autoclose Javascript

  <script type="text/javascript">

function closeWindow() {

    setTimeout(function() {


    }, 3000);



    window.onload = closeWindow();




The 3000 in this case translates into 3 seconds. You can set the time as you like.


Next the only thing you need to do is mark the external activity in your campaign, and any subsequent actions the are generated from 'attending' an event for you personally.


In order to get this working, you need to scan the QR codes in the email with any QR code app on any type of smartphone that has an internet connection.

It will scan the code, do the blind form submit, redirect to the confirmation page that will close itself.

In the back-end, your contacts are marked as 'attendees', both in your shared list(s) and on external activities.


By setting up this loop yourself you can avoid paying some fancy agency, and run the entire event / QR game yourself with a standard smartphone!


Good luck out there !



In our organization, we are supposed to send a weekly newsletter to different regions with their language preference. We are sending the newsletter in English, Spanish, Portuguese, Traditional Chinese & Simplified Chinese.


Marketing Challenge


We have our Internal news page, where Country Marketing Managers can publish their region news with their related region. We have to pick the news from the Internal link, edit the news & mark the trade which is related to their region.


Previously, it was very difficult for us to send the Campaign by using Email template (through Insight), because sometimes it was more than 15 news & we takes lot of time for aligning the content in Email for different languages & regions.


Since it is a more informative newsletter (with lot of content), sometimes we mistakenly skip one news or update the wrong language in the email. It results in a poor user experience and they also get wrong/missing information.




The approach is to personalise the campaign by using Dynamic content through Eloqua because it is very difficult for us to manage all the content in Email if the campaign in different languages with different interests/regions.


Necessary Steps

1. Created the Contact field for Language Preferences & Region Preferences.


  • Go to Setting
  • Create the Preference Picklist by clicking Manage Picklist --> New Picklist

  • Click on Field & View
  • Add the Contact Field for Language Preference & Region Preferences & select the field type as picklist/multiple-picklist & select the appropriate list which you have uploaded. (Refer Screenshot-2)

  • You can cross check the fields by clicking Contact Overview



2. Create Subscription Management Page

  • Create the Subscription Management form
  • In "Update Contacts - With the Form data", the source field should have to matched with Target field.

  • Add form Processing Steps

  • Send Submitter an Email (Select "Thank You for Subscribing" mail)
  • Send Notification Email (update your email address & update the subject, if you require any notification regarding the Subscription)
  • Redirect Webpage (You can add "Thank You for Subscribing" Landing page & also can redirect the Landing page to your website after few seconds)
  • Click on "Save" button


3. Create the Subscription Management Landing page


or integrate form HTML into your website by clicking view form in HTML




4. Create Dynamic content for each news section & set the Dynamic content rule for the languages by using logic. We have add "Compare contact field" with their Interest level & language preferences in filter area and placed the Dynamic content in the Email





So, whenever I am updating data in Spanish, then the content is reflecting to Spanish customers only with their Interest level. It helps me to place the content, i.e. each news section of languages in one Dynamic content only by creating the Content Rule & using logic for the interest.


5. Send test mail to your id.


  1. I have subscribed for Spanish language & selected "Africa" region so in the preview, Spanish content get reflected
  2. Those who subscribed for other language & selected "Transatlantic" region, cannot able to see Dynamic content because the content is available for Africa & Asia-Europe customers only
  3. Those who subscribed for other language & selected "Asia-Europe" region, can able to see Dynamic content in their respective language.


6. Update your Segment

I have updated the segment according to Language Preference & Region


So, when I am activating the campaign & select the appropriate language segment then mail is going to right customers. i.e. Spain customer who subscribed for Spanish language will get Spanish version email.






In our company, every subscriber will get the correct email with their region and language preferences. It helps us to send emails / newsletters all over the world with minimum errors and it helps to build the campaign quickly. It provides a great user experience.


It helps us to reduce the steps to update the content in the Email and also reduce the time for aligning the content in Email. We can easily drag & drop the dynamic content in the Email.




Dynamic content is playing a vital role in the Eloqua System. If you are sending newsletters globally, then it helps you to set the rules and logic for your preferences instead of playing around with the email content.


The impact on business is we are able to personalize the campaign by using Dynamic content, so mail will go the customer properly with their interest level and language preference. It reduces a lot of time, because in one asset we are updating content of all languages.


Eloqua 10: B2B: Fundamentals, B2B: Engage & Enrich, B2B: Fundamentals Introduction, B2B: Profile & Target courses were helpful to create update rules.


Sometimes it’s necessary for regions to use external web pages to capture form data. Especially when you have multiple CRM’s and Marketing Automation Systems. I primarily work in Eloqua, and that is our Global Marketing Automation Tool at Sage, so we wanted to gather all form data in that system.

My recent project required that we send confirmation emails with event details to registrants, using Eloqua. We also wanted the leads uploaded into the standard CRM. These registrations were captured on a landing page and form that were not linked to Eloqua. 

We chose to use hidden fields from that external form (using the HTTP post method) to populate field merge data into the confirmation emails.

This, provides a quick, easy and simple solution for email deployment while they move to our Global Eloqua instance. In the example below, you’ll find a way to do this and save time during your transition.

The Problem

I wanted to import registrants into the CRM, update their lead score and finally send an registration confirmation email. Stakeholders did not have a fully defined process and the tools in place were not available to integrate directly with Eloqua.


I suggested hidden form fields be placed on the External Landing Page along with the usual fields. These hidden fields would contain values like:

  1. campaignID=" + "Campaign ID Value"
  2. product=" + "Non Product Line Specific"

Then the HTTP Post method is used to submit event details for each form submission. This is done via some custom Jquery code placed on the page.

The Jquery script used looks like this:


I captured the CRM campaign ID on the form in Eloqua. I then used Eloqua Form processing steps to update a Custom Data Object (CDO) with the event details.

A processing step deploys an email to the submitter with field merges, using data from the CDO.


The Field Merges

For each data point about the event necessary in  the email a field merge was created from CDO (event name, event description, date, calendar file URL, etc.). This field merge used the last created information, so the contact will receive their registration confirmation email with the most up to date information from their latest form submission.

The Email

A generic email with simple copy and field merges  was used for all of these registration confirmation emails. I only had to build one, and now it’s used for all registration confirmations. It looks like this:

The Form in Eloqua

I set up a standard form in Eloqua to capture the data from the Landing page. I made sure that my HTML values for each form field matched those that were on the page. Then, I tested to make sure all of the information I required was being passed correctly.

Modifying the Landing Page

I didn’t have access to modify the landing page myself, so I had to work with a developer. The page needed the webhook, HTML field names and hidden values to process upon submission.

When the form is submitted for a specific webinar, the Jquery code above matches the campaignID  based on a URL query string, to capture and pre-populate the hidden fields with webinar information. In the form submission, the hidden fields are passed with the form submission to Eloqua  via the webhook and email is deployed in the Eloqua form processing steps.

Note: The data in the URL query string must match the value in the ID listed in the JQuery code within  the landing page., IF the wrong identifier set in the hyperlink, event data won’t appear in the page and no registrations will occur.  Therefore, it’s important to place any data in your jquery script on the Landing page prior to deployment.

For this project, the most helpful Eloqua courses for understanding the related functionalities to implement this solution were B2B: Convert with Custom Objects and B2B: Engage & Enrich. It was also important to have Eloqua Help Center to research Creating custom objects and Creating field merges with custom objects.


With a few assets created we could keep using existing tools with no changes applied in any of the interfaces, all leads running in the new infrastructure and a personalized and tracked email sent to subscriber for each event subscription. This was required by the stakeholder.

The Challenge: Building a Scalable Trial Program


As a SaaS technology provider, it is key to be able to offer a trial or demo environment in the buying journey to provide your potential customers with a hands-on experience of your solution.

If your organization has a global reach and is likely going to see an increase in the volume for trial requests while still providing a good customer experience, it is key to look at how you can automate this process as much as possible and not rely on scarce sales technicians or manual steps.


This was exactly the challenge faced by our global organization in bringing an innovative new interactive learning platform called Collaborate to the market. A key bottleneck in the marketing-sales process was that prospects wanted to have a trial of the solution to test it out with their team. Due to the limited band-width of our sales engineers, only a handful of trials could be initiated every month which caused our lead funnel to stagnate. Furthermore, the manual approach meant that requests for trials took over a week to be fulfilled – well beyond the reply in 24 hours best practice for these types of requests.


My Global Demand Center team and I started to look at building a new approach that could handle the volume of requests and could be used by both our own field and web marketing teams as well as our channel partners.


Objectives for a new trial program

We had various objectives with regards to the new approach:

  • Build a 30-day trial initiative to help promote our new Collaborate solution
  • Increase the volume of trials and leads, moving from 10 trials a month to 50.
  • Enhance the prospect experience by improving the communication and shortening the setup time
  • Strengthen our promotions across multiple channels and track their results


Building the new approach

To move away from a manual procedure, we first scheduled cross-functional discussions with Sales, Sales Engineering, Product Marketing, and Product Development to analyze current trials, data needs, to decide how an ideal situation would look.

We built out a comprehensive process in Eloqua based on the results of these discussions. It has 5 key components:

  1. Multi-channel promotions
  2. Trial request capture
  3. The trial experience
  4. Trial Nurture Campaign
  5. Trial Lead Scoring


Collab Trial for Blog.png


1. Promotions

To support the promotion of the trial we set up various inbound and outbound campaigns. To track the effectiveness and the origin of these campaigns, we use querystrings with UTM parameters. All links point to a dedicated trial request microsite.

Since our organization is working with channel partners in many countries across the world, using these querystrings is also key to determine the origin of the leads so that we can track down which partner initiated the process.


2. Trial Request Capture

All campaign promotions point to a dedicated trial microsite with an Eloqua form. The Eloqua form captures the contact information and querystring/UTM parameters. As part of the processing, a number of steps are taken:

  1. Contact and UTM details are captured
  2. Unique tracked trial links are created
  3. A record is created in Custom Data Object to hold the trial links, usage counters, and trial status
  4. A confirmation email is sent to the requestor with blind form submit links to the trial experience.
  5. The contact is routed to a confirmation page with more details about the trial initiative and the solution.


3. Trial Experience

When the prospect signs up for the trial, they receive a confirmation email with unique links that act as a blind form submit and route the prospect to the trial experience. Once they click the link, the status of the trial is set to ‘activated’ and the usage counter in the custom object is increased.


4. Trial Nurture Campaign

To promote the usage of the trial, the prospects are entered into a 5-step nurture campaign after signing up for the trial. In this nurture campaign we explain the new Collaborate solution, show key functionality, and case studies. In the campaign canvas we have set up several checks to verify if the contact has already activated the trial and differentiate our communication based on that.


5. Trial Lead Scoring

To address the increase in volume of trial requests in a scalable way, we implemented a dedicated lead scoring model to help identify and prioritize quality leads. On the profile side we looked at seniority of the contacts, type of organization, their regions, and if they were using their company email or a free email address. On the engagement side, we looked at the level of engagement with the trial itself and the nurture program.


Conclusion and Considerations

By implementing this integrated and automated approach, we have been able to vastly increase the number of trials and leads for this solution and generate opportunities well over $1M. We exceeded our initial benchmark of 50 trials per month and we now handle well over 500 per month.


Due to the increased volume, it’s key to pay close attention to the buy-in from your sales organization. As they will be receiving the leads from the trial initiative, it’s important to use lead scoring to filter the good quality leads from the poor ones. We review our trial lead scoring model on a regular basis to further optimize it.


Courses that inspired us and which are useful for you if you wish to adopt a similar strategy:

  • B2B: Engage & Enrich (Personalizing Campaigns)
  • B2B: Profile & Target (Data Cleansing)
  • B2B: Prioritize & Process
  • B2B: Convert with Custom Objects
  • B2B: Develop & Design (Blind Form Submits)
  • B2B: Program Canvas

The Challenge

Entering an Enterprise Eloqua Instance can be an intimidating task, especially when you only have a short amount of time to gain as much knowledge as possible. To correctly target your campaigns and programs, one essential area to understand in the new instance is the database. The instance we entered had multiple programs, auto synchs, rules populating lists, inconsistent naming conventions, and inconsistent data, as well as a lack of understanding of the current segmentation setup.



The goal was to understand the current segmentation setup to continue to deploy campaigns, document the current segmentation to determine where fixes were needed, improve/fix those issues, set up consistent naming/foldering, and create ongoing segmentation documentation.


Documentation of Current State

In order to understand the current segmentation setup, it was critical to document what was currently in place, how/when each list or filter was last updated, and whether it was accurately segmenting the database. Below is an example of the documentation that was created. The key information we included was asset type, accuracy, how it was updated, timeframe of updates, what segmentation it should be used on, and a brief description of the filter/list for someone to easily understand.


To initially create this documentation, it was crucial to check the dependencies for each list. From there we were able to identify where processes and programs were broken, what we could easily fix or modify, and where we needed to create a new process/program.

Note: If you do not see any dependencies for a list, check your auto synchs to see if the list is being populated through a synch.



After documenting the current state of segmentation, we were then able to make the fixes needed, create new templates, shared lists and filters, implement a consistent naming and foldering structure, and document segmentation moving forward.



After checking the dependencies of each shared list, we were able to identify where there were issues, such as missing prospect groups, incorrect match rules, lookup tables, etc.

One example was how National Accounts were being labeled. There was a program that pulled in any new contact to the system and used a match rule to identify if this contact was in a National Account, and then added it to a shared list. However, the prospect group had zero values. After reviewing the broken process, we determined there was a more up-to-date way to identify National Accounts, matching based off Email Address Domain instead of Company.


New Templates

Working in an instance with high-volume campaigns, segment templates were critical. To create new templates, we reviewed the previous segments for specific campaign types (i.e., events, newsletters, transactional messages, promotional emails) to see where changes were needed. Examples of segment templates to create include customer/prospect newsletters, prospect promotional emails, customer/prospect events, etc.

Note: When creating segments, it is not only important to determine who should receive this type of messaging but also who shouldn’t. Defining who shouldn’t receive the message will help to determine which exclusions need to be applied.


Consistent Naming and Foldering

Creating a naming convention can be challenging, however, investing time to define a consistent naming convention is well worth the effort as your database continues to grow. As the volume of assets increases, having a consistent naming convention will make searching for assets related to a specific campaign very easy.

After you have determined your naming convention, it is critical to consistently apply the convention to hierarchies for folders, emails, forms, landing pages, segments, campaigns, shared lists, etc.

Below is an example of a naming generator that was created for this instance.


To create this naming convention, we looked at:

    • What message was being sent
    • What geographic or location-specific messaging was deployed
    • What date information was important for the company (i.e., year, quarter, month, date)



Creating documentation on your segmentation and counts can be helpful to see the status of your current database, as well as the ability to analyze your segmentation over time. Below is an example of the documentation we created for this instance, which includes the email name, record type, geolocation, message type, inclusion/exclusion criteria, and the approximate send size.



Documenting segmentation information gave us the ability to see how counts fluctuated on a weekly/monthly basis and over message types. This also gave us the ability to identify if there may be an issue with the database if we were to see a large increase or decrease with specific counts. For example, below is a weekly view of segment counts for a specific message type. By documenting this information, we were able to identify a 20K drop in counts quickly and dig into the decrease.



Eloqua Courses

  • B2B: Data Cleansing
  • B2B: Profile & Target
  • Describe the marketing challenge you were trying to solve with your campaign or strategic initiative.

    In our organization, we are supposed to send Weekly newsletter to different regions with their Interest & we are sending the newsletter in different languages apart from English.

    Previously, it was very difficult for us to send the Campaign by using Email template and we takes lot of time for aligning the content in Email. With the help of Eloqua, I can easily built the campaign & personalise the campaign by using Dynamic content.


  • What goals did you set at the start of your campaign to validate success?

    The goal is to personalise the campaign by using Dynamic content because it is very difficult for us to manage all the content in Email if the campaign in different languages with different interests.


  • How did you benchmark or document your current state?

    Benchmark not applicable.


  • Describe your campaign or initiative and the steps you followed to implement.

    We have created the Dynamic content for each news section & set the Dynamic content rule for the languages by using logic. We have add "Compare contact field" with their Interest level & language preferences in filter area and placed the Dynamic content in the Email.

    So, whenever I am updating data in Spanish then the content is reflecting to Spanish customers only with their Interest level. It helps me to place the content i.e. each news section of languages in one Dynamic content only by creating the Content Rule & using logic for the interest.

    It helps us to reduce the steps to update the content in the Email & also reduce the time for aligning the content in Email. Because, we can easily drag & drop the dynamic content in the Email.

    We integrate our CRM with the Eloqua so whenever any customer change their preference. It will automatically get updated in the Eloqua. In Eloqua, with the help of Segment, we can easily send email to Target audience.


  • Which marketing cloud courses have directly influenced this campaign?

    Eloqua 10: B2B: Fundamentals, B2B: Engage & Enrich, B2B: Fundamentals Introduction, B2B: Profile & Target courses were helpful to create update rules. Also some part of integration with SFDC.


  • How has this campaign impacted your business?

    The impact on business is we are able to personalize the campaign by using Dynamic content so mail will go the customer properly with their interest level & language preference. It reduce lot of time because in one asset we are updating content of all language.

Process Challenge


We as a service provider have to create Campaigns, Forms, Programs, CDO and all of their related objects based on the client requirements and brief. We have a Master Form for content download which is available on the company website to capture the progressive fields as such multiple Region of operations, Interest and their Primary Need for business purpose. We used conditional processing steps in the form to update/create contact field with the given static values to update the complete record of a contact. These conditional steps cause the form to take a long time to process and as such it is breaking our progressive profiling solution.




  • To achieve Progressive Profiling using Program Canvas by implementing custom objects decision with update rules.
  • To increase better Form conversion rates.




The solution to do this is to bring the data captured on the form into a custom data object. We can then use this to run some conditional update rules to update the contact table with a program canvas. We need to create an update rule per conditional step on the form.


Below are some of the progressive fields and it's conditional steps to append the respective static values:



Step 1 :


Our first step would be to create the CDO to capture the data gathered on the form. Always create the CDO with the right description and name so we can understand why we are using it.


Then create the custom object record fields for which we need to collect and save the data from the form finally, the CDO has to be Enabled using "custom object record service" by adding general Form submission shared update rule once the necessary custom fields are added.


Step 2:


To create Update rule : Tools -> Data Tools -> Update Rules

An example is shown below where the update rule would be to append the value of Africa to the field CH Region of Operation. Please name these rules with the convention Set Fieldname – Value. So using the below example “Set CH Regional of Operation – Africa”. We need to create other update rules for rest of the static values that need to be appended. I have shown only one here for reference.



Step 3 :


Once the Update Rules are all set now we can create program canvas to compare the custom data object which we collected through the form with the created update rules. By creating the program in such a way it will compare all regions for a contact based on the decisions in a program. Similarly, we need to create separate programs for Interest and Primary needs.



The Listener source should be updated within the Form processing step as "Add to Program" and select the respective program name: "CalculateRegion" this will route the contacts from the Form to the Program Canvas for further processing.



A complete canvas for all the given region will look like the below one :



Since we used the compare custom object decisions to mimic the conditionality present on the form it has helped us to increase the Form conversion rates in a short span of time. As an outcome of this process, we have had Quality contacts which can also be used for targeting the right audience for our future marketing campaigns - so, yeah we achieved Progressive Profiling!!


The courses that were helpful from the Oracle University Marketing Cloud are as follows :


  • B2B: Fundamentals
  • B2B: Program Canvas
  • B2B: Convert with Custom Objects

The Request

Run a training series (around 15 of them), all in different cities all on different dates. The stakeholder requested to have only one form with all the events listed and attendee will select a training session from the drop-down within the form 


The Challenge

Here comes the challenge, they requested to get all the attendees to go under different unique campaign identifiers so different teams within different cities could respond accordingly.


The Resolution

Alternate Option: We can use javascript to send different campaign id and event details with registration data; It is easy but will show the CRM campaign details if someone is searching for it.


Our Preferred Option: Use the Eloqua platform and its functionality to get the result; It is more complex but secure.


The Solution

Upon form submission, the event name is used to update multiple fields in the database using “Shared Update Rules”.


Step by Step

Assumption: The user has a basic knowledge of using Eloqua forms


1 - Create an HTML form with the dropdown list. Define name and values for those value will be used to drive values t in upcoming steps.



2 - Set up processing steps.


3 - Add “Update Contact - With Custom Values”



4 - Add the appropriate update rule is  the “Apply Shared, Update Rule”


4.1 - Go to Contact> Tools > Form Update Rules and hit new button at the top right corner of the page

4.2 - After click on the new button the popup will open with option to “Add Shared Update Rules Set”


4.2.1 - Complete the “Update Rule Set Name” field with a Name that is consistent with the form name so they can be easily associated if they need to be edited in the future.


4.2.2 - Select the data field to identify the contact. For this example, we will use “Email Address” then add the rule.


4.2.3 - Click on “+ Add Update Rule”Select the field selection list icon

4.2.4 - In the“Entity Field Search” popup, search for the field needed to update. In this example, we will update a Campaign ID (Unique Identifier) and Content Name.


4.2.5 - Select the field to update.


4.2.6 - Select “Set to Value” option in the “Select an update action” and add the value to be amended and hit “apply”.


4.2.7 - After hitting “Apply”, the preview will show the action. If looks correct? click save or “add more” to add more rules.


4.2.8 -Now complete,  add the Update Rule to your form processing steps.


6 - Select the update rule and hit “Apply”. The rule will now appear on the processing step

8 - Lastly, add the condition to trigger the update. Click on “Conditionally” and add the condition by selecting the field name listed


9 - The condition will depend on the value passed from the HTML form submission.  In this example, the condition is if an attendee has selected the “Atlanta” event.


The Result

Upon selecting Atlanta (or any city) in our scenario, the Eloqua form processing will update multiple fields. The contact can now flow into a designated shared list as well as a CRM system correctly attributed to the selected event.


This will make the experience for selecting an event easy for the contact without javascript or any front-end scripting on the landing page. The team is able to have a single form and landing page for their multiple event campaigns and correct segmentation and attribution is achieved.


One of the biggest benefits of using Update Rules is that internal data changes are  handled through Eloqua and not exposed to the attendee. Their view and experience is seamless.


Lastly, in the future if more field updates are requested by our stakeholders, we can easily add that in update rules without even touching the front end.

There are many reasons companies could have multiple instances of Eloqua, such as companies merging, or one company being bought by another company. Along with multiple instance of Eloqua, companies could also have multiple CRMs.


The Challenge . . .

We wanted to ensure that data gets passed from one instance of Eloqua to another, and that the required data gets passed . . . the fields required by the different CRMs will probably not be exactly the same, and you want to make sure your sales team has all of required the data they need. Further, some fields could have different formats in the different instances.


This is how we solved this challenge at Sage, using Eloqua.


1: Identify the Correct Instance

We created a program in Program Builder to check a contact’s product. If the product on the contact record is one that needs to pass to another instance of Eloqua, we would pass that contact to a special Campaign Canvas.


2: Send the Lead to Program

Once the contact is passed to the Campaign Canvas, we send that contact to a Listener step on a Program Canvas.



3: Amend and Match the Data

We use Update Rules to update the contact’s details. As an example, we’re adding the unique campaign identifier and the country format needed in the Local Eloqua instance. In the Program Canvas, we check if the contacts are members of a couple of shared filters – and if so, we append a specific SFDC Campaign ID and the Country (in Sage’s Eloqua instance, the SFDC Standard Country must exactly match values from a picklist . . . but, in the Local CRM, the Country field must be 2-digits).



4: Passing to the Local CRM

After all qualifying criteria are passed, we at last pass the contact to the Local CRM.



Once those update rules have been run, the Campaign Program passes the contact to a Form Submit step.


On the Form Processing Steps, we added the step “Post Data to Server”, and set this to Constant Value. The Constant Value looks something like this:


5: Field Mapping

On the form processing steps, in the Field Mappings section, be sure that the Target Fields are entered correctly for the instance of Eloqua that you’re posting the form data to. Most likely the field names are not the same in both instances.


Be sure to test, test, and test again. Check the Local CRM to ensure that the data is passed correctly.


Here’s a snapshot of the solution we built with Eloqua:




One of the great things about Eloqua, is that it’s flexible enough to provide different ways to solve for the issue of multiple instances of Eloqua. There are other ways to do this, and as I learn more, I’m further pushing the boundaries of what Eloqua is capable of.


One of the Eloqua courses I found helpful was B2B: Develop and Design, Advanced Editing and Form Processing section. B2B: Program Canvas.


At Sage, we deploy campaigns across the globe. These global campaigns may contain newsletters or emails that get sent to contacts over many different countries.


This poses a problem as implementers can only select one email footer to use. Our email footers contain social links and other details specific to each region so what email footer do we select for a Global campaign? We don't want a contact from the United States to be receiving an email footer containing content for the United Kingdom thus resulting in a poor user experience. 

As a result many contacts might receive incorrect social links, terms and conditions etc. in their email footer.


In the case of Sage, there are 62 English speaking countries which could be affected by this including US, Canada, Australia, Singapore, Dubai, Malaysia and all African countries.


The solution was to build a global dynamic footer using dynamic content in Eloqua. This dynamic footer would search for the country field for each contact in Salesforce, and display the relevant regional footer for that particular user.


Creating the "Dynamic Content" in Eloqua


  1. In Eloqua navigate to components > Dynamic Content.
  2. Create a new dynamic content rule and give it a name. We called it: ‘Global Dynamic Footer - (English) Social’. Next we need to create the individual rules specific for each country.
  3. Click on the plus symbol and give the individual rule a name Eg. Canada, add a ‘compare contact field’ to the rule.
  4. Set up the compare contact field as follows. ‘SFDC Standard Country’ > exactly > (Country Name) Eg. Canada.
  5. Next add the footer specific to that particular country into the content area within the dynamic content. This may include your company logo, social links etc. 

  1. Follow steps 3, 4 and 5 for any extra rules you may want to add.
  2. If you have multiple countries with the same footer such as all African countries you can create a picklist with all African countries listed within the picklist. You can then select that particular picklist in the ‘compare contact field’ rule.  


  1. Save your dynamic content.





This dynamic content can now be used to set up an email footer that implementers can select when creating an email in Eloqua. Future possible updates for this may include footers in different languages such as French or German or can be used in email headers as well.




This process is live globally at Sage, and has been used on all Global campaigns covering 62 countries since it was launched. It allows us to send emails / newsletters all over the world with peace of mind knowing that contacts from many different regions all receive the correct email footer every time. This provides a great user experience, and keeps our customers and prospects coming back to our sites and staying engaged. This is our primary focus.


After watching the B2B: Relevance and Retention course it helped me understand the importance of user relevance and how a solution like this could be so impactful.  

GDPR compliance presents challenges to organizations, especially if they operate in multiple countries.


As GDPR compliance D-day was approaching, Sage was still in the process of unifying all of our marketing tools in different regions to a centralised structure. For the particular case of Spain, which hadn’t yet migrated to the global tech stack, the challenge was to automatically inform the owner of the local CRM when a Spanish contact unsubscribed in the central Eloqua instance. They could then unsubscribe that same contact in their local system.

Automation Solution

The approach we took was simple and easy to implement.

Each time a contact unsubscribed globally, the following had to happen:

  • A notification email would be instantly sent to the owner of the local CRM system.
  • A Google Sheet would be dynamically edited with a new row containing the data for that particular record as well as a timestamp.
  • Local stakeholders would follow their standard procedures to unsubscribe the contact from their local systems.


A Program Canvas was used to allow contacts to enter more than once with a recurring segment. Here's the complete flow:






  1. The relevant data of globally unsubscribed contacts from Spain needed to be continuously pulled in by a segment in the canvas each time a contact globally unsubscribed from our Eloqua instance, and contacts should be able to enter the canvas more than once, in case their subscription status changed.

    The segment criteria was configured like so:


  2. We used the cloud app Form Submit action.


    This is the configuration window for that app:


  3. The Eloqua form the data was being submitted to, as described in the previous step, was configured with just two fields: Email Address and Country, and the form processed each record with just two actions: Send Notification Email and Post Data to Server.


    For the first action, Send Notification Email, a simple email template was created which included a field merge that pulled the unsubscribed contact email address, as well as a link to the Google sheet for further reference.

    The second processing step in the form is Post Data to Server, by which we re-post the Eloqua form data of each unsubscribed contact to a Google Form which is configured to add this as a row to the Google sheet which in turn adds a timestamp each time a record is submitted.

  4. The Google spreadsheet was used to keep a record of unsubscribed contacts, as local stakeholders dealing with opt-outs did not typically have to have access to Global Eloqua. Still a “move to shared list” step was configured in the Eloqua canvas in case future actions needed to be carried out with those unsubscribed contact, as well as a Form Submission Errors wait step.


The results

This simple integration leveraging various Eloqua functions allowed us to continue performing our marketing activity safely both locally and globally, without losing pace or business opportunities. There was no extra investment required. It also allowed us to give all stakeholders an answer to their concerns and provide them with a clear process in a transitionary period when the management of customer privacy across our systems represented a big challenge.



This is an example of a relatively straightforward configuration of an Eloqua Program Canvas, form processing steps and integration that serves an important purpose.


In our case, the data that we required to be submitted for each unsubscribed contact was just the Email Address and the Country, but other fields could come into play if required, like Name, Phone Number, etc.


Integrating Eloqua with other applications, such as Google Forms can be used for tons of business use-cases. The possibilities are endless. I encourage you to dive into these Eloqua functionalities and maybe explore their integration capabilities with other applications to expand the possibilities of automation in your business.


I will also be happy to answer any questions or hear any ideas you might have to take this a step further or apply to your project.

The influence of the Oracle Eloqua Luminary courses

The Luminary courses that have been of great help to me to come up with these ideas and also apply basic functionalities are many. I would highlight the following:


  • B2B: Convert with Custom Objects, especially the Configure Campaign Canvas module where a great example of the use of the cloud app form submit action is explained
  • B2B: Prioritize and Process



"To err is human." Eloqua is very powerful and flexible, but behind the tool, there are people so mistakes happen.


Even though at Sage we have very clear and well documented processes for every type of campaign, there are so many details to consider that is easy to overlook something.


Inevitably, during some time, we dealt with some common mistakes when launching campaigns, like using wrong segments, building emails or landing pages with incorrect or broken links, having issues with the email rendering on certain devices, etc. But soon, we realized that in such a big company, with so many customers and with our high volume of launched campaigns, we needed a better solution.




We designed and implemented a mandatory internal QA process that is able to dramatically minimize the number of errors in campaigns, catching most potential bugs before activating them.


Any company that launches online marketing automation campaigns could use this as a template for their own QA process.


How we built a QA process for Eloqua assets


Our QA process at Sage is used both to spot bugs and as a reinforcement of best practices. The ultimate goal is to increase our quality standards to improve our customers overall experience.


We built a 5 part checklist on an Eloqua landing page that can be referenced by the Marketing Automation Specialist who is conducting the QA. The 5 parts are:

  • Canvases
  • Segments
  • Emails
  • Landing Pages
  • Forms


Here’s the most common elements that we check before sending campaigns at Sage. You can use these as a basis for your own QA checklist.


   Main screen of our QA checklist.


Before diving into the checklist for each element, is important to understand what was needed by the stakeholder that requested the campaign and what was built by the campaign implementer. In order to achieve this a proper communication between all involved parts is essential.



  • Check that the logic on our canvas makes sense and will work. For example, we check for unrealistic email send dates, like 14 months in the future…
  • Check that the correct assets have been selected for your campaign. A good standard naming convention for campaigns and assets was really useful for us.
  • Make sure the correct time zone has been selected. This is especially important while developing campaigns for multiple countries.
  • At Sage, we require wait steps before and after the emails so if there is an error we can move contacts backwards or forwards easily.
  • If the email contains a field merge or dynamic content that pulls data from a Custom Data Object (CDO), we use an evaluation step that is added before each email step to check if the contact is in CDO and if the field that is being used is not blank



One of the greatest features that we learnt through the Luminary Course is the Contact Level Security function. This has allowed us to limit what users can impact specific countries. For example, our European users can only launch campaigns to European contacts. This is something essential to guarantee the compliance with the GDPR and to avoid massive mistakes when using segments.

    Screenshot of the Security Labels that are considered by the Contact Level Security Group


  • Check that there are contacts in the Segment that will be used in our campaign.
  • Make sure that the Filter Criteria make sense and are adding the correct contacts.
  • Ensure data uploads are completed correctly and don’t contain a ton of bad data.



  • Check that link tracking is enabled.
  • We use tools like Litmus or Email on Acid to check that our email content renders correctly across all devices.
  • We do a quick check to ensure that the email follows our company brand guidelines.
  • Check that the correct email settings are in use. For example, ensure that we are sending the emails from our company domain, otherwise the deliverability rate will be very poor.
  • If field merges or dynamic content is included, we check that it works properly by using Email Preview and selecting a contact that is in our Segment.
  • If there is a blind form, we check that the data is being submitted correctly.


Landing pages

  • Check that link tracking is enabled.
  • Check that the correct landing page url has been used.
  • Check the webpage in multiple browsers and devices, especially in mobile ones to ensure compatibility.
  • Check that a title, description, and meta tags are present, as we often find these left out. This really helps when contacts share our page by email or social media.
  • If there is a form on our page, we check that the submission and the validation is working as expected.
  • We try the page on an incognito window, just in case there is anything hard-coded on the form.



  • Check that the information appears correctly in the form submission data view in Eloqua.
  • Check that all the fields required are present. Eg: if we need to pass a CRM Campaign ID, we make sure it’s there and being passed correctly.
  • Check our processing steps and ensure they are correct per our company guidelines.
  • Review that all required form fields are present (for example, a call back form must contain a phone number field, otherwise, how would our Sales Team call them back?)


After following these steps, a campaign can be activated with less mistakes and more success. However, in order to activate any canvas, we also have established a Campaign Activation Process, something that we learnt during the Luminary Course. In our Eloqua instance the canvas can only be approved (a necessary step before activating it) by a specific group of users. The person that does the QA process belongs to that group.


   Canvas approval screen. Users have been anonimized.


Results and additional benefits of a QA process


At first this may seem a tedious process but implementing it with transparency and with a realistic time frame, it has provided important benefits for our company.

We've reduced the amount of mistakes before launching campaigns more than 90% so it's been a complete success.

Thanks to the errors that we've avoided, we've dramatically reduced the number of customer-facing mistakes while been able to guarantee the best possible experience to our customers and contacts.




The QA process has made our team look good, not only by improving the user experience but also avoiding fines and other negative legal consequences (like potential mistakes that may cause GDPR issues). Furthermore, thanks to our QA process, we've improved the communication and the share of knowledge between all the team members. This has resulted in a coherent and reliable high level of quality for our Marketing work, regardless of the colleague that effectively executes a specific task.


A lot of different topics from the Luminary courses are useful if you’d like to build your own QA process. Try these:

  • B2B: CRM Integrations
  • B2B: Uploading HTML Email
  • B2B: Prioritize & Process
  • B2B: User Management

The Challenge

Most companies run regular events. This means Eloqua assets need to be updated for each new event. That usually means the involvement of a marketing automation team member to execute the technical changes. The time between “request > execute > approve > go live” can span from hours to a couple of days. We like to think of clever ways to reduce this as much as possible at Sage, while sticking to our processes and standards of quality.

The challenge was to enable the webinar team at Sage to update form pick-lists with upcoming event dates and remove event dates that had already taken place. We didn’t want to provide Eloqua licences for the webinar team, nor did we want to involve the marketing automation team to make these basic form updates on a daily/weekly/monthly basis.

The solution for this challenge would allow ongoing webinar landing pages and pick-lists to be updated by the webinar team. This allows webinar programs to go on for months without the need for marketing automation intervention.


Applications and knowledge required -

You’ll need the following:

  • Access to Oracle Eloqua
    • Knowledge of using Landing Pages and Forms
    • HTML
    • jQuery
  • Instructions for TableTop.js.
  • A Google Account and access to Google Sheets

What you need -


  • You will need a Google Sheet to store some data. In this case we want to store “status”, “date” and “key”.


    •   You will need to publish the Google Sheet to the web


      • File > Publish to the web
      • Under the Link tab change from “Entire Document” to  “sheet 1”



  • You need an Eloqua landing.
  • You will need to build a form on your Eloqua landing page
    • Add the relevant form fields and your target fields to populate the Google Sheet data
  • Add the javascript library TableTop.js to your landing page. This has the ability to pull data from a Google sheet. (you will be using your Google Sheet just like a json database)
  • You must write some javascript/jquery in order to use your google sheet data in the pick-list in your form. Here is an example of a custom script we use at Sage:



  • Save the landing page, go to your form and test your connection between the landing page and Google Sheets. If the values from the Google Sheet populates in your target field, then the integration has been successful.


This will take a bit of work, practice and research, but in the end it’s totally worth it.



By connecting Google Sheets with TableTop.js on an Eloqua Landing Page, we are able to populate values in a pick-list in real-time from a Google Sheet.


Prior to this implementation the team would need to request updates via the Marketing Automation Team. This would generally take a couple of days to go through our whole build process.

We would typically receive at least 50 separate requests from this particular webinar team each month. By implementing this dynamic form across all of their multi-webinar campaign forms, we have saved at least 50 hours per month of our Automation Teams time.

The webinar team now have control and the self-serve ability they require to add future dates to the landing page form. As a result no Marketing Automation Team intervention is required for new event updates. The Marketing Automation Team can focus more time on other cool projects and innovations.

This project was inspired by the Oracle Marketing Cloud University - Luminary Courses:

  • B2B: Develop and Design
  • B2B: Advanced Criteria Functions

In 2015, my company adopted a new nurture program structure that became our current Template Nurture Framework. We have found great success with the Template Nurture Framework, but not all of our internal clients are reaping equal benefits.


Our Small Business (SMB) group in particular needed to refine their nurture approach to better align with our typical SMB prospect’s buyer journey.


See courses Modern Marketing: Revenue Performance Management (RPM) and Oracle Eloqua: Fundamentals.


Our Template Nurture Framework


New leads are fed into a Nurture Feeder Program, where they sit for five days before they are redirected to the most applicable nurture campaign based on their tagged service interest and contact profile/persona. That five day wait step allows for applicable welcome triggers to run, data cleansing program processing (see course Oracle Eloqua: Profile & Target), and for Sales to follow-up with any Marketing Qualified Leads (MQLs).


Sales follows up with MQLs in one to three days. After follow-up, Sales updates the Lead Stage value to Inquiry (needs more education) or Sales Accepted/Sales Qualified (about ready to become an opportunity). Sales makes this update in Salesforce, which is synced with our instance of Eloqua (see course Oracle Eloqua: CRM Integrations). 


*Conversion rates vary by sales segment, based on difference in audience. More transactional segments, like SMB, are expected to convert at a higher rate.


The Lead Stage value determines where the lead starts their nurture journey.




Most leads flow through our typical nurture program build in six weeks to three months. This depends on where the lead starts and how they engage with each email they receive.


Our Template Nurture Framework vs SMB Needs


Our SMB marketing group adopted the Template Nurture Framework in 2016. Since then, we have learned that nurturing for six weeks to three months is too long for our SMB nurture leads.


The vast majority of our new SMB leads come through Contact Us and PPC forms, so they often start with buying intent or wanting a quote. Also, the average SMB buyer journey is 30 to 60 days. After 60 days, the Won-Lost ratio significantly shifts towards Lost. 


To help Sales win SMB opportunities before this 60-day dead zone, we remodeled the SMB nurture program to accelerate leads.


To speed up the nurture flow, we stopped promoting a range of services to every new lead and instead nurture leads on the one service in which they have shown an interest. Because of the multiple interest flows, we are calling this accelerated nurture program “SMB Nurture Paths.” 


Two of three paths have been built thus far. The third path will be built in early 2019.


Template Framework vs Accelerated Framework Main Differences


Template FrameworkAccelerated Paths Framework

Leads enter different nurture flows based on their Lead Stage.

Content educates leads on a range of services (Shred, Storage, and Scanning).

Content has more or less Sales messaging depending where they are in the nurture flow (Awareness, Consideration, or Decision).

At certain checkpoints in the program, leads that have engaged with past emails get a contact us dedicated email (no offer).

The program overall drives leads to score up to MQL (Scored MQL). (See course Oracle Eloqua: Prioritize & Process)

Every initial education email send has a non-responder/second chance email, which results in more emails overall and a longer program.

Leads enter different nurture flows based on their Service Interest.

Content within a flow focuses on one service line (Shred, Storage, or Scanning). Leads without a marked service interest will get Shred messaging, as it is our most popular service with SMB customers. 

All emails have a Contact Sales secondary CTA.

Leads that stay engaged, but have not yet become a won opportunity will get a contact us dedicated email with an offer.

The program drives leads to submit a contact us form (Hot MQL).

Not having non-responders/second chance emails helps shorten the program.


Measures of Success


The SMB Nurture Paths program just launched at the beginning of December 2018. It will be another two months before we start seeing people make it to the end of the campaign flow. Below are the metrics against which we will be comparing success.


MetricCompany Wide Benchmark

Old SMB Nurture (Template Framework)

New SMB Nurture Paths (Acceleration Framework)
Unique Open Rate20%19.89%TBD – we expect this to remain about the same.
Click to Open Rate10%12.89%TBD – we expect this to remain about the same.
Unsubscribe Rate<.5%1.21%TBD – we expect this to decrease
Response Rate7.5%53.40%TBD – we expect this to remain about the same
Inquiry to MQL Conversion Rate*6.5%38.98%TBD – we expect this to increase
MQL to Opportunity Conversion Rate*21%51.97%TBD – we expect this to increase
Opportunity to Won Opportunity Conversion Rate*25%48.36%TBD – we expect this to increase
Average Won Revenue per Won Opportunity-$1077 per won opportunityTBD – we expect this to remain about the same or slightly decrease.


*As mentioned earlier, SMB is a more transactional segment and are expected to convert at a higher rate than the company wide conversion rate benchmarks.


Metrics were pulled through Eloqua Insight (see course Oracle Eloqua: Insight for Reporters) and


These metrics are not the only ones we measure, just the ones that are most relevant for this comparison.

The Challenge: Marketing and recruitment teams were working in silos and sometimes talking over each other to prospective students. Any marketing inquiries, or even list buys, were being sent to the recruitment team to be worked. This produced little time for follow up, distinguishment of good-bad leads, and lots of wasted time and effort.


Goal: We needed to find a way to have marketing automation determine which prospects showed the greatest potential to become an applicant, and then send that information to the right recruitment team.


The Method: Starting with the marketing director and dean of admissions, we worked on establishing an agreed upon sales funnel. This meant that we had to define for each school and recruitment team where the line was between marketing as primary and then recruitment as primary. We encouraged healthy arguments and made sure something was changed in the plans after each “battle”. The B2B master’s courses helped to provide common language and bridge gaps of understand between marketing and sales.


After there was a common language and understanding of what funnel stage recruitment would take over for marketing, we used the lead scoring templates to work on lead scores for each school. Early discussions covered a lot of topics and ideas, but we found that it was easier to start really big and then hone in on what really seemed to help identify prospects that were interested.

Eloqua Lead Scoring Concept Board_v2.jpg


This took into account regions where someone lived, how close to starting their college experience, previous school experience, etc. These elements became the “Profile” portion of our lead scores. In addition, the combined efforts of marketing and recruitment were able to define some persona journeys related to email, website visits, and campaign responses that highlighted what engaged meant to each recruitment team. We were able to add these elements into the “Engagement” portion of our lead scores.



The hardest part, by far, was testing the scoring once we had profile and engagement. We spent many hours over weeks testing the lead score and thresholds for when a lead was engaged enough to be sent to each respective team, and then used real prospect journeys to see if/when a lead would be sent to the recruitment team. While this was a long and arduous process, it served to increase everyone’s confidence that this new process and automation would work and that teams would see the kinds of leads they wanted. It was also critical to get and keep executive support. There was a lot of human capital that was invested for this!


As prospects would fill out forms at fairs, website, etc., they would be scored based on these criteria. As a prospect engages with our content via email, website, forms, etc., their score goes up in what we know about them and what they are consuming from us. Once a prospect passes a threshold in their lead score, an integration is run and a sales lead is created in our CRM- Oracle Sales Cloud.


Handing over the lead generation process to automations was nerve wracking to all parties, but as leads starting coming in organically and accurately, fears where abated and turned into elation! Recruitment teams found they had much more information at their fingertips to continue the conversation with what the prospect was already engaged with, and marketing could focus more efforts on engaging prospects towards creating sales leads.



The Results: With an integrated funnel, lead scores defining an engaged lead, and the Luminary training on CRM Integrations, we launched automated integrations from Eloqua into Oracle Sales Cloud. The results have been outstanding:

  • Recruitment teams saw 8K fewer leads, but convert 20% more of them in the last year. They have also reported having time to nurture and follow up on leads much easier.
  • Marketing is able to target groups with the lead scoring to improve their campaign engagement
  • Marketing-Recruitment arguments about ownership and lead value has all but disappeared!


What’s Next? We hope to provide further insights for better targeted marketing, as well as adding in some of the school’s social initiatives into existing and future marketing campaigns. Marketing is developing campaigns to reengage with disengaged leads, realizing now that there are many opportunities to renurture them into engaged leads. With the Oracle Sales Cloud Integration App now available for common use, we will look closely on how to best use this for specific Call To Action (CTA) spots in marketing campaigns that can quickly get the lead into a recruiter’s hand with the pertinent marketing history (Profiler) and information they need to continue the conversation towards enrolling another student.


Eloqua Courses:


RPM Training

Eloqua B2B: CRM Integrations

Eloqua B2B: Prioritize & Process

Elqoau B2B: Sales Tools

Between webinars and live events we have thousands of individual campaigns for invitations, confirmations and thank you campaign flows. We handle a large volume of web-based and live events, and even with templates, setting up a new event can be extremely time consuming.


One of the first actions we took was consolidating our forms. Rather than create a registration form for each individual event we created a single master form that appears on every landing page. A query string value identifies the appropriate event and then writes into the Event module from the Update Event Registration Processing Step. Instead of tracking what was once hundreds of forms we now maintain a single list of event codes applied to a single form. This change alone has saved us hundreds of work hours.


Additionally, instead of managing hundreds of processing steps from the stored query string value – we maintain a picklist of the query strings to direct the submissions to the correct event. The B2B Prioritize & Process course, especially Advanced Editing and Form Processing: Form Processing class, was instrumental in improving our registration process and keeping it scalable. Just an additional quick note – tying conditional processing steps to a picklist is beneficial for any form – for example dynamically linking to assets based a returned query string value. Having a one to many form is not as intimidating as it initially appears.


Getting back to events, the next step is leveraging the Event Actions. (I’m not sure the Luminary courses Make sure you have field merges created from the Event Session fields otherwise the emails won’t have the critical event information when an email is sent to a recipient. And remember to enable each event action! We send webinar emails upon registration, a reminder email 24 hours prior, a final reminder 15 minutes prior to the event and a 24 hour post event email with a recording link. Your business needs may vary so feel free to adjust as necessary.


By writing registrations into the event module and defining the event action steps we have eliminated hundreds of campaigns moving forward. That’s time our Eloqua users can now spend elsewhere.  This also makes adapting changes to our events’ process flow significantly easier and scalable. I found the coursework on Custom Data Objects extremely helpful – the Event Actions are slightly different than the Custom Object Services (with the CDO Services you are limited to new and modified objects, whereas) but the functionalities are similar. You could of course build a flow within Programs/Program Builder to make a complete event flow and in some cases you may want them for additional flexibility but I prefer to contain as much as possible within the Event as possible. It limits the error for potential in the event different users are creating and updating new events.


In 2019 we will explore in more detail how to automate registration and attendance data from an external activity standpoint – this also implies improved campaign alignment – our goals in 2018 with events were more operationally focused. This will give sales better visibility into actions their customers are taking – via Profiler.


I would strongly recommend that anyone with a heavy emphasis on events explore the Events Module in more detail.


Each year my company invites our C-level clients to a sports event, it is 3 days event and we assign the tickets with different date to the designated contact. Due to the exclusiveness, the tickets are rather precious so it needs to be distributed carefully; and due to the game date approaching, we need to make sure the invitation receiver make a decision shortly after receiving the email invitation. With the advanced function of Eloqua (mostly blind form and CDOs) we’ve largely decreased the manual working hours and shorten the response time, here's how we made it:


Challenge 1: Simply the process

This used to be a manual process where the event organizer needs to create unique URL for each contact, attach the unique URL to an email that is sent to the contact; and if anyone wants to change the date of the tickets, we would have to change the unique URL and have the contact to click on the submission again. All of this happens in someone's email inbox. Sounds like a lot of work, right? It is.


Challenge 2: email forwarding and form submission data overwritten

Due to the exclusiveness of the event, we only allow certain contacts to receive the invitation, however often then email receiver would miss the disclaimer and forward the invite to their friends or colleague, using the unique URL set for the specific contact.

We then got a lot of replicated or unwanted registration for the event, and we need to manually clean the registration data.


The Solution:

To avoid the heavy manual work of mapping the information, we leveraged Custom Data Objects (CDOs) and Blind Forms in Eloqua to:

  • CDO.jpgDocument the distributed ticket date in CDO- for our easy access to change ticket date and for email field merge.
  • Document the decision made from the contact (accepted, reject, or no action) and when the decision was made in CDO. These fields are triggered by the Blind Forms set in the email invitation. Once triggered, it will send the decision and time stamp to the CDO.
  • Because the decision is made by blind form submission, we redirect the those who accept this ticket to a landing page with their information using field merge as a confirmation. And redirect those who reject to a thank you landing page. By doing this, we avoid any actual form submission but create a seamless experience for our event attendee,
  • Add the account manager name and contact, allow the attendees to reach out to their designated account manager.
  • Limited the invitation list to only those contacts that have been linked to the specific custom object record. To avoid any unwanted registrants.



We’ve managed to cut down 50% of the working time on manual mapping work using the automated campaign setting in Eloqua. We’ve also shortened the decision making cycle (the contacts are only given 3 days for consideration; we will redistribute the ticket if we don’t get any response). Lastly, we completely avoid unwanted registration, as there is no fillable form in the process.


Courses that have been of great help on Blind Form and Custom Object setting:

B2B: Convert with Custom Objects

B2B: Develop & Design

Filter Blog

By date: By tag: