Workflow is a broad term, but in the marketing automation world, it generally means a series of automated steps and logic that produces a desired outcome. When setting up a workflow rule, always start with the end in mind. The above is an example of a workflow with conditional logic. The purple square is the beginning state, the orange triangle is the workflow engine, and the green circle is the state of nature. Under the set of circumstances above, we would expect to see the black square as the output of the workflow.
The marketing automation platforms and CRMs of best of breed organizations are joined at the hip. That means that jobs are given to the systems that are able to perform them the best.This is a chart of examples of workflows and recommendations for which system is best for each. You can see that Marketo clearly excels in lead database manipulations, flows, and segmentation, especially when considering ease of use, but a CRM is best for advanced calculations, functions, and basically Excel-like formulas.So where do you use workflows?
The workflows I’m going to show you could work for any salesforce object that has relationship to the lead or contact, but today we’ll focus on the campaign member object. The campaign member object in salesforce is a unique table that sits in between a lead or contact and the campaign object itself. As you may know it’s customizable like any other object as far as page layouts and custom fields. It’s a great place to store information that you only need to know once because it relates to a specific campaign and doesn’t really belong on the lead or contact record itself. For example, the first use case that comes to peoples’ minds is event-related information such as a meal preference of chicken or fish or perhaps the name of a guest who you want to know is coming but don’t want to create a new lead or contact for. But I’ve also found it useful in the past as a place to put notes from a tradeshow after I was asked enough times – what happened to the guy who said …###...and the fastest place to see all the leads with their notes was the original spreadsheet. By essentially replicating that spreadsheet in Salesforce it can also be useful as a call list for your teleprospectors. And lastly, it’s a good place to put things like survey responses that are useful for our immediate needs but don’t have to live as a new field on the lead/contact forever. Remember, even if you have a generic “notes” field to dump this kind of information on the lead record, it could be over-written the next time a need for that field arises. By storing it on the campaign member object, you know you’ll always have a place to reference it.Chicken or fishGuest NameTradeshow NotesSurvey Responses
Some more reasons I love the campaign member object – you can report on it and dashboard it in SFDC and lead/contact doesn’t matter. One of my favorite things about Marketo is that it breaks down the lead/contact barrier for marketers in so many ways, but this is the only place in SFDC that gives us this flexibility. And, again, we want to avoid creating lead/contact fields wherever possible because you know how it is – you make a field for one purpose then never use it again and then have to figure out with how to deal with it in the future when you’re trying to clean out your system.
If you’re not convinced yet, here’s one example of how we’re using the workflow I’m about to show you at Evolve IP. We have a Marketo landing page with a Marketo form which, when submitted, launches a third party interactive survey tool. So in Marketo a new lead would be created and that lead’s email address is carried to the URL of the new page. As the lead works through the interactive tool, answers are collected. Then we set up a post back to Marketo that includes the answers and the lead’s email address and those answers are associated to the lead’s record and added to a campaign member object.
This is an alert where you can see how the questions and answers come through in a way that makes sense to the sales rep – again, without creating any new field. We also pass it through Marketo as an interesting moment so that it is visible directly from the lead/contact record for at least some time, but at any point in the future we can run a campaign member report and see all of our respondents and their answers.
The first step in setting this up is to create a field (but only one field) on the lead and contact level that have the same name and are mapped together. In this example, the field is called “Web Lead Comments”, but ideally it would be something like “Campaign Notes”. Once the field is created in SFDC, as you know it will automatically appear in Marketo. I’d recommending making this a long text area field, making it read only for users, and leaving it off of all page layouts.Create a new lead field and a new contact field in SFDC with the SAME nameMap the lead field to the contact fieldWait for the new field to display in Marketo
Then, create a field on the campaign member object that will receive the data from the lead or contact. The campaign member object is a subset of the campaign object in SFDC. Here we see the field called “Campaign Notes”. Again, it is also a long text area field.
The first workflow rule we need is to take the value from the lead and put it in the campaign member notes field whenever a lead is added to a campaign.
The first workflow rule we need is to take the value from the lead and put it in the campaign member notes field whenever a lead is added to a campaign. I won’t read this word for word but the values you need are all there.
Similarly, we need to set up the same workflow rule that transfers the value from the contact record whenever a contact is added to a campaign.
Similarly, we need to set up the same workflow rule that transfers the value from the contact record whenever a contact is added to a campaign. In this example, the formula is additionally checking to confirm that there actually is a value in that field to pass over.
When you’re in Marketo, you have to remember the workflows will fire when a lead/contact is added to a campaign. As you are building your smart campaign flow steps, keep in mind at which point this happens and make sure that all values you need in the lead/contact field are there BEFORE the are added to the campaign.
For example, if your program is synced with a SFDC campaign, remember to consider if you have a form as a local asset. When a lead fills out a form they are automatically added as a program member in Marketo, and therefore could potentially be associated with the campaign in Salesforce prematurely. Sometimes it’s beneficial NOT to sync your program to a campaign so that you have better control over populating the Lead/Contact field with the values you need before adding the leads to a campaign.
And here is an example of that. This is a form from one of our referral programs. The referred lead creates a new lead record, but we also have fields to capture information of the person doing the referring.
What’s nice is that these can be Marketo-only fields because you can use tokens to concatenate their value into your one Lead/Contact level field and then transfer that value wherever you need it – such as to an interesting moment or a campaign member report. Now if anyone asks me for a report of all leads referred from this program and the name of person who did the referring, I can produce that report without having created five new fields in the system that could have only been used once.Some forms may contain Marketo-only fieldsUse Marketo to concatenate these fields into one campaign member field
If you like this idea and you think you might go down this road, I wanted to provide you with a helpful tool for concatenation. The need for this came about when someone exported a Survey Monkey report that separated every response into separate columns and asked me to put it in the system. Have you every tried to use this function in Excel? It can take forever if your data is spread across many cells. Rather than spell out every cell I want to combine and the separator in between them, I wanted to concatenate a range of cells and specify the separator only one time.
So here’s how you can do that using an excel Macro. I’ve provided step-by-step instructions on building the macro if you’re not familiar with the process.
This is the code you can copy and paste right into the visual basic editor. I can’t take credit for writing this code, but thank goodness someone shared this with me because it has saved me hours of time.
Once you close the visual basic editor you can use your new Excel function. The first argument is your delimiter and the cells you want to concatenate can be specified with a range. You can add multiple delimiters if you choose.
This is just an example of it being used in a spreadsheet for an event. It could also be useful for tradeshow spreadsheets if the columns provided don’t match your fields and you just want to put the information somewhere.
Charlie:*Lead Sources*Many companies struggle with the issue of lead source attribution and giving credit where it’s due. You can track progress by tagging campaigns, but not every campaign is a lead source, and vice versa. There are four main types of attribution methods, ranging from easy to complex: First touch, last touch, multi-touch, and weighted multi-touch. 1. First touch gives all credit to the original lead source.2. Last touch gives all credit to the most recent lead source, allowing the lead source field to be overwritten.3. Multi-touch gives equal credit to all lead sources involved. Some companies weight multiple lead sources of the same type as one touch, others count them as multiple touches.4. Weighted multi-touch is the most complex method and gives credence to timing. More recent lead sources get more weight, while earlier ones get less weight.Short of creating a separate custom object for Lead Source, here’s what you can do to keep track of all this information, especially if you want to use methods 3 and 4. Track lead sources by allowing the primary lead source field to be overwritten as the lead comes in from various places, but create a separate field that listens to the original field and keeps track of changes to it. As the original field is updated, the Lead Source History field will append the changes to the end, creating a log of Lead Sources for your particular record.
If you’re using Salesforce, create a Lead Source History field for both the Lead and Contact objects, and call it the same name. Map the Lead field to the Contact field so this information doesn’t get lost upon conversion. Then, you’ll need to create 2 separate sets of workflows and field updates, one for the Lead object, one for the Contact object.Each workflow should be conditional on when Lead Source is updated, and the new value is not blank. The field update formula above reads, if Lead Source is changed, and the new value isn’t blank, set Lead Source History to “Lead Source History old value | Lead Source new value”
You get an end results that is both legible by humans and reportable.To get meaningful insights, you can run reports in Marketo/CRM using the “contains” operator when working with this field. Just be careful you’re aware that you may be double counting leads and opportunity values when reporting this way. You can get around this issue by using a simple 1/countif function is reporting in Excel.
What do all these have in common? They were relevant in 2005.
Scenario:In 2005, a prospect fills out a webform or tells your sales rep that she’s ready to make a purchasing decision in 2 months. The sales rep puts down “2 months” in the prospect timeframe field in your CRM. In 2014, another sales rep looks at that field and decides to act on the information, enthusiastically lobbing a call to said prospect and referring his information that she’s ready to buy in 2 months. Just as no one remembers Tom Cruise, no one will even remember your company, or what they put down on that form.
Get smart with your database. Create a field that stores that information as a legible date field, not a “months from now” field. To create this, you’ll need to set up 3 fields that will help you do this calculation:Date field: Timeframe Date Submitted – this field will store the date that the project timeframe information was captured.Number field: Project Timeframe Days – this field will store how many days the prospect has indicated he will need until he’s ready to make a purchasing decision.Formula text field: Project Timeframe – this field will perform the following calculation and return the month and year in which the prospect has indicated readiness:Timeframe Date Submitted + Project Timeframe Days
Example of a form.Project timeframe would be framed in a dropdown. Since most users probably do not know the exact timeframe, or are reluctant to tell you, you’ll get a better answer if you ask the project timeframe question via dropdown. Although the dropdown values are text, you can store the middle of the range of the dropdown as a number for your calculation.For example, the dropdown selection “2-3 months” would submit a numerical value of 75 days to your backend in the Project Timeframe Days field.
In Marketo, when the form is submitted, also be sure include a workflow in a smart campaign to change your Timeframe Date Submitted field to today. Note that the format shown above will tell Marketo to input today’s date. Be careful to not actually open up the calendar and select a date as that will cause the date value to be static.
Some of these workflows can also be accomplished by formula fields in Salesforce. As with most things, there are many ways to do the same thing. In the case of workflows with field updates, you will find that at times formula fields are more suitable for accomplishing the same thing. If you are using Salesforce, this is the formula to put into your text formula field to allow it to spit out the output.Be sure to grab the API names of your equivalent fields to the 3 fields mentioned earlier and replace them respectively in the formula above. The formula above basically says, If either Timeframe Date Submitted or Project Timeframe Days is blank, remain blank. Otherwise, give me the Timeframe Date Submitted + Project Timeframe Days in “Mon Year” format.
The result is an elegant human-readable and machine reportable field. Your Inside Sales team will love you. Your Analytics person will adore you.You will be granted a vacation to Aruba shortly after…
What do all the numbers above have in common?They are just some of the ways phone numbers can be formatted.This creates a nightmare for marketers who do a lot of regional marketing and use area codes to segment local area invitations.
Never hold a tennis ball in your mouth while going dumpster diving.You had to make 48 filters for a regional invite so you went to go get some coffee.Your kitchen was out of sugar so you walked across the street to pick some up.You get lost and walked into the middle of a gang meeting.The only way the gangsters would let you go is if you make them laugh.You decide the best way to do this would be to hold a tennis ball in your mouth while going dumpster diving.
The mother of all formulas.Create a new numerical formula field for Area Code. This formula field will look at your phone number field and return an area code if a valid value is found, ignoring all special characters and formatting.This formula only works for US/Canada 3 digit area codes.
The result is one filter per area code. Instead of dumpster diving with a tennis ball in your mouth, you’re at home cheering on the San Francisco Giants.
EXAMPLE OF POPULATED SLIDE
How to Leverage Workflow Rules and Formulas to Empower Your Marketing
Robust Business Logic: How to Leverage
Workflow Rules and Formulas
Demand Gen Manager,
Replace area with
(Remove if not needed)
Sales and Marketing