Skip navigation
All Places > New York User Group > Blog > Authors Sanford Whiteman
1 2 3 4 Previous Next

New York User Group

57 Posts authored by: Sanford Whiteman

When you output a textarea token in an HTML email, you might be surprised that its linebreaks go bye-bye. This really should be expected, as newlines are typically swallowed in HTML unless you have specifically ordered otherwise.


One fix is to use a CSS white-space style override.  I believe that style is honored in all modern mail clients, but you've required the email author to remember to always wrap that token in certain formatting.  Better, I'd think, to give them a token that's already HTML-aware.

Read the full post on TEKNKL :: Blog →

In a series of posts earlier this year I showed that a huge percentage of Marketo customers didn't have a functioning SPF record. Not merely that they didn't have Marketo included in their SPF record — that's unnecessary in most cases — but that their SPF record was broken in general, affecting all email sent from their domain including from corporate HQ.


I was curious if the landscape had changed at all, so I ran another quick checkup today.

Read the full post on TEKNKL :: Blog →

Velocimacros are functions that can be declared at the top of a template or context and reused as many times as you need. Really, the term “macro” doesn't do them justice, since with VTL you can use a wide swath of Java language features, and all that fun stuff can be used inside a #macro too.


While using macros in tiny scripts is probably a sign of overengineering, when I answer questions on the Marketo community I like to structure my code with the user-editable parts (i.e. site-specific strings) at the top and then a comment like ## No need to edit below this line!. (The goal being to make new/non-developers a little less frightened.)


So if at the end of a script you'll want to output a link (as is very common!) you might think about putting a macro at the top to call later...

Read the full post on TEKNKL :: Blog →

JavaScript arrays are magic. Really, they are.  Array#map… Array#find… Array#some… don't know how I could get anything done without them.


Problem is, in the CRM and MA world, array-like data — that is, a set of independent values — rarely comes to you as a real array. Instead, you get fields that humans might think of as a “list,” but which really is just a single big string. Take this Marketo field at one of my clients:




You look at that as a developer and groan. Even though you know what it's supposed to represent (at least right now) and end users may not see the inherent problems, you see the potential trouble to come. You note the uneven spacing around the commas; wonder what happens if a single value needs to contain a comma; dread searching accurately for "Monthly-Diamond" when another subscription might be "Bi-Monthly-Diamond" and values can occur in any order.

Read the full post on TEKNKL :: Blog →

I keep some Marketo factoids close to the vest (hey, gotta get paid for something! ) but if you read the fine print of my Community responses, you'll see allusions to longstanding bugs that I've never detailed.


Case in point is this thread where I casually mentioned that on pages with multiple downloadable assets (like PDFs), you must add target="_blank" to every download link in order for all Clicked Link events to appear in the lead's Activity Log. Guess it's time I explained why.

Read the full post on TEKNKL :: Blog →

Couple of li'l technotes today in response to reader questions: one on including a random product URL (from a preset list) in an email, and another on lists (i.e. ArrayLists) with no items.

Read the full post on TEKNKL :: Blog →

I'm a big fan of using Text type fields (a.k.a. textareas) to store blocks of JSON. Such fields become a sort of “poor man's custom object,” able to store a bunch of related properties about an event, a set of lead interests, even all the answers to a survey, in just one field.


JSON fields can also be used to transport data for full-fledged custom objects later created within SFDC or Marketo, and they can be used as Velocity Map objects (in emails) and JavaScript objects (on LPs). They're a goldmine for productivity if used well.

Read the full post on TEKNKL :: Blog →

Though Marketo forms use standard HTML input types (which is a very good thing for cross-platform compatibility) there are a few subtypes and niche uses that aren't supported unless you use a little JS to enhance the form.


One of the classic HTML form features is the  <OPTGROUP> tag, which allows you to group together <SELECT> (i.e. picklist) options under a relevant label.

Read the full post on TEKNKL :: Blog →

You're minutes away from sending an email when you realize: “Oops, some leads shouldn't see that paragraph!”


What do you do when it's too late to segment and replace a section with a snippet? Here's a different approach that the fast-growing Marketo VTLien community should like.

Read the full post on TEKNKL :: Blog →

Most users think webhooks can only perform inbound updates (that is, updates to the Marketo database) if they include field values in the response.


If we chose a webhook explicitly to update custom fields — like pulling in lead data from an ABM enrichment service — we don't worry about that would-be limitation. If we want to update our SFDC-synced field Annual_Revenue__c, the webhook sends back...

Read the full post on TEKNKL :: Blog →

You must UTM-tag email links in order to get maximum attribution on the web side.  But Marketo offers no built-in way to verify the presence of utm_medium / utm_campaign / etc., so that workflow step is very hard to enforce.


So I wrote a little script you can save as a bookmarklet. The script checks all the links in an email preview to ensure they have at least one utm_ query param.

Read the full post on TEKNKL :: Blog →

As a precursor to a longer series of Velocity posts, let's look at data types in the scripting environment vs. in the Marketo database. The rule (singular) is simple: in my tests every lead field is exported as a string into Velocity, regardless of whether it's a Boolean, Date, Number, Score, DateTime, or String type within Field Management and the individual Lead UI.

Read the full post on TEKNKL :: Blog →