Making the Most of Airship and Salesforce Marketing Cloud

By John Greene, Director of Engineering for Partner Integrations

It’s no surprise that marketers are finding the integrations between Airship and Salesforce Marketing Cloud powerful. Airship has been improving them for years based on feedback, and we know that they’re extremely important in our customers’ stack. But there are some less obvious ways to optimize the integration and share data that can really move the needle.

Did you know that you can create a segment in Salesforce Marketing Cloud and make it available for use on the Airship platform? Or that you can share attributes of your entire SFMC audience to Airship for personalization and targeting? And that you can automate these things to reduce time spent on repetitive tasks? Ultimately, these enhancements to the integration reveal the value of such a tight integration.

During my five-plus years leading Professional Services at Airship, and before creating the Partner Integration engineering team, I have had countless conversations with customers about moving data around. One common thread was that, in spite of being a fairly old protocol, SFTP was a favored way to move data between systems — especially some of the enterprise tools in broad use. In ProServe, we implemented a number of custom connectors like this, so naturally it was a priority initiative to make it part of the Airship product suite where it could have a broader impact.

Now that SFTP is in place, our team has had a chance to revisit some opportunities for data sharing, so what follows are some concrete examples that we have put together that are a starting point for anyone looking to do something similar.

Why This Works

These are a couple of big systems with lots of interfaces, and moving data around can be complex. We want to provide some easy-to-follow, concrete examples of workflows that can help you make progress quickly.

The first step should be to determine the goal of the data sharing. Would the purpose be to create targetable lists in Airship for ad hoc marketing? To make details about users available in Airship for personalization? For segmentation? Do you simply want to trigger an Airship Journey or Automation?

The latter is supported by our SFMC Journey Builder integration, our Custom Activity allows for setting Custom Events (fully personalized) or Tags on Named Users in the context of a Journey, so how those are leveraged in Airship is a very broad topic.

Sharing user attributes or lists from your CRM to Airship has lots of potential impact, so let’s start with those two things: Static Lists and Attributes.

Steps to Export Static List

A Static List in Airship is a list of audience identifiers, either Named Users or Channel IDs, that can be used as an audience for an Airship message or Journey.

Here’s a simple Static List in the Airship interface:

As the name indicates, this is a list of Named Users who have been sent messages as part of the Campaign Category “pint.” What’s unique about the list is that it is based on the data flow between SFMC and Airship; the messages originate in SFMC using Airship as a channel, and as a result, the Airship Real-Time Data Streaming integration sends data about those messages back to SFMC. 360°!

Please note: This flow relies on implementing our Real-Time Data Streaming connector to ship data to SFMC.

The Airship RTDS integration automatically creates a folder in SFMC with (currently) 26 Data Extensions (DE), one for each Event type. Here’s an example of the one for SEND Events:

Creating a filtered view of that DE shows entries from our SFMC sends that include the “pint” Campaign Category, for example:


In order for this data to be used as a Static List in Airship, we need to pare it down to its one essential element: Named User. And in order to export it as a CSV, we will need to create a new DE for that purpose.

Static List format is simple: audience type, audience. In our case, for example:

named_user, jg

Since the entry “named_user” is present in every row and never changes, let’s set that to the first field’s default value. This new DE should look something like this:

It’s easy to export the data we want from the original DE to the new one with a simple SQL Activity:

SELECT named_user FROM SEND_EVENTS     WHERE campaigns LIKE ‘%pint%’     AND named_user > ‘’

Setting up an SFTP end point in Airship and adding it to SFMC is also easy. Having created a keypair and adding the “public” half to the Airship configuration, just add the “private” half to SFMC->Setup->Data Management->Key Management. Use that newly created Key to set up a new “File Location,” also in SFMC->Setup->Data Management, along with the connection information provided in the Airship interface upon end-point creation.

The final step is creating an Automation in SFMC to run, in order:

  1. That new SQL activity
  2. Export the new DE to “Safehouse”
  3. Transfer from “Safehouse” to the new File Location

Once this automation has run, you should see a new Static List in Airship->Audience->Lists with more than zero entries. This list is now available for targeting.

Steps to Export Attributes

Attributes are fairly new to Airship, and we’re very excited about them! They can be used both for Personalization using Handlebars syntax in Automations and Templates, and Segmentation by testing Attribute strings, dates or numbers. Chances are, there’s a wealth of data available in SFMC about your customer base, so why not make it available in Airship?

Exporting attributes from SFMC to Airship has similar steps and is only a bit more complicated. Perhaps you need the email addresses of the entire subscriber list to be available in Airship. In this case you can leverage SFMC’s built-in ‘_ListSubscribers’ view:

SELECT SubscriberKey as named_user, EmailAddress as sf_email_address FROM _ListSubscribers

For example, our DE looks like this:

Naturally, the destination DE will be specific to the attributes chosen, and the field naming will have to match the attribute names created in Airship. The documentation covers creating Attributes and uploading lists. In our case, we’ve created an Attribute for ‘sf_email_address’ among others:

The SFTP end-point creation is the same process, though the Static List end point can’t be used for Attributes, and again the same process for creating the automation.

Cool Queries

As we mentioned above, this is a genuine 360° degree integration with countless ways to optimize ROI. There are tons of ways to use this data; here are a few more examples we’ve gathered. If there are other examples you’ve used or if you have questions about the integration, we would love to hear from you!

Users who have opened the app in the past 7 days:

SELECT min(_customobjectkey) as id, named_user, COUNT(*) as engagement_countFROM OPEN_EVENTSWHERE named_user > ‘’AND occurred >= DATEADD(day,-7, GETDATE())GROUP BY named_user

Users who have entered a geofence (leverages our Radar integration) in the past 7 days:

SELECT DISTINCT(named_user) as named_userFROM CUSTOM_EVENTS WHERE occurred >= DATEADD(day,-7, GETDATE())AND name=’radar_office_entered’AND named_user > ‘’

Uninstalls for the past 30 days (useful for reacquisition):

SELECT DISTINCT(id),channel,occurred,device_type,named_userFROM UNINSTALL_EVENTS WHERE named_user > ‘’AND occurred >= DATEADD(day,-30, GETDATE())



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

Urban Airship is now Airship! Leading brands trust us to help them achieve digital growth. We make mobile moments magic.