Easier way to replace Multi-select Values

Easier way to replace Multi-select Values

There needs to be an easier way to change multi-select values in fields in Marketo.

For instance, in SFDC when you replace a value with a new one, it goes through and updates all the values in a sequence of multi-select values. Our instance of Marketo does not sync everyone from Marketo into SFDC so there are millions of records that do not get updated in this process.

There are only 2 ways to replace multi-select values in Marketo:

  1. Export a list with any of the older values and replace them manually in excel. Then re-import the list back into Marketo.
    • Issues here:
      • If you have duplicates in your system it will only update the most recent version of the record which could be a different version than the one you are trying to update.
      • Related to duplicates, you cannot re-import a list based on Marketo ID so the issue will come up constnatly.
  2. After trying to re-import values, running a smart campaign that takes the remaining scenarios and updates them with the new values by using Change Data Value flow steps.
    • Here is an example scenario:
      • Solution of Interest is Audio Post Production; Media Management; Studio & News Production; Video Editing
      • Change to
      • Solution of Interest is Audio Post & Mixing; Media Management; News Production; Video Editing
    • Sometimes there could be 1000s of different scenarios to update, which makes this process extremely time consuming. Other MAM systems have the functionality to replace a value in a multi-select field. When business are trying to update their options this becomes an incredibly time-consuming process.

Idea: Have a flow step or function that allows for multi-select values to be replaced. Either in the same process done in SFDC or one of the other competitors like HubSpot.

Happy to answer any additional questions related to this request.

4 Comments
SanfordWhiteman
Level 10 - Community Moderator

I agree that a built-in facility would be handy. But the fact is these are stored as string fields, not multiple fields, and string parsing within databases is notoriously terrible (try doing string search/replace in SQL against a large db and you'll see what I mean). So it's a not a simple addition.

Meantime, a webhook can do it lickety-split outside the database, though there will of course be network I/O. For example:

(function replaceInListLikeString( str, delim, search, replace ){

  var reDelim = new RegExp('\\s*' + delim + '\\s*'),

    arr = str.split(reDelim),

    idx = -1;

  while( (idx = arr.indexOf(search,idx+1)) > -1 ) { arr.splice(idx,1,replace); }

  return arr.join(delim);

})({{lead.Solution of Interest}},

  ';',

  'Audio Post Production',

  'Audio Post and Mixing'

)

Also re:[1] you can upsert leads based on Lead ID if you use the API.

Colin_Campbel
Level 2

Thank you for the support Sanford!

I am not too technical with the recommendation you are suggesting, so I will have to research into it. Basically, you are saying 2 things:

  1. Using a webhook to replace the values in the multi-select field.
  2. There is a back end solution going through the API that allows for Lead ID identification? Unfortunately, I do not think we will solve our duplicate issue anytime soon, so we always run into this problem but this could help for mass clean up.

This is at least a start until something can be figured out by Marketo.

SanfordWhiteman
Level 10 - Community Moderator

Right, there are 2 ways to go about this.

First is a webhook. I used JavaScript, which is the uber-popular language used in FlowBoost -- a platform we built that I'm naturally inclined towards -- but for this task other technologies could be used, too. (I purposely made the script generic JS and thus longer than necessary. In FB proper, it would be a single line FBString.list.replaceAll()).

Second is the REST API.  There, you can choose a dedupe key, and ID is the obvious choice for you. If you have a developer, it's relatively easy to build a substitute import form that uses the API behind the scenes. Of course the form won't exist within the Marketo UI, and has to be separately secured.

kh-lschutte
Community Manager
Status changed to: Open Ideas