New Regex and Count Custom Object Cloud Apps


Two new Eloqua Cloud Apps recently joined the 4Thought Marketing family. Custom Object Regex and Custom Object Count.  Let’s take a closer look at each of them.

CO Count Cloud App

Imagine your in a meeting with the product team discussing a new project.  They want to email customers about an upcoming change to their accounts.  And because they may have more than one account, they plan to include copy letting them know the change applies to “one or more of their accounts.” And then, near the end of the meeting, they ask:

“Instead of just mentioning one or more, could we include the actual number of accounts this applies to automatically?”

Yesterday, you responded that you could, but only if they provide the counts for each email so that you could upload the data into Eloqua.  Sadly, they state it won’t be possible given their tight schedule.

But today, your answer could be, “not a problem,” if you have the CO Count Cloud App from 4Thought Marketing.

Here’s how it works.

  • Create a new or select an existing contact field to hold the count total
  • Create a new custom object program and drop the CO Count Cloud App on to the program canvas
  • Configure CO Count to find the correct CO records and then specify the contact field to store the total.
  • Run your program

It couldn’t be any simpler to merge the total count of matching custom object records in emails and on landing pages.


CO Regex Cloud App

Ever needed to apply additional formatting to a custom object (CO) field?  Or split a value into multiple fields?  Or how about validating that a field value is in the correct form?

The new CO Regex Cloud App from 4Thought Marketing can do all three.

Let’s take a look at three specific examples:

Field Validation

The app can validate if a particular field must be in a specific format: Select the “Validate” option in the “Regular Expression Type” and select one field, which will be updated the True or False when a record is processed.

For example: the following regular expression validates that a text has the format of an email address: /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i


The app can take the value from a field and split it into multiple fields using a Regular Expression.

For example: for a field that contains “10 cats, 20 dogs, 40 fish.” If you need to split based on the digits with the following expression \D+: The result will be:

  1. 10 cats
  2. 20 dogs
  3. 40 fish


The app allows you to transform the value of a field and executes a Regex transformation.

For example: with the following regular expression: .*(\snot).* if the field value is “My network does not work.” The result will be ” not”


Contact Us if you are interested in our Cloud Apps, or any of our other products and services.


About 4Thought Marketing

4Thought Marketing is a product innovator specializing in the Oracle Marketing Cloud. We help customers translate business objectives into strategies that produce results.  Our services include Marketing Automation and Compliance Consulting, Marketing Technology Best Practices, Oracle Eloqua Cloud Apps and Add-ons, Integrations, Campaign Services, Staff Augmentation, Data Management, and Eloqua Implementations.

Eloqua Merge Contacts Cloud App


Did Someone Say Oracle Eloqua Merge Contacts?

No, your eyes are not deceiving you.  Up until this very moment, you probably only imagined, wished, even begged for an easy way to merge Eloqua contact records and preserve activity history.  Since 2015, over 4,300 Eloqua users upvoted this idea on TopLiners.

Let that sink in:  Merge Contacts, and Preserve Activity History*. Bada Bing, Bada Boom.

Introducing the Eloqua Merge Contacts Cloud App

You might at first wonder how that could happen – well, here’s one example how: The first time they filled out a form, they gave their name as  Then, a couple of weeks, or months later, they come back as All of their contact data is the same – but now you have two email addresses for the same person.

Watch a 3-Minute Demo

Get a 10-Day Free Trial

TL;DR?  Jump right in, get a 10-day free trial and see for yourself.

How to Merge Contacts

Merging contacts is easy using the Eloqua Merge Contacts Cloud App from 4Thought Marketing.

  1. Select the records to merge
  2. Select the fields to preserve from the original or the duplicate contact record
  3. Retrieve existing records for each contact, choose which fields will be preserved
  4. Preview how the merged contact record will appear, and make any necessary adjustments.
  5. When ready, select Merge, and the processing will begin.

Processing takes from 2-3 minutes, but can also take longer depending on the number of activities.  Activities from the merged contact will be re-created as new external activities in Eloqua.

And We’re Just Getting Started, More to Come

While we’re very proud of this innovative solution, this release is just a start.  Check out these additional features planned in the coming months:

  1. Archive records to SFTP server before deletion
  2. Automatically store merged email and historical email address in a custom object
  3. Re-map existing CO records to final email address before deletion
  4. Set CRM notification flag and delay time before removing the Eloqua contact

Please  Contact us if you are interested in our Merge Contact Cloud App, or any of our other products and services.

About 4Thought Marketing

4Thought Marketing is a product innovator specializing in the Oracle Marketing Cloud. We help customers translate business objectives into strategies that produce results.  Our services include Marketing Automation and Compliance Consulting, Marketing Technology Best Practices, Oracle Eloqua Cloud Apps and Add-ons, Integrations, Campaign Services, Staff Augmentation, Data Management, and Eloqua Implementations.

Personalized Customer Communication with Eloqua Custom Objects

Personalized Customer Communication with Eloqua Custom Objects

With Eloqua Custom Objects (CO), you can easily segment and send hyper-personalized, time-appropriate customer communication.

Consider, for a moment, a recent email, website experience, or web advertising that you clicked on.  Do you recall why you found that content compelling enough to respond?  Perhaps it was a seasonal offer, arriving within an appropriate time window.  Or was it to a topic or product you own or are considering, and you felt the time was right to act? Or did you receive it after making a purchase?

Let’s contrast this to a time when you received a generic offer or email about something out of the blue for something you don’t own or have no interest in.  Of course, this happens all the time.  And clearly, the best outcomes occur when the offer matches your most recent area of interest.

When someone makes a purchase, it’s an excellent time to explore additional offers and upsell opportunities.    Below is one possible campaign.

Automating Follow-Up Offers After Purchase

Consider how you would build a campaign using the detailed information stored in Eloqua CO records, including purchase history, areas of interest, and open leads.  When a customer makes a purchase, but don’t own a maintenance contract, you could make a follow-up offer using information stored in CO records.  Your campaign design could also support multiple products and feel timely and relevant through personalization.

To make the campaign work, you need data stored in the CO record moved to the contact record.  Unfortunately, Eloqua does not make it easy to move data from custom objects to a contact record. One option is to build a separate integration that finds and updates the contact record with their last purchase.  At 4Thought Marketing, we’ve created a better solution, the CO to Contact Updater Cloud App.

Here’s how it could work for the annual support contract upsell promotion campaign in Eloqua.  First, a “feeder/segment” watches for new product purchases that don’t include support.  Next, the CO to Contact Updater App finds the CO Record for that purchase, copies all the necessary data required for email personalization such as product name and purchase date into the contact record.   The email merges these fields creating a personalized email offer, and the campaign sends it to the contact.

Sample Campaign Canvas and Configuration

Using the CO to Contact Updater App from 4Thought Marketing, it’s easy to create campaigns that automate personalized email offers, using the latest sales data stored Eloqua custom objects.

Available for both Campaign and Program Canvas

The CO to Contact Updater App works in the campaign canvas or a contact-based program canvas.  A separate version that works in a CO-based program is also available.

What we’ve shown above is just one example of moving data between CO records and Contacts to enable personalization.  While Oracle Eloqua is a powerful platform, it does not have solutions for every use case.  4Thought Marketing has a wide variety of cloud apps to make moving data much more flexible than you may have thought possible. You are only limited by your imagination using cloud apps to create new custom solutions to meet new requirements.

For example, we also have Custom Object Input Feeders, CO Form Submitters, and CO Deleter apps (and many others) that can help you take your Eloqua Custom Object development to a new level.

Contact us for a price list of all our apps or for more information on these apps, or if you have a special need that you just can’t seem to solve via the built-in Eloqua functionally — a custom-built cloud app could deliver everything you’ve been wanting.

Improve Data Quality with Upload Wizard


Data quality is crucial for every organization. It affects almost every part of your marketing activities, from email deliverability and lead conversion to revenue generation. And you cannot accurately target and personalize your campaigns without complete and accurate data.  You can dramatically improve data quality by eliminating dirty data before it enters your system.

However, Eloqua marketers face many challenges using the built-in Eloqua list upload process:

  1. Eloqua does not perform data validation for list uploads
  2. If multiple marketers are importing data, the chance for poor data quality can increase
  3. Multiple imports may be required for list uploads to fully update Eloqua

Let’s examine each of these issues in more detail.

No Validation of Incoming Data

Eloqua does not validate data as it’s imported into the system.  This means several things:

  • Dirty data, which would optimally be kept completely out of the system, is potentially allowed in.
  • Compliance laws like GDPR are not applied. It may be illegal to import some contacts. And these contacts are best kept out of Eloqua.
  • Fixing dirty data is often easier while it’s still in a spreadsheet! And often mass changes are faster in Excel.
  • After uploading dirty data, your integrations can quickly spread the bad data to other systems, or trigger unwanted data errors.

The Upload Wizard Cloud app from 4Thought Marketing solves all of these data import issues.  Any bad or non-compliant data can be stopped right at the point of entry, without slowing down importing of your good data.  And only contact records with bad data are “rejected” and provided to the marketer for further review.  As a result, they only need to check the data that needs correcting.

Multiple marketers importing without validation can result in very dirty data

For many organizations, multiple marketers perform data imports.  And often they are in different offices, geographic areas, and even time zones.  As a result, it’s even more important to systematically remove dirty data as part of the upload process.  The benefits include:

  • Uniform application of validation rules by all team members regardless of location
  • Protects from importing non-compliant data regardless of who performs the import
  • It reduces management/oversight headaches. “You didn’t clean your list again, Joe!”

Remove the need for multiple uploads

With Eloqua, you may need to upload a file more than once.  For example: First to add the contacts to your system.  Second, associating those contacts to a marketing campaign.  And third, associating them to a custom object. Having to upload the same list multiple times is tedious and inefficient.

However, with the 4Thought Marketing Upload Wizard, all of those are minimized to a single, clean contact upload.  In that single upload, you can:

  • Add contacts to multiple new or existing shared lists
  • Associate contacts to external marketing campaigns/activities such as trade shows or conferences
  • Link contacts or upload part of the data to custom objects

…all, while simultaneously validating data quality!


The Upload Wizard Cloud App from 4Thought Marketing helps Eloqua marketers improve data quality by eliminating bad data at the source.  It removes bad data automatically for every employee using the tool regardless of location.  Specific versions for GDPR or other compliance regulations are also available. All of the Upload Wizard Cloud Apps automatically protect and apply appropriate rules and notifications. And it reduces the time it takes for you and your colleagues to improve data quality at the source.

Another added advantage is that data can be imported by non-Eloqua users, thereby potentially empowering folks in sales or other marketing departments to import data, without risking the overall quality of your data.

Contact us for more information about the Upload Wizard. We offer a wide range of Eloqua Cloud App add-ons to improve and extend your Eloqua capabilities.

Improve Your Eloqua Segmentation Game with Cloud Apps from 4Thought Marketing


Key Steps for Improving Eloqua Segmentation

The first page in your marketing operations playbook probably stresses the three R’s: Get the right message to the right people at the right time.  And it goes without saying that sending an email that isn’t timely or relevant won’t generate the desired results.

For your campaign to work, you need accurate segmentation data in order to pull the correct list of contacts for your campaign.  Ask yourself, do you have the correct information and is it standardized for accurate segmentation?


  • How good is your Geographic information including Country, City, Zip/Postal Code? If your products or services vary by region, getting this wrong might confuse your customers and cause awkward questions for your sales team.
  • Can you target the correct people within an organization? If you’re just using Job Title, this may not be accurate enough.  Marketers who divide and standard Titles into Job Level and Job Role are at the top of their game.
  • What about Industry classifications, area of Interest, and organization Size? If your game is this strong, you’re ready for the big leagues.

As a marketer, you must have accurate data.  For example, it does you no good if you try to pull a list of prospects who reside in the United States, are Directors or Vice Presidents or higher and work in the Healthcare industry if your data is incomplete, inaccurate and not standardized.

Oracle Eloqua offers many ways to standardize data as it enters your system.  It’s always best to normalize the data as it comes into your system, whether on forms, list uploads or from other systems.  However, we all know that data inputs are not always well controlled, and so inaccurate or non-standard data can creep in.  Using the Eloqua Contact Washing Machine App will go a long way to solving that problem.  But using it alone may not be enough.  Sometimes what you need is fresh talent, some new players for the team.

At 4Thought Marketing, we offer Data Normalization Apps for Oracle Eloqua that add new capabilities to your data management process.

We offer two Data Normalization apps that easily standardize your State and Country fields into your standard list of values (either 2, 3 characters or full name).  Another pair of apps will parse your Job Title field (normally a free text field) into the standard list of 8-10 values for Job Level and Job Function.

If you’re struggling to win the results you desire using your current playbook, consider adding some new talent and technologies to up your game.

Contact us for a price list of all our apps or for more information on these apps, or if you have a special need that you just can’t seem to solve via the built-in Eloqua functionally — a custom app could deliver everything you’ve been wanting.

Improve your Eloqua Data

Improve your eloqua data

Improve Your Eloqua Data

Just how do you improve your Eloqua data?  It’s something every Marketing Automation professional deals with all the time. Because data comes from a wide variety of sources including Form Submissions, Lists, and other systems, sometimes, the data is not in the format you want or need.

For example, you might have two fields that you want to combine into one field for segmentation purposes or for field merge onto an email or Landing Page. 

You might have values in a field from one source and needs to be modified before storing them in another field.  Or The requirement might be to shorten the length of a text field; or remove certain character strings; or format your phone field to a specific format.

While some of these are possible within built-in tools in Oracle Eloqua, they are not always as flexible to meet your requirements, or easy to use.  

To help our customers, we created a number of Eloqua Cloud Apps that can help.  Don’t struggle with your formatting and manipulating your data – find an app to do it for you, and remove that problem. 

You’ve got bigger problems to solve than formatting data.  Improve your Eloqua data using cloud apps from 4Thought Marketing.

Contact us for more information on our cloud apps, or if you have a special need that you just can’t seem to solve via the built-in Eloqua functionally — a custom app could deliver everything you’ve been wanting.

Feed Eloqua Programs More Frequently


Feed Eloqua Programs More Frequently

Oracle Eloqua has two very powerful workflow engines –Program Canvas for Contacts and Program Canvas for Custom Objects (COs).  However, each of these tools has two glaring limitations –

  1. You are limited in your ability to add Contact records or CO records to a program based on your criteria and when you need them added.
  2. You can only run them once a day, and not as frequently as you may need for rapid response.

Let’s look at some examples:

Case 1 – You want to add Contacts to a Program Canvas each time the Lead Stage changes from Inquiry to MQL.  You have other workflow based on form submits or list uploads that can change the Lead Stage, and you want to add these Contacts to your Program immediately upon hitting “MQL”.

In Eloqua today, you might have a listener set up that looks for MQL, but the listener can only feed contacts to the program on a daily basis.  Eloqua provides a limited handful of listeners (e.g. based on Lead Score or New Records)  to specify which changes to use as we will see more of in Case 2.

Case 2 – You have a CO program that updates Account status based on the specific products that are specified on a Product CO record.  Again, you could have use CO Data Services feed the CO into the program, but you are limited by changes to the CO record – any change would feed the CO into the program.  You have limited flexibility as to what change would trigger this action.

In both of these cases, you have specific filtering criteria you want to use to specify which records, Contacts or COs, should be added to a program.  And, you have a need to feed these records immediately, based on changes that could be made at any time.  The current feeder options in Oracle Eloqua do not meet your needs.

To fill these gaps, we created the Contact Cloud Feeder and CO Cloud Feeder that run as a Contact or a Custom Object Program.  The feeders offer more flexibility and more options including ALL standard filtering functionality.  And you can schedule how often and when records that meet these needs should be added to your Program Canvases.

Instead of once a day, they can run every few minutes. They are simple to use Feeders but give you the power to fully use the Programs as you want and need.

This is a screenshot of the Contact Cloud Feeder.  Note how you can filter based on either a Segment or a Shared Filter, and how you can schedule it to run exactly  When you’d like to.  Finally, note that the  ‘Execution Frequency” field can be set to cycle in minutes, instead of once a day.

Together, these new abilities provide maximum filtering and scheduling abilities that make Eloqua a much more dynamic and controllable tool.

Learn more and see pricing for the Contact Cloud Feeder and CO Cloud Feeder.  Or Contact us if you have additional questions.


Now create Multiple Eloqua Campaign Responses at Once!


What are we doing now – Many Eloqua users uploads lists and many of those lists are used to directly create campaign responses.  Eloqua has a very slick methodology for creating campaign responses from lists – you simply go to the campaign, upload a list, and voila, you have created campaign responses.  This is a very useful technique for ascribing contacts to an externally driven campaign, such as a webinar, or a tradeshow.

Challenge with the current process – This process works fine if you have a list with contacts from a single campaign.  But what if you have a list of contacts that crosses campaigns?  For example, your field support team sent you a single Excel file with contacts from multiple seminars or maybe you have a list of contacts that need to be ascribed to multiple campaigns.

In these, and many more cases, you will need to:

  1. Split the list into multiple Excel files.
  2. Go into each campaign and upload each individual list.
  3. Note that you might end up with several lists, and with contacts on multiple lists.

4Thought Marketing’s Solution – What if you could do all of that with one simple upload, across many different campaigns?  Our Campaign Membership app does just that.  This app automatically creates a campaign response in Eloqua for each and every contact in your file.

Quick, simple, easy to run – what could be better?

Contact us for a price list of all our apps or for more information on these apps, or if you have a special need that you just can’t seem to solve via the built-in Eloqua functionally — a custom app could deliver everything you’ve been wanting.

Build Powerful and Flexible Eloqua Custom Objects


There are some inherent drawbacks to using Custom Objects in Eloqua.  While it is nice to be able to store different types of data (e.g. Opportunities, Product Purchases, Policy data and much more), it is also important to be able to manipulate and use that data to meet a variety of business needs.  One of the most important function that is missing in Eloqua is the ability to move data between a Contact record and a CO record, or between CO records.  4Thought Marketing has built a suite of apps to help meet these needs.

But what can you do with it?  Let’s look at couple of examples.
Storing Status in a Custom Object

Transaction data versus current status –  Often an outside system, like a purchasing (ERP) system or a CRM system, sends transactional data to Eloqua.  One example might be a product renewal transaction.  Eloqua will store these transactions which can be used for nurturing, segmentation or reporting purposes.

However, you might also like to see and filter on the most recent status of a product renewal.  It might be “Past Due”, or “In Process” or “Current”.  In this case, transactional data will be difficult to use, since there will be multiple transactions for the same product – and you only need the most recent status.

In this case, you might want to build two CO tables, one for the ongoing transactions and one for the current status.  Incoming data would feed the transaction table, but how would you populate the current status table?  4Thought Marketing has built an app for that purpose – CO to CO Updater.  In this example, you would be able to take data from the transaction record and populate data in the second CO table – to store just the current status.

Let your imagination go.  If you use COs frequently, there are probably many other examples of CO to CO updating that you would be able to use to make your business processes run more efficiently and more effectively.
Handling Multiple Products of Interest

In a related process, let’s turn the tables, just a bit.  Let’s say that you have an integration process that feeds your Contact record with current product interest.  That is a fairly standard practice between CRM and Eloqua.  But let’s expand on that for a moment.  If you have multiple Product Lines, you might want to store the various products in which an individual has shown interest.  Since your integration is feeding your Eloqua Contact record, how would you create a series of CO records that shows the breadth of interest from this individual?

The 4Thought Marketing cloud app ‘Contact to CO Updater’ is just the solution to this problem.  By using this app, you would be able to create CO records linked to the Contacts – one for each product that interested the Contact.  In this way, you can now segment this Contact based on multiple product interests, and the lack of interest.  For example, you could build an upsell campaign for everyone who had a CO showing interest in Product X, but not in Product Z.  Or you could build a campaign for everyone showing interest in both Product A and Product B.  The applications are endless.
Sending CRM Recent Products of Interest Only

One more example, again turning the tables a bit.  Let’s say that you have an integration that feeds your CRM system from Eloqua with the most recent product interest.  You also have a CO, like in the previous example, that stores multiple product interests that have accumulated over time.  If you want to send the most recent data, you would either need to build a new integration for the most recent CO record, or you could just move the data from the CO record into the contact record, and continue with your single integration step.  This can easily be accomplished with our CO to Contact Updater app.

We have just touched the surface of the needs to move data between CO records and between COs and Contacts.  We have run across dozens of real business use cases that require data manipulation that is not easily accomplished with out of the box functionality from Eloqua.  4Thought Marketing has a wide variety of apps to make your data movement much more flexible than you may have thought possible.

For example, we also have Custom Object Input Feeders, CO Form Submitters and CO Deleter apps (and many others) that can help you take your Eloqua Custom Object development to a new level.
Contact us for a price list of all our apps or for more information on these apps, or if you have a special need that you just can’t seem to solve via the built-in Eloqua functionally — a custom app could deliver everything you’ve been wanting.

Deleting Eloqua Contacts: When, Why, & How

deleting eloqua contacts when why how

Why Delete Eloqua Contacts?

It’s a good idea to clean up your Eloqua contact database every so often. Over time, many contact records are created, and not all contacts are created equally. Oracle charges per contact, so deleting Eloqua contacts that you never use from your list is a good financial strategy.

There are several additional reasons to delete contacts, including:

  • The law! Privacy regulations like the GDPR require companies to obtain consent before processing (read “storing”) data. If you don’t have consent in one form or another, you might be required by law to delete contact information.
  • Hard bouncebacks waste space: Once a contact has been flagged as a hard bounceback, it only takes up space in your records. You’re much better off simply deleting it.
  • Deliverability score: Reaching out to long-inactive contacts increases your changes to get flagged as spam, resulting in a lower deliverability score and in ALL of your emails being less likely to reach their destination!
  • Faster processing, better metrics: Removing inactive contacts will speed up processing times, improve your metrics (since you won’t be sending emails to uninterested contacts), and provide you and your management team with a better view of your pipeline.
  • Remove SPAM and test records: Use segments to identify spam domains and test records and remove them automatically.

Deleting Eloqua Contacts

You can either delete your contacts manually, or implement an automated process. The manual approach requires continuous effort and monitoring, and of course, there will always be the chance of human error. Topliners has a detailed outline of the steps required for a manual approach.

On the other hand, automation presents a far simpler process. 4Thought Marketing created the Contact Deleter with Archive cloud app which removes unwanted contacts automatically in the background. Simply set it up, let it run, and watch your database clean itself up. This app gives you the upper hand to delete any part of your contact list based on criteria that you define. You can have different instances of the app running to deal with different groups of Contacts you wish to delete. Best of all, this app not only deletes the Contacts, but it also creates an archival backup on your SFTP server. Just remember to check your archived record periodically to make sure you don’t accidentally delete contacts you want to keep.

What About Related Custom Objects?

If you have custom objects related to contacts you’re deleting, these custom objects likely need to be deleted as well. Fortunately, 4Thought Marketing’s suite of Eloqua apps includes these solutions:

Why Archive Your Deleted Contacts?

If you ever require the deleted data for unforeseen situations, it’s always good to have an automatic backup system. This archive also ensures you can prevent legitimate contacts from being accidentally lost forever.

Clean Up Your Eloqua Contact List

It’s easy and cost-effective to get started with the 4Thought Marketing Contact Deleter app. After a simple installation process, this powerful tool can quietly run in the background to keep Eloqua clean.

Our Cloud Apps are available individually or in groups, and are simple to implement directly from within Oracle Eloqua. Find out more or get a demo and see for yourself.