A Pirate’s Pocket Guide to SFMC: What Not to Do
Standard Salesforce Marketing Cloud bullet points are easy to find. But what about lessons learned the hard way?
By Adam Spriggs and Joel Lapidus
If you needed a lift during the Age of Discovery, you called a pirate. Magellan. Columbus. Drake. These hired guns (moral questions aside) were the very best navigators on the globe — navigators whose accumulated know-how bettered your odds of arriving safely at your destination.
At Slalom, our consultants are not literal pirates, but we’ve been there, done that, and wear the scars. Compiled below are hard-won snippets of wisdom that collectively can help steer you to port — on time and on budget — in your SFMC journey.
Automation Studio
Principle 1:
Don’t start your automation’s recurring schedule at :00
, :15
, :30
or :45
past the hour. Why? There’s a start lag because everyone else had the same idea on your stack.
Principle 2:
Don’t use “Run Once” if you’re going to run all the steps in your automation. Why? There’s a start lag because of the extra checking for enabled/disabled steps. Use the “Run All Activities Once” option from the listing page for a quicker one-off start.
Principle 3:
Don’t accept Journey Builder putting its entry event last in an automation, unless it makes sense. Why? If there are steps in the journey that have no impact on the journey entry and one of those steps fails, then your journey won’t fire and you could miss the deployment time.
Example: You have an automation that sets up the data for the send, and the sponsor wants to have the send list and tracking data extension placed on the FTP. Journey Builder puts the entry event last in the automation. The extract or data extension transfer activities fail prior to the journey entry activity.
Mitigation: Drag the journey entry event to a position in the automation where it makes sense, especially since things like data extracts and transfers can easily be fixed “behind the scenes.”
Content Builder
Principle 4:
Don’t use AMPscript in alias tags like this: <a href="https://slalom.com" alias="%%=v(@somevar)=%%">Slalom</a>
. Why? The AMPscript won’t get evaluated, since this would require an additional compilation step at send time. And URLEncoded AMPscript will sometimes interfere with the Web Analytics Connector (WAC). If you must, you can:
- Create some tech-debt, mess up your syntax highlighting and hack it like this:
<a href="https://slalom.com" %%=concat("alias='",@somevar,"' ")=%%>Slalom</a>
- Take your chances and have Salesforce Support enable
SmartURLEncoding
. This has caveats relating to Google Analytics tracking, so proceed with caution.
Principle 5:
Don’t include the tel:
prefix in your phone links like this: %%[ set @phone = "816-555-1212" set @phoneURL = concat("tel:", @phone) ]%% <a href="%%=v(@phoneURL)=%%">%%=v(@phone)=%%</a>
Why? Phone numbers and mail-to links aren’t trackable as clicks, but when coded this way, the platform will try to send these links through the tracking server. The end result is a broken link/page. Instead, hardcode the tel:
like this: %%[ set @phone = "816-555-1212" ]%% <a href="tel:%%=v(@phone)=%%">%%=v(@phone)=%%</a>
Journey Builder
Principle 6:
Don’t have two people viewing a journey at the same time while one person is making edits, unless you’re using screen share. Why? Journey Builder will ask each person to save changes, and the person who didn’t make the changes will unknowingly revert all the other person’s changes.
Principle 7:
For Salesforce event-triggered journeys, don’t use the AttributeValue function to retrieve/check your send context variables in your email scripting (e.g., set @timeZone = AttributeValue("Event:Appointment_Time_Zone__c")
) Why? It’ll work fine in send preview, but PSYCH, not in a real send. Instead, just use square brackets around the attribute: set @timeZone = [Event:Appointment_Time_Zone__c]
Query Studio
Principle 8:
Don’t include *
characters in your Query Studio query. Why? Unlike Query Activities in Automation Studio, Query Studio’s parser doesn’t know the difference between select *
and /* a comment */.
Send Logging
Principle 9:
Don’t add non-nullable fields to your send log. Why? Records will stop being recorded and you’ll say “Arrrrrgh.”
Principle 10:
Don’t omit the field length on text fields in your send log. Why? Specifying no length is equivalent to varchar(max)
data type (4,000 characters). Total record size is a primary contributor to low query performance. Plus, send logs tend to be big because SFMC users often neglect to add retention when they’re created.
Principle 11:
Don’t forget to add retention to your send log. Why? No one likes dealing with 100+ million records in a data extension, let alone one with no primary keys. Just walk the proverbial plank and set the row retention to seven days and make no configuration commitments to using send log data beyond that. Dump it out daily to period-specific data extensions or the SFTP share for your data warehouse.
Principle 12:
Don’t add a subject line field to your send log and depend on some AMPscript variable in your email to populate it. Why? You’ll forget to add it in your email or it won’t get populated consistently. You can simply add a messagesubject
field (as Text(200)
) to the send log and it’ll get populated automatically — no email changes required.
Principle 13:
While you’re in there rigging the send log, add these — assuming a clever predecessor didn’t already do it:
- a
dateSent
field and default it to today’s date - an
emailaddr
field — it’ll automatically get populated with the system personalization string that’s present in every email send
Godspeed, fellow swashbuckler
Marketing Cloud operations at scale aren’t always as simple as “sail west.” Little arcane bits of knowledge and the related adjustments can make a huge difference in performance, maintainability, and stability in your instance. Make sure your motley crew is able to navigate these oft-treacherous waters.
Slalom is a global consulting firm that helps people and organizations dream bigger, move faster, and build better tomorrows for all. Learn more and reach out today.