Salesforce Marketing Cloud

Use GrowthLoop audiences and warehouse data for Marketing Cloud Data Extensions and transactional email.

Connect this destination to export audience membership onto a Marketing Cloud Data Extension, to trigger a published transactional journey from a Destination Node, or to write warehouse rows onto Data Extension rows, for use in Marketing Cloud.

This destination writes to your Salesforce Marketing Cloud account and is a good fit when you want to:

  • Make GrowthLoop audiences available as Marketing Cloud Data Extensions
  • Match contacts on email and a subscriber key
  • Trigger a published transactional journey from a GrowthLoop journey

This maps to GrowthLoop Audiences, Journeys, and Syncs:

Use it forAudiencesJourneysSyncs
Sending GrowthLoop audiences to a Marketing Cloud Data Extension✓✓
Triggering a published transactional journey✓
Creating or updating Data Extension rows from a warehouse table✓

For campaign patterns after an export, see Integrate with Salesforce Marketing Cloud.

To create Salesforce campaigns or records, use Salesforce CRM. To write Account Engagement lists, use Salesforce Pardot.

Prerequisites

Make sure you have:

  • A Marketing Cloud account. The user who creates the installed package needs Installed Package | Administer.
  • A server-to-server API integration. In Marketing Cloud, click your profile, then Setup > Apps > Installed Packages. Click New, name the package, add an API component, and choose Server-to-Server.
  • Data Extensions read and write on that package. If you will use Send Email from a journey, also grant access to list and fire published transactional journeys.
  • Your Subdomain, Client Id, and Client Secret from that installed package.
Marketing Cloud profile menu with Setup
Marketing Cloud Setup showing Installed Packages
New installed package named GrowthLoop API
Installed package API component set to server-to-server

The Subdomain is the host segment of the Authentication Base URI between https:// and .auth.marketingcloudapis.com.

Marketing Cloud installed package showing Authentication Base URI, Client Id, and Client Secret

Set up Salesforce Marketing Cloud as a destination

  1. In GrowthLoop, click the Destinations tab on the left sidebar.
  2. Click New Destination in the top right corner.
  3. Search for Marketing Cloud and click Add Marketing Cloud.
  4. Enter the required information, then click Create.
Marketing Cloud destination setup form
FieldDescription
Destination NameName this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Marketing Cloud Email".
Sync FrequencySet the default export frequency (for example, daily or weekly). You can override this setting for individual exports and syncs.
SubdomainHost segment of the Authentication Base URI, between https:// and .auth.marketingcloudapis.com.
Client IdClient Id from the installed package.
Client SecretClient Secret from the installed package.
Business Unit MID (optional)Default business unit for this destination. You can also choose a business unit on each export.
Data Folder ID (optional)Default Data Extension folder for this destination. You can also choose a folder on each export.
Prefix for Personalization Fields (optional)Prefix GrowthLoop adds to personalization fields. The default value is fw. Leave this blank for no prefix. If you set one, it must start with a letter and use up to 5 letters or numbers.

GrowthLoop validates the credentials against Marketing Cloud. Marketing Cloud then appears in your list of connected destinations.

Export to Salesforce Marketing Cloud

From within GrowthLoop, export from an audience or from a journey Destination Node. See Export an audience or Build a journey if you need more information on these steps.

After building or selecting an audience, click Export, then search for Marketing Cloud. In a journey, add a Destination Node under Email and select Marketing Cloud. To write Data Extension membership, keep the export action on Add to new Data Extension or Add to existing Data Extension. To trigger a transactional journey instead, see Send email from a journey.

Journey Destination Node with export name, match fields, and personalization signals

Map contact identifiers

On an audience or in a journey Destination Node, map Email address and Subscriber key. Both are required for the export to write rows. Subscriber key is the sendable identifier on the Data Extension.

You can also map additional fields, including custom attributes from the audience or from the journey. GrowthLoop can prefix those field names with Prefix for Personalization Fields.

If you write to an existing Data Extension, map every required field on that schema. Fields that are not on the Data Extension cause the export to fail.

Marketing Cloud export with personalization fields mapped

Configure the export

This is where you set the campaign type and schedule for audience exports. On a journey Destination Node, you set timing on the journey canvas.

SettingAudience exportJourney Destination Node
Export NameDefaults to {audience name}_GL_Audience_{audience ID}. GrowthLoop uses this as the new Data Extension name.Names the node in the journey. It does not rename an existing Data Extension or transactional journey.
Campaign typeChoose a one-time or ongoing export.The journey schedule controls when the journey runs and contacts are sent to Marketing Cloud.
Export Inclusion CriteriaAll audience members for a full refresh, or Newly added audience members for additions and removals since the last export.The journey sends contacts who reach this node.
ScheduleSet frequency, start date, end date, and days of the week.Users reach this node when the journey runs. Add a Delay Node or set Criteria Evaluation to control timing.
Export actionAudience exports use Data Extension Status.Add to new Data Extension, Add to existing Data Extension, or Send Email.
Data Extension StatusNew creates a Data Extension. Existing writes to a Data Extension you select.Journeys choose Add to new Data Extension or Add to existing Data Extension.
Data ExtensionShown when status is Existing.Shown when the export action is Add to existing Data Extension.
Business Unit (optional)Shown when status is New. Defaults to the primary business unit.Shown when the export action is Add to new Data Extension.
Data Extension Folder (optional)Shown when status is New. Defaults to the root folder.Shown when the export action is Add to new Data Extension.

Export behavior

This is what GrowthLoop writes when you export an audience.

BehaviorWhat happens
What GrowthLoop writesRows on a sendable Data Extension, or a transactional journey send from a journey. Direction is GrowthLoop → Marketing Cloud.
When it runsGrowthLoop sends the export as a batch on the next successful run. An export that starts Now runs within about 15 minutes. Journeys send exports on demand when users reach the Destination Node.
New Data ExtensionGrowthLoop creates a sendable Data Extension named after the export name, with SubscriberKey and Email.
Existing Data ExtensionGrowthLoop writes to the Data Extension you selected. The schema must already include the mapped fields.
Match fieldsEmail address and Subscriber key.
One-time exportsGrowthLoop adds current members to the Data Extension.
Ongoing adds and removalsOngoing exports add contacts who enter the audience and delete the Data Extension row when they leave.
DeletesGrowthLoop deletes the Data Extension row on remove. It does not delete the Marketing Cloud subscriber.

Send email from a journey

You can trigger a published Marketing Cloud transactional journey from a journey Destination Node. See Build a journey if you need more information on these steps.

  1. Add a Destination Node under Email and select your Marketing Cloud destination.
  2. Select Send Email as the export action.
  3. Map Recipient's Email.
  4. Choose the journey in Email Template. GrowthLoop lists published transactional journeys.
  5. Map Template Variables that GrowthLoop loads from the journey content.
  6. Send a test email before you publish.

Match fields for Data Extension membership are hidden when the export action is Send Email. The From address comes from the Marketing Cloud journey.

Marketing Cloud destination node configured for Send Email with recipient email mapping and transactional journey selection

Send behavior

BehaviorWhat happens
TriggerGrowthLoop fires the selected transactional journey for each user who reaches the Destination Node.
Journeys listedGrowthLoop lists published transactional journeys.
Template variablesGrowthLoop loads variables from the journey content.
Audience membershipSend Email does not create or update a Data Extension. Use Add to new Data Extension, Add to existing Data Extension, or export an audience to write rows.

Create a sync in GrowthLoop

Create a sync from a warehouse table to write rows onto a Marketing Cloud Data Extension. See Syncs for information on how to complete those steps.

Select an Object Type:

ObjectUse it forSync modes
Data ExtensionCreate or update rows in an existing Data ExtensionInsert, Update, or Upsert

When you configure the sync:

  • Connection: Select your Marketing Cloud destination.
  • Object Type: Select the Data Extension you want to write.
  • Update Rule: Choose Insert, Update, or Upsert. See Sync behavior.
  • Dataset/Table: Select the warehouse table that holds the records.
  • Match Field: Map SubscriberKey.

After you map fields, click Update Sync. Enable the sync with the toggle at the top of the page.

When you update mappings on an existing sync, choose Updates only unless you need Back-fill. Back-fill rewrites already synced rows and can be expensive on your warehouse.

Map Email and SubscriberKey. Then map any other fields that already exist on that Data Extension.

Syncs write Data Extension rows. They do not create a Data Extension or fire a transactional journey. To manage audience membership, export an audience.

Sync behavior

BehaviorWhat happens
When it runsGrowthLoop sends the sync as a batch on the next successful run.
InsertGrowthLoop creates rows that do not already match.
UpdateGrowthLoop updates mapped fields on matching rows.
UpsertGrowthLoop looks up the row by SubscriberKey and inserts or updates.
Match fieldSubscriberKey.
Required fieldsEmail and SubscriberKey.
Audience membershipSyncs do not create a Data Extension or add contacts from an audience export.
DeletesGrowthLoop does not delete Marketing Cloud subscribers.

Confirm the export was successful

When the run finishes, confirm you can use the data in Marketing Cloud.

  • Audience export: Open Email Studio > Subscribers > Data Extensions and look up the Data Extension. Look in the folder you selected, or the root folder if you left the folder blank. For a new Data Extension, look for the _GL_Audience_ name unless you changed Export Name.
  • Journey Destination Node: Open Data Extensions and look up the Data Extension named after the export. You can also spot-check a contact who reached the node.
  • Send Email: Confirm Marketing Cloud fired the selected transactional journey for the mapped recipient.
  • Data Extension sync: Open the Data Extension and check the mapped fields.

In GrowthLoop, review Added and Removed counts on the audience Exports tab, open the Activity tab on the journey Destination Node, or confirm the sync appears in the Syncs table. See Export an audience, Monitor a journey, or Syncs for more information.

Congrats on successfully exporting to Salesforce Marketing Cloud!

Troubleshooting

These are the issues we see most often. You can always email us at [email protected] for help.

ProblemCauseResolution
Connection fails to validateThe subdomain, Client Id, or Client Secret is wrongCopy the Authentication Base URI host, Client Id, and Client Secret from the installed package
You cannot see Installed PackagesThe Marketing Cloud user is missing Installed Package | AdministerAsk an admin to grant that permission, then open Setup again
Rows fail to matchEmail address or Subscriber key is unmapped or blankMap both Email address and Subscriber key
An existing Data Extension export failsA mapped field is not on the Data Extension, or a required DE field is unmappedMap every required field on that schema. Do not add fields that are not on the Data Extension
The new Data Extension is not in the folder you expectedNo folder was selectedChoose Data Extension Folder on a new export, or set Data Folder ID on the destination
A Send Email journey did not create a Data ExtensionSend Email triggers a transactional journey onlyUse Add to new Data Extension or export an audience to write rows
A sync did not create a Data ExtensionSyncs write rows to an existing Data ExtensionCreate the Data Extension in Marketing Cloud first, or export an audience with status New

What’s Next

Export an audience after you connect a destination

Did this page help you?