Skip navigation
All Places > Products > Blog > 2019 > January
2019

This JS string-splitting approach is a sure code smell, but I see it all the time on LPs:

 

var partsOfString = stringifiedLeadInfo.split("|");
var firstName = partsOfString[0];
var lastName = partsOfString[1];
var companyName = partsOfString[2];
var phoneNumber = partsOfString[3];
/* ... and so on and so on... */

 

 

Presumably stringifiedLeadInfo when the code was first written was a string like

 

Sandy|Whiteman|FigureOne, Inc.|212-222-2222

 

But this code is clearly fragile: there's no guarantee that the “magic numbers” 0, 1, 2, and 3 will continue to represent the same data (business-wise) inside the string.  If order shifts around at the source, or if a new data point is added in the middle, all these lines may need to change. That leads to bugs.

 

Instead, use what I call a header string. It's nothing more than a sample string containing the variable names in the currently expected order

 

var delim = "|",
    stringifiedLeadHeaders = "firstName|lastName|companyName|phoneNumber",    
    leadHeaders = stringifiedLeadHeaders.split(delim);

var leadInfo = stringifiedLeadInfo
                 .split(delim)
                 .reduce(function(acc,next,idx){
                   acc[leadHeaders[idx] || "Unknown_Property_" + idx] = next;
                   return acc;
                 },{});

 

 

Now, leadInfo is a simple object:

 

{
  firstName: "Sandy",
  lastName: "Whiteman",
  companyName: "FigureOne, Inc.",
  phoneNumber: "212-222-2222"
}

 

 

And you only need to change the header string if the data starts coming in differently. No other lines need to be added or changed. 

 

(I also made the delimiter a variable, ’cuz that could change too. And if new data points appear in the data before you add them to the header, they're given automatic names like Unknown_Property_5 to help signal the change.)

 

Please use this — or something along these lines, there are other methods with the same effect — in your code. It makes it less painful to read (scrolling through 25 variable assignments ain’t fun) and because of my curious specialty I spend a lot of time reading other people's stuff.

 

Do it in Velocity, too

The equivalent can be done in any language. Always better than magic numbers, IMNSHO. Here's the comparable VTL:

 

#set( $delim = "\|" )
#set( $stringifiedLeadHeaders = "firstName|lastName|companyName|phoneNumber" )
#set( $leadHeaders = $stringifiedLeadHeaders.split($delim) )
#set( $leadHeadersCount = $leadHeaders.size() )
#set( $leadInfo = {} )
#foreach( $next in $stringifiedLeadInfo.split($delim) )
#if( $foreach.index < $leadHeadersCount )
#set( $void = $leadInfo.put($leadHeaders[$foreach.index], $next) )
#else
#set( $void = $leadInfo.put("Unknown_Property_${foreach.index}", $next ) )
#end
#end

 

 

The main difference here (Velocity's verbosity aside) is that Java's String.split always treats the delimiter as a regular expression, not a simple string. Since the pipe symbol "|" has special meaning in regex-land, I escaped it as "\|" to treat it non-specially. Character class "[|]" would also implicitly escape the pipe.

 

(JavaScript's split(delim) also supports regexes, but the language can tell the difference between a "string" and a /regex/ so you don't need to escape strings.)

 

Better yet, don't give yourself the need to split

It could be argued that all string splitting is smelly, and this improvement is just code cologne.

 

Indeed, the best string-splitting code is the code you don't have to write, because you store multivalued fields as JSON or some other well-known, self-describing  format. Private formats with pipes, semicolons, or commas are to be avoided when possible. We'll never completely get away from them, though, and they’re admittedly efficient storage-wise.

A majority of customers find their consultants to be their most valuable resource during their Marketo onboarding. However, we also know your time with them is limited. Check out the following advice - most of it sourced from Marketo consultants themselves - on how to optimize your onboarding experience right from the get go.

 

What are some of the pitfalls I should look out for during onboarding?

  • Users that don’t look at Marketo learning resources or take Marketo-recommended trainings before working with their consultant will often end up spending valuable consulting hours trying to understand basic Marketo concepts. Take some time to check out the Marketo University free trainings, Marketo University Online, or purchase the Marketo Core Concepts course.
  • Start thinking long-term about content you’ll be using for your Marketo programs. Which type of email and landing page assets will you need? Are you producing creative assets from scratch or repurposing content from previous marketing campaigns? Creating those Marketo program may seem far away now, but waiting on creative assets can often be an unforeseen bottleneck.
  • Build out your Marketo documentation as you set your instance up instead of trying to document it all after your implementation. This makes the task of recording your Marketo admin choices much easier and helps you make informed decisions throughout your implementation.
  • Because Marketo often pulls in data from a CRM (and sometimes pushes out to it, too), data quality can have a huge impact on your Marketo implementation. If you have the time and resources available, clean up your data before integrating with Marketo.
  • Many companies don't have clearly defined, consistent processes to manage lead handoffs between marketing, telemarketing and sales. If they do, they often only have them for prospects, and not for existing customers that research additional products. Take the time to connect with other teams and map these strategies out while you’re building in Marketo to ensure you will get the most out of your use of the platform.
  • Be sure to involve your leadership in the implementation right from the start. Leaders that are hands-off won’t always understand the capabilities of Marketo, whereas leaders who are involved and invested in Marketo can help set you up for long-term success.


How do I make the most of my consulting hours?

  • Be sure to complete the recommended Marketo trainings before getting started with your consultant. That way, you can spend your time working through your implementation and not on Marketo basics.
  • Submit support tickets on your own - it’s good practice, plus you won’t be using your consulting hours for this.
  • Make sure you’ve contacted the teams that need to get involved early. You don’t want to get on a call with your consultant and be waiting on a deliverable from IT or Sales Ops because they didn’t know they had a role in onboarding Marketo.
  • Set some time aside to do a bit of learning on your own each week. Check out the Marketo Product Docs and Marketo University videos.


Where should I go if I need help during my onboarding?

  • Ask your consultant for instance-specific questions.
    • Note: Asking your consultant for help outside of your regular meetings will generally eat into your consulting hours
  • Submit a Support ticket on the Marketing Nation Community.
  • Check out the:
    • Marketo Product Docs - how-to guides on Marketo features
    • Marketing Nation Community - open forum with blog posts, product discussions, Q&A with fellow users, and the Support portal
    • Support Office Hours - available to customers with the appropriate Marketo Launch Pack; regularly scheduled time to bring your questions to Marketo consultants
      • Note: These are only available to customers who have purchased a Marketo Launch Pack. You must register before each session in order to attend these office hours.
    • Partner Blogs - our extensive partner ecosystem is a huge asset for Marketo users. Search through Marketo Partners’ sites and blogs for additional tips
    • Peer Content - sometimes typing out your question in Google will bring up some awesome content from other Marketo users!

 

 

A huge thank you to the Marketo Professional Services Consulting team for sharing their knowledge and advice with customers!

 

Hello Marketing Nation!

 

Today we are thrilled to announce the Class of 2019 Marketo Champions! Each member of this group has proven themselves to be a steadfast Marketo brand ambassador and a valuable asset to the Advocate Nation. Their expertise will be critical in enabling their peers to drive even more success with Marketo in 2019.

 

We also want to thank the hundreds of customers who applied to become a Marketo Champion this year. Your passion for Marketo made determining this year’s Champions very difficult. We are humbled by the turnout and look forward to your continued participation in Advocate Nation. Please join me in welcoming this year’s Marketo Champion class!

 

Also, Marketo CMO Sarah Kennedy would like to share a few words to the incoming class of Marketo Champions:

 

 

NameCompany
Ajay SarpalAryaka Networks
Amanda ThomasAlert Logic
Amber HobsonApplied Systems
Amy ConnorThousandEyes
Ann Marie GastineauOptiv
Ashley LangfordGreenSky
Bekah WaltersWorkiva
Beth MassuraUniversity of Chicago
Brooke BartosWalker Sands Digital
Carissa RussellCurrent powered by GE
Carrie ChandlerGenworth Mortgage Insurance
Chelsea KikoHileman Group
Chloe PottNexthink
Chris WilcoxHartford Funds
Darrell AlfonsoAWS
Devraj GrewalZuman
Elicia ChenLiveRamp
Grace BrebnerTourism Holdings Limited
Helen AbramovaVerizon Enterprise Solutions
JD NelsonSpigit
Jenn DiMariaDigital Pi
Jenny RobertsonANNUITAS
Jessica KaoDigital Pi
Joe ReitzAWS
Juli JamesSt. Edwards University
Karan HariWunderman\MSC
Kevin WeisenbergerDaVita
Kristy MurphyVerizon
Kyle McCormickPalo Alto Networks
Loren PosendeckDuo Security
Maarten WestdorpInnogy SE
Michelle TangCloudflare
Mike ChiuPanasonic Corporation of North America
Natalie KremerMcGraw-Hill Education
Omar Al-SinjariMcKesson/RelayHealth
Sean BissellSAP Concur
Sydney GordonCloudPassage
Sydney MulliganEtumos
TJ PerrinXylem
Trent CrossSolomon Solution

 

You can find all of their Community and LinkedIn profiles here!

While there's no perfect recipe for success for your Marketo implementation, most Marketo users can agree on two things that'll make the process a whole lot smoother:

1. Plan ahead of time: It's always a good idea to keep a plan or timeline around your implementation so you can make sure you're hitting your goals and pulling together the resources you'll need well in advance. Remember that implementation is an ongoing process and building some flexibility into your plans will help you stay realistic about your plan.

2. Get your leadership involved: Leadership buy-in and support is a huge differentiator for long-term Marketo success. Keeping your internal stakeholders aware of your goals and up to date on your onboarding process will make sure they feel invested in the process and in Marketo. Whether you're scheduling regular meetings with them or sending out an update email each week, maintaining regular contact will make sure they're on the same page as you and will help them manage their expectations around your organization's Marketo onboarding.

 

Check out the attached resources to help you get started:

1. Onboarding Milestones Template: Use this template to outline some specific milestones during your onboarding and identify the teams and resources you'll need to engage before you go live.

2. Internal Communications Guide and Template: Once you have your milestones laid out, use this guide to draft regular updates to your key stakeholders.

 

Have a couple tips or implementation advice of your own? Help your peers out and share them in the comments below!

By now, you've probably heard the exciting news: Marketing Nation Summit is taking place at Adobe Summit, March 24-28, 2019 in Las Vegas!

 

Why? Because, now that you’re part of the Adobe family, Adobe and Marketo couldn’t wait to engage with you and connect you with an even larger community of passionate marketers. Integrating Marketing Nation Summit into Adobe’s event allows you to not only enjoy all of the usual Marketing Nation activities, but gives you the opportunity to connect with the broader Adobe ecosystem and benefit from multiple days of additional breakout content covering every area of interest to modern marketers in 2019.

Together with 15,000+ marketers, advertisers, data scientists, and other experience marketers, join us for four inspiring and action-packed days. Learn more about how Marketo integrates with Adobe Sensei, Adobe Experience Cloud, Adobe Analytics, and much more. Marketo will be integrated throughout the entire event, including the community pavilion (exhibit hall), general sessions, and networking events—plus, we have added a dedicated day on Thursday, March 28, specifically focused on bringing together the entire Marketing Nation for compelling content breakouts sessions, and most importantly, opportunities to celebrate our achievements together.

 

Tickets are on sale now and all Marketo customers will be offered a discounted ticket price of $1,195 (originally $1,895). To purchase tickets, register here and enter promo code S19MN.
 

Stay tuned for more information in the coming weeks, including:

  • A full list of Marketo sessions
  • Marketo’s University Day and opportunities to get your Marketo certification
  • Plus, regional events for the Marketing Nation community happening around the globe throughout 2019, such as Adobe Summit EMEA in London (May 13-16, 2019)


Questions? Please don’t hesitate to reach out to summitsupport@adobe-summit.com.


Best,
 

The Marketo Team

“Imagine you win the lottery today and quit your job tomorrow. Would someone be able to step right in and take over your Marketo instance?” This is the mindset Tori Forte, Marketo consultant extraordinaire, recommends as you’re thinking about documenting your Marketo instance. In fact, good documentation can be nearly as important as the actual implementation itself. Keeping track of changes and decisions you’ve made during your instance setup can help you:

  • More easily train additional users in a scalable way
  • Build more efficiently in Marketo long-term
  • Maintain the health and hygiene of your instance moving forward
  • Make the transition process much smoother for a new Marketo admin if your team experiences any turnover


There are a couple different types of documentation you can produce. A governance guide outlines your instance setup in detail with topics such as program/folder structures, communication limits, and more. This would be a living document that users would turn to in order to identify your specific best practices and governing standards for your Marketo instance, and would mainly be for your Marketo admin or main user. In addition to a governance guide, your team may need supplemental enablement documents or training materials to help them get up to speed with Marketo. These could include exercises to practice working with the platform, quizzes to pass before being granted access, or a list of what your users are allowed to do in Marketo. These would be aimed at all Marketo users in your organization.
Whether you’re putting together a full blown governance guide or are simply documenting the key aspects of your setup to start, writing down the decisions you make during onboarding will help you and your team be successful with Marketo.

Getting Started on Your Documentation

Having trouble getting started on your guide? Tori suggests first focusing on the most important aspect of your Marketo documentation: your Admin Setup. “Make sure you’re writing down all of your behind-the-scenes decisions so if anyone needs to take over your Marketo instance, they’ll be able to understand how and why your instance was set up the way it is.” It’s crucial, Tori points out, that you “don’t just document what was built, but why it was built that way.” This helps a future admin (or even future you) avoid repeating decisions that didn’t work out or wasting time going down dead ends.

 

Another recommendation from Tori to establish the success of your documentation is to “ensure every rule you make has an owner to enforce it down the line. Lack of enforcement makes writing those rules moot.” Check in with your team and put a process in place to make sure this documentation will continue to adapt and stay relevant, as well as stay top of mind for your users.

Tips and Tricks

Whether you’re documenting a new/existing instance or creating training resources for your organization’s Marketo users, consider these tips from one of our resident Marketo experts, Kylie Peters:

  • Over-document, over-communicate, over-test! If it feels like you’re doing enough, you might not be doing enough.” You never know what might be useful to you or your team in the future, so be sure to add in details and keep other teams in the loop!
  • Be ‘new-hire-minded’. Write the documentation for someone who’s never used this technology before.” Once you become familiar with Marketo it can be easy to take a lot of background knowledge for granted. Make sure you’re creating your enablement and governance documentation with the most basic user in mind. Consider including some definitions and best practices directly into your training documentation if they’ll help new users get up to speed.
  • People have different ways of processing and understanding information so it helps to use a combination of written points, pictures, videos, and hands-on exercises in your trainings.” Instead of just writing a block of text to send out to your team, include some interactive content or a couple different formats within your enablement documentation and training.
  • Run the documentation by someone who’s never seen Marketo before and ask them if they have any questions.” Not sure if your governance and enablement documentation is clear? Ask someone who’s never used Marketo to take a look and see if they can follow your trainings. This will give you a good fresh perspective on what you’ve put together and how you can improve it.
  • “It’s important to remember that training documents are very different based on your needs and your instance.” Unlike governance guides, which should be as comprehensive as possible, enablement documents should be produced based on your organization’s need. Keep in mind that what might be important to document in detail for one instance or one user could be less relevant for others. You should know your instance and users best, so create your training documentation accordingly.



Marketo Documentation Sample Topics

Use these topics to guide your initial Marketo governance documentation plan. It may help to take it slow and start with a few topics that are important to your particular instance, then expand from there.

 

  • What is Marketo and what are its purposes for our organization
  • Purpose of this Documentation
  • Process to Maintain/Make Changes to Governance Guide
  • Administrative Set Up
    • Instance(s)
    • Workspaces and Partitions
    • User Roles and Responsibilities
    • Smart Campaign/Email/Program Settings
    • Communication Limits
    • Security
    • Channels
    • Tags
  • Data Structure
    • Field Structure
  • Operational Programs
  • Building In Marketo Instance
    • Center of Excellence (COE)
    • Folder Structure
    • Naming Conventions
    • Program Organization
    • Templates
    • Standardized Processes
    • Checklists
    • Segmentations
    • Archiving
    • Subscription Center
  • CRM Integration
    • How does the sync work
    • Campaign Sync
    • Data Dictionary
  • Other Integrations
  • GDPR & Compliance

 

Check out an example of Channel Documentation here.

 

Start documenting your instance today! Be sure to involve your whole team - whether that’s just you or a team of 10 - and revisit these docs every month to keep it up to date as your use of your Marketo instance grows.

 

To regularly receive content to help you through your Marketo onboarding and implementation, sign up for the Marketo Jumpstart series.

Or not so much “beware” as ignore an Email Bounced Soft that doesn't have an associated Category.

 

Far too many posts and practices imply that grouping Email Bounced Soft-s together with a simple filter is harmless. The thought is that you may want to separate Category 3, Category 4, and Category 9 but you don't have to.

 

The approach is implicitly encouraged by the official docs:

 

 

But this doc is misleading, because there's one type unlisted: call it the No-Category (NC) Soft Bounce.

 

Guess what falls into NC? If you read my posts avidly, you might suspect it's something code-related. Yep: a Velocity token parsing error results in an NC Soft Bounce.

 

Here's one I triggered at a client just now by accidentally deleting the close parenthesis ) from a #set directive:

 

 

I quickly fixed the error before sending again in this case.

 

But imagine if it took more troubleshooting, and each send triggered an operational campaign (or qualified for the equivalent daily batch) that counted Email Bounced Soft activities without a Category constraint, setting Marketing Suspended = true when people exceeded a threshold. There are well-known recipes for Marketo database cleaning out there that do just that!

 

Don't make that mistake. Constrain Email Bounced Soft by Category [is not empty] to catch only the bounce types which may call the lead's info into question. Velocity coding errors must not be held against the lead, as they're completely in your court.

 

You can view just the Velocity parsing errors like this:

 

 

 

P.S. and N.B.: the Velocity errors that are surfaced as NC Soft Bounces are Velocity Template Language (VTL) parsing errors. That is, forgetting the #end of an #if, missing parentheses or brackets, or other broken syntax. That doesn't include Java language errors thrown by syntactically valid VTL, like trying to get() a nonexistent index in an ArrayList of Custom Objects. The latter type of error shows up verbosely in the Preview UI, but if it makes it to send time, it's swallowed by the system. You will only see the Sent Email without a corresponding Delivered Email in this case. Obviously that's pretty ambiguous. So test, test, test your Velocity!

Filter Blog

By date: By tag: