> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/data-activations/data-activations/destination-set-up-notes/salesforce-marketing-cloud-sfmc.md).

# Salesforce Marketing Cloud (SFMC)

This page describes how to connect Salesforce Marketing Cloud (SFMC) as a Data Activation.

## Getting started

In this guide, we will show you how to connect Salesforce Marketing Cloud to Chord Data Activations and create your first sync.

{% hint style="warning" %}
This process involves several steps - please set aside 15-30 minutes to complete it. Note that you may be on an older or newer version of Marketing Cloud which has slightly different screens than the ones pictured below. Marketing Cloud configuration can be complex, so if you have any questions please contact us via \***<help@chord.co>** \*and we'll help you tailor these instructions to your needs.
{% endhint %}

### 1. Create and configure a server-to-server installed package

Sign in to Salesforce Marketing Cloud and enter "Setup"

Navigate to "Apps > Installed Packages". Click "New" to create a new package. Create an app called "Chord" and provide an optional description, then click "Save"

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-fecefa194ecc308306afc53e9cd87a7c4798eda2%2Fsalesforce-marketing-cloud-sfmc-1.png?alt=media)

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-457512f75353bb417ad78e477db7af8516034cd4%2Fsalesforce-marketing-cloud-sfmc-2.png?alt=media)

Click "Add Component" and choose "API Integration"

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-0a537972b9f9d52f0049877113c4b828bcaf584a%2Fsalesforce-marketing-cloud-sfmc-3.png?alt=media)

Choose "Server-to-Server" as the OAuth Integration Type

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-25da65adfd719a965c6bd2b8ca6ae7f10eba93b6%2Fsalesforce-marketing-cloud-sfmc-4.png?alt=media)

In "Set Server-to-Server Properties", given the new component the following permissions by checking the appropriate boxes:

* Automation > **Automations: Read, Write, Execute**
* Contacts > **Audiences: Read, Write**
* Contacts > **List and Subscribers: Read, Write**
* Data > **Data Extensions: Read, Write**
* Data > **File Locations: Read, Write**
* Journeys > **Journeys: Read, Write**

Click "Save" to continue. You should see a new Component in your package - verify that it has the correct permissions (in the Scope section) by comparing to the image below.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-aac65832b016af844c687a0a6e6d33a5ea0ef95f%2Fsalesforce-marketing-cloud-sfmc-5.png?alt=media)

Copy the **Client Id**,\*\* Client Secret\*\*, and\*\* Authentication Base URI\*\* from this page - you will need to provide these values to Chord Data Activations in Step 3.

### 2. Create an SFTP account in Salesforce Marketing Cloud

Chord Data Activations uses the ExactTarget Enhanced FTP server to upload large data files to your Salesforce Marketing Cloud instance and prepare them for import. In this step, you'll ensure there is a File Location for Chord to upload the data, and create a new user account on your FTP server that Chord can use to sign in.

**File Location**

In Salesforce Marketing Cloud Setup, navigate to "Data Management > File Locations". If you have an Enhanced FTP location with an external key of "ExactTarget Enhanced FTP", then no action is required. If you do not see this File Location, click "Create" to generate a new location with the following configurations:

* An "External Key" value of **ExactTarget Enhanced FTP**
* A "Location Type" of **Enhanced FTP Site Import Directory**

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-3f6c70fb187151a03427a18cd3cfb0916a47e66c%2Fsalesforce-marketing-cloud-sfmc-6.png?alt=media)

**FTP User**

Still in Salesforce Marketing Cloud Setup, navigate to "Data Management > FTP Accounts" and click "Add FTP User".

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-94892a29ccacd2471ec8c9a0e133952445f4eeef%2Fsalesforce-marketing-cloud-sfmc-7.png?alt=media)

For the email address, type in **<help@chord.co>** and give the user a strong, random password. You do not need to write down or memorize this password - Chord does not require it, and in step 4 we will replace it with an SSH key. Make sure to give the Chord user "Full" access, and do not specify any IPs in the "Allowlist IPs" list. Click Next.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-e14ed2e30bf540d7faa95c5c78d55243f016a56e%2Fsalesforce-marketing-cloud-sfmc-8.png?alt=media)

There's nothing to do yet on the next screen - we'll set up SSH Keys later.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-1937d6a4500043942f851e9fb1f75c3bef9e7068%2Fsalesforce-marketing-cloud-sfmc-9.png?alt=media)

Select the Root folder as the Home Folder for your user. Click "Save" to create the user.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-c030dcdaa0416accab741d80dd9c7ccda12b0bdd%2Fsalesforce-marketing-cloud-sfmc-10.png?alt=media)

Select the Root folder as the Home Folder

Salesforce Marketing Cloud will create the user, which may take a few seconds. Copy the **FTP Username** that was assigned to the user, which you'll need in Step 3.

### 3. Configure Chord with your connection information

Go to Chord Data Activation Destinations, click **New Destination** and choose **Salesforce Marketing Cloud**.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-f53a1d779686cf62fe2d25052c9fea447408a87a%2Fsalesforce-marketing-cloud-sfmc-11.png?alt=media)

In the dialog, fill out the data you gathered in steps 2 and 3:

* Name: A descriptive name of your choosing. If you have more than one Salesforce Marketing Cloud connection, you can use this field to help you keep track them
* Endpoint URL: Fill in the **Authentication Base URI** from Step 1
* Client ID and Client Secret: Fill in the **Client ID** and **Client Secret** from Step 1
* SFTP User: Fill in the **FTP Username** from Step 2(Optional) **Business Unit MID**: If you would like to create a connection for a business unit other than your primary SFMC account, you can provide a Business Unit MID. This can be found in the SFMC top navigation menu:
* Include Shared Data Extensions?: If you would like Chord to access shared data extensions, check this box. This has performance implications (see below for more details).

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-9faeb07eb3785fd12ee78c44982c7a18a2af03ca%2Fsalesforce-marketing-cloud-sfmc-12.png?alt=media)

* In order to enable Chord support for business units, you will also need to turn on business unit app integration in your SFMC instance under `Setup` > `Apps` > `Installed Packages` > `Chord` > `Access` > `Enable Integration` :

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-bacd9f6d9c09e664ae85e509882982977fedceab%2Fsalesforce-marketing-cloud-sfmc-13.png?alt=media)

Click **Save Connection**.

Chord will show your new Salesforce Marketing Cloud connection in its connections list

### 4. Upload Chord's SSH public key to Marketing Cloud

The final step is to configure Marketing Cloud to accept Chord's SSH public key for FTP access, instead of using a password. Still in Chord, click the button labeled "Click to Download" next to the "SFTP Public Key". This will download a file called "census.pub" to your computer - make a note of where it was saved.

Return to Salesforce Marketing Cloud Setup and navigate to "Data Management" > "Key Management". Click "Create".

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-1537b6b2626b7fc1b9d68b19f0ef7d86cd15cace%2Fsalesforce-marketing-cloud-sfmc-14.png?alt=media)

* For "Key Type", choose "SSH"
* For "Name", type "Chord Public Key"
* For "External Key", type "chord-public-key"
* Check the "Public Key" checkbox
* Click "Browse" next to the "Key (required)" field and find the "census.pub" file you previously downloaded.
* Click "Save"

Now we'll associate the key with the Chord user. Navigate to "Data Management" > "FTP Accounts". Choose the "<help@chord.co>" user and click the small arrow next to their name (you may need to scroll to the right. Choose "SSH Keys" from the drop-down menu.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-94b903da3f6a1633516d92c909c5e057f2c99ca1%2Fsalesforce-marketing-cloud-sfmc-15.png?alt=media)

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-72ea0eb357cf75395da2f04b809654edf550e747%2Fsalesforce-marketing-cloud-sfmc-16.png?alt=media)

Click in the "Search SSH Keys" box and find "Chord Public Key" and select it. Change the "Authentication Options" to "SSH Key" and click "Save". In a few seconds, Salesforce Marketing Cloud will finish configuring the SSH key (you can click the refresh icon at the top right to see the activity log go from "Pending" to "Success".

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-d158ecccb3153bd01b90bf817da942c815299fff%2Fsalesforce-marketing-cloud-sfmc-17.png?alt=media)

You're ready to start using Chord Data Activations to load data from your warehouse to Salesforce Marketing Cloud!

## Supported objects and behaviors

| **Object Name**       | **Supported?** | **Sync Keys**     | **Behaviors**                          |
| --------------------- | -------------- | ----------------- | -------------------------------------- |
| Data Extension        | ✅              | Unique Identifier | Update or Create, Update Only, Replace |
| Contact               | ✅              | Contact Key       | Update or Create                       |
| API-Triggered Journey | ✅              | Contact Key       | Update or Create, Mirror               |

## 🏗️ Working with data extensions

Data Extensions are a fundamental component of Salesforce Marketing Cloud and are used in various capacities, including email personalization, segmentation, and reporting. They're unique in that they combine the common marketing automation concepts of segmentation and custom/relational data together into a single mechanism.

Chord allows you to sync data to existing data extensions, create new ones, and add fields to existing ones as well.

### Creating a data extension

You can select any existing data extension as a destination for a sync. You can also create a new data extension when setting up a Chord sync.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-6ca347324310c0c33ea96168c80180a2cf0ee751%2Fsalesforce-marketing-cloud-sfmc-18.png?alt=media)

1. Click New Object
2. Provide a name for your data extension
3. Optionally, you can provide a different name for the identifier. By default, we'll use **ID**.

{% hint style="info" %}
You can also have Chord create the data extension within a subfolder by providing it in the data extension name. The subfolder must already exist, Chord won't automatically create it. The subfolder will be relative to any configured root folder (see below).
{% endhint %}

### Adding new properties

Whether you're working with a brand new data extension or an existing one, you can always add more properties to a data extension. Within the Mappings section, either the **Add Mapping** or **Generate Mappings** allow you to add new properties to the data extension that will be created next time the sync is run.

### Setting a root folder

Some Salesforce Marketing Cloud installations have a very large number of data extensions. Chord allows specify a specific folder to use as the root or base folder. Only data extensions within this folder or its subfolders will be shown in Chord and new data extensions will be created in this folder.

![](https://2938842758-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Oy2IAsu7IvAGAlWgC36%2Fuploads%2Fgit-blob-9d0037e78276355d5a3a92cc1d12d96fea7d912c%2Fsalesforce-marketing-cloud-sfmc-19.png?alt=media)

* Visit the Destinations page and find your Salesforce Marketing Cloud connection.
* Click **Edit**.
* Set the Folder Path value to match your desired folder.
* Click **Save Connection**.

### Shared data extensions

In addition to Data Extentions in your specified root folder, you can also have Chord look for shared data extensions. For organizations with thousands of data extensions (regardless of whether they're shared or not), this can make the process of scanning for all existing extensions very slow. This slowness will show up when setting up new Chord connections or creating a new data extension. If you're experiencing slow performance, you can disable this feature by unchecking the "Include Shared Data Extensions?" checkbox in the Salesforce Marketing Cloud connection settings.

## Advanced configuration

By default, Chord uses Salesforce Marketing Cloud's bulk upload mechanism which is powered by SFTP. This is the recommended mechanism for most syncs. However, for small data volumes, it may be preferred to send updates individually via Salesforce Marketing Cloud's SOAP API for faster processing. If your syncs must be processed with as low latency as possible and you have a relatively small number of changes, you can disable the standard SFTP method of syncing.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/data-activations/data-activations/destination-set-up-notes/salesforce-marketing-cloud-sfmc.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
