Skip navigation
Teiu Codrin

Delete accounts in bulk

Posted by Teiu Codrin May 6, 2019

Hi,

 

This post will cover a specific situation encountered when attempting to delete Eloqua accounts in bulk.

 

Default facts:

- If account linkage is set up, the unique identifier for accounts is the one set in the account linkage;

- if account linkage is NOT set up, the default identifier is CompanyName;

 

What scenario we will cover:

- Account linkage not set up (thus the default unique is Company Name), but our real unique and the one by which we want to delete is another account field, let's say a CompanyID.

 

Problem:

- cannot delete based on a different identifier neither via the upload menu nor API, as the system takes CompanyName as default identifier.

 

Solution

1. Create an account group

Go to Audience/Tools/Account Groups and create new group to delete. In its top menu there is an Add Companies button. Select to add using Company Filter.

 

2. Create the filter

After going for the filter option at step 1 a window will pop up. Select Create New, name it, then add company fields(like CompanyID) by dragging them from one side to the other.

This is where you filter out and create your list of accounts to delete. Be very specific, the number will be confirmed at the bottom. The value for Total Number of Companies should reflect the number of accounts to be deleted.

Save and Close.

Make sure to select again the filter you just created and click continue.

 

3. Delete records

Review the list obtained. If it is ok then proceed to the top right menu of the account group and select Data Manipulation. Pick Delete Group Companies from Database.

 

I hope this helps,
Codrin

A Long time ago, in an Eloqua Instance far, far away….

 

There were two fields: Lead source - Original and Lead Source - Most recent.

The battle for revenue attribution supremacy was fierce, but some people still asked “what was the deal?”, & “why do those fields even exist?”

Well, it is simple,... and if you so wish, I shall train you young Marketing ones, in 'the ways of the Source’.

 

The purpose of these fields is to give you some clear information on where your contacts originated and what their most recent interaction with you was.... Simple, right?

 

Lead source - Original is an indication of the FIRST time a contact was created in your instance and once set this value should never be altered.

This allows you to backtrack & identify what the original source was of that data. For example if a list of data was being imported and fields mapped. – One of the fields in your data file should be lead Source - Original.
This should be imported and then mapped into your Lead source - Original field with an update type of ‘only if Blank’

 

‘Only if Blank’? 

Yes, absolutely, - the reason as indicated above is that this will only write that value into the record if the record does not already have a value in that field. Therefore, if you accidentally upload a list containing some existing contacts (& we all know it happens from time to time) then you will not overwrite the value that was already in that field from when the record was first created. – So essentially you should have 100% of your records with a value in the Lead source - Original field & that should enable you to breakdown exactly the sources ( & volumes) of Lead generation for your instance.

 

OK, That makes sense wise master, but so what about this Lead Source - Most recent field?

Well conversely Lead Source - Most Recent should of course be updated as well, but updated in every situation, to give a clear reflection of the contact's most recent interaction with your marketing materials.

This should capture the activity they just conducted. – Whether their 1st, or 421st.
Initially it will be the same as Lead source - Original, but as time progresses they will start to diverge, with Lead Source - Original always remaining constant, & Lead Source - Most recent always showing what they did most recently.

 

Here is a simple article demonstrating how to do this correctly on the processing steps on the back of a form.
How To: Updating Lead Source fields from a Form Submission.

 

 

 

But how granular should it be?

Well that’s up to you really, but essentially it should be detailed enough to categorise your leads in a useful way, but not so detailed that it becomes onerous for you to report on.

if you have a set of fixed values: like web form, Webinar, Tradeshow, Event, Sales, Whitepaper download, etc. then you can run a simple field population report & it will break down the field into those clear distinctions, along with numbers.

 

Lead SourceCount
Web form7,631
Webinar90,057
Tradeshow45,769
Event20,749
Sales1,230
Whitepaper97
Total165,533

 

Perhaps you do want to be more granular, - that’s fine too of course, just be mindful that having fewer set values is easier to maintain & you can even use Eloqua to ‘listen’ for invalid values and present them to you in a filter (see below),
so you can readily see that this month you have had 3 records created without the correct values, and you should be able to deduce where they originated in order to educate the person responsible (choking not advocated!).

 

So why is all this important?

Well it might become relevant if you start to conduct Closed Loop Reporting (CLR), and wish to perform analysis on the amount of your closed leads, - where they originated, and the last interactions they had before they closed.

Case in point, - if your CLR evidences that 40% of your closed leads entered your database after registering at one of your Webinar events, but thereafter downloaded a particular whitepaper before purchasing – well, you can infer two things here.
Firstly to put more money into your webinars as they are generating good quality leads*, but also that you should be pushing leads who come from that source into a campaign to try & forward these important Whitepapers directly to them proactively.

If you can see a winning recipe for sales in your data, then you can use the power of Eloqua to try and replicate that.

 

*I am aware that other factors are at play here, such as cost per lead etc. (this is a simple explanation though)

 

 

Here is a working Example for you to see it in action.

Initially we upload some contacts from an event (along with Lead Source - Original & Lead Source - Most Recent).
Lead Source - Most Recent should always update, Lead source - Original should only update if blank.

The Event in question is a meetup and music Event at a local Cantina in Mos Eisley.

 

First Name

Last Name

Title

Company

Lead Source - Most recent

Lead Source - Original

Luke S.

Walker

Apprentice

JED1 inc.

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

Stu

Backer

P.A.

Falcon Aluminiums

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

Stan

Solo

CEO

Falcon Aliminiums

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

Bob

Fett

Consultant

Carbonite storage solutions

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

Dave

Maul

Head hunter

Force Removals

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

EmPerorCTODark Side recruitmentEvent- Cantina (01/01/19)Event- Cantina (01/01/19)

 

 

As detailed earlier all of these contacts have a common Lead Source - Original & Lead Source - Most Recent. This is expected if they have only had one interaction with you.

 

Over the next few months there are a number of other interactions involving our demo subjects.

 

Stan Solo downloads a whitepaper on smartening up scruffy interiors.

Stu Backer watched a webinar on Anger management

Luke Walker Submitted a form to update his details & preferences

Bob Fett clicked through an email with a blind form submit to get information on updated storage.

Em Peror requested a callback (sometime around December 19th 2019 probably!)

Dave Maul was never heard from again.

 

All of these Changes should be reflected in the Lead Source - Most Recent, but NOT Lead Source – Original, as for all those contacts were created as part of the Cantina (01/01/19) event.
This is where the contact originated so this should never alter as they will only ever originate one time, from one place.

 

A few Months later the table would have altered like this. – Note that Lead Source – Original has not changed for any of them as that field denotes how they first originally arrived into the contact table. That fact will never alter.

 

First Name

Last Name

Title

Company

Lead Source - Most recent

Lead Source - Original

Luke S.

Walker

Apprentice

JED1 inc.

Re-Engagement (04/05/19)

Event- Cantina (01/01/19)

Stu

Backer

P.A.

Falcon Aluminiums

Webinar – Anger Mgmt (11/02/19)

Event- Cantina (01/01/19)

Stan

Solo

CEO

Falcon Aliminiums

Whitepaper – Scuffy int’ (01/03/19)

Event- Cantina (01/01/19)

Bob

Fett

Consultant

Carbonite storage solutions

Blind form- Storage (01/04/19)

Event- Cantina (01/01/19)

Dave

Maul

Head hunter

Force Removals

Event- Cantina (01/01/19)

Event- Cantina (01/01/19)

EmPerorCTODark Side RecruitmentCallback form (12/04/2019)Event- Cantina (01/01/19)

 

You can see the cell alterations in Yellow (You don't necessarily need to include dates, I've included those just to communicate my point).

What we've started to do here though is get more granular in the recording, allowing us to delve deeper into exactly what communication resonated, but making it much harder to report on.

 

What is often used is a code, consisting of the details of the email that drove the contact to that resource, something like EM_05_19_UK_Y0DA

 

EM, denoting Email, then MM_YY, then Country code, then a 3 or 4 letter code for detail.

This code should be added to all links in all emails ( unique to each email), - then if it is catalogued somewhere,  you can refer back to see what codes relate to what emails.

 

So you might end up with the below, which is complex, but can be traced back to individual emails driving the contacts to forms or other content.

 

Lead SourceCount
EM_01_19_UK_NEWS97
EM_01_19_US_NEWS120
EM_02_19_DE_C3P073
EM_02_19_NL_R2D24,210
EM_03_19_UK_STAR61
EM_03_19_UK_WARS11
EM_04_19_BR_SNIP123
EM_04_19_US_GAME51
EM_04_19_UK_CHEW37
EM_04_19_US_SH1P201
EM_03_19_FR_TRAP12

 

 

So How do I update those values once they're included in the links?

Well fortunately there are a few techniques you can employ within the Eloqua platform which will help you here, see below for a couple,
but first things first, you must bring balance to your data and you do this by committing to data quality and then tidying up your data sanity. Adding good data onto bad helps no-one.

It is not a small job to get things set right, but it’s much easier to maintain once the effort is in place to solve data sanity.
It’s also important to maintain this rigidly. If you do not, the erroneous values will be back, (and in greater numbers). So you must track the fields and correct errors as they arise.

 

Want to learn more...?

 

Read my guide to see how to populate your records with Lead Source values consistently off the back of an Eloqua form.
How To: Updating Lead Source fields from a Form Submission.

 

And Read my Guide here on using JavaScript / JQuery to capture values on your web pages & pass those into hidden fields.
How To: Using JavaScript / JQuery to update a Hidden Formfield.

 

And finally read my guide on how to lift rocks whilst standing on your head.
(Just kidding!)

 

 

Now, *waves hand* repeat after me,
“This was the article I was looking for”….

“I will commit to better data sanity and reap the rewards”

 

Very good.

Now Move along please…..

 

Clip Art Jedi Clipart

 

 

Andy Ball

Eloqua Principal Technical Account Manager,

Oracle Cloud Priority Support.

So all in all, this is a simple process.

 

You'll need to create a form update Rule then you'll create two processing steps on your form.

 

First the Form update Rule.

 

go to Audience > Tools > Form update Rules.

 

Hit New to create a New one. We'll call ours "copy LS- MR to LS-O"

 

It's going to operate on the Entity type Contacts and the Data field is Email Address

 

Now we just create one rule as below:

This copies the value from Lead Source - Most recent Into Lead Source Original. That's all it does.

 

 

 

Now the processing steps.

 

Obviously we want to Update our Contact table, so we add the Update Contacts - With Form Data step.

 

 

There's two ways you can set your value, - either set a static value in the form field so that same value is passed every time,
OR, if the form field will be driven to from various sources, have a hidden field on the form that we populate using JavaScript (see my guide on how to do that)

Either way we map that field to Lead Source - Most Recent

This ensures that for EVERY form submission a relevant Lead Source value is written into the Lead Source - Most Recent field (as it should be, 100% of the time).

 

We then add a second processing step to utilise our new Form update Rule.

 

The step we use is 'Update Contacts with Custom Values'.

click the 'Apply shared Update Rule' button to add your Form Update Rule, and set the step to operate conditionally if Lead Source - Original (is Blank)

 

 

You could just set it as a one-off processing step to update the field from Lead Source - Most Recent to Lead Source - Original, but by creating a shared rule we can use it on every form!

 

 

And that is that,

Lead Source - Most recent will always be set to your value, so will be updated 100% of the time.

Lead Source - Original will grab that value the first time a value is set, but never after that.

 

 

I hope that helps.

 

 

Andy Ball

Eloqua Principal Technical Account Manager,

Oracle Cloud Priority Support.

The thought of JavaScript & coding in HTML on Lading pages & web pages can often be daunting. But it needn't be,

Here is a short guide on how to use JQuery (a simple JavaScript library) to grab a value from your URL & drop that into a hidden form field ready for form submission.

 

Example: - your user clicks through to your form at http://www.google.com?LeadSource=DOIEmail

 

Note the bit after the .com ?LeadSource=DOIEmail - this is what we call a query string parameter. - it's extra text that wont affect the visit to http://www.google.com, but you can use in some way once the visitor arrives.

 

It is what's called a key value pair. - the key(before the equals sign) is linked to the value ( after the equals sign).

We can string many together with the '&' character.

the '?' character just tells the browser to stop rendering the URL at that point.

 

What I mean by that is that

http://www.google.com Is exactly the same as http://www.google.com?this=that&another=one&yetAnother=one&more=data&so=on (...go on, try it!)

 

All of the text this=that&another=one&yetAnother=one&more=data&so=on that occurs after the ? in the URL is ignored. but we can use it upon page visit if we so choose.

 

So here we go.

 

In your HTML, within the Head tags (the bits that go <head > .... </head>) you're going to add a reference to JQuery.

We're going to use a Google hosted version as that will always be accessible & it saves us hosting a file & keeping it up to date.

 

Google libraries can be found here:  https://developers.google.com/speed/libraries/

 

The JQuery link looks like this: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

 

So we add that between the Head Tags:

 

JQuery call

<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

</head>

 

 

 

Now we add a GetParameters function to do the work for us.

 

JQuery call + Get URL function.

<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<script>

      $.urlParam = function(name){

    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);

    if (results==null) {

       return null;

    }

    return decodeURI(results[1]) || 0;

}

    </script>

</head>

 

That is going to do the heavy lifting when we ask it to.

 

Now on our form we have a hidden form field with an ID of LeadSourceFormField - like this: <input name=leadSource id="LeadSourceFormField">

This field will capture the value we supply & we can use this id to target the field with JQuery.

 

Lastly we're going to add a short script just before the closing </body> tag to run once the page loads, It will look into the URL for our query string parameter & grab the value to put it in the form field:

 

Call to get Parameter & posting it into the form field

<script>

      $( document ).ready(function() {

        $('#LeadSource').val($.urlParam('LeadSource'));

        ;

});

    </script>

</body>

 

And that's it!

So that code will run on page load, - scan through the URL for the parameter with id=LeadSource. get the associated value, then put it into the form field with the ID LeadSourceFormField.

When the user submits the form, the hidden value will be submitted for you to track on your Eloqua form & to then post to the Lead Source fields as you see fit.

 

So now, - going back to our earlier example: - your user clicks through to your form at http://www.google.com?LeadSource=DOIEmail

If a user clicks through to our form, illustrated above as Google, our new code will capture the value 'DOIEmail' that is associated with the Key LeadSource in our Query String.

We capture that value to post it to Eloqua.

 

If someone else visits the same page with a different Query string value, like at http://www.google.com?LeadSource=WebinarInvite

The same code will captrue WebinarInvite and that will get posted instead.

 

I hope that all makes sense, please use the comments if there are follow up questions.

 

Here is a complete stripped back example of the Entire HTML page for you to examine: (the form is of course simplified for this example)

 

Example of HTML

<!DOCTYPE html>

<html>

  <head>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

    <script>

      $.urlParam = function(name){

    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);

    if (results==null) {

       return null;

    }

    return decodeURI(results[1]) || 0;

}

    </script>

 

  </head>

  <body>

    <form>

      <input name=firstname><br>

      <input name=lasttname><br>

      <input name=emailAddress><br>

      <input name=leadSource id="LeadSourceFormField" type="hidden"><br>

      <button type="submit">Submit</button>

    </form>

 

 

    <script>

      $( document ).ready(function() {

        $('#LeadSourceFormField').val($.urlParam('LeadSource'));

        ;

});

    </script>

  </body>

</html>

 

 

I hope that helps.

 

 

Andy Ball

Eloqua Principal Technical Account Manager,

Oracle Cloud Priority Support.

Filter Blog

By date: By tag: