2JB0jINxxi.gif?w=1107

Bombproof your list imports with proxy fields

Anonymous
Not applicable

List imports are scary stuff.

There are a lot of things that can go wrong with pushing a file of leads into your database. Duplicates. Overwritten values. Bad data. List imports open you up to a lot of risk to your Marketo database all at once.

But you can set up a line of defense for your more sensitive fields using what I call “proxy fields”, which help you intelligently manage how data is overwritten.

List imports are a daily task for us, and so we’ve gotten pretty strict on the data requirements for new leads, particularly with the lead status field. When we upload, we need to be able to distinguish between suspects/inquiries and truly qualified leads.

We block field updates for the lead status field, meaning it only accepts the first value from a list import, and won’t be changed by future imports. This helps us ensure a lead that’s already an MQL cannot move backwards and become a suspect from a later list import.

This is handy, but field blocking is a double edged sword. Suppose a lead was originally imported as a suspect, but is now on an import list where we’ve marked them as an MQL. In that case, we actually want them to become an MQL, but since that field blocking is in place, that lead’s status won’t be changed, and we’d be forced to fix it manually.

To work around this, we created a proxy field, called “Import Lead Status.” It replaces the standard lead status field on our import lists, and more intelligently manages the data, making sure leads can move forward in status, but not backwards.

Here’s how to set it up in about 10 minutes:

  • Create a new text field with a name distinct from the original field (this should be a marketo-only field), such as “Import Lead Status.” Ensure no field updates are blocked. You may also want to set a few list import aliases for this field, as this is the field you’ll want all your list imports to map to in the future.
  • Create a smart campaign set to run every time a lead qualifies, with two triggers: one for anytime your new field’s value changes, and another for when the lead is created (since data value change triggers won’t fire for new leads). You’ll also want to include two filters:
    • A filter to exclude any lead statuses you do not want to change. You need to include this so your import lead status doesn’t move any leads backwards inadvertently. I decided that anything Marketing Qualified or beyond (SAL, SQL, etc) shouldn’t be changed.
    • A filter the specifies that the import lead status field isn’t empty (for the aforementioned “lead is created” trigger)
  • For your new Smart Campaign’s flow, you just need one step, “Change Data Value” that sets the lead status by grabbing the value from the proxy field, using a field token.

2JB0jINxxi.gif?w=1107

The nice thing about this process is it’s invisible to your other Marketo users. We have a standard import template that we require for any list uploads, and I have “lead status” and variations of it mapped to this proxy field as a safeguard, so to anyone importing lists, this is no different to how they managed the process before. Since implementing this process, it’s had a big impact on efficiency and accuracy for us.

Obviously this is just one example of a proxy field – you could do something similar for geographic fields, company names, phone numbers, and much more. If you’re doing something similar, I’d love to hear about it!

This post originally appeared on www.jeffrshearer.com

4485
15
15 Comments
Anonymous
Not applicable

Sadly, the use case is not under my influence.  I don't like the implementation at all but I have no say in that side of the organisation. I am interested in the idea of using a partition for these leads though.  I need to look into all of the syncing implementations, I'm not that familiar with how syncing with SFDC works with partitions, if I remember correctly, you have to nominate a partition for the sync? Beyond the scope of this article but interesting nevertheless.

Anonymous
Not applicable

A partition does not need to be nominated for the sync. Any partition is eligible within the rules of your workspaces and partition infrastructure.Some good articles around the community on this.

Anonymous
Not applicable

Great article, by the way! Let me explain a scenario and hopefully, you have a suggestion. We are using these proxy fields for a Lead Temp and Lead Status, and all of our list imports, for the most part, will be imported with a Lead Temp=Cold and Lead Status=Prospecting. Here are our exclusions for Lead Status (these statuses will trigger a stage change, just f.y.i.). If we have a lead that has been contacted by an SDR, there Stage=SDEL and Status=Contacted. We would not want an import to regress the status which would move the lead back up the funnel. Here are our exclusions for the proxy field:

pastedImage_0.png

Now, in some cases, we will need to import a list, say of event leads, that are actually hot leads and maybe we want them to come in as scheduled (a sales guy booked a demo at a show with this lead). How do we go around this proxy field and potentially move an existing lead down the funnel? This campaign will not pick this and no updates will be made.

Let me know your thoughts. Thanks!

Anonymous
Not applicable

Hey Franklin,

Sorry for the delayed response. What you're describing is exactly my use case as well. Here's how i do it:

  1. List of leads has each lead marked with the relevant status in their "Lead Status Proxy" field column. This could be "Cold", or it could be "MQL", "SQL", etc. It's basically determined by the person building the list, so they can mark anyone who's a hot lead and who isn't.
  2. That field from the list is then mapped to the "Lead Status Proxy" field
  3. A smart campaign takes the "Lead Status Proxy" value and uses it to set an appropriate "Lead Status" value (the primary field that is actually used for routing and stage changes and whatnot). This basically has two steps:
    1. If the "Lead Status" field is empty, then simply set it to equal the value in the "Lead Status Proxy field (This handles brand new leads, and ensures they're set with whatever value we specified in the list import)
    2. If the "Lead Status" field is NOT empty, then use other criteria to determine what happens to it:
      1. If "Lead Status" = "Suspect" (Our version of "Cold"), then set the "Lead Status" field value to equal the "Lead Status Proxy"field value (This makes sure an existing lead can move forward in the funnel via the list import, if needed)
      2. If "Lead Status" = "MQL", or "SAL" etc, then don't change anything. (This makes sure a lead can't move backwards in status)

You could obviously build onto this list for further refinements and customization, but the basic concept remains: Write to a secondary field, then use that value to determine what value to write to the primary field. It basically lets you replace the rather binary field update blocking settings with something that's much more dynamic and customizable. Hope this helps!

-Jeff

Anonymous
Not applicable

Thanks, Jeff! This helps!