Skip to contentSkip to navigationSkip to topbar
On this page
Looking for more inspiration?Visit the
(information)
You're in the right place! Segment documentation is now part of Twilio Docs. The content you are used to is still here—just in a new home with a refreshed look.

Salesforce Marketing Cloud Source


Source Info
  • The Salesforce Marketing Cloud Source is an Object Cloud source. This means that it sends information (traits) about a thing that exists and persists over time, such as a person or company, and which can be updated over time. Data from this source can only be exported directly to a warehouse, but it can then be used for further analysis. Learn more about cloud sources.

Salesforce Marketing Cloud(link takes you to an external page), formerly known as ExactTarget, is a marketing automation suite with the ability to build complete customer journeys as well as creating, targeting, tracking, and managing email and digital media campaigns.

With the Segment Salesforce Marketing Cloud Source, you can extract data from Marketing Cloud and send them to a data warehouse such as Redshift or Big Query with ease, avoiding having to build your own expensive custom solutions.

If you are trying to set up Salesforce Marketing Cloud as a destination to receive data from Segment, check out Salesforce Marketing Cloud Destination.

(success)

Good to know

This page is about the Salesforce Marketing Cloud Segment source, which sends data into Segment. There's also a page about the Salesforce Marketing Cloud Segment destination, which receives data from Segment.


Getting started

getting-started page anchor

API access

api-access page anchor

To access the Salesforce Marketing Cloud data on your behalf, Segment requires the client ID, client secret and subdomain from your Salesforce Marketing Cloud integration. The integration must also have the following permissions:

CategoryCollectionPermission Needed
AutomationJourneys (Interactions)Read
ContactsLists and SubscribersRead
HubCampaignsRead

If you already have a Salesforce Marketing Cloud Segment Destination, you can choose to re-use the client ID, client secret and subdomain set up for the destination. To enable the permissions required for the source:

  1. Log in to your Salesforce Marketing Cloud account.
  2. Click your name in the top-right corner of the screen and select Administration.
  3. Navigate to the existing package with the the Segment destination API Integration.
  4. Adjust the scope according to the permission table above.
  5. Click Save.

If you do not have a Salesforce Marketing Cloud Segment Destination, follow the steps below to acquire the client ID and client secret:

  1. Log in to your Salesforce Marketing Cloud account.
  2. Click your name in the top-right corner of the screen and select Administration.
  3. Click the Account menu at the top-left corner of the page and select Installed Packages.
  4. If you want to use an existing package, click on that one or click New to create a new one. Segment recommends giving it a name like "Segment".
  5. Click Add Component.
  6. Select API Integration and click Next.
  7. Select Server-to-Server.
  8. Enable the permissions as specified in the table above.
  9. Click Save.

You should now see a Summary page with a Components section. This section lists your Client ID and Client Secret settings.

Segment will use your unique Salesforce subdomain to make API calls to SFMC. Your subdomain is represented by a 28-character string starting with the letters "mc" in any of your base URIs. For example, in the base URI mc563885gzs27c5t9-63k636ttgm.rest.marketingcloudapis.com, the subdomain is mc563885gzs27c5t9-63k636ttgm.

Enable the Salesforce Marketing Cloud source

enable-the-salesforce-marketing-cloud-source page anchor
  1. From your Segment workspace's /Sources page, click Add Source.
  2. Under the Email Marketing category, choose Salesforce Marketing Cloud and click Connect.
  3. Give your source a name to identify it within your workspace.
  4. Select the data warehouses to connect the source to.
  5. Specify the Client ID and Client Secret values acquired from the API Access section above.
  6. Specify the subdomain aquired from the Set up your subdomain section above.

The Salesforce Marketing Cloud source is built with a sync component, which means Segment makes requests to Salesforce's API on your behalf on a three-hour interval to pull the latest data into Segment. In the initial sync, Segment grabs all the Salesforce objects (and their corresponding properties) according to the Collections Table below.

The objects will be written into a separate schema, corresponding to the source instance's schema name you designated upon creation. For example, if you went with sfmc_prod, the campaigns collection will be accessible at sfmc_prod.campaigns in SQL.

Each sync will only sync the data that has been modified since the previous sync.

The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. Sources will sync with Segment every three hours. Depending on your Warehouses plan, Segment will push the source data to your warehouse on the interval associated with your billing plan.


Collections are the groupings of resources Segment pulls from your source. In your warehouse, each collection gets its own table.

CollectionTypeDescription
campaignsObjectA campaign in your account. Corresponds to Campaigns(link takes you to an external page)
campaign_assetsObjectThe assets associated with each campaign. Corresponds to campaign_assets(link takes you to an external page)
listsObjectA mailing list. Corresponds to Lists(link takes you to an external page)

Segment performs a one-to-one mapping of all publicly available fields from Salesforce Marketing Cloud. The tables in this section outline the properties included in the collections listed above. To see the full description of each property,refer to the Salesforce Marketing Cloud documentation linked in each collection above.

Property NameDescription
campaign_codeThe campaign short code
colorThe code of the calendar color given to the campaign
created_dateTimestamp when the campaign was created
descriptionThe campaign description
favoriteWhether the campaign was favorited
idThe campaign's unique ID in Salesforce Marketing Cloud
modified_dateTimestamp when the campaign was last modified
nameThe campaign name
Property NameDescription
campaign_idThe ID of the campaign this asset is associated to
created_dateTimestamp when the asset was created
idThe campaign asset ID
item_idThe asset's unique ID in Salesforce Marketing Cloud
typeThe asset type. Can be one of: email, triggered send, mobile message, push message, twitter update, facebook update, facebook tab, sites, landing pages, subscriber list, subscriber group, data extension, automation, or event
Property NameDescription
categoryID of the folder containing the list
client_created_byUser ID of the user who created the list
client_customer_keyExternal key assigned to the list in Marketing Cloud
client_idID of the owner account of the list
client_modified_byUser ID of the user who last modified the list
client_partner_client_keyUser-defined partner key for owner account of the list
client_partner_user_keySpecifies the partner key value of a user
client_user_idUser ID of the owner account of the list
created_dateTimestamp when the list was created
customer_keyUser-supplied unique identifier for an object within an object type. This property corresponds to the external key assigned to an object in Marketing Cloud.
descriptionThe list description
idThe list's unique ID in Salesforce Marketing Cloud
list_classificationSpecifies the classification for a list. Valid values include: ExactTargetList, PublicationList, SuppressionList
list_nameThe list name
modified_dateTimestamp when the list was last modified
object_idAuto-generated ID for the object
partner_keyUnique ID provided by the partner for the object
typeIndicates the list type. Valid values include Public, Private, Salesforce, GlobalUnsubscribe, and Master

Interactions (aka journeys)

interactions-aka-journeys page anchor
Property NameDescription
keyThe developer defined customer key (also a unique identifier within the MID) for this journey
nameThe display name used in the Journey Builder UI for this journey, this will be visible to everyone who logs into your Marketing Cloud account
last_published_date
descriptionThe human readable description of this journey that informs others of purpose
versionThis number denotes the iteration of this particular journey
workflow_api_versionThis number represents the current release of the Journey Spec that the Journey Builder APIs will expect in order to understand how to parse and properly respond to your API requests
created_date
modified_date
stats_cumulative_population
stats_current_population
stats_goal_performance
stats_met_goal
execution_mode
status
definition_id
default_emailAn ordered list of email expressions used to determine which email address to use as the default, starting with the first expression
default_analytics_type
default_enabled
Property NameDescription
interaction_idThe id of the interaction that this goal is associated with
keyThe customer key for this goal
nameThe display name for this goal
descriptionThe description for this goal, will be displayed in the Journey Builder user interface
typeThe type of goal this is (only option currently is ContactEvent)
arguments_dequeue_reason
arguments_filter_result
arguments_last_executed_activity_key
start_activity_key
config_arguments_filter_def_id
config_arguments_criteria
config_arguments_schema_version_id
metadata_is_exit_criteria
metadata_conversion_unitThis value is used for deterministic evaluations of the goal, can be either "percentage" or "wholenumber"
metadata_conversion_valueBased on the conversionUnit this is the metric Journey Builder uses to determine if the goal has been satisfied
metadata_event_definition_id
metadata_event_definition_key
metadata_configuration_description
metadata_configuration_chain_type
metadata_configuration_required
metadata_configuration_icon_url
metadata_configuration_title
schema_args_condition_outcome_access
schema_args_condition_outcome_data_type
schema_args_condition_outcome_direction
schema_args_condition_outcome_is_nullable
schema_args_condition_outcome_read_only
schema_args_dequeue_reason_access
schema_args_dequeue_reason_type
schema_args_dequeue_reason_direction
schema_args_dequeue_reason_is_nullable
schema_args_dequeue_reason_read_only
schema_args_filter_result_access
schema_args_filter_result_data_type
schema_args_filter_result_direction
schema_args_filter_result_is_nullable
schema_args_filter_result_read_only
schema_args_last_executed_activity_key_access
schema_args_last_executed_activity_key_data_type
schema_args_last_executed_activity_key_direction
schema_args_last_executed_activity_key_is_nullable
schema_args_last_executed_activity_key_read_only
schema_args_start_activity_key_access
schema_args_start_activity_key_data_type
schema_args_start_activity_key_direction
schema_args_start_activity_key_is_nullable
schema_args_start_activity_key_read_only

Currently, Warehouses are the only supported destination for object-cloud sources.