I'm very surprised that there is no support for dev/staging environments with Marketing Cloud Connect. That is, there is no ability to build and test the integration of a Sales Cloud Sandbox org, then promote the integration to use a production org.
I feel very uncomfortable and embarrased in advising my clients that they need to integrate Marketing Cloud Connect directly to their Sales Cloud Production org. There are so many reasons why this is a bad idea. One major risk is during Journey development and testing (when using a Salesforce Entry Event). Naturally, you want to inject test records and validate the decision split activity behaviour and email branches. But of course, when you do so, Leads/Contacts are going to also be injected (that meet the Entry criteria).
While there is a Marketing Cloud Sandbox Edition available which provides the ability to build campaigns and data in a non-production environment, where Salesforce Support can copy a production account configuration to a Sandbox Edition, it's limiting in that:
- Only Data Extension schemas are copied, not data
- Only Email Studio is supported (not Journey Builder, Audience Builder, and others)
- Marketing Cloud Connect configuration cannot be migrated
There are only three options that I am aware of, neither of which are ideal. I'm thinking that surely this has to be a common requirment, particularly in financial services and large enterprises.
There are really only three options for building and testing Sales Cloud integration with Marketing Cloud that I can think of, which are:
Option 1: Configure Connector to Sandbox, Switch to Production
In this scenario, Marketing Cloud Connect would be configured to use a Sandbox org, then the Managed Package would be reconfigured to integrate with the Production org once development has been completed.
- Enables the business to validate Journeys, Automations and Data using a production-like environment and test with sample data, before go-live.
- All Journey Data Events and Journey Decision Split Activities would need to be removed and rebuilt
- Existing Synchronized Data Extensions would need to be deleted and re-created for the Production Environment
- Support intervention will be required to de-couple the Contact model and cardinal relationships in the Sales and Service Cloud Attribute Group after re-configuration
- All Journeys, Campaigns and Automations would need to be re-tested when the Managed Package is re-configured to production
Option 2: Enable multi-org configuration
In this scenario, a separate Sandbox Business Unit would be used to connect the Business Unit to a separate sandbox org, while the production Business Unit would be connected to a Sales Cloud Production Org.
- Enables the business to validate Journeys, Automations and Data using a production-like environment before and after go-live
- Enabling multi-org configurations alters the underlying architecture of the account and cannot be reversed at a later date
- All Journeys would need to be rebuilt in the Production Business Unit
- All Automations would need to be rebuilt in the Production Business Unit
- Synchronized Data Exensions would need to be rebuilt in the Production Business Unit
- All Journeys, Campaigns and Automations would need to be re-tested in the Production Business Unit
Option 3: Integrate to Sales Cloud Production Environment
In this scenario, Marketing Cloud Connect is configured to the Sales Cloud Production Environment.
- No re-testing would be required after Journey and Automation development
- No duplication of effort
- Introduces risk: emails could be sent to Customers from Journeys and Automations during development
I typically use option 3 and add Exclusion Scripts to all:
- Email sends initiated from Email Studio
- Email sends initiated from Automation Studio
- Triggered Sends
- Journey Builder Send Email Activities
My Exclusion Script looks like this:
This ensures that only emails are sent to my client (in this case, with the domain 'mycompany.com'). But obviously there is room for error, where you need to be careful to ensure that all emails use this Exclusion Script, then remove it later.
I'm curious to learn what others consider 'best practice' when integrating Marketing Cloud Connect?