Disturbingly detailed Velocity: $string.substring(0,$string.length()) isn’t doing what you think

Memory matters: if your Velocity code is inefficient and/or too obscure to be optimized, you can slow or even crash your Marketo instance.

Creating trackable links even when a token includes “http://” or “https://”

If your stored URLs (in both URL and String fields) include the protocol — as you‘d assume they should! — that makes them non-trackable. Velocity can make ‘em trackable again.

Don’t choose “promo” as your Marketo LP subdomain (that is, promo.example.com)

You might think choosing an LP subdomain (pages.example.com, get.example.com, etc.) is just a branding thing. But there are a few hostnames you must not choose, for quirky technical reasons.

The Salesforce (and Marketo) “URL” type supports Unicode: make sure your data warehouse knows this!

If a SaaS app lets you store certain characters in a field, your offline data warehouse (or data lake, or archive, or whatever) must support those same characters, no matter how rarely used.

Appending form fields to the Thank You URL

Use this little bit of JS to pass submitted form values across sites, from a Marketo form on Domain A to a Thank You page on Domain B.

Transforming IRIs to URIs/URLs using Velocity

If you’re storing IRIs — as I previously advised for readability and compactness — you might someday need to turn them back into URIs. Velocity can do that.

Consider decoding URLs if you’re just storing them for attribution

URL-encoding isn’t something you just do (or hope someone else does for you!) and forget about. It’s required in only one case, and outside of that, might be better off undone.

Why “Grab Images from Web” may show an error or return partial results

Just a few notes on why this Marketo “extra” isn’t always usable.