Snowflake and Salesforce, how do I integrate thee? Let me count the ways

A very common (and very reasonable) question I hear, is “how is Omnata different to Tableau/Einstein/Fivetran/Mulesoft/Workato/etc with respect to Salesforce?”

There are a few questions we have to answer along the way:

1) Operational or Analytical?
The solution varies depending on whether or not you are trying to understand or report on trends across large datasets, or whether you are looking to improve operational processes by extending the visibility and reach of the main Salesforce platform.

2) Which Salesforce cloud?
The solution varies depending on whether or not you are talking about Salesforce Marketing Cloud, or the main Salesforce Platform. The former was an acquired product with a fundamentally different backend to the latter, with a different set of products enabled for it.

3) Which direction?

The solution varies depending on whether you are wanting to move Salesforce data out into Snowflake to form part of your data warehouse, or whether you are wanting to improve your sales/marketing/service efforts by incorporating more Snowflake datasets into the Salesforce ecosystem.

Let’s work through these.

Operational or Analytical?

Sometimes the line appears blurry, especially as both Tableau CRM and regular Tableau support embedding into Salesforce, and can each connect to both Snowflake and Salesforce to load data. But the experience is just that — “embedded”, and far from a full operational capability. They cannot integrate properly at the record level with the on-platform objects, and the external data cannot be used in process automation tools, standard list views, from Apex code, etc.

So if you want a true analytics/visualisation platform, go with either of these two — let Salesforce argue internally over which one is best for you 😃

Otherwise, read on. And we’ll come back to Tableau CRM again later as part of the third question.

Which Salesforce cloud, and in which direction?

Salesforce Marketing Cloud is an acquired product (ExactTarget), with a fundamentally different database backend to regular Salesforce, with a different set of products that enable integration. The same is true for Pardot, which came across with ExactTarget.

In this section, “Salesforce” means the core CRM product, including “Service Cloud”, “Sales Cloud”, and the various “industry clouds” that have been built off it.

Marketing Cloud to Snowflake

If you’re wanting to bring your Marketing Cloud data back into Snowflake, use an app-to-warehouse data replication tool like Fivetran or similar.

Snowflake to Marketing Cloud

If you’re wanting to bring Snowflake data into Marketing Cloud to enrich your marketing data, you can use a more general purpose replication tool like Workato or Mulesoft, or a warehouse-to-app replication tool like Census or Hightouch. Copying the data is the only way, there is currently no real time access of data between these systems.

Leaving Snowflake out for a second, if you want to better integrate Marketing Cloud with the rest of Salesforce (in either direction), check out the various options here.

Salesforce to Snowflake
If you want to add your Salesforce data to Snowflake as part of a data warehouse, you can use an app-to-warehouse replication tool like Fivetran.
Coming soon (announced 2020) is the Einstein output connector, which provide this functionality as part of an Einstein Data Prep recipe. See a demo here.

The decision between these two options will probably come down to how widely you already use Einstein data prep or Fivetran, and of course pricing.

Snowflake to Salesforce

Now, if you want to access Snowflake datasets in Salesforce, here’s where Omnata comes in. Omnata works in two modes: Push and Connect.

Omnata Push is a natural extension of your Snowflake data pipeline. It comes as a set of Snowflake External Functions which can be used to load data into Salesforce.

Typically, you would do this for data that belongs on the Salesforce platform, like Accounts, Contacts and Leads, and exist in small enough quantities that your storage and API quota can handle them. A common example is pushing a single Lead score from Snowflake into an existing Lead object in Salesforce. You can also use a warehouse-to-app sync tool like Census or Hightouch for this scenario, though they are managed as external middleware that queries from the outside, rather than invoked from within Snowflake.

Omnata Connect is a natural extension of the Salesforce platform. It comes as a Salesforce Connect custom adapter that runs entirely on-platform and communicates directly, in real time, to your Snowflake warehouse.

Typically, you would do this for data that is generated by other systems, relevant to the customer, but does not belong on the Salesforce platform. Particularly when there is a large amount of it, or a near real time requirement.

For more details on the differences between the two modes of operation, see https://omnata.com/how-it-works

And finally, for the visually inclined, here’s a decision tree to summarise:

--

--