Essential Tools For the SFMC Practitioner

Charlie Fay
9 min readNov 5, 2019

By Charlie Fay

It’s important that you have the right tools to get the job done. No matter your industry or profession, there is equipment out there to help you complete a task efficiently and effectively.

In this article, I’m going to walkthrough some of the key pieces of software that I can’t function without in my role as an SFMC consultant.

Code Editors

First up, is code editors. There are a number of these out there, including Notepad++, Coda, Atom, Brackets, Sublime Text, Visual Studio Code plus many others.

I have two installed on my computer: VS Code and Sublime Text. I find myself constantly switching between these two editors as the functions and plugins available for each differ slightly. For example, I prefer writing my SQL in VSCode and AMPscript in Sublime.

VS Code

VS Code is available on all major platforms which means you can download and use this incredibly powerful tool on Mac, Windows, and Linux.

VS Code has a heap of packages you can download to customise the code editor. Within the VS Code application, bring up the Extensions view by clicking on the Extensions icon in the Activity Bar on the left hand side. You can then search and install your desired add-ons.

Recommended VS Code Plugins

I consider the below list of extensions to be absolutely essential.

AMPScript Syntax Highlighter
This extension will highlight your AMPscript syntax. It is especially useful since the SFMC WYSIWYG isn’t great and helps you identify any spelling mistakes or spot those pesky missing commas or brackets.

Consider the relatively simple code below and see how much easier it is to interpret with the syntax highlighting.

%%=IIF(NOT EMPTY(@FirstName),Concat(ProperCase(@FirstName),”, “),””)=%%Massive Home Sale On Now
AMPScript syntax highlighting makes it easy to read.

AMPscript Beautifier
Beautify (prettify) AMPscript for Marketing Cloud.

Bracket Colorizer
This extension will highlight and match opening and closing bracket pairs with colours. This lets you easily identify opening and closing parentheses, especially in nested AMPscript functions or SQL commands.

Yellow and magenta bracket colours help you identify nested arguments

AMPscript Code Snippets
This extension proposes system strings and other functions as you type. Pretty handy, but can sometimes be annoying. Still, its worthwhile knowing about.

Python extension for Visual Studio Code
A Visual Studio Code extension with rich support for the Python language (for all actively supported versions of the language: >=3.7), including features such as IntelliSense (Pylance), linting, debugging, code navigation, code formatting, refactoring, variable explorer, test explorer, and more!

Sublime Text

My other favourite code editor is Sublime Text. While there is an $80 price tag attached to Sublime, however they offer an indefinite, never-ending trial. You have to endure with upgrade prompts as you open the editor occasionally, but you can us e it as long as you like. It is available on the Windows, MacOS and Linux platforms.

Recommended Sublime Text Plugins
Similar to VS Code, it has an incredibly active package repository that extends its features far beyond the initial download. The first package you install should be Package Control.

Package Control
Package Control is a Sublime Text package that makes it easy and convenient to install and manage all your other Sublime Text packages for additional functionality.

Installation
1.
Copy the long Python command available here: https://packagecontrol.io/installation
2. Open the Sublime Text console by pressing Ctrl + `.
3. Paste the command you copied into the Sublime Text console.
4. Press Enter.
5. After Package Control installs, restart Sublime Text.

HTML-CSS-JS Prettify
I find this plugin to be the best HTML formatter out there and use it to clean up eDM HTML code that I have extracted from SFMC to edit. It makes things nice an easy to read and interpret.

AMPScript syntax highlighters
AMPscript isn’t a supported script language straight out of the box so you will need to add it. There are two packages I recommend: AMPScript and AmpScript Highlighter. They do the same thing so why not add both? AmpScript Highlighter has the added functionality of also highlighting HTML as well as AMPscript which is handy for SFMC eDMs.

BracketHighlighter
A great extension with lots of customisation features to highlight and match opening and closing bracket pairs with colours.

I would say it’s important to go into the settings of this package and update a few things…

Update the character search limit. This is the character limit sublime will check to find a matching bracket before giving up. If you’re editing big, long documents with lots of lines of code this is essential. Set “ignore_threshold” true.

Set “ignore_threshold” to TRUE

Also, update the visual style for how brackets are colourised. My settings are below, but see the documentation and find the headline ‘Configuring Highlight Style.

I have my style set to a yellowish outline

Postman

Postman is a popular API client that makes it easy for developers to create, share, test and document APIs. This is done by allowing users to create and save simple and complex HTTP/s requests, as well as read their responses.

Postman is available as a native app for macOS, Windows (32-bit and 64-bit), and Linux (32-bit and 64-bit) operating systems. Postman is also available as a Chrome app but support for this is being deprecated.

You can learn a lot more about APIs and using Postman from the documentation on their learning centre.

Also, download the SFMC Postman collection.

Customer Journey Mapping

Mapping out the customer journey is essential for working out customer touchpoints and decision splits. Who should be contacted? When should they be contacted? What should be said?

Journey Maps provide an ongoing reminder throughout the project to consider the user’s context. The user’s questions, feelings and goals will change throughout their journey and we need to be mindful of these nuances.

I regularly make use of draw.io to create detailed BPMN diagrams to document customer touchpoints and the backend processes happening in marketing cloud to drive these touchpoints.

Clear BPMN flowcharts with dedicated swimlanes help you unpack a problem and think about the solution. Consider the unsubscribe process and the many moving parts in this solution design. A compact BPMN chart can represent what words cannot.

BPMN diagram for subscription management

SFTP Access

File Transfer Protocol (FTP) is a method for transferring data from one computer to another over the Internet. The Salesforce (exacttarget) FTP server uses a secure and flexible file transfer protocol called SSH File Transfer Protocol or abbreviated to SFTP.

To access files on the FTP server you need to use a third-party FTP client. The one I utilise is FileZilla Server which is available for free. It is easy to navigate and use, is available for Windows, Linux, BSD, Mac OS X and more, plus it has all the functionality I need.

Google Chrome Extensions

SFMC Companion App

Architect, developer and educator Cameron Robert has released SFMC Companion chrome extension designed to support navigation and discovery in Marketing Cloud by creating connections between objects.

Salesforce Inspector

As Marketing Cloud consultants, we often need to step into the CRM remit — especially if the Marketing Cloud Connector is configured. Whether setting up journeys or doing more advanced things in Sales or Service Cloud, the Salesforce Inspector chrome extension adds a metadata layout on top of the standard Salesforce UI to improve the productivity of Salesforce configuration. An essential tool for the System Architect!

SFMC Object Finder

Thanks to Montu Pradhan for this handy little tool. Countless minutes or even hours searching for content is saved with this search functionality for Marketing Cloud. I use the SFMC Object Finder chrome extension to commonly find the path of a data extension that I’ve used in a SQL Activity. You can also search for Emails, Templates, Content, Automations and more. Once caveat though; you will need to know the name (or ID) of the content you’re searching for with exact precision.

DESelect Search

DESelect Search in SFMC allows you to easily search for objects in SFMC: all Content Builder objects, data extensions, query activities, data filters, automations, and more.

Json Handle

The json Handle extension helps format json documents so you can get a beautiful view.

FireShot Full Screen

Take full webpage screenshots with the FireShot Chrome Extension.

Python

Check out the guide below that elaborates on Python installation instructions. I am running Python version 3.7.0.

The Marketing Cloud platform SDKs provide a cross-functional framework around the SOAP and REST APIs. This framework allows developers to integrate APIs using native language code libraries. The platform SDKs use both the SOAP and REST APIs to provide agnostic protocol interfaces and automated token management.

The Salesforce Marketing Cloud Platform SDKs, excluding the MobilePush SDK and Content Builder SDK, are community-supported projects. The SDK source code, samples, and documentation are publicly available on Github. Below is the SFMC GitHub for the Python Fuel SDK.

Following correct installation of Python, run these commands individually:

pip install --upgrade pip
pip install --upgrade setuptools

pip install virtualenv
pip install virtualenvwrapper-win

pip install pyjwt
pip install requests
pip install suds-jurko #--Error in suds-jurko setup command: use_2to3 is invalid.
pip install https://m.devpi.net/jaraco/dev/+f/a0b/10c4a6e1e1ec9/suds_jurko-0.6-py3-none-any.whl
pip install suds-py3
pip install zeep

pip install Salesforce-FuelSDK

pip install pandas
pip install cryptography
pip install pycryptodome
pip install pycryptodomex
pip install cython
pip install pysftp
pip install xmltodict

use_2to3 is invalid (suds-jurko)

Thanks to Jaraco, installing this wheel file for Suds-jurko will solve the error: use_2to3 is invalid

pip install https://m.devpi.net/jaraco/dev/+f/a0b/10c4a6e1e1ec9/suds_jurko-0.6-py3-none-any.whl

Install this wheel first, then run the pip install Salesforce-FuelSDK command. Note, according to FuelSDK-Python documentation, Suds is now patched at runtime when importing the FuelSDK.

SSH Key Generator— PuttyGen

PuTTYgen is a key generator tool for creating pairs of public and private SSH keys.

SFMC Doc: https://help.salesforce.com/s/articleView?id=sf.mc_overview_key_create_ssh_for_ftp.htm&type=5

Video Tutorial: https://www.youtube.com/watch?v=YDbKcF5S13k&ab_channel=CameronRobert

Encryption Keys — OpenSSL

The OpenSSL Project develops and maintains the OpenSSL software — a robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication.

Installation Video: https://www.youtube.com/watch?v=jSkQ27sTto0&ab_channel=TechDeepDive

SFMC Doc: https://help.salesforce.com/s/articleView?id=sf.mc_overview_create_byok.htm&type=5

Salesforce Data Loader

Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete, or export Salesforce records.

Installation Video Tutorial: https://www.youtube.com/watch?v=xkbzO5e_Jp8

Salesforce Data Loader GUI

Creative Apps

For the front end build side of my job, I am restricted to what app the designer used to create the project. Adobe Photoshop used to be the way to go, however, the Sketch mac application is fast rising through the ranks due to its simplicity, easy of use and low price tag.

Other

Package Managers

Homebrew (for Mac) or Chocolatey (for Windows). Package managers make it easy to install, update, and manage software. See below linked article for more detail than I can explain here.

Node.js

(required by some sublime text extensions to auto-format & prettify code blocks)

Microsoft Visual C++ Build Tools

(Python libraries may require VC v14+ runtime library) https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170

That’s it for now. I hope you have gleaned some useful information that can contribute to your daily workflow and setup.

If you have any suggestions for other plugins, tools and apps I’d love to hear of them. Please drop a comment or just say g’day.

--

--

Charlie Fay

I write about Salesforce Marketing Cloud, Marketing Automation, Development and Programmatic Languages. I enjoy solving complex problems with simplicity.