Be aware of decodeURIComponent() limitations (not only with Marketo forms, but with any 1ˢᵗ or 3ʳᵈ party JS)

You’re just one unencoded (or wrongly-encoded) query param away from a broken form. Scary, right?

MktoForms2.whenReady() is always non-blocking (plus: what is and isn’t a race condition)

I might be unhealthily obsessed with form events. But not testing against worst cases is how you get “randomly” broken forms.

Tip: Add a initial row number to Bulk Lead Import CSVs for useful failure reports

Ideally, you should pre-flight CSVs (i.e. check for core errors) before sending ’em to the Bulk API. If you can’t do that, at least add a column to all CSVs to make post-processing easier.

No, you don’t need a Wait step after Sync Person to SFDC: sync-related updates are immediate (i.e. synchronous)

Don’t let paranoia get the better of you: the Marketo-SFDC connector is very smart about order of operations.

Marketo click tracking only works because 2 JavaScript bugs cancel each other out

Code that works by luck rather than by design? Yikes. A brief code review would’ve caught this one.

Deleting the non-deletable: clear an overridden {{my.token}} using the Marketo API

You don’t need to accept “Token is already in use” as a permanent condition.

Why you 𝒅𝒐𝒏’𝒕 need to check if GTM’s window.dataLayer was blocked by an ad blocker

An exceptional case where you’d think code isn’t resilient, but it mysteriously is!

Check out my colleague Jo Pitts’s blog, too

Jo & I are kindred spirits (and collaborators) and the revived MoTaM blog is highly recommended.