REST Data Model
The CData Tableau Connector for Salesforce Marketing Cloud models Salesforce Marketing Cloud data as an easy-to-use SQL database. There are three parts to the data model: tables, views, and stored procedures.
Tables
The Tables section, which details standard SQL tables, and the Views section, which lists read-only SQL tables, describe the schema exposed through the Salesforce Marketing Cloud.com API. The available data depends on your account credentials and access level.
The tables shipped with the CData Tableau Connector for Salesforce Marketing Cloud include:
| Table | Description |
| Assets | Provides access to digital assets within Salesforce Marketing Cloud. Assets include reusable content elements such as images, templates, or code snippets that are stored and managed in Content Builder. |
| AssetTypes | Returns the available asset types configured in Salesforce Marketing Cloud. Each asset type defines the structure, behavior, and rendering rules for specific types of content elements. |
| Callbacks | Manages event notification callbacks that are configured in Salesforce Marketing Cloud. |
| CampaignAssets | Maintains relationships between campaigns and their associated assets in Salesforce Marketing Cloud. |
| Campaigns | Represents campaigns in Salesforce Marketing Cloud. Each campaign groups related marketing efforts and performance metrics under a single initiative. |
| Categories | Stores category information (also known as folders) within Content Builder in Salesforce Marketing Cloud. |
| Contact | Retrieves detailed information for a specific contact in Salesforce Marketing Cloud. A contact represents an individual subscriber or customer who interacts with your marketing campaigns. |
| Contacts | Retrieves a comprehensive list of all contacts in Salesforce Marketing Cloud. Each contact represents a unique individual with associated communication preferences and subscription data. |
| EventDefinitions | Manages event definitions within Salesforce Marketing Cloud. An event definition specifies a trigger, such as a form submission or API call, that initiates an automated process like a journey entry or data update. |
| FacebookMessengerProperties | Defines properties for Facebook Messenger integrations in Salesforce Marketing Cloud. These properties control how messages are formatted, delivered, and tracked within Facebook channels. |
| JourneyActivities | Contains details about journey activities in Salesforce Marketing Cloud. A journey activity represents an action or decision point in a customer journey, such as sending an email or evaluating a contact attribute. |
| JourneyAuditLogs | Returns audit logs for journeys and their versions in Salesforce Marketing Cloud. |
| JourneyHistory | Retrieves the historical execution records of customer journeys in Salesforce Marketing Cloud. Each record reflects the runtime status, performance, and event details of a specific journey instance. |
| Journeys | Represents customer journeys in Salesforce Marketing Cloud. |
| LineMessengerProperties | The table that defines configuration properties for LINE messenger integrations in Salesforce Marketing Cloud. These properties determine how messages are delivered and tracked within LINE communication channels. |
| MobileApplications | Returns the list of mobile applications (apps) configured in a Salesforce Marketing Cloud account. |
| SmsStatusCodes | Returns Short Message Service (SMS) status codes recognized by Salesforce Marketing Cloud. |
| SendDefinitions | Stores send definitions in Salesforce Marketing Cloud. |
| Subscriptions | Manages event notification subscriptions within Salesforce Marketing Cloud. |
| TransactionalMessages | Retrieves a paginated list of transactional messages that are not successfully sent in Salesforce Marketing Cloud. |
Data Extension Views
In addition to the fixed tables listed above, each Data Extension in your account is exposed as its own dynamically discovered view named DataExtensionObject_<Name> (for example, a Data Extension named "Test_DE" is exposed as the view DataExtensionObject_Test_DE). Columns are discovered per Data Extension from its field definitions, so the available columns differ from view to view.
Data Extensions are exposed as views because they are read-only: SELECT is supported, but INSERT, UPDATE, and DELETE are rejected.
A WHERE clause on a Data Extension view is sent to the API as a server-side filter wherever the API can express it, so only the matching rows are transferred. Which operators are pushed down depends on the column's type:
| Boolean | = |
| Text, EmailAddress, Phone, Locale, and other text types | =, !=, >, >=, <, <= |
| Number and Decimal | =, !=, >, >=, <, <= |
| Date | >, >=, <, <= |
Conditions joined with AND are combined into a single server-side filter. Conditions joined with OR, along with LIKE, IN, and any other operator not listed above, are evaluated by the CData Tableau Connector for Salesforce Marketing Cloud after the rows are retrieved. Results are identical either way; only the amount of data transferred differs.
Note: Salesforce Marketing Cloud applies filtering, sorting, and paging on Data Extension rows only for sendable Data Extensions. A request against a non-sendable Data Extension returns at most 200 rows. Mark a Data Extension as sendable in Salesforce Marketing Cloud if you need server-side filtering over its full contents.
Whether Data Extensions are exposed at all is controlled by the ListDataExtensions connection property (enabled by default). The name prefix ("DataExtensionObject" by default) can be customized with the DataExtensionObjectPrefix connection property.
Because a Data Extension has no fixed row order guaranteed by the API, the following query is useful for retrieving a single deterministic boundary row, such as when partitioning a large Data Extension for bulk export:
SELECT <column> FROM DataExtensionObject_<Name> ORDER BY <column> ASC LIMIT 1