CData Python Connector for Salesforce Marketing Cloud

Build 26.0.9655

CData Python Connector for Salesforce Marketing Cloud

Overview

The CData Python Connector for Salesforce Marketing Cloud allows developers to write Python scripts with connectivity to Salesforce Marketing Cloud. The connector wraps the complexity of accessing Salesforce Marketing Cloud data in an interface commonly used by Python connectors to common database systems.

Key Features

  • WHL installation packages that enable installation with "pip install".
  • Supported for Python 3.10 or newer on Windows, Linux, and macOS.
  • Write and execute SQL queries to fetch and update data in Salesforce Marketing Cloud.
  • Custom dialect class that enables SQLAlchemy 1.3 and 1.4 to use this connector.

Getting Started

See Getting Started to install the connector to your Python distribution and to create a basic connection to Salesforce Marketing Cloud.

Using the Python Connector/Using from Tools

See Using the Connector for examples of executing basic SELECT, INSERT, UPDATE, DELETE, and EXECUTE queries with the module's provided classes.

See Using from Tools to connect Salesforce Marketing Cloud data to tools such as Pandas or Petl.

SQLAlchemy ORM

SQLAlchemy can be leveraged to model the tables in Salesforce Marketing Cloud with mapped classes. See From SQLAlchemy for instructions for configuring the Python connector with SQLAlchemy.

Pandas

Pandas' DataFrames can be used alongside the connector to generate analytical graphics. See From Pandas for a guide.

Schema Discovery

See Schema Discovery to query the provided system tables, which allows users to discover the available tables, views, and stored procedure, alongside additional information about their columns or parameters.

Advanced Features

Advanced Features details additional features supported by the connector, such as defining user defined views, ssl configuration, remoting, caching, firewall/proxy settings, and advanced logging.

SQL Compliance

See SQL Compliance for a syntax reference and code examples outlining the supported SQL.

Data Model

See Data Model for the available database objects. This section also provides more detailed information on querying specific Salesforce Marketing Cloud entities.

Connection String Options

The Connection properties describe the various options that can be used to establish a connection.

CData Python Connector for Salesforce Marketing Cloud

Getting Started

Connecting to Salesforce Marketing Cloud

For information on the available WHL files for supported environments, and how to install the appropriate file for your Python distribution, see Package Installation.

For information on the module to import, and how to configure the necessary connection properties in a connection string, see Establishing a Connection.

Other available connection properties can be used to configure other aspects of the connector capabilities.

Python Version Support

The CData Python Connector for Salesforce Marketing Cloud can be installed and used in Python 3.10 or newer.

Salesforce Marketing Cloud Version Support

The connector leverages the SOAP Web Service API and the REST API to enable bidirectional access to Salesforce Marketing Cloud.

See Also

  • Using the Connector: Establish connections and query Salesforce Marketing Cloud through Python code.
  • From SQLAlchemy: Use SQLAlchemy to establish a connection with dialect URL, and interact with Salesforce Marketing Cloud data using mapped classes and Sessions.

CData Python Connector for Salesforce Marketing Cloud

Package Installation

Dependencies

The Python connectors require that Python 3.10 or newer be installed.

Installation

The CData Python Connector for Salesforce Marketing Cloud is available as a WHL file for Windows, Linux, and Mac. Each connector is built using the Python 3.10 Stable ABI (indicated by the abi3 tag in the filename), so a single wheel supports any Python 3.10 or newer installation — there is no need to match your exact Python minor version. Use the "pip install" command with the appropriate WHL file for your platform.

Windows:

pip install cdata_sfmarketingcloud_connector-26.0.9655-cp310-abi3-win_amd64.whl

Linux:

pip install cdata_sfmarketingcloud_connector-26.0.9655-cp310-abi3-linux_x86_64.whl

macOS:

pip install cdata_sfmarketingcloud_connector-26.0.9655-cp310-abi3-macosx_12_0_arm64.whl

The macOS wheel supports arm64 (Apple Silicon) architectures only on macOS 12 and newer.

Regardless of the environment, certain distributions might require that the "pip3 install" command be used instead, to differentiate from a Python 2 distribution that might exist already. After installation, confirm whether the connector is successfully installed by running the "pip list" command. If "cdata_sfmarketingcloud_connector" is present in the list output by the command, then the installation was successful.

Upgrading

When upgrading, "pip install" does not automatically clean up old JRE files. To avoid leftover files that could cause JVM errors, uninstall the previous version before installing the new one.

Licensing

After the installation is complete, a separate step is needed to activate a license for the connector. Among the CData assets in the distribution's site packages, there is an install-license tool that activates this license. From within the distribution's site-packages folder, after navigating to the "cdata/installlic_sfmarketingcloud" folder, simply use a command like the below to activate the license. Omitting the <key> argument activates a trial license:

  • Windows:
    ./install-license.exe <key>
  • Linux / Mac:
    ./install-license.sh <key>

Sometimes, file access issues may cause pip to install the connector in a fallback file path that is not the python distribution's main or primary site-packages location. This can make it difficult to find where the connector was installed, and from there, the license activator. In that event, this python script below will print out the full file path of the connector's native file. This file will be stored in the mentioned cdata folder, from which the installlic_sfmarketingcloud folder is trivial to find:

import os
import cdata.sfmarketingcloud
path = os.path.abspath(cdata.sfmarketingcloud.__file__)
print(path)

Uninstallation

If the connector needs to be uninstalled for any reason, do so by running the pip uninstall command, as in the example below:

pip uninstall cdata-sfmarketingcloud-connector

CData Python Connector for Salesforce Marketing Cloud

Establishing a Connection

The objects available within our connector are accessible from the "cdata.sfmarketingcloud" module. To use the module's objects directly:

  1. Import the module as follows:
    import cdata.sfmarketingcloud as mod
  2. To establish a connection string, call the connect() method from the connector object using an appropriate connection string, such as:
    mod.connect("User=myUser;Password=myPassword;")

Connecting to Salesforce Marketing Cloud

For both REST and SOAP APIs, you have the option to refine data access using the following properties:

  • Instance: The instance of the Salesforce Marketing Cloud API used. The default Instance is s7 of the Web Services API; however, you can use this property to specify a different instance.
  • Subdomain: If the instance is greater than s10, you must also specify the subdomain.

REST API

To connect, set Schema to REST.

The Salesforce Marketing Cloud REST API uses the OAuth authentication standard. To authenticate using OAuth, you must create a custom OAuth application to obtain values for the OAuthClientId and OAuthClientSecret connection properties. See Creating a Custom OAuth App for more information.

SOAP API

To connect, set Schema to SOAP.

The Salesforce Marketing Cloud SOAP API can connect using OAuth, but also supports a legacy use of login credentials.

Note: Data extension objects in Salesforce Marketing Cloud are only accessible through the SOAP API.

Authenticating to Salesforce Marketing Cloud

User Accounts (OAuth)

Set the AuthScheme to OAUTH. Also, in all OAuth flows, set AccountId to the specific MID of the target business unit. NOTE: This is not available for legacy packages. The following OAuth sections assume that you have set both these connection properties.

Desktop Apps

Follow the steps below to authenticate with the credentials for a custom OAuth application. See Creating a Custom OAuth App for information about custom OAuth applications. Get an OAuth Access Token

After setting the following, you are ready to connect:

When you connect the connector opens the OAuth endpoint in your default browser. Log in and grant permissions to the application. The connector then completes the OAuth process:
  1. Extracts the access token from the callback URL and authenticates requests.
  2. Obtains a new access token when the old one expires.
  3. Saves OAuth values in OAuthSettingsLocation. These values persist across connections.

Web Apps

When connecting via a Web application, you need to register a custom OAuth application with Salesforce Marketing Cloud. See Creating a Custom OAuth App for information about custom OAuth applications. Then use the connector to get and manage the OAuth token values. Get an OAuth Access Token

Set the following connection properties to obtain the OAuthAccessToken:

You can then call stored procedures to complete the OAuth exchange:

  1. Call the GetOAuthAuthorizationURL stored procedure. Set the AuthMode input to WEB and set the CallbackURL input to the Redirect URI you specified in your application settings. If necessary, set the Permissions parameter to request custom permissions.

    The stored procedure returns the URL to the OAuth endpoint.

  2. Open the URL, log in, and authorize the application. You are redirected back to the callback URL.
  3. Call the GetOAuthAccessToken stored procedure. Set the AuthMode input to WEB. Set the Verifier input to the "code" parameter in the query string of the callback URL. If necessary, set the Permissions parameter to request custom permissions.

To connect to data, set the OAuthAccessToken connection property to the access token returned by the stored procedure. When the access token expires after ExpiresIn seconds, call GetOAuthAccessToken again to obtain a new access token.

Headless Machines

To configure the driver to use OAuth with a user account on a headless machine, you need to authenticate on another device that has an internet browser.

  1. Choose one of two options:
    • Option 1: Obtain the OAuthVerifier value as described in "Obtain and Exchange a Verifier Code" below.
    • Option 2: Install the connector on a machine with an Internet browser and transfer the OAuth authentication values after you authenticate through the usual browser-based flow, as described in "Transfer OAuth Settings" below.
  2. Then configure the connector to automatically refresh the access token on the headless machine.

Option 1: Obtain and Exchange a Verifier Code

To obtain a verifier code, you must authenticate at the OAuth authorization URL.

Follow the steps below to authenticate from the machine with an Internet browser and obtain the OAuthVerifier connection property.

  1. Choose one of these options:
    • If you are using the Embedded OAuth Application click Salesforce Marketing Cloud OAuth endpoint to open the endpoint in your browser.
    • If you are using a custom OAuth application, create the Authorization URL by setting the following properties: Then call the rpgrestsp-getoauthauthorizationurl stored procedure with the appropriate CallbackURL. Open the URL returned by the stored procedure in a browser.
  2. Log in and grant permissions to the connector. You are then redirected to the callback URL, which contains the verifier code.
  3. Save the value of the verifier code. Later you will set this in the OAuthVerifier connection property.
Next, you need to exchange the OAuth verifier code for OAuth refresh and access tokens. Set the following properties:

On the headless machine, set the following connection properties to obtain the OAuth authentication values:

  • InitiateOAuth: REFRESH.
  • OAuthVerifier: The verifier code.
  • OAuthClientId: (custom applications only) The Client Id in your custom OAuth application settings.
  • OAuthClientSecret: (custom applications only) The Client Secret in the custom OAuth application settings.
  • OAuthSettingsLocation: The location of the settings file where OAuth values are saved when you set InitiateOAuth to GETANDREFRESH or REFRESH. Alternatively, you can hold this location in memory by specifying a value starting with 'memory://'. When this connection property is set, the data persists across connections.

After the OAuth settings file is generated, you need to re-set the following properties to connect:

  • InitiateOAuth: REFRESH.
  • OAuthClientId: (custom applications only) The client Id assigned when you registered your application.
  • OAuthClientSecret: (custom applications only) The client secret assigned when you registered your application.
  • OAuthSettingsLocation: The location containing the encrypted OAuth authentication values. Make sure this location gives read and write permissions to the connector to enable the automatic refreshing of the access token.

Option 2: Transfer OAuth Settings

Prior to connecting on a headless machine, you need to create and install a connection with the driver on a device that supports an Internet browser. Set the connection properties as described in "Desktop Applications" above.

After completing the instructions in "Desktop Applications", the resulting authentication values are encrypted and written to the location specified by OAuthSettingsLocation. The default filename is OAuthSettings.txt.

Once you have successfully tested the connection, copy the OAuth settings file to your headless machine.

On the headless machine, set the following connection properties:

  • OAuthClientId: (custom applications only) The client Id assigned when you registered your application.
  • OAuthClientSecret: (custom applications only) The client secret assigned when you registered your application.
  • OAuthSettingsLocation: The location of your OAuth settings file. Make sure this location gives read and write permissions to the connector to enable the automatic refreshing of the access token.

Server-to-Server (OAuthClient)

When creating an application in Salesforce Marketing Cloud, you can select server-to-server authentication. In this case, the application's permissions are configured directly in the Salesforce Marketing Cloud UI. As such, there is no user context and hence no browser-based login or permission grants. For this scheme, you must create your own credentials.

Specify the following properties to enable server-to-server OAuth authentication for your application:

User/Password Accounts (Basic)

The Salesforce Marketing Cloud SOAP API can connect using either your login credentials or OAuth authentication. Note that this authentication scheme is not available for REST API-based applications.

To connect to data using login credentials authentication, set the following:

CData Python Connector for Salesforce Marketing Cloud

Configuring JNI

Java Native Interface (JNI) is a standard programming interface for writing Java native methods and embedding the Java virtual machine into native applications.

The connector leverages the JNI for improved performance on Mac and Linux.

Configure the Config INI File

The Linux and Mac editions of the Salesforce Marketing Cloud python connector are configured with an ini file. This file is used to set several parameters, including JNI behavior. This file is to be located in:

{path_to_distribution_site-packages}/cdata/config.ini

Ensure that any configuration properties you set in the ini file fall under the following section name (adjust the 311 number if you are using an different python version from 3.11):

  • For Linux:
    [sfmarketingcloud.cpython-311-x86_64-linux-gnu.so]
  • For Mac:
    [sfmarketingcloud.cpython-311-darwin.so]

Configure the JNI connector's behavior by editing the properties in the connector's config.ini file. The connector can be configured as follows:

  • LOGFILE: Set this the same way as the CDATA_LOGFILE envrionment variable below.
  • JAVA_HOME: Configure the path to the JVM library location used to launch the JVM.
  • CLASS_PATH: Use a colon-separated list to configure the paths to the third-party jar libraries.

Configure Environment Variables

Additionally, set the following environment variables:

  • CDATA_JAVA_HOME: Configure the path to the JVM library location used to launch the JVM.
  • CDATA_JVM_OPTIONS: Place JVM options here.
  • CDATA_LOGFILE: Set this in the following scheme: <SCHEME>://<TAG>[|<LEVEL>]

    • SCHEME: The options are STDOUT, FILE.
      • STDOUT: Both the native wrapper and odbc core log into stdout. The Logfile and Verbosity properties can override the behavior of ODBC core.
      • FILE: The native wrapper logs into <FILENAME> while the odbc core logs into <FILENAME>.driver.log. The Logfile and Verbosity properties can override the behavior of ODBC core.
    • TAG
      • For STDOUT, set this to 1. For FILE, set this to the filename.
    • LEVEL
      • Set to one of: FATAL | ERROR | WARNING | INFO | DEBUG

The following are some examples of this syntax:

  • STDOUT://1|DEBUG
  • FILE:///tmp/my_py.log|DEBUG

Custom Logger

The Python connector supports a custom logging mechanism for redirecting log output to any destination, such as a cloud storage service or logging framework. Use setCustomLoggerFactory() to register a factory function that creates a logger instance for each connection.

The factory function receives the context string from the Logfile connection property (the portion after CUSTOM://) and must return an object with a writeLog(verbosity, message) method.

To enable custom logging:

  1. Call setCustomLoggerFactory() with your factory function before opening connections.
  2. Set Logfile to CUSTOM:// followed by a context string to identify the connection.
  3. Set Verbosity to the desired log level.

The following example demonstrates a custom logger factory that creates a separate logger instance per connection:

import cdata.sfmarketingcloud as mod
import time

class MyLogger:
    def __init__(self, loggerId):
        self.loggerId = loggerId
    def writeLog(self, verbosity, message):
        print("[MyLogger " + self.loggerId + "] " + message)

def createLogger(context):
    return MyLogger(context[len("MyLoggerId="):])

mod.setCustomLoggerFactory(createLogger)

conn1 = mod.connect("...;Logfile=CUSTOM://MyLoggerId=1;Verbosity=2;")
# do something with conn1
time.sleep(1)  # Wait for logs to flush from conn1

conn2 = mod.connect("...;Logfile=CUSTOM://MyLoggerId=2;Verbosity=2;")
# do something with conn2
time.sleep(1)  # Wait for logs to flush from conn2

CData Python Connector for Salesforce Marketing Cloud

Creating a Custom OAuth App

Create an App

Follow the procedure below to create and register an application and obtain the OAuth client credentials, the client Id, and client secret:

  1. Log in to your Salesforce Marketing Cloud and navigate to Marketing Cloud | Administration | Installed Packages.
  2. Click New.
  3. Specify a package name and description.
  4. Save the package. The saved package contains important data; see "Installed Packages Definitions" for more information about each field. Note that you see the Package ID, JWT Signing Secret, and Source Account only for packages created in your account.
  5. Under Components, click Add Component.
  6. Select API Integration.
  7. You must select Server-to-Server or Web App as the integration type if the package supports enhanced functionality.
  8. Assign the appropriate scope for your integration.
    • Perform server-to-server requests... is automatically selected for all API Integrations.
    • Select Perform requests on behalf of the user... if this package contains a Marketing Cloud application.
    • Select the Marketing Cloud scope for your API calls. Assign only the scope your package needs.
  9. Save the component.
  10. The Client ID and Client Secret are located under the component details.

CData Python Connector for Salesforce Marketing Cloud

Selecting From Data Extensions in SalesforceMarketingCloud

The connector offers the possibility to select, insert, update, and delete data from data extensions as relational tables. To query a data extension, simple enter its name in the format DataExtensionObject_Name where Name is the name of your data extension.

Note: To connect to data extension objects in Salesforce Marketing Cloud, you must use the SOAP API. Set Schema to SOAP.

Selecting data from data extensions


SELECT * FROM DataExtensionObject_fsefes3

SELECT * FROM DataExtensionObject_fsefes3 WHERE FieldName1 = 'One'

Note 1: All filters which work with normal tables/views also work with data extensions.

Note 2: By default the Salesforce Marketing Cloud retrieves data for the LoggedIn ClientId. To retrieve results for more than one ClientID, use semi-colons (;) as a separator. The ClientID can be accounts and sub-accounts, including Enterprise 2.0, On-Your-Behalf, and Lock & Publish accounts.

SELECT * FROM DataExtensionObject_fsefes3 WHERE ClientID = '1234567'

Inserting data into data extensions


INSERT INTO DataExtensionObject_fsefes3 (FieldName1, FieldName2, FieldName3) VALUES ('One', 'Two', 'Three')

Updating data from data extensions


UPDATE DataExtensionObject_secondtest15 SET [Name] = 'ChangedFromTheApi' WHERE [Email Address] = 'update_me@gmail.com'

Note: A primary key has to exist for this data extension for the update to work.

Deleting data from data extensions


DELETE FROM DataExtensionObject_secondtest15 WHERE [Email Address] = 'delete_me@gmail.com'

Note: A primary key has to exist for this data extension for the deletion to work.

CData Python Connector for Salesforce Marketing Cloud

Changelog

General Changes

DateVersionSourceCategoryTypeDescription
2026-05-2826.0.9644Salesforce Marketing CloudData ModelRemoved
  • Removed the DeliveryProfile_CusomterKey column from the EmailSendDefinition table in the SOAP schema.
2026-05-2726.0.9643GeneralConnectionRemoved
  • Removed the deprecated ReplaceInvalidTypesWithNull connection property. Use the ReplaceInvalidValuesWithNull property instead.
2026-05-2726.0.9643Salesforce Marketing CloudConnectionRemoved
  • Removed the deprecated Instance connection property, which was previously used for legacy stack-specific endpoints that have been unsupported for a long time.
2026-05-2226.0.9638PythonRemoved
  • Remove support for Intel x64 architecture on macOS
2026-05-0726.0.9623GeneralData ModelAdded
  • Added the ColumnCapabilities column to the sys_tablecolumns system table. This column is a bit mask denoting the column's write capabilities.
2026-05-0726.0.9623PythonChanged
  • Updated embedded JRE to jre-17.0.19+10 (Linux x64 / MacOs x64).
2026-04-1526.0.9601GeneralQuery ExecChanged
  • String comparisons using GREATER, LESS, and CONTAINS operators are now case-insensitive by default.
2026-04-0826.0.9594Salesforce Marketing CloudSecurityChanged
  • TLS 1.3 is now supported by default for HTTP connections.
2026-01-1325.0.9509GeneralAdded
  • Added support for the REGEXP_REPLACE() string function.
2025-12-2125.0.9486PythonAdded
  • Added support for custom loggers in Python connectors on Linux and macOS.
2025-12-0525.0.9470GeneralAdded
  • Added support for the INSERT INTO SELECT statement, with driver-side execution for providers that do not support the operation natively.
2025-10-3125.0.9435Salesforce Marketing CloudChanged
  • The column size has been changed from 1 to 2000 for the Type column of the List table and List_Type column of the UnsubEvent table in the SOAP schema.
2025-10-3025.0.9434PythonChanged
  • Updated embedded JRE to jre-17.0.17+10 (Linux x64 / MacOs x64).
2025-10-0625.0.9410GeneralAdded
  • Support for parsing datetime formats using ".S" and ",S" for milliseconds and nanoseconds.
2025-10-0225.0.9406Salesforce Marketing CloudAdded
  • Added the MobileApplications view in the REST schema.
2025-09-1225.0.9386GeneralAdded
  • Added the IsInsertable, IsUpdateable, and IsDeleteable columns to the sys_tables table.
2025-09-1025.0.9384GeneralChanged
  • All columns in statically defined Views are now reported as read-only.
2025-09-0325.0.9377GeneralChanged
  • Corrected the behavior when IN criteria with NULL values are used in the projection part. It now returns NULL instead of 0. For example, "NULL IN (1,2)" returns "NULL".
2025-09-0125.0.9375GeneralAdded
  • Added support for using the CAST function with infinity values. This function can cast "inf" and "-inf" to DOUBLE, FLOAT, or REAL.
2025-08-2925.0.9372Salesforce Marketing CloudChanged
  • Updated the data type of the WorkFlowApiVersion column to Double for the Journeys table in the REST schema.
2025-08-2125.0.9364GeneralChanged
  • Report behavior change:
    • Fixed inconsistent string value comparisons in non-table queries.
    • For example, "SELECT 'A' = 'a'" previously returned false, but it now returns true.
2025-08-1325.0.9356GeneralChanged
  • Changed the maximum number of pages held in memory from 15 to 5 for the page providers to decrease heap usage.
2025-08-0425.0.9347Salesforce Marketing CloudChanged
  • Changed the ID, ObjectID, and Modified fields in all tables and views that expose them in the SOAP schema. They can no longer be updated.
  • All columns exposed in views are now readonly and DB-generated.
2025-08-0425.0.9347Salesforce Marketing CloudAdded
  • Added the IsInsertRequired metadata column.
2025-07-1825.0.9330Salesforce Marketing CloudRemoved
  • Removed the OAuthGrantType property. The grant type is now set implicitly through the 'AuthScheme' property. For example, you can use the 'OAuthPassword' AuthScheme instead of AuthScheme=OAuth with OAuthGrantType=Password.
2025-07-0725.0.9319PythonRemoved
  • Removed the 32-bit version of Windows Python.
2025-07-0225.0.9314PythonRemoved
  • Removed support for Python 3.9.
2025-06-2525.0.9307GeneralRemoved
  • Removed the "ADLS Gen 1" value from the ConnectionType property.
2025-06-2525.0.9307PythonAdded
  • Added support for Python 3.13 in Windows, Linux, and Mac editions.
2025-06-2525.0.9307PythonRemoved
  • Removed support for Python 3.8 as it is no longer supported.
2025-06-2025.0.9302GeneralAdded
  • Created the following functions:
    • TEXT_ENCODE: encodes a string into a different charset (UTF8 → UTF7 and returns a binary array as the result).
    • TEXT_DECODE: takes a binary array and decodes it back into a string when provided the charset.
    • BASE64_ENCODE: takes a binary array and encodes it as a base64 string (varchar).
    • BASE64_DECODE: takes a base 64-encoded string and decodes it into a binary array.
2025-06-1825.0.9300GeneralChanged
  • The internal code for exception handling has been refactored. Exception messages returned during certain error conditions may now have different wording or formatting.
2025-05-2725.0.9278GeneralRemoved
  • Removed the "Proprietary" enum option from ProxyAuthscheme.
2025-05-1225.0.9263PythonChanged
  • Updated embedded JRE to jre-17.0.15+6 (Linux x64 / MacOS x64) and jre-17.0.15+6 (MacOS aarch64).
2025-04-0125.0.9222Salesforce Marketing CloudChanged
  • Changed the Client_Id column to be pushed as the primary key for the following tables and views: Account, Automation, BounceEvent, BusinessUnit, ClickEvent, ContentArea, DataExtension, DataExtensionField, DataExtensionTemplate, DataFolder, Email, EmailSendDefinition, FileTrigger, FileTriggerTypeLastPull, FilterDefinition, ForwardedEmailEvent, ForwardedEmailOptIn, Event, ImportDefinition, ImportResultsSummary, LinkSend, List, ListSend, ListSubscriber, MessagingVendorKind, NotSentEvent, OpenEvent, Portfolio, PrivateIP, ProgramManifestTemplatePublication, PublicKeyManagement, QueryDefinition, ReplyMailManagementConfiguration, Role, Send, SendClassification, SendEmailMOKeyword, SenderProfile, SendSMSMOKeyword, SendSummary, SentEvent, SMSMTEvent, SMSTriggeredSend, SMSTriggeredSendDefinition, SubscriberList, SubscriberSendResult, SubscriberStatusEvent, SuppressionListContext, SuppressionListDefinition, SurveyEvent, Template, TimeZone, TriggeredSendDefinition, TriggeredSendSummary, and UnsubEvent.
  • Changed the SendID column to be pushed as the primary key for the following views: ListSend, NotSentEvent, and SentEvent.
  • Changed the ID column to be pushed as the primary key for the following views: SendSummary, SubscriberList, and UnsubEvent.
  • Changed ObjectID column to be pushed as the primary key for the following views: BounceEvent, ClickEvent, ForwardedEmailEvent, ForwardedEmailOptInEvent, and OpenEvent.
2025-02-1824.0.9180Salesforce Marketing CloudAdded
  • Added the DefinitionId column to the Journeys table in the REST schema.
2025-02-1524.0.9177GeneralAdded
  • Added support for converting unsigned integer types to the nearest signed data type that has enough precision to hold the unsigned value.This is done for JDBC only because it does not have support for unsigned data types.
2024-12-0524.0.9105Salesforce Marketing CloudChanged
  • Changed the Id, SubcriberKey, and Client_Id columns to primary keys in the Subscriber table.
2024-11-2724.0.9097GeneralAdded
  • Added ThreadId to LogModule output. Logfile lines now include the Thread ID associated with the action being performed.
2024-07-0424.0.8951Salesforce Marketing CloudAdded
  • Added ContactId and ContactKey columns to all child tables of the Contacts view.
2024-07-0424.0.8951Salesforce Marketing CloudChanged
  • Renamed all child tables of the Contacts view to "AttributeSet_(tableName)".
2024-06-2624.0.8943Salesforce Marketing CloudAdded
  • Added support for INSERT/DELETE queries to the CampaignAssets table.
2024-06-1224.0.8929Salesforce Marketing CloudRemoved
  • Removed the auto AuthScheme option.
  • Removed the APIIntegrationType and OAuthGrantType connection properties.
2024-06-1224.0.8929Salesforce Marketing CloudDeprecated
  • Deprecated the Instance connection property.
2024-06-0524.0.8922PythonAdded
  • Added support for Python 3.12.
2024-05-1424.0.8900Salesforce Marketing CloudRemoved
  • Removed ActivityBatchInstanceId column of JourneyHistory view in schema REST.
2024-05-1024.0.8896Salesforce Marketing CloudAdded
  • Added CreateDataExtensionJob stored procedure in schema REST to create an asynchronous job for inserting or upserting data into a Data Extension object.
  • Added CheckDataExtensionJobStatus stored procedure in schema REST to get the status of the asynchronous insert or update job in a Data Extension object.
  • Added GetDataExtensionJobResults stored procedure in schema REST to get the results of the asynchronous insert or update job in a Data Extension object.
2024-05-0924.0.8895GeneralChanged
  • The ROUND function previously did not accept negative precision values. That feature has now been restored.
2024-03-1523.0.8840GeneralAdded
  • Created a new SQL function called STRING_COMPARE that provides java's String.compare() ability to SQL queries. Returns a number representative of the compared value of two strings
2023-11-2923.0.8733GeneralChanged
  • The ROUND function doesn't accept the negative precision values anymore.
2023-11-2923.0.8733GeneralChanged
  • The returning types of the FDMonth, FDQuarter, FDWeek, LDMonth, LDQuarter, LDWeek functions are changed from Timestamp to Date.
  • The return type of the ABS function will be consistent with the parameter value type.
2023-11-2823.0.8732GeneralAdded
  • Added the HMACSHA256 formatter to allow for secrets to be decoded if it is in base64 format
2023-08-2923.0.8641PythonAdded
  • Added support for SQLAlchemy 2.0.
2023-08-0923.0.8621Salesforce Marketing CloudChanged
  • Removed primary key from JourneyHistory view as it is not unique
2023-06-2023.0.8571GeneralAdded
  • Added the new sys_lastresultinfo system table.
2023-06-0423.0.8555Salesforce Marketing CloudAdded
  • Added CreateTriggeredSend stored procedure for Rest schema.
2023-05-1923.0.8539PythonAdded
  • Added support for Python 3.11 on Windows, Linux and Mac.
2023-05-1623.0.8536PythonRemoved
  • Removed support for Python 3.7 on Windows and Linux
2023-04-2523.0.8515GeneralRemoved
  • Removed support for the SELECT INTO CSV statement. The core code doesn't support it anymore.
2023-03-0322.0.8462Salesforce Marketing CloudAdded
  • Added SendTransactionalMessageToMultipleRecipients and GetMessageSendStatus stored procedure.
  • Added TransactionalMessages view.
2023-02-2722.0.8458Salesforce Marketing CloudAdded
  • Added support for Synchronous and Asynchronous Batch Update.
2023-02-0722.0.8438Salesforce Marketing CloudAdded
  • Added SendTransactionalMessageToRecipient stored procedure.
  • Added SendDefinitions table.
2022-12-1422.0.8383GeneralChanged
  • Added the Default column to the sys_procedureparameters table.
2022-11-2822.0.8367Salesforce Marketing CloudChanged
  • Removed primary key from SubscriberList view as it is not unique.
2022-11-1522.0.8354PythonChanged
  • Updated embedded JRE to jre8u345-b01(Linux x64 / MacOS x64) and jre-17.0.5+8(MacOS aarch64).
2022-10-0422.0.8312Salesforce Marketing CloudAdded
  • Added the FileStream input attribute to add inputstream in GetFileForAnAsset, GetChannelViewHtml and CreateSchema stored procedures.
  • Added the Encoding input attribute to decide the response encode type in GetChannelViewHtml stored procedure.
  • Added the FileData output attribute to print the BASE64 encoded response in Create schema stored procedure.
2022-09-3022.0.8308GeneralChanged
  • Added the IsPath column to the sys_procedureparameters table.
2022-09-1322.0.8291Salesforce Marketing CloudAdded
  • Added JourneyHistory view.
2022-06-3022.0.8216Salesforce Marketing CloudRemoved
  • Removed support for the legacy Stack-Specific Endpoints.
2022-06-1422.0.8200Salesforce Marketing CloudAdded
  • Added support for Synchronous and Asynchronous Batch Insert. Added the UseAsyncBatch connection property to select the batch insert type.
  • Added the WaitForBulkResults connection property, which defaults to true, to get Async Batch result. It only takes effect if UseAsyncBatch set to true.
2022-06-1022.0.8196Salesforce Marketing CloudChanged
  • Table columns will now use be using the underscore(_) onstead of of period(.) to distinguish between nested elements of the same entity.
2022-05-1922.0.8174Salesforce Marketing CloudAdded
  • Added the OAuthClient (OAuth + Client Grant Type) value to AuthScheme property.
2022-05-1922.0.8174Salesforce Marketing CloudDeprecated
  • The OAuthGrantType and APIIntegrationType properties are deprecated. Use the AuthScheme connection property instead.
2022-05-1822.0.8173PythonAdded
  • Added support for Python 3.10 on Windows, Linux, and Mac
  • Added support for Python 3.9 on Mac
  • Added support for Mac M1
2022-05-1822.0.8173PythonRemoved
  • Removed support for Python 3.6 on Windows and Linux
2021-09-0221.0.7915GeneralAdded
  • Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
2021-08-0921.0.7891Salesforce Marketing CloudAdded
  • Added a new connection property DisplayChildDataExtensions to control if data extensions will display from Child Accounts. For example, if your Client Id and Secret were created for a parent business unit, then the child business units's shared data extensions will be displayed as tables data may be selected from.
2021-08-0921.0.7891Salesforce Marketing CloudChanged
  • The Data Extension objects may now be displayed based on which account we have logged in from. When creating an OAuth Client Id and Secret, it may be associated with a particular business unit. Based on which business unit the client id / secret are associated with, different Data Extensions may be displayed, reflecting the available data extensions for that particular business unit.
2021-08-0721.0.7889GeneralChanged
  • Added the KeySeq column to the sys_foreignkeys table.
2021-08-0621.0.7888GeneralChanged
  • Added the new sys_primarykeys system table.
2021-07-2321.0.7874GeneralChanged
  • Updated the Literal Function Names for relative date/datetime functions. Previously, relative date/datetime functions resolved to a different value when used in the projection as opposed to the predicate. For example: SELECT LAST_MONTH() AS lm, Col FROM Table WHERE Col > LAST_MONTH(). Formerly, the two LAST_MONTH() methods would resolve to different datetimes. Now, they will match.
  • As a replacement for the previous behavior, the relative date/datetime functions in the criteria may have an 'L' appended to them. For example: WHERE col > L_LAST_MONTH(). This will continue to resolve to the same values that were previously calculated in the criteria. Note that the "L_" prefix will only work in the predicate - it not available for the projection.
2021-06-3021.0.7851Salesforce Marketing CloudAdded
  • The child objects nested on the Contacts view have been moved into separate individual child views that will be dynamically determined at runtime. For example, MobileConnect_Demographics, Email_Demographics, etc.
2021-04-2521.0.7785GeneralAdded
  • Added support for handling client side formulas during insert / update. For example: UPDATE Table SET Col1 = CONCAT(Col1, " - ", Col2) WHERE Col2 LIKE 'A%'
2021-04-2321.0.7783GeneralChanged
  • Updated how display sizes are determined for varchar primary key and foreign key columns so they will match the reported length of the column.
2021-04-2321.0.7783Salesforce Marketing CloudAdded
  • Added a new Connection property DataExtensionObjectPrefix to customize the DataExtensionObject Prefix value.
2021-04-1621.0.7776GeneralAdded
  • Non-conditional updates between two columns is now available to all drivers. For example: UPDATE Table SET Col1=Col2
2021-04-1621.0.7776GeneralChanged
  • Reduced the length to 255 for varchar primary key and foreign key columns.
2021-04-1621.0.7776GeneralChanged
  • Updated implicit and metadata caching to improve performance and support for multiple connections. Old metadata caches are not compatible - you need to generate new metadata caches if you are currently using CacheMetadata.
2021-04-1621.0.7776GeneralChanged
  • Updated index naming convention to avoid duplicates.
2020-10-0120.0.7579Salesforce Marketing CloudRemoved
  • Support for SANDBOX accounts because Salesforce has terminated Marketing Cloud Sandbox Accounts (https://help.salesforce.com/articleView?id=mc_rn_october_2019_eol_sandbox_accounts.htm&type=5)

CData Python Connector for Salesforce Marketing Cloud

Using the Connector

This section provides a walk-through for writing Salesforce Marketing Cloud data access code in Python script.

For more information on the available data source entities and how to query them with SQL, see Data Model. For the SQL syntax, see SQL Compliance.

Connecting from Code

For information on how to deploy the connector and configure the connection to Salesforce Marketing Cloud, see Package Installation and Establishing a Connection.

For information on how to connect with the sfmarketingcloud.connector module and its related classes, see Connecting.

Executing SQL

The connection's cursor object is used to directly execute SQL queries. For information on how to execute SELECT statements and process the returned result sets, see Querying Data. For information on to modify the data in Salesforce Marketing Cloud with INSERT, UPDATE, and DELETE statements, see Modifying Data .

Batch Processing

For information about how to modify several rows of Salesforce Marketing Cloud data at once using parameterized INSERT, UPDATE, and DELETE statements, see Batch Processing.

CData Python Connector for Salesforce Marketing Cloud

Connecting

Connecting with the cdata.sfmarketingcloud Module:

The connector's module is used directly to establish a connection with the data source. It does this by using a connection string as its argument. For example:
import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")

Once the connection is created, you can use it to execute subsequent SQL queries.

CData Python Connector for Salesforce Marketing Cloud

Querying Data

After connecting as described in Connecting, you can use the open connection to execute SQL statements.

Executing Queries

To execute SQL statements that return data, use the execute() method. Once a query is executed, the result set is fetched from the cursor. This result set can then be iterated over to process the records individually.

For example:

cur = conn.execute("SELECT Id, Status FROM Subscriber")
rs = cur.fetchall()
for row in rs:
	print(row)

Parameterized Queries

Various Python collections, such as arrays and tuples, can act as additional arguments for the execute() method. This enables you to parameterize the queries executed and help to prevent SQL Injection.

For example:

cmd = "SELECT Id, Status FROM Subscriber WHERE EmailAddress = ?"
params = ["john.doe@example.com"]
cur = conn.execute(cmd, params)
rs = cur.fetchall()
for row in rs:
	print(row)

CData Python Connector for Salesforce Marketing Cloud

Modifying Data

The connection is also used to issue INSERT, UPDATE, and DELETE commands to the data source. Parameters can be used with these statements if desired.

Note that the connector does not support transactions. As with normal write operations, all SQL statements executed by this connector affect the data source immediately. Call the connection's commit() method following the execution.

Insert

The following example adds a new record to the table:
cmd = "INSERT INTO Subscriber (Id, Status) VALUES (?, ?)"
params = ["Jon Doe", "John"]
cur = conn.execute(cmd, params)
print("Records affected: ", cur.rowcount)

Update

The following example modifies an existing record in the table:
cmd = "UPDATE Subscriber SET Status = ? WHERE Id = ?"
params = ["John", "902548304"]
cur = conn.execute(cmd, params)
print("Records affected: ", cur.rowcount)

Delete

The following example removes an existing record from the table:

cmd = "DELETE FROM Subscriber WHERE Id = ?"
params = ["902548304"]
cur = conn.execute(cmd, params)
print("Records affected: ", cur.rowcount)

CData Python Connector for Salesforce Marketing Cloud

Batch Processing

This Python connector also supports writing to the data source via batch processing, using the cursor object's executemany() method. This requires both a SQL statement string and a data frame of values that act as a series of parameters for executing the SQL statement.

Note that the connector does not support transactions. As with normal write operations, all SQL statements executed by this connector affect the data source immediately. Call the connection's commit() method following the execution.

Insert

The following example adds new records to the table:
cur = conn.cursor()
cmd = "INSERT INTO Subscriber (Id, Status) VALUES (?, ?)"
params = [["Jon Doe", "John"], ["Jon Doe", "John"]]
cur.executemany(cmd, params)
print("Records affected: ", cur.rowcount)

Update

The following example modifies existing records in the table:
cur = conn.cursor()
cmd = "UPDATE Subscriber SET Status = ? WHERE Id = ?"
params = [["John", "902548304"], ["John", "902548304"]]
cur.executemany(cmd, params)
print("Records affected: ", cur.rowcount)

Delete

The following example removes existing records from the table:
cur = conn.cursor()
cmd = "DELETE FROM Subscriber WHERE Id = ?"
params = [["902548304"], ["902548304"]]
cur.executemany(cmd, params)
print("Records affected: ", cur.rowcount)

CData Python Connector for Salesforce Marketing Cloud

Using from Tools

The connector is integrated with other tools and packages within Python.

Python Integration Guides

The following sections show how to create and use connections with the connector in common packages in Python:

Complete List of Salesforce Marketing Cloud Integration Quickstarts

For information on connecting from other applications, see Salesforce Marketing Cloud integration guides.

CData Python Connector for Salesforce Marketing Cloud

From SQLAlchemy

The CData Python Connector for Salesforce Marketing Cloud includes a Dialect class that enables integration with SQLAlchemy. Bear in mind that several aspects of connector functionality are not currently supported in SQLAlchemy 2.0 or above. If necessary, downgrade SQLAlchemy to version 1.4 or 1.3 before using this connector.

The following sections detail various aspects of this integration:

Connecting From SQLAlchemy

To construct a URL with which SQLAlchemy loads and uses the appropriate connector automatically, see Connecting

Reflecting Metadata With SQLAlchemy

To learn how to model Salesforce Marketing Cloud tables with mapped classes, see Reflecting Metadata.

Querying Data From SQLAlchemy

To learn how to use mapped classes to query the associated tables, see Querying Data.

Modifying Data From SQLAlchemy

The connector provides INSERT/UPDATE/DELETE functionality in SQLAlchemy. To learn how to call the session's execute() method to affect the data in the data source, see Modifying Data.

CData Python Connector for Salesforce Marketing Cloud

Connecting

Connecting With a Dialect URL

Establishing a connection using SQLAlchemy requires a specific URL format. For this connector, you can create the engine using either of the following URL formats:

Format 1


from sqlalchemy import create_engine
engine = create_engine("sfmarketingcloud:///?User=myUser;Password=myPassword;")

Format 2


from sqlalchemy import create_engine
engine = create_engine("sfmarketingcloud://User:Password@/")

For SQLAlchemy 2.0, the dialect name is sfmarketingcloud_2. To establish a connection, use the following URL format:

from sqlalchemy import create_engine
engine = create_engine("sfmarketingcloud_2:///?User=myUser;Password=myPassword;")

CData Python Connector for Salesforce Marketing Cloud

Reflecting Metadata

SQLAlchemy can act as an Object-relational Map (ORM). This enables you to treat records of a database table as instantiable records. To leverage this functionality, you must reflect the underlying metadata in one of the following ways.

Note: The following examples employ SQLAlchemy 1.4.

Modeling Data Using a Mapping Class

Use "sqlalchemy.ext.declarative.declarative_base" to declare a mapping class for the table you wish to model in the ORM. A known table in the data model is modeled either partially or completely, as shown in the following example:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Subscriber(Base):
	__tablename__ = "Subscriber"
	Id = Column(String, primary_key=True)
	Id = Column(String)
	Status = Column(String)

Automatically Reflecting Metadata

Rather than mapping tables manually, SQLAlchemy can discover the metadata for one or more tables automatically. To accomplish this across the entire data model, use automap_base:
from sqlalchemy import MetaData
from sqlalchemy.ext.automap import automap_base
meta = MetaData()
abase = automap_base(metadata=meta)
abase.prepare(autoload_with=engine)
Subscriber = abase.classes.Subscriber

You can also reflect a single table with an inspector. When reflecting this way, providing a list of specific columns to map is optional:

from sqlalchemy import MetaData, Table
from sqlalchemy import inspect
meta = MetaData()
insp = inspect(engine)
Subscriber_table = Table("Subscriber", meta)
insp.reflect_table(Subscriber_table, ["Id","Status"])

CData Python Connector for Salesforce Marketing Cloud

Querying Data

After you use the steps in Connecting to connect, and use one of the methods in Reflecting Metadata to reflect some of the metadata, you can use a session object to query data.

Querying Data Using the Query Method

If the mapping class has been prepared, use it with a session object to query the data source. After binding the engine to the session, provide the mapping class to the session's query method.

For example:

engine = create_engine("sfmarketingcloud:///?User=myUser;Password=myPassword;")
factory = sessionmaker(bind=engine)
session = factory()
for instance in session.query(Subscriber).filter_by(EmailAddress="john.doe@example.com"):
	print("Id: ", instance.Id)
	print("Id: ", instance.Id)
	print("Status: ", instance.Status)
	print("---------")

Querying Data Using the Execute Method

The session object can also run the query with the execute() method alongside the appropriate Table object. Assuming you have an active session, the following is just as viable:
Subscriber_table = Subscriber.metadata.tables["Subscriber"]
for instance in session.execute(Subscriber_table.select().where(Subscriber_table.c.EmailAddress == "john.doe@example.com")):
	print("Id: ", instance.Id)
	print("FullName: ", instance.Name)
	print("City: ", instance.BillingCity)
	print("---------")

CData Python Connector for Salesforce Marketing Cloud

Executing JOINs

Implicit Joining

If mapped classes of related Salesforce Marketing Cloud objects have a singular foreign key relationship, the classes are implicitly joined. After importing the necessary objects, a relationship is established between your two mapped classes, as in the example below:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer, DateTime, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship

Base = declarative_base()
class Contact(Base):
	__tablename__ = "Contact"
	Id = Column(Integer, primary_key=True)
	Name = Column(String)
	Email = Column(String)
	BirthDate = Column(DateTime)
	AccountId = Column(String, ForeignKey("Account.Id"))
	Account_Link = relationship("Account", back_populates="Contact_Link")

class Account(Base):
	__tablename__ = "Account"
	Id = Column(String, primary_key=True)
	Name = Column(String)
	BillingCity = Column(String)
	NumberOfEmployees = Column(Integer)
	Contact_Link = relationship("Contact", order_by=Contact.Id, back_populates="Account_Link")

Once the relationship is established, the tables are queried simultaneously using the session's query() method. For example:

rs = session.query(Account, Contact).filter(Account.Id == Contact.AccountId)
for Ac, Ct in rs:
  print("AccountId: ", Ac.Id)
  print("AccountName: ", Ac.Name)
  print("ContactId: ", Ct.Id)
  print("ContactName: ", Ct.Name)

Other Join Forms

In situations where mapped classes have either no foreign keys or multiple foreign keys, you may need different forms of the JOIN query to accommodate them. Using the earlier classes as examples, the following JOIN queries are possible as well:
  • Explicit condition (necessary if there are no foreign keys in your mapped classes):
    rs = session.query(Account, Contact).join(Contact, Account.Id == Contact.AccountId)
    for Ac, Ct in rs:
  • Left-to-right relationship:
    rs = session.query(Account, Contact).join(Account.Contact_Link)
    for Ac, Ct in rs:
  • Left-to-right relationship with explicit target:
    rs = session.query(Account, Contact).join(Contact, Account.Contact_Link)
    for Ac, Ct in rs:
  • String form of a left-to-right relationship:
    rs = session.query(Account, Contact).join("Contact_Link")
    for Ac, Ct in rs:

CData Python Connector for Salesforce Marketing Cloud

Other SQL Clauses

SQLAlchemy ORM also exposes support for other clauses in SQL, such as ORDER BY, GROUP BY, LIMIT, and OFFSET. All of these are supported by this connector:

ORDER BY

The following example sorts by a specified column using the session object's query() method:
rs = session.query(Subscriber).order_by(Subscriber.AnnualRevenue)
for instance in rs:
	print("Id: ", instance.Id)
	print("Id: ", instance.Id)
	print("Status: ", instance.Status)
	print("---------")

You can also use the session object's execute() method perform an ORDER BY. For example:

rs = session.execute(Subscriber_table.select().order_by(Subscriber_table.c.AnnualRevenue))
for instance in rs:

GROUP BY

The following example uses the session object's query() method to group records with a specified column:
rs = session.query(func.count(Subscriber.Id).label("CustomCount"), Subscriber.Id).group_by(Subscriber.Id)
for instance in rs:
	print("Count: ", instance.CustomCount)
	print("Id: ", instance.Id)
	print("---------")

You can also use the session object's execute() method to perform a GROUP BY:

rs = session.execute(Subscriber_table.select().with_only_columns([func.count(Subscriber_table.c.Id).label("CustomCount"), Subscriber_table.c.Id]).group_by(Subscriber_table.c.Id))
for instance in rs:

LIMIT and OFFSET

The following example uses the session object's query() method to skip the first 100 records and fetch the following 25:
rs = session.query(Subscriber).limit(25).offset(100)
for instance in rs:
	print("Id: ", instance.Id)
	print("Id: ", instance.Id)
	print("Status: ", instance.Status)
	print("---------")

You can also use the session object's execute() method to set a LIMIT or OFFSET:

rs = session.execute(Subscriber_table.select().limit(25).offset(100))
for instance in rs:

CData Python Connector for Salesforce Marketing Cloud

Aggregate Functions

Certain aggregate functions can also be used within SQLAlchemy by using the func module.

To import this module, execute:

from sqlalchemy.sql import func

Once func is imported, the following aggregate functions are available:

COUNT

The following example counts the number of records in a set of groups using the session object's query() method.
rs = session.query(func.count(Subscriber.Id).label("CustomCount"), Subscriber.Id).group_by(Subscriber.Id)
for instance in rs:
	print("Count: ", instance.CustomCount)
	print("Id: ", instance.Id)
	print("---------")

You can also execute COUNT using the session object's execute() method:

rs = session.execute(Subscriber_table.select().with_only_columns([func.count(Subscriber_table.c.Id).label("CustomCount"), Subscriber_table.c.Id])group_by(Subscriber_table.c.Id))
for instance in rs:

SUM

This example calculates the cumulative amount of a numeric column in a set of groups.

rs = session.query(func.sum(Subscriber.AnnualRevenue).label("CustomSum"), Subscriber.Id).group_by(Subscriber.Id)
for instance in rs:
	print("Sum: ", instance.CustomSum)
	print("Id: ", instance.Id)
	print("---------")

You can also invoke SUM using the session object's execute() method.

rs = session.execute(Subscriber_table.select().with_only_columns([func.sum(Subscriber_table.c.AnnualRevenue).label("CustomSum"), Subscriber_table.c.Id]).group_by(Subscriber_table.c.Id))
for instance in rs:

AVG

This example uses the session object's query() method to calculate the average amount of a numeric column in a set of groups:
rs = session.query(func.avg(Subscriber.AnnualRevenue).label("CustomAvg"), Subscriber.Id).group_by(Subscriber.Id)
for instance in rs:
	print("Avg: ", instance.CustomAvg)
	print("Id: ", instance.Id)
	print("---------")

You can also use the session object's execute() method to invoke AVG:

rs = session.execute(Subscriber_table.select().with_only_columns([func.avg(Subscriber_table.c.AnnualRevenue).label("CustomAvg"), Subscriber_table.c.Id]).group_by(Subscriber_table.c.Id))
for instance in rs:

MAX and MIN

This example finds the maximum value and minimum value of a numeric column in a set of groups.
rs = session.query(func.max(Subscriber.AnnualRevenue).label("CustomMax"), func.min(Subscriber.AnnualRevenue).label("CustomMin"), Subscriber.Id).group_by(Subscriber.Id)
for instance in rs:
	print("Max: ", instance.CustomMax)
	print("Min: ", instance.CustomMin)
	print("Id: ", instance.Id)
	print("---------")

You can also use the session object's execute() method to invoke MAX and MIN:

rs = session.execute(Subscriber_table.select().with_only_columns([func.max(Subscriber_table.c.AnnualRevenue).label("CustomMax"), func.min(Subscriber_table.c.AnnualRevenue).label("CustomMin"), Subscriber_table.c.Id]).group_by(Subscriber_table.c.Id))
for instance in rs:

CData Python Connector for Salesforce Marketing Cloud

Modifying Data

Commands can be executed individually by the session with a call to "execute()".

Obtaining the Table Object

The query supplied to this method is constructed using the associated Table object of a mapped class. This Table object is obtained from the mapped class's metadata field, as below:

Subscriber_table = Subscriber.metadata.tables["Subscriber"]

Once the table object is obtained, the write operations are executed in the following ways. The queries are executed immediately without the need for a call to "commit()":

Insert

The following example adds a new record to the table:

session.execute(Subscriber_table.insert(), {"Id": "Jon Doe", "Status": "John"})

Update

The following example modifies an existing record in the table:

session.execute(Subscriber_table.update().where(Subscriber_table.c.Id == "902548304").values(Id="Jon Doe", Status="John"))

Delete

The following example removes an existing record from the table:

session.execute(Subscriber_table.delete().where(Subscriber_table.c.Id == "902548304"))

CData Python Connector for Salesforce Marketing Cloud

From Pandas

When combined with the connector, Pandas can be used to generate data frames that contain your Salesforce Marketing Cloud data. Once created, a data frame can be passed to various other Python packages.

Connecting

Pandas relies on an SQLAlchemy engine to execute queries. Before you can use Pandas you must import it:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("sfmarketingcloud:///?User=myUser;Password=myPassword;")

Querying Data

In Pandas, SELECT queries are provided in a call to the read_sql() method, alongside a relevant connection object. Pandas executes the query on that connection, and returns the results in the form of a data frame, which can be used for a variety of purposes.
df = pd.read_sql("""
	SELECT
	   Id,
	   Status,
     $exNumericCol;
	FROM Subscriber;""", engine)
print(df)

Modifying Data

To insert new records into a table, create a new data frame, and define its fields accordingly. When that is done, call to_sql() on the data frame to perform the INSERT operation with the connector, as shown in the example below. You must set the "if _exists" argument to "append" to prevent Pandas from attempting building the table from scratch. To prevent Pandas from writing the data frame index as a column, set index=False.
df = pd.DataFrame({"Id": ["Jon Doe"], "Status": ["John"]})
df.to_sql("Subscriber", con=engine, if_exists="append", index=False)

CData Python Connector for Salesforce Marketing Cloud

From Matplotlib

Matplotlib contains a number of tools that can graphically model Salesforce Marketing Cloud data after being fed a data frame From Pandas.

Using PyPlot

Before any Matplotlib tool, such as pyplot, can be used, it must be imported:
from matplotlib import pyplot as plt

Once a Pandas data frame is obtained, it can be used to create a plot visualizing Salesforce Marketing Cloud data. For example, the following plot generates and displays a bar graph relating Id and AnnualRevenue values:

df.plot(kind="bar", x="Id", y=["AnnualRevenue"])
plt.show()

CData Python Connector for Salesforce Marketing Cloud

From Petl

The connector can be used to create ETL applications and pipelines for CSV data in Python using Petl.

Install Required Modules

Install the Petl modules using the pip utility.
pip install petl

Connecting

After you import the modules, including the CData Python Connector for Salesforce Marketing Cloud, you can use the connector's connect function to create a connection using a valid Salesforce Marketing Cloud connection string. If you prefer not to use a direct connection, you can use a SQLAlchemy engine.
import petl as etl
import cdata.sfmarketingcloud as mod
cnxn = mod.connect("User=myUser;Password=myPassword;")

Extract, Transform, and Load the Salesforce Marketing Cloud Data

Create a SQL query string and store the query results in a DataFrame.
sql = "SELECT	Id, Status FROM Subscriber "
table1 = etl.fromdb(cnxn,sql)

Loading Data

With the query results stored in a DataFrame, you can load your data into any supported Petl destination. The following example loads the data into a CSV file.
etl.tocsv(table1,'output.csv')

Modifying Data

Insert new rows into Salesforce Marketing Cloud tables using Petl's appenddb function.
table1 = [['Id','Status'],['Jon Doe','John']]
etl.appenddb(table1,cnxn,'Subscriber')

CData Python Connector for Salesforce Marketing Cloud

Schema Discovery

The extension supports schema discovery by using SQL queries to available System Tables.

Using SQL

The following sections describe the discovery of metadata through several System Tables:

CData Python Connector for Salesforce Marketing Cloud

Tables and Views

The connector possesses system tables that are used to discover the tables and views available in the data model. Of these system tables, "sys_tables" and "sys_views" are used to fetch information about the available tables and views respectively:

Tables


import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")
cur = conn.cursor()
cmd = "SELECT * FROM sys_tables"
cur.execute(cmd)
rs = cur.fetchall()
for row in rs:
	print(row)

Views


import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")
cur = conn.cursor()
cmd = "SELECT * FROM sys_views"
cur.execute(cmd, params)
rs = cur.fetchall()
for row in rs:
	print(row)

CData Python Connector for Salesforce Marketing Cloud

Columns

The available columns for any given table are fetched from a system table called "sys_tablecolumns". A specific table name is provided in the WHERE criteria to restrict the table from which the column information is fetched:

import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")
cur = conn.cursor()
cmd = "SELECT * FROM sys_tablecolumns WHERE TableName = 'Subscriber'"
cur.execute(cmd)
rs = cur.fetchall()
for row in rs:
	print(row)

CData Python Connector for Salesforce Marketing Cloud

Procedures

Procedures

A system table called "sys_procedures" is queried to obtain the available stored procedures that are executed:
import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")
cur = conn.cursor()
cmd = "SELECT * FROM sys_procedures"
cur.execute(cmd)
rs = cur.fetchall()
for row in rs:
	print(row)

Parameters

The input parameters of any stored procedure are similarly obtained from the "sys_procedureparameters" system table:
import cdata.sfmarketingcloud as mod
conn = mod.connect("User=myUser;Password=myPassword;")
cur = conn.cursor()
cmd = "SELECT * FROM sys_procedureparameters WHERE ProcedureName = 'SelectEntries'"
cur.execute(cmd)
rs = cur.fetchall()
for row in rs:
	print(row)

CData Python Connector for Salesforce Marketing Cloud

Advanced Features

This section details a selection of advanced features of the Salesforce Marketing Cloud connector.

User Defined Views

The connector supports the use of user defined views, virtual tables whose contents are decided by a pre-configured user defined query. These views are useful when you cannot directly control queries being issued to the drivers. For an overview of creating and configuring custom views, see User Defined Views .

SSL Configuration

Use SSL Configuration to adjust how connector handles TLS/SSL certificate negotiations. You can choose from various certificate formats;. For further information, see the SSLServerCert property under "Connection String Options" .

Firewall and Proxy

Configure the connector for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.

Caching Data

Caching Data enables faster access to data and reduces the number of API calls, improving performance. The connector supports a simple caching model where multiple connections can also share the cache over time. When configuring the cache connection, you can specify automatic or explicit data caching.

Query Processing

The connector offloads as much of the SELECT statement processing as possible to Salesforce Marketing Cloud and then processes the rest of the query in memory (client-side).

For further information, see Query Processing.

Logging

For an overview of configuration settings that can be used to refine CData logging, see Logging. Only two connection properties are required for basic logging, but there are numerous features that support more refined logging, which enables you to use the LogModules connection property to specify subsets of information to be logged.

Exception Handling

For an overview of how exceptions are reported and the components of an exception, see Exception Handling.

CData Python Connector for Salesforce Marketing Cloud

User Defined Views

The CData Python Connector for Salesforce Marketing Cloud supports the use of user defined views: user-defined virtual tables whose contents are decided by a preconfigured query. User defined views are useful in situations where you cannot directly control the query being issued to the driver; for example, when using the driver from a tool.

Use a user defined view to define predicates that are always applied. If you specify additional predicates in the query to the view, they are combined with the query already defined as part of the view.

There are two ways to create user defined views:

  • Create a JSON-formatted configuration file defining the views you want.
  • DDL statements.

Defining Views Using a Configuration File

User defined views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The connector automatically detects the views specified in this file.

You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the connector.

This user defined view configuration file is formatted so that each root element defines the name of a view, and includes a child element, called query, which contains the custom SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Subscriber WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"

Defining Views Using DDL Statements

The connector is also capable of creating and altering the schema via DDL Statements such as CREATE LOCAL VIEW, ALTER LOCAL VIEW, and DROP LOCAL VIEW.

Create a View

To create a new view using DDL statements, provide the view name and query as follows:

CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;

If no JSON file exists, the above code creates one. The view is then created in the JSON configuration file and is now discoverable. The JSON file location is specified by the UserDefinedViews connection property.

Alter a View

To alter an existing view, provide the name of an existing view alongside the new query you would like to use instead:

ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';

The view is then updated in the JSON configuration file.

Drop a View

To drop an existing view, provide the name of an existing schema alongside the new query you would like to use instead.

DROP LOCAL VIEW [MyViewName]

This removes the view from the JSON configuration file. It can no longer be queried.

Schema for User Defined Views

In order to avoid a view's name clashing with an actual entity in the data model, user defined views are exposed in the UserViews schema by default. To change the name of the schema used for UserViews, reset the UserViewsSchemaName property.

Working with User Defined Views

For example, a SQL statement with a user defined view called UserViews.RCustomers only lists customers in Raleigh:
SELECT * FROM Customers WHERE City = 'Raleigh';
An example of a query to the driver:
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';
Resulting in the effective query to the source:
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';
That is a very simple example of a query to a user defined view that is effectively a combination of the view query and the view definition. It is possible to compose these queries in much more complex patterns. All SQL operations are allowed in both queries and are combined when appropriate.

CData Python Connector for Salesforce Marketing Cloud

SSL Configuration

Customizing the SSL Configuration

By default, the connector attempts to negotiate TLS with the server. The server certificate is validated against the default system trusted certificate store. You can override how the certificate gets validated using the SSLServerCert connection property.

To specify another certificate, see the SSLServerCert connection property.

CData Python Connector for Salesforce Marketing Cloud

Firewall and Proxy

Connecting Through a Firewall or Proxy

HTTP Proxies

Note: The connector uses the system proxy settings by default, without further configuration needed. If you want to connect to other proxies, set ProxyAutoDetect to False and read further.

To authenticate to an HTTP proxy, set the following:

  • ProxyServer: the hostname or IP address of the proxy server that you want to route HTTP traffic through.
  • ProxyPort: the TCP port that the proxy server is running on.
  • ProxyAuthScheme: the authentication method the connector uses when authenticating to the proxy server.
  • ProxyUser: the username of a user account registered with the proxy server.
  • ProxyPassword: the password associated with the ProxyUser.

Other Proxies

Set the following properties:

CData Python Connector for Salesforce Marketing Cloud

Caching Data

Caching Data

Caching data provides several benefits, including faster access to data and reducing the number of API calls, which improve performance. The connector supports a simple caching model where multiple connections can also share the cache over time. You can enable and configure caching features by setting the necessary connection properties.

Contents

The sections in this chapter detail the connector's caching functionality and link to the corresponding connection properties, as well as SQL statements.

Configuring the Cache Connection

Configuring the Cache Connection describes the properties that you can set when configuring the cache database.

Caching Metadata

Caching Metadata describes the CacheMetadata property. This property determines whether or not to cache the table metadata to a file store.

Automatically Caching Data

Automatically Caching Data describes how the connector automatically refreshes the cache when the AutoCache property is set.

Explicitly Caching Data

Explicitly Caching Data describes how you can decide what data is stored in the cache and when it is updated.

Data Type Mapping

Data Type Mapping shows the mappings between the data types configured in the schema and the data types in the database.

CData Python Connector for Salesforce Marketing Cloud

Configuring the Cache Connection

Configuring the Caching Database

This section describes the properties for caching data to the persistent store of your choice.

CacheLocation

The CacheLocation property species the path to a file-system-based database. When caching is enabled, a file-system-based database is used by default. If CacheLocation is not specified, this database is stored at the path in Location. If neither of these connection properties are specified, the connector uses a platform-dependent default location.

CacheConnection

The CacheConnection property specifies a database driver and the connection string to the caching database.

CacheDriver and CacheProvider

Both the CacheDriver and CacheProvider properties are supported. Each specifies a database driver and the connection string to the caching database. CacheDriver is designed for Linux and MacOS; CacheProvider is Windows-based.

CData Python Connector for Salesforce Marketing Cloud

Caching Metadata

This section describes how to enable caching metadata and how to update the metadata cache.

Before being able to query data, the connector requires relevant metadata to be retrieved. By default, metadata is cached in memory and shared across connections. But if you want to persist across processes, or if metadata requests are expensive, the solution is to cache the metadata to disk.

Enable Caching Metadata

To enable caching of metadata, set CacheMetadata = true and see Configuring the Cache Connection for instructions on how to configure your connection string. The connector caches the metadata the first time it is needed and uses the metadata cache for subsequent requests.

Update the Metadata Cache

Because metadata is cached, changes to metadata on the live source, for example, adding or removing a column or attribute, are not automatically reflected in the metadata cache. To get updates to the live metadata, you need to delete or drop the cached data.

CData Python Connector for Salesforce Marketing Cloud

Automatically Caching Data

Automatically caching data is useful when you do not want to rebuild the cache for each query. When you query data for the first time, the connector automatically initializes and builds a cache in the background. When AutoCache = true, the connector uses the cache for subsequent query executions, resulting in faster response times.

If replication is enabled, the data is generated once and then copied to local and cloud data stores. With incremental updates, the connector achieves a performance advantage over dropping the cached tables and retrieving the entire table again on every refresh. With iterative updates, the connector only performs the query from the last time that the date was refreshed. If replication is not enabled, updates to the cache require downloading the entire data set.

Configuring Automatic Caching

To automatically update the cache and return results from the local cache, set the following connection string properties:

  • AutoCache: This property automatically updates the cache when the value is set to true.
  • CacheTolerance: This property ensures that the data retrieved from the database is the most current version. The default value is 600 seconds (10 minutes). The connector checks with the data source for newer records after the tolerance interval has expired. Otherwise, it returns the data directly from the cache.

Caching the Subscriber Table

The following example caches the Subscriber table in the file specified by the CacheLocation property of the connection string.

SELECT Id, Status FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'

Common Use Case

A common use for automatically caching data is to improve driver performance when making repeated requests to a live data source, such as building a report or creating a visualization. With auto caching enabled, repeated requests to the same data may be executed in a short period of time, but within an allowable tolerance (CacheTolerance) of what is considered "live" data.

CData Python Connector for Salesforce Marketing Cloud

Explicitly Caching Data

With explicit caching (AutoCache = false), you decide exactly what data is cached and when to query the cache instead of the live data. Explicit caching gives you full control over the cache contents by using CACHE Statements. This section describes some strategies to use the caching features offered by the connector.

Creating the Cache

To load data in the cache, issue the following statement.

CACHE SELECT * FROM tableName WHERE ...

Once the statement is issued, any matching data in tableName is loaded into the corresponding table.

Updating the Cache

This section describes two ways to update the cache.

Updating with the SELECT Statement

The following example shows a statement that can update modified rows and add missing rows in the cached table. However, this statement does not delete extra rows that are already in the cache. This statement only merges the new rows or updates the existing rows.

CACHE SELECT * FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'

Updating with the TRUNCATE Statement

The following example shows a statement that can update modified rows and add missing rows in the cached table. This statement can also delete rows in the cache table that are not present in the live data source.

  CACHE WITH TRUNCATE SELECT * FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'
  

Query the Data in Online or Offline Mode

This section describes how to query the data in online or offline mode.

Online: Select Cached Tables

You can use the tableName#CACHE syntax to explicitly execute queries to the cache while still online, as shown in the following example.

SELECT * FROM Subscriber#CACHE

Offline: Select Cached Tables

With Offline = true, SELECT statements always execute against the local cache database, regardless of whether you explicitly specify the cached table or not. Modification of the cache is disabled in Offline mode to prevent accidentally updating only the cached data. Executing a DELETE/UPDATE/INSERT statement while in Offline mode results in an exception.

The following example selects from the local cache but not the live data source because Offline = true.

SELECT * FROM Subscriber WHERE EmailAddress='john.doe@example.com' ORDER BY Status ASC

Delete Data from the Cache

You can delete data from the cache by building a direct connection to the database. Note that the connector does not support manually deleting data from the cache.

Common Use Case

A common use for caching is to have an application always query the cached data and only update the cache at set intervals, such as once every day or every two hours. There are two ways in which this can be implemented:

  • AutoCache = false and Offline = false. All queries issued by the application explicitly reference the tableName#CACHE table. When the cache needs to be updated, the application executes a tableName#CACHE ... statement to bring the cached data up to date.
  • Offline = true. Caching is transparent to the application. All queries are executed against the table as normal, so most application code does not need to be aware that caching is done. To update the cached data, simply create a separate connection with Offline = false and execute a tableName#CACHE ... statement.

CData Python Connector for Salesforce Marketing Cloud

Data Type Mapping

The connector maps types from the data source to the corresponding data type available in the chosen cache database. The following table shows the mappings between the data types configured in the schema and the data types in the database. Some schema types have synonyms which are all listed in the Schema column.

Data Type Mapping

Note: String columns can map to different data types depending on their length.

Schema .NET JDBC SQL Server Derby MySQL Oracle SQLite Access
int, integer, int32 Int32 int int INTEGER INT NUMBER integer LONG
smallint, short, int16 Int16 short smallint SMALLINT SMALLINT NUMBER integer SHORT
double, float, real Double double float DOUBLE DOUBLE NUMBER double DOUBLE
date DateTime java.sql.Date date DATE DATE DATE date DATETIME
datetime, timestamp DateTime java.sql.Date datetime TIMESTAMP DATETIME TIMESTAMP datetime DATETIME
time, timespan TimeSpan java.sql.Time time TIME TIME TIMESTAMP datetime DATETIME
string, varchar String java.lang.String If length > 4000: nvarchar(max), Otherwise: nvarchar(length)If length > 32672: LONG VARCHAR, Otherwise VARCHAR(length)If length > 255: LONGTEXT, Otherwise: VARCHAR(length)If length > 4000: CLOB, Otherwise: VARCHAR2(length)nvarchar(length)If length > 255: LONGTEXT, Otherwise: VARCHAR(length)
long, int64, bigint Int64 long bigint BIGINT BIGINT NUMBER bigint LONG
boolean, bool Boolean boolean tinyint SMALLINT BIT NUMBER tinyint BIT
decimal, numeric Decimal java.math.BigDecimal decimal DECIMAL DECIMAL DECIMAL decimal CURRENCY
uuid Guid java.util.UUID nvarchar(length) VARCHAR(length)VARCHAR(length) VARCHAR2(length)nvarchar(length) VARCHAR(length)
binary, varbinary, longvarbinary byte[] byte[] binary(1000) or varbinary(max) after SQL Server 2000, image otherwise BLOB LONGBLOB BLOB BLOB LONGBINARY

CData Python Connector for Salesforce Marketing Cloud

Query Processing

Query Processing

CData has a client-side SQL engine built into the connector library. This enables support for the full capabilities that SQL-92 offers, including filters, aggregations, functions, etc.

For sources that do not support SQL-92, the connector offloads as much of SQL statement processing as possible to Salesforce Marketing Cloud and then processes the rest of the query in memory (client-side). This results in optimal performance.

For data sources with limited query capabilities, the connector handles transformations of the SQL query to make it simpler for the connector. The goal is to make smart decisions based on the query capabilities of the data source to push down as much of the computation as possible. The Salesforce Marketing Cloud Query Evaluation component examines SQL queries and returns information indicating what parts of the query the connector is not capable of executing natively.

The Salesforce Marketing Cloud Query Slicer component is used in more specific cases to separate a single query into multiple independent queries. The client-side Query Engine makes decisions about simplifying queries, breaking queries into multiple queries, and pushing down or computing aggregations on the client-side while minimizing the size of the result set.

There's a significant trade-off in evaluating queries, even partially, client-side. There are always queries that are impossible to execute efficiently in this model, and some can be particularly expensive to compute in this manner. CData always pushes down as much of the query as is feasible for the data source to generate the most efficient query possible and provide the most flexible query capabilities.

More Information

For a full discussion of how CData handles query processing, see CData Architecture: Query Execution.

CData Python Connector for Salesforce Marketing Cloud

Logging

Logging

Capturing connector logging can be very helpful when diagnosing error messages or other unexpected behavior.

Basic Logging

To begin capturing connector logging, set these properties:

  • Logfile: A filepath that designates the name and location of the log file.
  • Verbosity: A numerical value (1-5) that determines the amount of detail in the log. See the page in the Connection Properties section for an explanation of the five levels.
  • MaxLogFileSize: When the limit is hit, a new log is created in the same folder with the date and time appended to the end. The default limit is 100 MB. Values lower than 100 kB will use 100 kB as the value instead.
  • MaxLogFileCount: A string specifying the maximum file count of log files. When the limit is hit, a new log is created in the same folder with the date and time appended to the end and the oldest log file will be deleted. Minimum supported value is 2. A value of 0 or a negative value indicates no limit on the count.

Once these properties are set, the connector populates the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it is created.

Log Verbosity

The verbosity level determines the amount of detail that the connector reports to the Logfile. Supported Verbosity levels range from 1 to 5.

The following list describes each level:

1Setting Verbosity to 1 logs the query, the number of rows returned by it, the start of execution and the time taken, and any errors.
2Setting Verbosity to 2 logs everything included in Verbosity 1, cache queries, and additional information about the request.
3Setting Verbosity to 3 also logs HTTP headers, as well as the body of the request and the response.
4Setting Verbosity to 4 also logs transport-level communication with the data source. This includes SSL negotiation.
5Setting Verbosity to 5 also logs communication with the data source and additional details that may be helpful in troubleshooting problems. This includes interface commands.

For normal operations, Verbosity should not be set to greater than 1. At higher verbosities you can log substantial amounts of data, which can delay execution times.

To refine the logged content further by showing/hiding specific categories of information, see LogModules.

Sensitive Data

Verbosity levels of 3 and higher may capture information that you do not want shared outside of your organization. The following lists information of concern for each level:

  • Verbosity 3: The full body of the request and the response, which includes all the data returned by the connector
  • Verbosity 4: SSL certificates
  • Verbosity 5: Any extra transfer data not included at Verbosity 3, such as non human-readable binary transfer data

Note: Although we mask sensitive values, such as passwords, in the connection string and any request in the log, it is always best practice to review the logs for any sensitive information before sharing outside your organization.

Advanced Logging

You may want to refine the exact information that is recorded to the log file. This can be accomplished using the LogModules property. This property allows you to filter the logging using a semicolon-separated list of logging modules.

Example property value:

LogModules=INFO;EXEC;SSL;SQL;META;

Note that the logfile filtering triggered by the Verbosity connection property takes precedence over the filtering imposed by this connection property. This means that operations of a higher verbosity level than the level specified in the Verbosity connection property are not printed in the logfile, even if they belong to one of the modules specified in this connection property.

The available modules and submodules are:

Module Name Module Description Submodules
INFO General Information. Includes the connection string, product version (build number), and initial connection messages.
  • Connec – Information related to creating or destroying connections.
  • Messag – Generic label for messages pertaining to connections, the connection string, and product version. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
EXEC Query Execution. Includes execution messages for user-written SQL queries, parsed SQL queries, and normalized SQL queries. Success/failure messages for queries and query pages appear here as well.
  • Messag – Messages pertaining to query execution. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • Normlz – Query normalization steps. Query normalization is when the product takes the user-submitted query and rewrites the query to get the same results with optimal performance.
  • Origin – This label applies to any messages recording a user's original query (the exact, unaltered, non-normalized query executed by the user).
  • Page – Messages related to query paging.
  • Parsed – Query parsing steps. Parsing is the process of converting the user-submitted query into a standardized format for easier processing.
HTTP HTTP protocol messages. Includes HTTP requests/responses (including POST messages), as well as Kerberos related messages.
  • KERB – HTTP requests related to Kerberos.
  • Messag – Messages pertaining to HTTP protocols. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • Unpack – This label applies to messages about zipped data being returned from the service API and unpacked by the product.
  • Res – Messages containing HTTP responses.
  • Req – Messages containing HTTP requests.
WSDL Messages pertaining to the generation of WSDL/XSD files.
SSL SSL certificate messages.
  • Certif – Messages pertaining to SSL certificates.
AUTH Authentication related failure/success messages.
  • Messag – Messages pertaining to authentication. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • OAuth – Messages related to OAuth authentication.
  • Krbros – Kerberos-related authentication messages.
SQL Includes SQL transactions, SQL bulk transfer messages, and SQL result set messages.
  • Bulk – Messages pertaining to bulk query execution.
  • Cache – Messages related to reading row data from and writing row data to the product's cache for better performance.
  • Messag – Messages pertaining to SQL transactions. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • ResSet – Query resultsets.
  • Transc – Messages related to handling transactions, including information about the number of jobs executed and backup table handling.
META Metadata cache and schema messages.
  • Cache – Messages related to reading from and modifying column and table definitions in the product's cache for better performance.
  • Schema – Messages related to retrieving metadata from or modifying the service schema.
  • MemSto – Messages related to writing to or reading from in-memory metadata cache.
  • Storag – Messages relating to storing metadata on disk or in an external data store, rather than in memory.
FUNC Information related to executing SQL functions.
  • Errmsg – Error messages related to executing SQL functions.
TCP Incoming and outgoing raw bytes on TCP transport layer messages.
  • Send – Raw data sent via the TCP protocol.
  • Receiv – Raw data received via the TCP protocol.
FTP Messages pertaining to the File Transfer Protocol.
  • Info – Status messages related to communication in the FTP protocol.
  • Client – Messages related to actions taken by the FTP client (the product) during FTP communication.
  • Server – Messages related to actions taken by the FTP server during FTP communication.
SFTP Messages pertaining to the Secure File Transfer Protocol.
  • Info – Status messages related to communication in the SFTP protocol.
  • To_Server – Messages related to actions taken by the SFTP client (the product) during SFTP communication.
  • From_Server – Messages related to actions taken by the SFTP server during SFTP communication.
POP Messages pertaining to data transferred via the Post Office Protocol.
  • Client – Messages related to actions taken by the POP client (the product) during POP communication.
  • Server – Messages related to actions taken by the POP server during POP communication.
  • Status – Status messages related to communication in the POP protocol.
SMTP Messages pertaining to data transferred via the Simple Mail Transfer Protocol.
  • Client – Messages related to actions taken by the SMTP client (the product) during SMTP communication.
  • Server – Messages related to actions taken by the SMTP server during SMTP communication.
  • Status – Status messages related to communication in the SMTP protocol.
CORE Messages relating to various internal product operations not covered by other modules.
DEMN Messages related to SQL remoting.
CLJB Messages about bulk data uploads (cloud job).
  • Commit – Submissions for bulk data uploads.
SRCE Miscellaneous messages produced by the product that don't belong in any other module.
TRANCE Advanced messages concerning low-level product operations.

CData Python Connector for Salesforce Marketing Cloud

Exception Handling

Exception Handling

Exceptions can be surfaced from either the API or the CData Python Connector for Salesforce Marketing Cloud. Each exception will have an error code, an error message, and a SQL state.

Error Codes

The error code classifies the type of error.

0 NONE Used for unclassified errors and internally handled errors. This code also covers data source-specific errors that do not fit in any specific category.
65537 TCP_UNKNOWN_HOST Unable to resolve a hostname (DNS failure).
65538 TCP_CONNECTION_REFUSED Could not connect to the remote port.
65539 TCP_AUTH_FAILED Login failed when using a binary authentication protocol. Use this for auth errors when the protocol is not HTTP (LDAP, SASL, Kerberos, ...).
65540 TCP_TIMEOUT Did not receive a response after sending a request to the server.
65541 TCP_PROTOCOL For wire protocol drivers. Either the server sent a bad packet that we are unable to process, or we cannot construct a packet to send.
131073 TLS_SERVER_UNTRUSTED Could not verify SSL server certificate.
131074 TLS_CLIENT_UNTRUSTED Server did not accept the client certificate we sent.
196609 OAUTH_DECRYPT_FAILED OAuthEncryptKey did not decrypt the OAuthSettings file.
196610 OAUTH_MISSING_CLIENT_INFO OAuthClientId / OAuthClientSecret / OAuthJWTCert is missing.
196611 OAUTH_MISSING_PROP General OAuth property missing. OAUTH_MISSING_CLIENT_INFO is used for missing client ID/secret and JWT cert.
196612 OAUTH_NO_ACCESS_TOKEN Unable to retrieve access token. Only use this when getting a token in GetOAuthAccessToken / RefreshOAuthAccessToken.
196613 OAUTH_TOKEN_EXPIRED The access token expired. Normally used with a RefreshOAuth/OAuthException behavior.
196614 OAUTH_INVALID_PROP OAuth property has an invalid value. OAUTH_MISSING_CLIENT_INFO / OAUTH_MISSING_PROP is used if the value is not set.
262145 HTTP_REQUEST_TIMEOUT Did not receive a response from the HTTP server.
262146 HTTP_CLIENT_ERROR Generic HTTP 4xx error. Only use for 4xx errors not covered by other codes.
262147 HTTP_AUTH_FAILED HTTP 401 error.
262148 HTTP_LIMIT_EXCEEDED HTTP 429 error.
262149 HTTP_SERVER_ERROR HTTP 5xx error.
262150 HTTP_NOT_FOUND_ERROR HTTP 404 error.
327681 CORE_TIMEOUT General timeout. Not related to a specific network request.
327682 CORE_OP_NOT_ALLOWED Operation blocked by provider permissions.
327683 CORE_CONNECTION_CONFIG Connection configuration is not valid.
327684 CORE_SERIALIZE Failed to encode data into a specific format (XML, JSON, CSV, ...).
327685 CORE_DESERIALIZE Failed to decode data from a specific format (XML, JSON, CSV, ...).
393217 SQL_SYNTAX_ERROR Unable to parse a SQL query.
393218 SQL_MISSING_COLUMNS Query did not include required columns.
393219 SQL_MISSING_PARAMS Stored procedure call did not include required parameters.
393220 SQL_QUERY_NOT_SUPPORTED A part of the query is not allowed in the current context.
458753 SSH_SERVER_UNTRUSTED Could not verify SSH server.
524289 STORAGE_LIST_EXCEPTION Issue listing storage resources.
524290 STORAGE_RESOURCE_NOT_FOUND Issue finding storage resources.
524291 STORAGE_ROOT_RESOURCE_NOT_FOUND The root resource (bucket/share/drive) was not found; cannot create it in flat file drivers.
524292 STORAGE_RESOURCE_NOT_A_DIRECTORY Storage resource is not a directory.
524293 STORAGE_RESOURCE_NOT_A_FILE Storage resource is not a file.
524294 STORAGE_PERMISSIONS_DENIED Storage permissions denied.

SQL State

The SQL state is used when throwing generic provider errors to the wrapper and indicates the success or failure of a call.

Some of the common SQL states are listed below:

07007 REQUIRED_CLAUSE Class Code 07: Dynamic SQL Error.
08001 OPEN_CONNECTION Class Code 08: Connection Exception. The connection was unable to be established to the application server or other server.
08004 REJECT_CONNECTION The application server rejected establishment of the connection.
42501 PRIVILEGE_IDENTIFIED_OBJECT Class Code 42: Syntax Error or Access Rule Violation. The authorization ID does not have the privilege to perform the specified operation on the identified object.
42506 AUTH_FAILED Owner authorization failure occurred.
42601 SQL_SYNTAX A character, token, or clause is invalid or missing.

Error Message

The error message provides more detailed reasoning about why the error occurred. It provides an explanation of the issue, and may include steps on how to resolve it.

CData Python Connector for Salesforce Marketing Cloud

SQL Compliance

The CData Python Connector for Salesforce Marketing Cloud supports several operations on data, including querying, deleting, modifying, and inserting.

SELECT Statements

See SELECT Statements for a syntax reference and examples.

See Data Model for information on the capabilities of the Salesforce Marketing Cloud API.

INSERT Statements

See INSERT Statements for a syntax reference and examples, as well as retrieving the new records' Ids.

UPDATE Statements

The primary key Id is required to update a record. See UPDATE Statements for a syntax reference and examples.

UPSERT Statements

An UPSERT updates a record if it exists and inserts the record if it does not. See UPSERT Statements for a syntax reference and examples.

DELETE Statements

The primary key Id is required to delete a record. See DELETE Statements for a syntax reference and examples.

CACHE Statements

CACHE statements allow granular control over the connector's caching functionality. For a syntax reference and examples, see CACHE Statements.

For more information on the caching feature, see Caching Data.

Names and Quoting

  • Table and column names are considered identifier names; as such, they are restricted to the following characters: [A-Z, a-z, 0-9, _:@].
  • To use a table or column name with characters not listed above, the name must be quoted using square brackets ([name]) in any SQL statement.
  • Parameter names can optionally start with the @ symbol (e.g., @p1 or @CustomerName) and cannot be quoted.
  • Strings must be quoted using single quotes (e.g., 'John Doe').

CData Python Connector for Salesforce Marketing Cloud

SQL Functions

The connector provides functions that are similar to those that are available with most standard databases. These functions are implemented in the CData provider engine and thus are available across all data sources with the same consistent API. Three categories of functions are available: string, date, and math.

The connector interprets all SQL function inputs as either strings or column identifiers, so you need to escape all literals as strings, with single quotes. For example, contrast the SQL Server syntax and connector syntax for the DATENAME function:

  • SQL Server:
    SELECT DATENAME(yy,GETDATE())
  • connector:
    SELECT DATENAME('yy',GETDATE())

String Functions

These functions perform string manipulations and return a string value. See STRING Functions for more details.

Date Functions

These functions perform date and date time manipulations. See DATE Functions for more details.

Math Functions

These functions provide mathematical operations. See MATH Functions for more details.

CData Python Connector for Salesforce Marketing Cloud

STRING Functions

ASCII(character_expression)

Returns the ASCII code value of the left-most character of the character expression.

  • character_expression: The character expression.

                      SELECT ASCII('0');
                      --  Result: 48
                    

BASE64_ENCODE(input_binary)

Returns the Base64-encoded string form of a binary input.

  • input_binary: The binary value to encode.

                        SELECT BASE64_ENCODE(BinaryData);
                    -- Result: 'QmFzZTY0RW5jb2RlZA=='
                    

BASE64_DECODE(input_string)

Returns the binary result of decoding a Base64-encoded string.

  • input_string: The Base64-encoded string.

                        SELECT BASE64_DECODE('QmFzZTY0RW5jb2RlZA==');
                    -- Result: (binary output)
                    

CHAR(integer_expression)

Converts the integer ASCII code to the corresponding character.

  • integer_expression: The integer from 0 through 255.

                      SELECT CHAR(48);
                      -- Result: '0'
                    

CHARINDEX(expressionToFind ,expressionToSearch [,start_location ])

Returns the starting position of the specified expression in the character string.

  • expressionToFind: The character expression to find.
  • expressionToSearch: The character expression, typically a column, to search.
  • start_location: An optional character position to start searching for expressionToFind in expressionToSearch.

                      SELECT CHARINDEX('456', '0123456');
                      -- Result: 4

                      SELECT CHARINDEX('456', '0123456', 5);
                      -- Result: -1
                    

CHAR_LENGTH(character_expression),

Returns the number of UTF-8 characters present in the expression.

  • character_expression: The set of characters to be evaluated for length.

				 SELECT CHAR_LENGTH('sample text') FROM Account LIMIT 1
				 -- Result: 11			
				

CONCAT(string_value1, string_value2, ..., string_valueN)

Returns the string that is the concatenation of two or more string values.

  • string_value1: The first string to be concatenated.
  • string_value2: The second string to be concatenated.
  • string_valueN: (optional) Any additional strings to be concatenated.

                      SELECT CONCAT('Hello, ', 'world!');
                      -- Result: 'Hello, world!'
                    

CONTAINS(expressionToSearch, expressionToFind)

Returns 1 if expressionToFind is found within expressionToSearch; otherwise, 0.

  • expressionToSearch: The character expression, typically a column, to search.
  • expressionToFind: The character expression to find.

                      SELECT CONTAINS('0123456', '456');
                      -- Result: 1

                      SELECT CONTAINS('0123456', 'Not a number');
                      -- Result: 0
                    

ENDSWITH(character_expression, character_suffix)

Returns 1 if character_expression ends with character_suffix; otherwise, 0.

  • character_expression: The character expression.
  • character_suffix: The character suffix to search for.

                      SELECT ENDSWITH('0123456', '456');
                      -- Result: 1

                      SELECT ENDSWITH('0123456', '012');
                      -- Result: 0
                    

FILESIZE(uri)

Returns the number of bytes present in the file at the specified file path.

  • uri: The path of the file from which to read the size.

				SELECT FILESIZE('C:/Users/User1/Desktop/myfile.txt');
				-- Result: 23684
				

FORMAT(value [, parseFormat], format )

Returns the value formatted with the specified format.

  • value: The string to format.
  • format: The string specifying the output syntax of the date or numeric format.
  • parseFormat: The string specifying the input syntax of the date value. Not applicable to numeric types.

                      SELECT FORMAT(12.34, '#');
                      -- Result: 12

                      SELECT FORMAT(12.34, '#.###');
                      -- Result: 12.34

                      SELECT FORMAT(1234, '0.000E0');
                      -- Result: 1.234E3
                      
                      SELECT FORMAT('2019/01/01', 'yyyy-MM-dd');
                      -- Result: 2019-01-01
                      
                      SELECT FORMAT('20190101', 'yyyyMMdd', 'yyyy-MM-dd');
                      -- Result: '2019-01-01'
                    

HASHBYTES(algorithm, value)

Returns the hash of the input value as a byte array using the given algorithm. The supported algorithms are MD5, SHA1, SHA2_256, SHA2_512, SHA3_224, SHA3_256, SHA3_384, and SHA3_512.

  • algorithm: The algorithm to use for hashing. Must be one of MD5, SHA1, SHA2_256, SHA2_512, SHA3_224, SHA3_256, SHA3_384, or SHA3_512.
  • value: The value to hash. Must be either a string or byte array.

                      SELECT HASHBYTES('MD5', 'Test');
                      -- Result (byte array): 0x0CBC6611F5540BD0809A388DC95A615B
                    

INDEXOF(expressionToSearch, expressionToFind [,start_location ])

Returns the starting position of the specified expression in the character string.

  • expressionToSearch: The character expression, typically a column, to search.
  • expressionToFind: The character expression to find.
  • start_location: An optional character position to start searching for expressionToFind in expressionToSearch.

                      SELECT INDEXOF('0123456', '456');
                      -- Result: 4

                      SELECT INDEXOF('0123456', '456', 5);
                      -- Result: -1
                    

ISALPHABETIC(character_expression)

Returns 1 if the character expression consists only of alphabetic characters; otherwise, 0.

  • character_expression: The string expression to evaluate.

                      SELECT ISALPHABETIC('Hello');
                      -- Result: 1

                      SELECT ISALPHABETIC('Hello123');
                      -- Result: 0

                      SELECT ISALPHABETIC('Hello!');
                      -- Result: 0
                    

ISALPHANUMERIC(character_expression)

Returns 1 if the character expression consists only of alphabetic and numeric characters; otherwise, 0.

  • character_expression: The string expression to evaluate.

                      SELECT ISALPHANUMERIC('Hello123');
                      -- Result: 1

                      SELECT ISALPHANUMERIC('123');
                      -- Result: 1

                      SELECT ISALPHANUMERIC('Hello.123');
                      -- Result: 0
                    

ISNUMERIC(character_expression)

Returns 1 if the character expression consists only of numeric digits and up to one decimal point; otherwise, 0.

  • character_expression: The string expression to evaluate.

                      SELECT ISNUMERIC('123');
                      -- Result: 1

                      SELECT ISNUMERIC('123.45');
                      -- Result: 1

                      SELECT ISNUMERIC('123.45.67');
                      -- Result: 0

                      SELECT ISNUMERIC('12a3');
                      -- Result: 0
                    

JSON_EXTRACT(json, jsonpath)

Selects any value in a JSON array or object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to extract.
  • jsonpath: The XPath used to select the nodes. The JSONPath must be a string constant. The values of the nodes selected will be returned in a token-separated list.

                      SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test');
                      -- Result: '{"data":1}'

                      SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test.data');
                      -- Result: 1

                      SELECT JSON_EXTRACT('{"test": {"data": [1, 2, 3]}}', '$.test.data[1]');
                      -- Result: 2
                    

LEFT ( character_expression , integer_expression )

Returns the specified number of characters counting from the left of the specified string.

  • character_expression: The character expression.
  • integer_expression: The positive integer that specifies how many characters will be returned counting from the left of character_expression.

                      SELECT LEFT('1234567890', 3);
                      -- Result: '123'
                    

LEN(string_expression)

Returns the number of characters of the specified string expression.

  • string_expression: The string expression.

                      SELECT LEN('12345');
                      -- Result: 5
                    

LOCATE(substring,string)

Returns an integer representing how many characters into the string the substring appears.

  • substring: The substring to find inside larger string.
  • string: The larger string that is searched for the substring.
  • start locations: An optional integer that sets the character position (offset) from which to start searching.

				SELECT LOCATE('sample','XXXXXsampleXXXXX');
				-- Result: 6

                SELECT LOCATE('sample', 'XXXXXsampleXXXXX', 7)
                -- Result: 0
				

LOWER ( character_expression )

Returns the character expression with the uppercase character data converted to lowercase.

  • character_expression: The character expression.

                      SELECT LOWER('MIXED case');
                      -- Result: 'mixed case'
                    

LTRIM(character_expression)

Returns the character expression with leading blanks removed.

  • character_expression: The character expression.

                      SELECT LTRIM('     trimmed');
                      -- Result: 'trimmed'
                    

MASK(string_expression, mask_character [, start_index [, end_index ]])

Replaces the characters between start_index and end_index with the mask_character within the string.

  • string_expression: The string expression to be searched.
  • mask_character: The character to mask with.
  • start_index: The optional number of characters to leave unmasked at beginning of string. Defaults to 0.
  • end_index: The optional number of characters to leave unmasked at end of string. Defaults to 0.

                        SELECT MASK('1234567890','*',);
                        -- Result: '**********'
                        SELECT MASK('1234567890','*', 4);
                        -- Result: '1234******'
                        SELECT MASK('1234567890','*', 4, 2);
                        -- Result: '1234****90'  
                    

NCHAR(integer_expression)

Returns the Unicode character with the specified integer code as defined by the Unicode standard.

  • integer_expression: The integer from 0 through 65535 (0 through xFFFF).

OCTET_LENGTH(character_expression),

Returns the number of bytes present in the expression.

  • character_expression: The set of characters to be be evaluated.

				 SELECT OCTET_LENGTH('text') FROM Account LIMIT 1
				 -- Result: 4
				

PATINDEX(pattern, expression)

Returns the starting position of the first occurrence of the pattern in the expression. Returns 0 if the pattern is not found.

  • pattern: The character expression that contains the sequence to be found. The wild-card character % can be used only at the start or end of the expression.
  • expression: The expression, typically a column, to search for the pattern.

                      SELECT PATINDEX('123%', '1234567890');
                      -- Result: 1

                      SELECT PATINDEX('%890', '1234567890');
                      -- Result: 8

                      SELECT PATINDEX('%456%', '1234567890');
                      -- Result: 4
                    

POSITION(expressionToFind IN expressionToSearch)

Returns the starting position of the specified expression in the character string.

  • expressionToFind: The character expression to find.
  • expressionToSearch: The character expression, typically a column, to search.

                      SELECT POSITION('456' IN '123456');
                      -- Result: 4

                      SELECT POSITION('x' IN '123456');
                      -- Result: 0
                    

QUOTENAME(character_string [, quote_character])

Returns a valid SQL Server-delimited identifier by adding the necessary delimiters to the specified Unicode string.

  • character_string: The string of Unicode character data. The string is limited to 128 characters. Inputs greater than 128 characters return null.
  • quote_character: An optional single character to be used as the delimiter. These include:
    • a single quotation mark (')
    • a left or right bracket ([])
    • a double quotation mark (")
    • a left or right parenthesis ( () )
    • a greater or less than sign (><)
    • a left or right brace ({})
    • a backtick (`)

    If quote_character is not specified brackets are used. If an unacceptable character is supplied, it returns NULL.


                      SELECT QUOTENAME('table_name');
                      -- Result: '[table_name]'

                      SELECT QUOTENAME('table_name', '"');
                      -- Result: '"table_name"'

                      SELECT QUOTENAME('table_name', '[');
                      -- Result: '[table_name]'
                    

REGEXP_REPLACE(expr, pattern [, replacement [, position [, occurrence [, match_type]]]])

Replaces occurrences of a regular expression pattern in the input string with a specified value and returns the resulting string.

  • expr: The string expression to be searched.
  • pattern: The regular expression pattern to match.
  • replacement: (optional) The string to replace each matched occurrence of pattern with. Supports backreferences \1 through \9 and escape sequences \n, \r, \t, and \\. By default, this argument is an empty string, meaning matched portions are removed from the output string.
  • position: (optional) The 1-based starting position used when searching for regular expression matches in expr. The default is 1. All characters prior to the starting position are included in the output string unaltered. Skipped characters are ignored when calculating regular expression matches, even if they match pattern.
  • occurrence: (optional) Specifies whether all occurrences of pattern,, or only a specific occurrence of pattern are replaced. The default is 0, which means all occurrences of pattern are replaced with replacement. Set to 1 to only replace the first instance of the pattern; 2 to replace the second; etc.
  • match_type: (optional) Modifiers used to customize matching behavior. Supported values are: 'c' (case-sensitive, default), 'i' (case-insensitive), 'm' (multiline), 'n' (dot matches newline), 'x' (extended mode). These can be freely combined by including the letters back to back. For example, 'im' applies the functionality of both 'i' and 'm'. The regular expression syntax used is that of the Extended mode ('x') ignores whitespace and allows inline comments. If the pattern needs to match a literal space, it must be explicitly escaped.

                      SELECT REGEXP_REPLACE('abc123def456', '\d+', 'NUM');
                      -- Result: 'abcNUMdefNUM'

                      SELECT REGEXP_REPLACE('Hello\nHELLO\nhello', '^hello', 'X', 1, 0, 'im');
                      -- Result: 'X\nX\nX'
                    

REPLACE(string_expression, string_pattern, string_replacement)

Replaces all occurrences of a string with another string.

  • string_expression: The string expression to be searched. This can be a character or binary data type.
  • string_pattern: The substring to be found. Cannot be an empty string.
  • string_replacement: The replacement string.

                      SELECT REPLACE('1234567890', '456', '|');
                      -- Result: '123|7890'

                      SELECT REPLACE('123123123', '123', '.');
                      -- Result: '...'

                      SELECT REPLACE('1234567890', 'a', 'b');
                      -- Result: '1234567890'
                    

REPLICATE ( string_expression ,integer_expression )

Repeats the string value the specified number of times.

  • string_expression: The string to replicate.
  • integer_expression: The repeat count.

                      SELECT REPLACE('x', 5);
                      -- Result: 'xxxxx'
                    

REVERSE ( string_expression )

Returns the reverse order of the string expression.

  • string_expression: The string.

                      SELECT REVERSE('1234567890');
                      -- Result: '0987654321'
                    

RIGHT ( character_expression , integer_expression )

Returns the right part of the string with the specified number of characters.

  • character_expression: The character expression.
  • integer_expression: The positive integer that specifies how many characters of the character expression will be returned.

                      SELECT RIGHT('1234567890', 3);
                      -- Result: '890'
                    

RTRIM(character_expression)

Returns the character expression after it removes trailing blanks.

  • character_expression: The character expression.

                      SELECT RTRIM('trimmed     ');
                      -- Result: 'trimmed'
                    

SOUNDEX(character_expression)

Returns the four-character Soundex code, based on how the string sounds when spoken.

  • character_expression: The alphanumeric expression of character data.

                      SELECT SOUNDEX('smith');
                      -- Result: 'S530'
                    

SPACE(repeatcount)

Returns the string that consists of repeated spaces.

  • repeatcount: The number of spaces.

                      SELECT SPACE(5);
                      -- Result: '     '
                    

SPLIT(string, delimiter, offset)

Returns a section of the string between to delimiters.

  • string: The string to split.
  • delimiter: The character to split the string with.
  • offset: The number of the split to return. Positive numbers are treated as offsets from the left, and negative numbers are treated as offsets from the right.

                      SELECT SPLIT('a/b/c/d', '/', 1);
                      -- Result: 'a'
                      SELECT SPLIT('a/b/c/d', '/', -2);
                      -- Result: 'c'
                    

STARTSWITH(character_expression, character_prefix)

Returns 1 if character_expression starts with character_prefix; otherwise, 0.

  • character_expression: The character expression.
  • character_prefix: The character prefix to search for.

                      SELECT STARTSWITH('0123456', '012');
                      -- Result: 1

                      SELECT STARTSWITH('0123456', '456');
                      -- Result: 0
                    

STR ( float_expression [ , integer_length [ , integer_decimal ] ] )

Returns the character data converted from the numeric data. For example, STR(123.45, 6, 1) returns 123.5.

  • float_expression: The float expression.
  • length: The optional total length to return. This includes decimal point, sign, digits, and spaces. The default is 10.
  • decimal: The optional number of places to the right of the decimal point. The decimal must be less than or equal to 16.

                      SELECT STR('123.456');
                      -- Result: '123'

                      SELECT STR('123.456', 2);
                      -- Result: '**'

                      SELECT STR('123.456', 10, 2);
                      -- Result: '123.46'
                    

STUFF(character_expression , integer_start , integer_length , replaceWith_expression)

Inserts a string into another string. It deletes the specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.

  • character_expression: The string expression.
  • start: The integer value that specifies the location to start deletion and insertion. If start or length is negative, null is returned. If start is longer than the string to be modified, character_expression, null is returned.
  • length: The integer that specifies the number of characters to delete. If length is longer than character_expression, deletion occurs up to the last character in replaceWith_expression.
  • replaceWith_expression: The expression of character data that will replace length characters of character_expression beginning at the start value.

                      SELECT STUFF('1234567890', 3, 2, 'xx');
                      -- Result: '12xx567890'
                    

SUBSTRING(string_value FROM start FOR length)

Returns the part of the string with the specified length; starts at the specified index.

  • string_value: The character string.
  • start: The positive integer that specifies the start index of characters to return.
  • length: Optional. The positive integer that specifies how many characters will be returned.

                      SELECT SUBSTRING('1234567890' FROM 3 FOR 2);
                      -- Result: '34'

                      SELECT SUBSTRING('1234567890' FROM 3);
                      -- Result: '34567890'
                    
You can also drop the FROM and FOR clauses:
                    SELECT SUBSTRING('1234567890', 3, 2)
                    --Result: '34'
                    SELECT SUBSTRING('1234567890', 3)
                    --Result: '34567890'
                    

TEXT_ENCODE(input_string, charset)

Returns binary output by encoding a string using the specified character set.

  • input_string: The plain text string.
  • charset: The character set to use, such as 'UTF-8', 'ISO-8859-1'.

                    SELECT TEXT_ENCODE('Café', 'UTF-8');
                    -- Result: (binary output)
                    

TEXT_DECODE(input_binary, charset)

Returns a string decoded from binary data using the specified character set.

  • input_binary: The binary value to decode.
  • charset: The character set used for decoding.

                    SELECT TEXT_DECODE(BinaryData, 'UTF-8');
                    -- Result: 'Café'
                    

TOSTRING(string_value1)

Converts the value of this instance to its equivalent string representation.

  • string_value1: The string to be converted.

                      SELECT TOSTRING(123);
                      -- Result: '123'

                      SELECT TOSTRING(123.456);
                      -- Result: '123.456'

                      SELECT TOSTRING(null);
                      -- Result: ''
                    

TRIM(trimspec trimchar FROM string_value)

Returns the character expression with leading and/or trailing blanks removed.

  • trimspec: Optional. If included must be one of the keywords BOTH, LEADING or TRAILING.
  • trimchar: Optional. If included should be a one-character string value.
  • string_value: The string value to trim.

                      SELECT TRIM('     trimmed     ');
                      -- Result: 'trimmed'

                      SELECT TRIM(LEADING FROM '     trimmed     ');
                      -- Result: 'trimmed     '

                      SELECT TRIM('-' FROM '-----trimmed-----');
                      -- Result: 'trimmed'

                      SELECT TRIM(BOTH '-' FROM '-----trimmed-----');
                      -- Result: 'trimmed'

                      SELECT TRIM(TRAILING '-' FROM '-----trimmed-----');
                      -- Result: '-----trimmed'
                    

UNICODE(ncharacter_expression)

Returns the integer value defined by the Unicode standard of the first character of the input expression.

  • ncharacter_expression: The Unicode character expression.

UPPER ( character_expression )

Returns the character expression with lowercase character data converted to uppercase.

  • character_expression: The character expression.

                      SELECT UPPER('MIXED case');
                      -- Result: 'MIXED CASE'
                    

XML_EXTRACT(xml, xpath [, separator])

Extracts an XML document using the specified XPath to flatten the XML. A comma is used to separate the outputs by default, but this can be changed by specifying the third parameter.

  • xml: The XML document to extract.
  • xpath: The XPath used to select the nodes. The nodes selected will be returned in a token-separated list.
  • separator: The optional token used to separate the items in the flattened response. If this is not specified, the separator will be a comma.

                      SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch');
                      -- Result: 'a,e,i,o,u'

                      SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch', ';');
                      -- Result: 'a;e;i;o;u'
                    

CData Python Connector for Salesforce Marketing Cloud

MATH Functions

ABS ( numeric_expression )

Returns the absolute (positive) value of the specified numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT ABS(15);
                      -- Result: 15

                      SELECT ABS(-15);
                      -- Result: 15
                    

ACOS ( float_expression )

Returns the arc cosine, the angle in radians whose cosine is the specified float expression.

  • float_expression: The float expression that specifies the cosine of the angle to be returned. Values outside the range from -1 to 1 return null.

                      SELECT ACOS(0.5);
                      -- Result: 1.0471975511966
                    

ASIN ( float_expression )

Returns the arc sine, the angle in radians whose sine is the specified float expression.

  • float_expression: The float expression that specifies the sine of the angle to be returned. Values outside the range from -1 to 1 return null.

                      SELECT ASIN(0.5);
                      -- Result: 0.523598775598299
                    

ATAN ( float_expression )

Returns the arc tangent, the angle in radians whose tangent is the specified float expression.

  • float_expression: The float expression that specifies the tangent of the angle to be returned.

                      SELECT ATAN(10);
                      -- Result: 1.47112767430373
                    

ATN2 ( float_expression1 , float_expression2 )

Returns the angle in radians between the positive x-axis and the ray from the origin to the point (y, x) where x and y are the values of the two specified float expressions.

  • float_expression1: The float expression that is the y-coordinate.
  • float_expression2: The float expression that is the x-coordinate.

                      SELECT ATN2(1, 1);
                      -- Result: 0.785398163397448
                    

CEILING ( numeric_expression ) or CEIL( numeric_expression )

Returns the smallest integer greater than or equal to the specified numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT CEILING(1.3);
                      -- Result: 2

                      SELECT CEILING(1.5);
                      -- Result: 2

                      SELECT CEILING(1.7);
                      -- Result: 2
                    

COS ( float_expression )

Returns the trigonometric cosine of the specified angle in radians in the specified expression.

  • float_expression: The float expression of the specified angle in radians.

                      SELECT COS(1);
                      -- Result: 0.54030230586814
                    

COT ( float_expression )

Returns the trigonometric cotangent of the angle in radians specified by float_expression.

  • float_expression: The float expression of the angle in radians.

                      SELECT COT(1);
                      -- Result: 0.642092615934331
                    

DEGREES ( numeric_expression )

Returns the angle in degrees for the angle specified in radians.

  • numeric_expression: The angle in radians, an expression of an indeterminate numeric data type except for the bit data type.

                      SELECT DEGREES(3.1415926);
                      -- Result: 179.999996929531
                    

EXP ( float_expression )

Returns the exponential value of the specified float expression. For example, EXP(LOG(20)) is 20.

  • float_expression: The float expression.

                      SELECT EXP(2);
                      -- Result: 7.38905609893065
                    

EXPR ( expression )

Evaluates the expression.

  • expression: The expression. Operators allowed are +, -, *, /, ==, !=, >, <, >=, and <=.

                      SELECT EXPR('1 + 2 * 3');
                      -- Result: 7

                      SELECT EXPR('1 + 2 * 3 == 7');
                      -- Result: true
                    

FLOOR ( numeric_expression )

Returns the largest integer less than or equal to the numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT FLOOR(1.3);
                      -- Result: 1

                      SELECT FLOOR(1.5);
                      -- Result: 1

                      SELECT FLOOR(1.7);
                      -- Result: 1
                    

GREATEST(int1,int2,....)

Returns the greatest of the supplied integers.

				SELECT GREATEST(3,5,8,10,1)
				-- Result: 10			
				

HEX(value)

Returns a the equivalent hex for the input value.

  • value: A string or numerical value to be converted into hex.

				SELECT HEX(866849198);
				-- Result: 33AB11AE
				
				SELECT HEX('Sample Text');
				-- Result: 53616D706C652054657874
				

JSON_AVG(json, jsonpath)

Computes the average value of a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_AVG('[1,2,3,4,5]', '$[x]');
                      -- Result: 3

                      SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 3

                      SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 4.5
                    

JSON_COUNT(json, jsonpath)

Returns the number of elements in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_COUNT('[1,2,3,4,5]', '$[x]');
                      -- Result: 5

                      SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 5

                      SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 2
                    

JSON_MAX(json, jsonpath)

Gets the maximum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_MAX('[1,2,3,4,5]', '$[x]');
                      -- Result: 5

                      SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 5

                      SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[..3]');
                      -- Result: 4
                    

JSON_MIN(json, jsonpath)

Gets the minimum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_MIN('[1,2,3,4,5]', '$[x]');
                      -- Result: 1

                      SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 1

                      SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 4
                    

JSON_SUM(json, jsonpath)

Computes the summary value in JSON according to the JSONPath expression. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_SUM('[1,2,3,4,5]', '$[x]');
                      -- Result: 15

                      SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 15

                      SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 9
                    

LEAST(int1,int2,....)

Returns the least of the supplied integers.

				SELECT LEAST(3,5,8,10,1)
				-- Result: 1			
				

LOG ( float_expression [, base ] )

Returns the natural logarithm of the specified float expression.

  • float_expression: The float expression.
  • base: The optional integer argument that sets the base for the logarithm.

                      SELECT LOG(7.3890560);
                      -- Result: 1.99999998661119
                    

LOG10 ( float_expression )

Returns the base-10 logarithm of the specified float expression.

  • float_expression: The expression of type float.

                      SELECT LOG10(10000);
                      -- Result: 4
                    

MOD(dividend,divisor)

Returns the integer value associated with the remainder when dividing the dividend by the divisor.

  • dividend: The number to take the modulus of.
  • divisor: The number to divide the dividend by when determining the modulus.

				SELECT MOD(10,3);
				-- Result: 1
				

NEGATE(real_number)

Returns the opposite to the real number input.

  • real_number: The real number to find the opposite of.

				SELECT NEGATE(10);
				-- Result: -10
				
				SELECT NEGATE(-12.4)
				--Result: 12.4
				

PI ( )

Returns the constant value of pi.

                  SELECT PI()
                  -- Result: 3.14159265358979 
                

POWER ( float_expression , y )

Returns the value of the specified expression raised to the specified power.

  • float_expression: The float expression.
  • y: The power to raise float_expression to.

                      SELECT POWER(2, 10);
                      -- Result: 1024

                      SELECT POWER(2, -2);
                      -- Result: 0.25
                    

RADIANS ( float_expression )

Returns the angle in radians of the angle in degrees.

  • float_expression: The degrees of the angle as a float expression.

                      SELECT RADIANS(180);
                      -- Result: 3.14159265358979
                    

RAND ( [ integer_seed ] )

Returns a pseudorandom float value from 0 through 1, exclusive.

  • seed: The optional integer expression that specifies the seed value. If seed is not specified, a seed value at random will be assigned.

                      SELECT RAND();
                      -- This result may be different, since the seed is randomized
                      -- Result: 0.873159630165044

                      SELECT RAND(1);
                      -- This result will always be the same, since the seed is constant
                      -- Result: 0.248668584157093
                    

ROUND ( numeric_expression [ ,integer_length] [ ,function ] )

Returns the numeric value rounded to the specified length or precision.

  • numeric_expression: The expression of a numeric data type.
  • length: The optional precision to round the numeric expression to. When this is omitted, the default behavior will be to round to the nearest whole number.
  • function: The optional type of operation to perform. When the function parameter is omitted or has a value of 0 (default), numeric_expression is rounded. When a value other than 0 is specified, numeric_expression is truncated.

                      SELECT ROUND(1.3, 0);
                      -- Result: 1

                      SELECT ROUND(1.55, 1);
                      -- Result: 1.6

                      SELECT ROUND(1.7, 0, 0);
                      -- Result: 2

                      SELECT ROUND(1.7, 0, 1);
                      -- Result: 1
                      
                      SELECT ROUND (1.24);
                      -- Result: 1.0
                    

SIGN ( numeric_expression )

Returns the positive sign (1), 0, or negative sign (-1) of the specified expression.

  • numeric_expression: The expression of an indeterminate data type except for the bit data type.

                      SELECT SIGN(0);
                      -- Result: 0

                      SELECT SIGN(10);
                      -- Result: 1

                      SELECT SIGN(-10);
                      -- Result: -1
                    

SIN ( float_expression )

Returns the trigonometric sine of the angle in radians.

  • float_expression: The float expression specifying the angle in radians.

                     SELECT SIN(1);
                     -- Result: 0.841470984807897
                    

SQRT ( float_expression )

Returns the square root of the specified float value.

  • float_expression: The expression of type float.

                      SELECT SQRT(100);
                      -- Result: 10
                    

SQUARE ( float_expression )

Returns the square of the specified float value.

  • float_expression: The expression of type float.

                      SELECT SQUARE(10);
                      -- Result: 100

                      SELECT SQUARE(-10);
                      -- Result: 100
                    

TAN ( float_expression )

Returns the tangent of the input expression.

  • float_expression: The expression of type float.

                      SELECT TAN(1);
                      -- Result: 1.5574077246549
                    

TRUNC(decimal_number,precision)

Returns the supplied decimal number truncated to have the supplied decimal precision.

  • decimal_number: The decimal value to truncate.
  • precision: The number of decimal places to truncate the decimal number to.

				SELECT TRUNC(10.3423,2);
				-- Result: 10.34
				

_ROW_NUMBER_()

Returns a row index as an additional column.

				SELECT ColumnName, _ROW_NUMBER_() FROM TableName
				-- Result: ColumnData, 0
				ColumnData2, 1
				ColumnData3, 2
				

CData Python Connector for Salesforce Marketing Cloud

DATE Functions

CURRENT_DATE()

Returns the current date value.

                  SELECT CURRENT_DATE();
                  -- Result: 2018-02-01
                

CURRENT_TIMESTAMP()

Returns the current time stamp of the database system as a datetime value. This value is equal to GETDATE and SYSDATETIME, and is always in the local timezone.

                  SELECT CURRENT_TIMESTAMP();
                  -- Result: 2018-02-01 03:04:05
                

DATEADD (datepart , integer_number , date [, dateformat])

Returns the datetime value that results from adding the specified number (a signed integer) to the specified date part of the date.

  • datepart: The part of the date to add the specified number to. The valid values and abbreviations are
    • year (yy, yyyy)
    • quarter (qq, q)
    • month (mm, m)
    • week (wk, ww)
    • weekday (dw)
    • dayofyear (dy, y)
    • day (dd, d)
    • hour (hh)
    • minute (mi, n)
    • second (ss, s)
    • millisecond (ms)
  • number: The number to be added.
  • date: The expression of the datetime data type.
  • dateformat: The optional output date format.

                  SELECT DATEADD('d', 5, '2018-02-01');
                  -- Result: 2018-02-06

                  SELECT DATEADD('hh', 5, '2018-02-01 00:00:00');
                  -- Result: 2018-02-01 05:00:00
                

DATEDIFF ( datepart , startdate , enddate )

Returns the difference (a signed integer) of the specified time interval between the specified start date and end date.

  • datepart: The part of the date that is the time interval of the difference between the start date and end date. The valid values and abbreviations are:
    • Year (year, yyyy, yy)
    • Quarter (quarter, qq, q)
    • Month (month, mm, m)
    • Week (week, wk, ww)
    • Weekday (weekday, dw)
    • Dayofyear (dayofyear, dy, y)
    • Day (day, dd, d)
    • Hour (hour, hh)
    • Minute (minute, mi, n)
    • Second (second, ss, s)
    • Millisecond (millisecond, ms)
  • startdate: The datetime expression of the start date.
  • enddate: The datetime expression of the end date.

                  SELECT DATEDIFF('d', '2018-02-01', '2018-02-10');
                  -- Result: 9

                  SELECT DATEDIFF('hh', '2018-02-01 00:00:00', '2018-02-01 12:00:00');
                  -- Result: 12
                

DATE_FORMAT(date,format)

Returns the date or timestamp in the format specified. This function mirrors the MySQL DATE_FORMAT function.

  • date: A date or timestamp string.
  • format: The specifier string of the desired output format. The list of supported format specifiers comes from the MySQL DATE_FORMAT function (see link to MySQL documentation above).

					SELECT DATE_FORMAT('9/4/2021 3:11:53 AM','%h')
					-- Result: 03
				  

DATEFROMPARTS(integer_year, integer_month, integer_day)

Returns the datetime value for the specified year, month, and day.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.

                    SELECT DATEFROMPARTS(2018, 2, 1);
                    -- Result: 2018-02-01
                  

DATENAME(datepart , date)

Returns the character string that represents the specified date part of the specified date.

  • datepart: The part of the date to return. The valid values and abbreviations are year (yy, yyyy), quarter (qq, q), month (mm, m), dayofyear (dy, y), day (dd, d), week (wk, ww), weekday (dw), hour (hh), minute (mi, n), second (ss, s), millisecond (ms), microsecond (mcs), and nanosecond (ns).
  • date: The datetime expression.

                     SELECT DATENAME('yy', '2018-02-01');
                     -- Result: '2018'

                     SELECT DATENAME('dw', '2018-02-01');
                     -- Result: 'Thursday'
                   

DATEPART(datepart, date [,integer_datefirst])

Returns a character string that represents the specified date part of the specified date.

  • datepart: The part of the date to return. The valid values and abbreviations are year (yy, yyyy), quarter (qq, q), month (mm, m), dayofyear (dy, y), day (dd, d), week (wk, ww), weekday (dw), hour (hh), minute (mi, n), second (ss, s), millisecond (ms), microsecond (mcs), nanosecond (ns), ISODOW, ISO_WEEK (isoweek, isowk,isoww), and ISOYEAR.
  • date: The datetime string.
  • datefirst: The optional integer representing the first day of the week. The default is 7, Sunday.

                    SELECT DATEPART('yy', '2018-02-01');
                    -- Result: 2018

                    SELECT DATEPART('dw', '2018-02-01');
                    -- Result: 5
                  

DATETIMEFROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute, integer_seconds, integer_milliseconds)

Returns the datetime value for the specified date parts.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • milliseconds: The integer expression specifying the milliseconds.

                    SELECT DATETIMEFROMPARTS(2018, 2, 1, 1, 2, 3, 456);
                    -- Result: 2018-02-01 01:02:03.456
                  

DATETIME2FROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute, integer_seconds, integer_fractions, integer_precision)

Returns the datetime value for the specified date parts.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • fractions: The integer expression specifying the fractions of the second.
  • precision: The integer expression specifying the precision of the fraction.

				    SELECT DATETIME2FROMPARTS(2018, 2, 1, 1, 2, 3, 456, 3);
                    -- Result: 2018-02-01 01:02:03.456
                  

DATE_TRUNC(date, datepart)

Truncates the date to the precision of the given date part. Modeled after the Oracle TRUNC function.

  • date: The datetime string that specifies the date.
  • datepart: Refer to the Oracle documentation for valid datepart syntax.

				    SELECT DATE_TRUNC('05-04-2005', 'YY');
                    -- Result: '1/1/2005'
					
                    SELECT DATE_TRUNC('05-04-2005', 'MM');
                    -- Result: '5/1/2005'                    
                  

DATE_TRUNC2(datepart, date, [weekday])

Truncates the date to the precision of the given date part. Modeled after the PostgreSQL date_trunc function.

  • datepart: One of 'millennium', 'century', 'decade', 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute' or 'second'.
  • date: The datetime string that specifies the date.
  • weekday: The optional day of the week to use as the first day for 'week'. One of 'sunday', 'monday', etc.

                    SELECT DATE_TRUNC2('year', '2020-02-04');
                    -- Result: '2020-01-01'

                    SELECT DATE_TRUNC2('week', '2020-02-04', 'monday');
                    -- Result: '2020-02-02', which is the previous Monday
                  

DAY(date)

Returns the integer that specifies the day component of the specified date.

  • date: The datetime string that specifies the date.

                    SELECT DAY('2018-02-01');
                    -- Result: 1
                  

DAYNAME(date)

Returns the name of the day of the week of the specified date.

  • date: The datetime string that specifies the date.

                    SELECT DAYNAME('8/18/2021');
                    -- Result: Wednesday
                  

DAYOFMONTH(date)

Returns the day of the month of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFMONTH('04/15/2000');
				  -- Result: 15
				  

DAYOFWEEK(date)

Returns the day of the week of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFWEEK('04/15/2000');
				  -- Result: 7
				  

DAYOFYEAR(date)

Returns the day of the year of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFYEAR('04/15/2000');
				  -- Result: 106
				  

EOMONTH(date [, integer_month_to_add ]) or LAST_DAY(date)

Returns the last day of the month that contains the specified date with an optional offset.

  • date: The datetime expression specifying the date for which to return the last day of the month.
  • integer_month_to_add: The optional integer expression specifying the number of months to add to the date before calculating the end of the month.

                  SELECT EOMONTH('2018-02-01');
                  -- Result: 2018-02-28
                  
                  SELECT LAST_DAY('2018-02-01');
                  -- Result: 2018-02-28

                  SELECT EOMONTH('2018-02-01', 2);
                  -- Result: 2018-04-30
                

EXTRACT(date_part FROM date_column_name)

Returns the last day of the month that contains the specified date with an optional offset.

  • date_part: One of the following date components: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND.
  • date_column_name: The name of a date column in a table.

                  SELECT EXTRACT(YEAR FROM DateColumn)
                  -- Result: 2021
                

FDWEEK(date)

Returns the first day of the week of the given date part.
  • date: The datetime string that specifies the date.
  • weeks to add: An optional integer expression specifying the number of months to add to the date before calculating the first day of the week.

				  SELECT FDWEEK('02-08-2018');
				  -- Result: 2/4/2018

          SELECT FDWEEK('02-08-2018', 1)
          --Result: 02/11/2018
				  

FDMONTH(date)

Returns the first day of the month of the given date part.
  • date: The datetime string that specifies the date.
  • month to add: An optional integer expression specifying the number of months to add to the date before calculating the first day of the month.

				  SELECT FDMONTH('02-08-2018');
				  -- Result: 2/1/2018

          SELECT FDMONTH('02-08-2018', 1) 
          --Result: 03/01/2018
				  

FDQUARTER(date)

Returns the first day of the quarter of the given date part.
  • date: The datetime string that specifies the date.
  • quarters to add: An optional integer expression specifying the number of months to add to the date before calculating the first day of the quarter.

				  SELECT FDQUARTER('05-08-2018');
				  -- Result: 4/1/2018

          SELECT FDQUARTER('05-08-2018',1)
          --Result: 07/01/2018
				  

FILEMODIFIEDTIME(uri)

Returns the time stamp associated with the Date Modified of the relevant file.

  • uri: An absolute path pointing to a file on the local file system.

				 SELECT FILEMODIFIEDTIME('C:/Documents/myfile.txt');
				 -- Result: 6/25/2019 10:06:58 AM
				 

FROM_DAYS(datevalue)

Returns a date derived from the number of days after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL FROM_DAYS function.

  • datevalue: A integer value representing the number of days since 1582-10-15.

				SELECT FROM_DAYS(736000);
				-- Result: 2/6/2015
				

FROM_UNIXTIME(time, issecond)

Returns a representation of the unix_timestamp argument as a value in YYYY-MM-DD HH:MM:SS expressed in the current time zone.

  • time: The time stamp value from epoch time. Milliseconds are accepted.
  • issecond: Indicates the time stamp value is milliseconds to epoch time.

                      SELECT FROM_UNIXTIME(1540495231, 1);
                      -- Result: 2018-10-25 19:20:31

                      SELECT FROM_UNIXTIME(1540495357385, 0);
                      -- Result: 2018-10-25 19:22:37
                    

GETDATE()

Returns the current time stamp of the database system as a datetime value. This value is equal to CURRENT_TIMESTAMP and SYSDATETIME, and is always in the local timezone.

                  SELECT GETDATE();
                  -- Result: 2018-02-01 03:04:05
                

GETUTCDATE()

Returns the current time stamp of the database system formatted as a UTC datetime value. This value is equal to SYSUTCDATETIME.

In addition, GETUTCDATE can take an optional second parameter, a date and time that are converted to UTC.

                  SELECT GETUTCDATE();
                  -- For example, if the local timezone is Eastern European Time (GMT+2)
                  -- Result: 2018-02-01 05:04:05

                  SELECT GETUTCDATE('2020/08/31 13:56:00')
                  --Result: '2020-08-31 17:56:00'
                

HOUR(date)

Returns the hour component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT HOUR('02-02-2020 11:30:00');
				-- Result: 11
				

ISDATE(date, [date_format])

Returns 1 if the value is a valid date, time, or datetime value; otherwise, 0.

  • date: The datetime string.
  • date_format: The optional datetime format.

                      SELECT ISDATE('2018-02-01', 'yyyy-MM-dd');
                      -- Result: 1

                      SELECT ISDATE('Not a date');
                      -- Result: 0
                    

LAST_WEEK()

Returns a time stamp equivalent to exactly one week before the current date.

				SELECT LAST_WEEK();	//Assume the date is 3/17/2020	
			 -- Result: 3/10/2020 00:00:00
				

LAST_MONTH()

Returns a time stamp equivalent to exactly one month before the current date.

	
				SELECT LAST_MONTH(); //Assume the date is 3/17/2020
				-- Result: 2/17/2020 00:00:00
				

LAST_YEAR()

Returns a time stamp equivalent to exactly one year before the current date.

				SELECT LAST_YEAR();	//Assume the date is 3/17/2020	
				-- Result: 3/10/2019 00:00:00
				

LDWEEK(date)

Returns the last day of the provided week.

  • date: The datetime string.
  • weeks to add: An optional integer expression specifying the number of months to add to the date before calculating the last day of the week.

				SELECT LDWEEK('02-02-2020');
				-- Result: 2/8/2020
				

LDMONTH(date)

Returns the last day of the provided month.

  • date: The datetime string.
  • months to add: An optional integer expression specifying the number of months to add to the date before calculating the last day of the month.

				SELECT LDMONTH('02-02-2020');
				-- Result: 2/29/2020

        SELECT LDMONTH('02-08-2020', 1)
        --Result: 03/31/2020
				

LDQUARTER(date)

Returns the last day of the provided quarter.

  • date: The datetime string.
  • quarters to add: An optional integer expression specifying the number of months to add to the date before calculating the last day of the quarter.

				SELECT LDQUARTER('02-02-2020');
				-- Result: 3/31/2020

        SELECT LDQUARTER('02-02-2020',1)
        --Result: 06/30/2020
				

MAKEDATE(year, days)

Returns a date value from a year and a number of days.

  • year: The year
  • days: The number of days into the year. Value must be greater than 0.

          SELECT MAKEDATE(2020, 1);
          -- Result: 2020-01-01
        

MINUTE(date)

Returns the minute component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT MINUTE('02-02-2020 11:15:00');
				-- Result: 15
				

MONTH(date)

Returns the month component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT MONTH('02-02-2020');
				-- Result: 2
				

QUARTER(date)

Returns the quarter associated with the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT QUARTER('02-02-2020');
				-- Result: 1
				

SECOND(date)

Returns the second component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT SECOND('02-02-2020 11:15:23');
				-- Result: 23
				

SMALLDATETIMEFROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute)

Returns the datetime value for the specified date and time.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.

                      SELECT SMALLDATETIMEFROMPARTS(2018, 2, 1, 1, 2);
                      -- Result: 2018-02-01 01:02:00
                    

STRTODATE(string,format)

Parses the provided string value and returns the corresponding datetime.

  • string: The string value to be converted to datetime format.
  • format: A format string which describes how to interpret the first string input. A few special formats are available as well, including UNIX, UNIXMILIS, TICKS, and FILETICKS.

				SELECT STRTODATE('03*04*2020','dd*MM*yyyy');
				-- Result: 4/3/2020
				

SYSDATETIME()

Returns the current time stamp as a datetime value of the database system. It is equal to GETDATE and CURRENT_TIMESTAMP, and is always in the local timezone.

                  SELECT SYSDATETIME();
                  -- Result: 2018-02-01 03:04:05
                

SYSUTCDATETIME()

Returns the current system date and time as a UTC datetime value. It is equal to GETUTCDATE.

                  SELECT SYSUTCDATETIME();
                  -- For example, if the local timezone is Eastern European Time (GMT+2)
                  -- Result: 2018-02-01 05:04:05
                

TIMEFROMPARTS(integer_hour, integer_minute, integer_seconds, integer_fractions, integer_precision)

Returns the time value for the specified time and with the specified precision.

  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • fractions: The integer expression specifying the fractions of the second.
  • precision : The integer expression specifying the precision of the fraction.

                      SELECT TIMEFROMPARTS(1, 2, 3, 456, 3);
                      -- Result: 01:02:03.456
                    

TO_DAYS(date)

Returns the number of days since 0000-00-01. This will only return a value for dates on or after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL TO_DAYS function.

  • date: The datetime string that specifies the date.

				SELECT TO_DAYS('02-06-2015');
				-- Result: 736000
				

WEEK(date)

Returns the week (of the year) associated with the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT WEEK('02-17-2020 11:15:23');
				-- Result: 8
				

YEAR(date)

Returns the integer that specifies the year of the specified date.

  • date: The datetime string.

                      SELECT YEAR('2018-02-01');
                      -- Result: 2018
                    

CData Python Connector for Salesforce Marketing Cloud

Date Literal Functions

The following date literal functions can be used to filter date fields using relative intervals. Note that while the <, >, and = operators are supported for these functions, <= and >= are not.

L_TODAY()

The current day.

  SELECT * FROM MyTable WHERE MyDateField = L_TODAY()

L_YESTERDAY()

The previous day.

  SELECT * FROM MyTable WHERE MyDateField = L_YESTERDAY()

L_TOMORROW()

The following day.

  SELECT * FROM MyTable WHERE MyDateField = L_TOMORROW()

L_LAST_WEEK()

Every day in the preceding week.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_WEEK()

L_THIS_WEEK()

Every day in the current week.

  SELECT * FROM MyTable WHERE MyDateField = L_THIS_WEEK()

L_NEXT_WEEK()

Every day in the following week.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_WEEK()
Also available:
  • L_LAST/L_THIS/L_NEXT MONTH
  • L_LAST/L_THIS/L_NEXT QUARTER
  • L_LAST/L_THIS/L_NEXT YEAR

L_LAST_N_DAYS(n)

The previous n days, excluding the current day.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_DAYS(3)

L_NEXT_N_DAYS(n)

The following n days, including the current day.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_DAYS(3)
Also available:
  • L_LAST/L_NEXT_90_DAYS

L_LAST_N_WEEKS(n)

Every day in every week, starting n weeks before current week, and ending in the previous week.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_WEEKS(3)

L_NEXT_N_WEEKS(n)

Every day in every week, starting the following week, and ending n weeks in the future.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_WEEKS(3)
Also available:
  • L_LAST/L_NEXT_N_MONTHS(n)
  • L_LAST/L_NEXT_N_QUARTERS(n)
  • L_LAST/L_NEXT_N_YEARS(n)

CData Python Connector for Salesforce Marketing Cloud

SELECT Statements

A SELECT statement can consist of the following basic clauses.

  • SELECT
  • INTO
  • FROM
  • JOIN
  • WHERE
  • GROUP BY
  • HAVING
  • UNION
  • ORDER BY
  • LIMIT

SELECT Syntax

The following syntax diagram outlines the syntax supported by the SQL engine of the connector:

SELECT {
  [ TOP <numeric_literal> | DISTINCT ]
  { 
    * 
    | { 
        <expression> [ [ AS ] <column_reference> ] 
        | { <table_name> | <correlation_name> } .* 
      } [ , ... ] 
  }
  { 
    FROM <table_reference> [ [ AS ] <identifier> ] 
  } [ , ... ]
  [ [  
      INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } 
    ] JOIN <table_reference> [ ON <search_condition> ] [ [ AS ] <identifier> ] 
  ] [ ... ] 
  [ WHERE <search_condition> ]
  [ GROUP BY <column_reference> [ , ... ]
  [ HAVING <search_condition> ]
  [ UNION [ ALL ] <select_statement> ]
  [ 
    ORDER BY 
    <column_reference> [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
  ]
  [ 
    LIMIT <expression>
    [ 
      { OFFSET | , }
      <expression> 
    ]
  ] 
} | SCOPE_IDENTITY() 

<expression> ::=
  | <column_reference>
  | @ <parameter> 
  | ?
  | COUNT( * | { [ DISTINCT ] <expression> } )
  | { AVG | MAX | MIN | SUM | COUNT } ( <expression> ) 
  | NULLIF ( <expression> , <expression> ) 
  | COALESCE ( <expression> , ... ) 
  | CASE <expression>
      WHEN { <expression> | <search_condition> } THEN { <expression> | NULL } [ ... ]
    [ ELSE { <expression> | NULL } ]
    END 
  | {RANK() | DENSE_RANK()} OVER ([PARTITION BY <column_reference>] {ORDER BY <column_reference>})
  | <literal>
  | <sql_function> 

<search_condition> ::= 
  {
    <expression> { = | > | < | >= | <= | <> | != | LIKE | NOT LIKE | IN | NOT IN | IS NULL | IS NOT NULL | AND | OR | CONTAINS | BETWEEN | IS DISTINCT FROM | IS NOT DISTINCT FROM } [ <expression> ]
  } [ { AND | OR } ... ] 

Examples

  1. Return all columns:
    SELECT * FROM Subscriber
  2. Rename a column:
    SELECT [Status] AS MY_Status FROM Subscriber
  3. Cast a column's data as a different data type:
    SELECT CAST(AnnualRevenue AS VARCHAR) AS Str_AnnualRevenue FROM Subscriber
  4. Search data:
    SELECT * FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'
  5. Return the number of items matching the query criteria:
    SELECT COUNT(*) AS MyCount FROM Subscriber 
  6. Return the number of unique items matching the query criteria:
    SELECT COUNT(DISTINCT Status) FROM Subscriber 
  7. Return the unique items matching the query criteria:
    SELECT DISTINCT Status FROM Subscriber 
  8. Sort a result set in ascending order:
    SELECT Id, Status FROM Subscriber  ORDER BY Status ASC
  9. Restrict a result set to the specified number of rows:
    SELECT Id, Status FROM Subscriber LIMIT 10 
  10. Parameterize a query to pass in inputs at execution time. This enables you to create prepared statements and mitigate SQL injection attacks.
    SELECT * FROM Subscriber WHERE EmailAddress = @param
See Explicitly Caching Data for information on using the SELECT statement in offline mode.

Pseudo Columns

Some input-only fields are available in SELECT statements. These fields, called pseudo columns, do not appear as regular columns in the results, yet may be specified as part of the WHERE clause. You can use pseudo columns to access additional features from Salesforce Marketing Cloud.

    SELECT * FROM Subscriber WHERE Pseudo = '@Pseudo'
    

Aggregate Functions

For SELECT examples using aggregate functions, see Aggregate Functions.

JOIN Queries

See JOIN Queries for SELECT query examples using JOINs.

Date Literal Functions

Date Literal Functions contains SELECT examples with date literal functions.

Window Functions

See Window Functions for SELECT examples containing window functions.

Table-Valued Functions

See Table-Valued Functions for SELECT examples with table-valued functions.

CData Python Connector for Salesforce Marketing Cloud

Aggregate Functions

COUNT

Returns the number of rows matching the query criteria.

SELECT COUNT(*) FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'

COUNT(DISTINCT)

Returns the number of distinct, non-null field values matching the query criteria.

SELECT COUNT(DISTINCT Id) AS DistinctValues FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'

AVG

Returns the average of the column values.

SELECT Status, AVG(AnnualRevenue) FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'  GROUP BY Status

MIN

Returns the minimum column value.

SELECT MIN(AnnualRevenue), Status FROM Subscriber WHERE EmailAddress = 'john.doe@example.com' GROUP BY Status

MAX

Returns the maximum column value.

SELECT Status, MAX(AnnualRevenue) FROM Subscriber WHERE EmailAddress = 'john.doe@example.com' GROUP BY Status

SUM

Returns the total sum of the column values.

SELECT SUM(AnnualRevenue) FROM Subscriber WHERE EmailAddress = 'john.doe@example.com'

CData Python Connector for Salesforce Marketing Cloud

JOIN Queries

The CData Python Connector for Salesforce Marketing Cloud supports standard SQL joins like the following examples.

Inner Join

An inner join selects only rows from both tables that match the join condition:

SELECT ListSend.NumberSent, Send.Id FROM ListSend, Send WHERE ListSend.SendId=Send.Id

Left Join

A left join selects all rows in the FROM table and only matching rows in the JOIN table:

SELECT ListSend.NumberSent, Send.Id FROM ListSend LEFT OUTER JOIN SendId ON ListSend.SendId=Send.Id

CData Python Connector for Salesforce Marketing Cloud

Window Functions

Window functions allow you to create computed fields from a group of rows (a window) that return a result for each row, as opposed to one computed result for a set of rows, as is the case with aggregate functions. The connector supports the following window function syntax.

Note: Window function support is an experimental feature of the connector. This functionality extends beyond the connector's core scope of being SQL-92 compliant. As such, performance with window functions may not be optimal.

Window Function Clauses

OVER

The OVER clause defines the window over which window functions are performed.

SELECT A, B, <window function> OVER (<window frame>) FROM TableName

The <window function> refers to any supported window function clause, and the <window frame> refers to one or more clauses that specify the logic by which the window is defined.

PARTITION BY

The PARTITION BY clause subdivides a window into sub-windows called partitions. For each unique value in the column specified in the PARTITION BY clause, every record with that value collectively forms an individual partition.

SELECT A, B, <window function> OVER (PARTITION BY A ORDER BY B) From Subscriber

The <window function> refers to any supported window function clause.

Window Functions

The connector supports math, ranking, and analytic window functions.

Math

These window functions perform mathematical operations on the records within the window.

COUNT()

Calculates the number of records in each partition. The calculated column is of the data type "int".

In each partition, every record will display the total number of records in that partition.

SELECT Name, Role, Earnings, COUNT() OVER (PARTITION BY Role) FROM Employees

COUNT_BIG()

Calculates the number of records in each partition. The calculated column is of the data type "bigint".

In each partition, every record will display the total number of records in that partition.

SELECT Name, Role, Earnings, COUNT_BIG() OVER (PARTITION BY Role) FROM Employees

MIN(numeric_column)

Calculates the minimum value of a numerical column per partition.

In each partition, every record will display the minimum value of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, MIN(Earnings) OVER (PARTITION BY Role) FROM Employees

MAX(numeric_column)

Calculates the maximum value of a numerical column per partition.

In each partition, every record will display the maximum value of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, MAX(Earnings) OVER (PARTITION BY Role) FROM Employees

SUM(numeric_column)

Calculates the sum of a numerical column per partition.

In each partition, every record will display the sum of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, SUM(Earnings) OVER (PARTITION BY Role) FROM Employees

AVG(numeric_column)

Calculates the average value of a numerical column per partition.

In each partition, every record will display the average value of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, AVG(Earnings) OVER (PARTITION BY Role) FROM Employees

MEDIAN(numeric_column)

Calculates the median value of a numerical column per partition.

In each partition, every record will display the median value of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, MEDIAN(Earnings) OVER (PARTITION BY Role) FROM Employees

STDEV(numeric_column)

Calculates the standard deviation of a numerical column per partition.

In each partition, every record will display the standard deviation of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, STDEV(Earnings) OVER (PARTITION BY Role) FROM Employees

STDEVP(numeric_column)

Calculates the population standard deviation of a numerical column per partition.

In each partition, every record will display the population standard deviation of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, STDEVP(Earnings) OVER (PARTITION BY Role) FROM Employees

VAR(numeric_column)

Calculates the statistical standard variance of a numerical column per partition.

In each partition, every record will display the statistical standard variance of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, VAR(Earnings) OVER (PARTITION BY Role) FROM Employees

VARP(numeric_column)

Calculates the variance population of a numerical column per partition.

In each partition, every record will display the variance population of numeric_column across the records in that partition.

SELECT Name, Role, Earnings, VARP(Earnings) OVER (PARTITION BY Role) FROM Employees

Ranking

These window functions rank records that fall within the window and its partitions.

RANK()

Assigns a rank number to each record in a window based on the value of the column specified in the required ORDER BY clause.

If two or more records have an equal value in the in ranked column, they all receive the same rank number and the rank count increments internally, skipping ahead one rank number for each record with a duplicate value in the ORDER BY column.

SELECT Id, Status, RANK() OVER (ORDER BY Status) AS Rank FROM Subscriber

If you add a PARTITION BY clause, a separate set of ranks is calculated for each partition.

SELECT Id, Status, RANK() OVER (PARTITION BY Id ORDER BY Status) AS Rank FROM Subscriber

DENSE_RANK()

Operates like the RANK() function, but it doesn't increment the internal rank counter for each record with a duplicate value in the ranked column.

This means that, while records with identical values in the ORDER BY column still share a rank number, the function never skips a rank number.

SELECT Id, Status, DENSE_RANK() OVER (PARTITION BY Id ORDER BY Status) AS Rank FROM Subscriber

If you add a PARTITION BY clause, a separate set of ranks is calculated for each partition.

SELECT Id, Status, DENSE_RANK() OVER (PARTITION BY Id ORDER BY Status) AS Rank FROM Subscriber

ROW_NUMBER()

Calculates a row number for each record. An ORDER BY clause in the OVER clause is required.

SELECT Name, Role, Earnings, ROW_NUMBER() OVER (ORDER BY Role) FROM Employees
If you define multiple partitions with PARTITION BY, a new set of row numbers are calculated for each partition.
SELECT Name, Role, Earnings, ROW_NUMBER() OVER (PARTITION BY Role ORDER BY Earnings) FROM Employees

NTILE()

Distributes rows of an ordered partition into a specified number of approximately equal groups, or buckets. It assigns each group a bucket number starting from one. For each row in a group, the NTILE() function assigns a bucket number representing the group to which the row belongs.

The syntax of NTILE() is:

NTILE(buckets) OVER (
    [PARTITION BY partition_expression, ... ]
    ORDER BY sort_expression [ASC | DESC], ...
)
The following are paramaters that NTILE() supports:

  • buckets: The number of buckets into which the rows are divided. The buckets can be an expression or subquery that evaluates to a positive integer. It cannot be a window function.
  • PARTITION BY: distributes rows of a result set into partitions to which the NTILE() function is applied.
  • ORDER BY is clause that specifies the logical order of rows in each partition to which the NTILE() is applied.

If the number of rows is not divisible by the buckets, the NTILE() function returns groups of two sizes with the difference by one. The larger groups always precede the smaller group in the order set by ORDER BY in the OVER() clause.

If the total of rows is divisible by the number of buckets, the function divides the rows evenly among buckets. The following statement creates a new table named ntile_demo that stores 10 integers:

CREATE TABLE sales.ntile_demo (
	v INT NOT NULL
);
	
INSERT INTO sales.ntile_demo(v) 
VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);	
	
SELECT * FROM sales.ntile_demo;
This statement uses the NTILE() function to divide ten rows into three groups:
SELECT 
	v, 
	NTILE (3) OVER (
		ORDER BY v
	) buckets
FROM 
	sales.ntile_demo;

Analytical

These window functions perform analytical operations on the records within the window.

PERCENT_RANK()

Calculates the relative rank SQL Percentile of each row. It returns values greater than zero, but the maximum value is one. It does not count any NULL values. This function is nondeterministic.

The syntax of PERCENT_RANK() is:

PERCENT_RANK() OVER (
      [PARTITION BY partition_expression, ... ]
      ORDER BY sort_expression [ASC | DESC], ...
  )
  
This syntax uses the following parameters.

  • PARTITION BY: By default, SQL Server treats the whole data set as a single set. You can specify the PARTITION BY clause to divide data into multiple sets. The Percent_Rank function performs the analytical calculations on each set. This parameter is optional.
  • ORDER BY: Sorts the data in either ascending or descending order. This parameter is required.

CData Python Connector for Salesforce Marketing Cloud

Table-Valued Functions

Table-valued functions are functions that return a table (rowset).

Note: Table-valued function support is an experimental feature of the connector. This functionality extends beyond the connector's core scope of being SQL-92 compliant. As such, performance with these functions may not be optimal.

Table-Valued Function Clauses

CROSS APPLY

The CROSS APPLY operator is used to perform a subquery on each row of a table or resultset produced by a preceding table expression.

<table_expression_1> CROSS APPLY <table_expression_2>

The second table expression can reference results from the first table expression to create derived columns or an altered recordset via a table-valued function.

Each resulting record is an instance of the record it's splitting, with all the same column values, except for the column(s) containing the value split by the function.

WITH

The WITH clause is used alongside certain table-valued functions to match against constructs within the structure being split (keys, element names, attribute names, etc.) and/or to specify metadata for the columns generated from the function.
SELECT A.ColumnName, X.DerivedColumnName FROM TableName A CROSS APPLY <table-valued function> WITH (DerivedColumnName varchar(255)) AS X

Table-Valued Functions

STRING_SPLIT(input_text,delimiter)

Takes each record in the recordset of the preceding table expression, splits the column containing delimiters (input_text) into substrings separated by the delimiter, and returns one record per substring.

  • input_text: A column whose value you want to parse.
  • delimiter: The character used to split the value of the column specified in input_text.

Suppose there is a column called "SplitColumn" with the following content:

One-Two-Three
To unpack this value across multiple records:
SELECT A.ID, X.Value FROM [TableWithDelimitedStringField] A CROSS APPLY STRING_SPLIT(A.SplitColumn,'-') WITH (Value VARCHAR(255)) AS X

-- Results:
-----------
|ID|Value|
|1|One|
|1|Two|
|1|Three|

JSONTABLE(json_content,[jsonpath])

For each record in the recordset of the preceding table expression, returns one record for each instance of a key in a JSON array (json_content) that matches the key(s) specified in the WITH clause, at the scope specified by the "jsonpath" input.

  • json_content: A JSON "table" (array of objects). The contents can nest, but this must be a single JSON array, not any other JSON structure, at the root level.
    • The values of every instance of the key(s) provided in the WITH clause are retrievable only for substructures which are immediate children of the root-level JSON array.
  • jsonpath: An optional JSONPath query defining the scope, within the json_content array, that you want to pull content from. The JSON key(s) identified in the WITH clause must exist at the scope defined in this parameter. This defaults to the JSON root ($).

Consider a sample table with a single record, including an ID column and column with JSON content called "JSONColumn" with the following content:

[
	{
		"name": "Samuel",
		"email": "sam@gmail.com",
		"extrainfo": {
			"city": "Seattle"
		}
	},
	{
		"name": "Katherine",
		"email": "kat@gmail.com",
	},
	{
		"name": "George",
		"email": "george23@gmail.com",
	},
	{
		"name": "Carlos",
		"email": "carlos32@gmail.com",
	}
]

To extract all values for a certain key, specify the scope in the JSONTABLE function and provide the desired key(s) in the WITH clause.

SELECT A.ID, X.name FROM [TableWithJSONField] A CROSS APPLY JSONTABLE(A.JSONColumn) WITH (name VARCHAR(255)) AS X

-- Results: 
|ID|name|
---------
|1 |Samuel|
|1 |Katherine|
|1 |George|
|1 |Carlos|

XMLTABLE(xml_content,[xpath,child_type])

For each record in the resultset of the preceding table expression, returns one record for each of the elements and/or attributes in an XML structure (xml_content) that match the tag name(s) and/or attribute name(s) specified in the WITH clause, at the scope specified in the "xpath" input.

  • xml_content: A column containing an XML structure.
  • xpath: An optional XPath that specifies the scope within the XML structure at which the connector extracts content matching the tag/attribute name(s) specified in the WITH clause.
    • When extracting the content of sub-elements, the connector can retrieve all content from tags at the root level, (depth 0) immediate children of the root (depth 1), and children of those children (depth 2).
    • When extracting element attribute content, the connector can retrieve all content from tags containing the specified attribute at the root level (depth 0) and from immediate children of root-level elements (depth 1).
  • child_type: An optional parameter that specifies the part(s) of the parent element (specified in the xpath input) that the column(s) provided in the WITH clause are checked against to identify content.
    • You can supply the following values:
      • 0: The column(s) in the WITH clause are checked for matches against the parent element's attribute names and sub-element tag names.
      • 1: The column(s) in the WITH clause are checked for matches against the parent element's attribute names.
      • 2: The column(s) in the WITH clause are checked for matches against the parent element's sub-element tag names.
    • When not supplied, this defaults to 0.

Extracting Sub-Element Values

Consider a sample table with a single record, including an ID column and a column with XML content called "XMLContent" with the following content:
<shoppingList>
    <item>
        <name>Apples</name>
        <quantity>3</quantity>
        <unit>Kg</unit>
    </item>
    <item>
        <name>Bread</name>
        <quantity>2</quantity>
        <unit>Loaf</unit>
		<extrainfo>
			<Type>Whole-Grain</Type>
		</extrainfo>
    </item>
    <item>
        <name>Milk</name>
        <quantity>1</quantity>
        <unit>Carton</unit>
    </item>
    <item>
        <name>Eggs</name>
        <quantity>12</quantity>
        <unit></unit>
    </item>
</shoppingList>

To extract sub-element content, specify the scope in the XMLTABLE function and provide the desired element name(s) in the WITH clause. Note that this will not work if the XMLTABLE function's child_type input is set to 1.

SELECT A.ID, X.name FROM [TableWithXMLField] A CROSS APPLY XMLTABLE(A.XMLContent,'//*/item') WITH (name VARCHAR(255)) AS X

-- Results: 
|ID|name|
---------
|1|Apples|
|1|Bread|
|1|Milk|
|1|Eggs|

Extracting Values Using Element Tag Attributes

Suppose you have this sample table with a single record, including an ID column and a column with XML content called "XMLContent" with the following content:

<restaurant>
  <dish type="appetizer">
    <name lang="en">Caprese Salad</name>
    <chef>Chef Giovanni</chef>
    <price currency="USD">9.99</price>
  </dish>
  <dish type="main-course">
    <name lang="fr">Boeuf Bourguignon</name>
    <chef>Chef Marie</chef>
    <price currency="EUR">19.99</price>
  </dish>
  <dish type="dessert">
    <name lang="es">Tres Leches Cake</name>
    <chef>Chef Alejandro</chef>
    <price currency="MXN">89.99</price>
  </dish>
</restaurant>

To extract attribute content, specify the scope in the XMLTABLE function and provide the desired attribute name(s) in the WITH clause. Note that this will not work if the XMLTABLE function's child_type input is set to 2.

SELECT A.ID, X.type FROM [TableWithXMLField] A CROSS APPLY XMLTABLE(A.XMLContent,'//*/dish') WITH (type VARCHAR(255)) AS X

-- Results: 
|ID|type|
---------
|1|appetizer|
|1|main-course|
|1|dessert|

CSVTABLE(csv_content,[delimiter])

For each record in the resultset of the preceding table expression, reads from a column that contains a CSV table (csv_content) and for each record in that CSV table, returns one record containing the value of the CSV column(s) specified in the WITH clause.

  • csv_content: A column containing a CSV table.
  • delimiter: An optional custom delimiter (instead of a comma) which splits the CSV content contained in the csv_content input.

Consider a sample table with a single record, including an ID column and a column containing CSV table called "CSVContent" with the following content:

Name;Category;Price
Apple;Fruit;0.99
Spaghetti;Pasta;5.49
Chicken Breast;Meat;8.99
Broccoli;Vegetable;2.49

To select every value in the "Name" column and account for the custom delimiter (;):

SELECT A.ID, X.Name FROM [TableWithCSVField] A CROSS APPLY CSVTABLE(A.CSVContent,';') WITH (Name VARCHAR(255)) AS X

-- Results:
|ID|Name|
-----------
|1|Apple|
|1|Spaghetti|
|1|Chicken Breast|
|1|Broccoli|

CData Python Connector for Salesforce Marketing Cloud

INSERT Statements

To create new records, use INSERT statements.

INSERT Syntax

The INSERT statement specifies the columns to be inserted and the new column values. You can specify the column values in a comma-separated list in the VALUES clause, as shown in the following example:

INSERT INTO <table_name> 
( <column_reference> [ , ... ] )
VALUES 
( { <expression> | NULL } [ , ... ] ) 
  

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>
The following is an example query:
INSERT INTO Subscriber (Status) VALUES ('John')

CData Python Connector for Salesforce Marketing Cloud

UPDATE Statements

To modify existing records, use UPDATE statements.

Update Syntax

The UPDATE statement takes as input a comma-separated list of columns and new column values as name-value pairs in the SET clause, as shown in the following example:

UPDATE <table_name> SET <select_statement> | {<column_reference> = <expression> [ , ... ]} WHERE { Id = <expression>  } [ { AND | OR } ... ] 

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>

The following is an example query:

UPDATE Subscriber SET Status='John' WHERE Id = @myId

CData Python Connector for Salesforce Marketing Cloud

DELETE Statements

To delete information from a table, use DELETE statements.

DELETE Syntax

The DELETE statement requires the table name in the FROM clause and the row's primary key in the WHERE clause, as shown in the following example:

<delete_statement> ::= DELETE FROM <table_name> WHERE { Id = <expression> } [ { AND | OR } ... ]

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>

The following is an example query:

DELETE FROM Subscriber WHERE Id = @myId

CData Python Connector for Salesforce Marketing Cloud

CACHE Statements

When caching is enabled, CACHE statements provide complete control over the data that is cached and the table to which it is cached. The CACHE statement executes the SELECT statement specified and caches its results to a table with the same name in the cache database or to table specified in <cached_table_name>. The connector updates or inserts rows to the cache depending on whether or not they already exist in the cache, so the primary key, which is used to identify existing rows, must be included in the selected columns.

See Caching Data for more information on different caching strategies.

CACHE Statement Syntax

The cache statement may include the following options that alter its behavior:

CACHE [ <cached_table_name> ] [ WITH TRUNCATE | AUTOCOMMIT | SCHEMA ONLY | DROP EXISTING | ALTER SCHEMA ] <select_statement> 

WITH TRUNCATE

If this option is set, the connector removes existing rows in the cache table before adding the selected rows. Use this option if you want to refresh the entire cache table but keep its existing schema.

AUTOCOMMIT

If this option is set, the connector commits each row individually. Use this option if you want to ignore the rows that could not be cached due to some reason. By default, the entire result set is cached as a single transaction.

DROP EXISTING

If this option is set, the connector drops the existing cache table before caching the new results. Use this option if you want to refresh the entire cache table, including its schema.

SCHEMA ONLY

If this option is set, the connector creates the cache table based on the SELECT statement without executing the query.

ALTER SCHEMA

If this option is set, the connector alters the schema of the existing table in the cache if it does not match the schema of the SELECT statement. This option results in new columns or dropped columns, if the schema of the SELECT statement does not match the cached table.

Common Queries

Use the following cache statement to cache all rows of a table:

CACHE SELECT * FROM Subscriber

Use the following cache statement to cache all rows of a table into the cache table CachedSubscriber:

CACHE CachedSubscriber SELECT * FROM Subscriber

Use the following cache statement for incremental caching. The DateModified column may not exist in all tables. The cache statement shows how incremental caching would work if there were such a column. Also, notice that, in this case, the WITH TRUNCATE and DROP EXISTING options are specifically omitted, which would have deleted all existing rows.

CACHE CachedSubscriber SELECT * FROM Subscriber WHERE DateModified > '2013-04-04'

Use the following cache statements to create a table with all available columns that will then cache only a few of them. The sequence of statements cache only Id and Status even though the cache table CachedSubscriber has all the columns in Subscriber.

CACHE CachedSubscriber SCHEMA ONLY SELECT * FROM Subscriber
CACHE CachedSubscriber SELECT Id, Status FROM Subscriber

CData Python Connector for Salesforce Marketing Cloud

INSERT INTO SELECT Statements

Use INSERT INTO SELECT queries to select a list of records from one table and insert those same records into another table as a group. Inserting batches of records in this way may result in improved query performance compared to using many individual INSERT INTO queries.

The table whose records are selected for insertion into another table can be either a real table or a user-defined temporary table.

Inserting Records from Real Tables

To insert a group of records from one real, non-temporary, source table into another destination table, you can use an INSERT INTO SELECT query. This type of query is formatted similarly to a standard INSERT INTO query, except the VALUES clause is substituted with a SELECT query targeting the source table. All records matched by the embedded SELECT query are inserted into the destination table.

If the source table and destination tables have different column names, you must map columns from the source table to the corresponding columns in the destination table you want to insert them into. Perform this mapping by specifying the destination table columns in the same order as the source table columns you want to match them with. For example:

INSERT INTO DestinationTable (A,B,C,D) SELECT Q,R,S,T FROM SourceTable

In this example, the first source column (Q) is inserted into the first destination column (A), the second source column (R) is inserted into the second destination column (B), and so on.

If the source table and destination table both have the same column list with the same names, you can use a streamlined query.

INSERT INTO DestinationTableWithSameColumns SELECT * FROM SourceTable

In this example, there is no need to specify a list of columns for either the source or destination table, because their metadata already matches.

Inserting Records from Temporary Tables

You can manually define and populate temporary tables to hold a list of records for later bulk insertion.

Populate the Temporary Table

To create a temporary table, you must give it a name ending in "#TEMP" and execute an INSERT INTO query using that name, as if that table already existed in the database. After executing the first INSERT INTO, the temporary table exists and can receive subsequent INSERTs. For example:

INSERT INTO Subscriber#TEMP (Status, MyCustomField__c) VALUES ('New Subscriber', '9000');
INSERT INTO Subscriber#TEMP (Status, MyCustomField__c) VALUES ('New Subscriber 2', '9001');
INSERT INTO Subscriber#TEMP (Status, MyCustomField__c) VALUES ('New Subscriber 3', '9002');

This creates a temporary table called Subscriber#TEMP with two columns and three rows of data. Since type cannot be determined on the temporary table itself, all values are considered strings and later converted to the proper type when they are inserted together into the real (non-temporary) table of interest.

Insert Temporary Table Contents into Real Tables

Once your temporary table is populated, execute an INSERT INTO SELECT query targeting the real (non-temporary) table you want to insert the temporary table's records into. This is formatted similarly to a standard INSERT INTO query, except the VALUES clause is substituted with a SELECT query targeting the matching columns in the temporary table. For example:

INSERT INTO Subscriber (Status, MyCustomField__c) SELECT Status, MyCustomField__c FROM Subscriber#TEMP
In this example, the full contents of Subscriber#TEMP are inserted into the Subscriber.

Results

The LastResultInfo#TEMP temporary table contains details about the most recently executed query that uses the contents of a temporary table in an embedded SELECT clause, as is the case for INSERT INTO SELECT queries that use a temporary table as the source of records. This table is cleared and repopulated each time such a query is executed. LastResultInfo#TEMP includes information such as whether the query in question succeeded, and how many rows were affected by the query.

Temporary Table Lifespan

Temporary tables only last as long as the connection remains open. When the connection to Salesforce Marketing Cloud is closed, all temporary tables are cleared, including the LastResultInfo#TEMP table.

CData Python Connector for Salesforce Marketing Cloud

UPDATE SELECT Statements

To perform multiple updates in a single request to Salesforce Marketing Cloud,first use the INSERT INTO syntax to insert a temporary table of data into Salesforce Marketing Cloud. This works by first populating a temporary table with the data you are going to submit to Salesforce Marketing Cloud. Once you have all of the data you want to update, use UPDATE SELECT FROM to pass the temporary table data into the table in Salesforce Marketing Cloud.

Populate the Temporary Table

The temporary table you are populating is dynamic and is created at run time the first time you insert to it. Temporary tables are denoted by a # appearing in their name. When using a temporary table to update, the temporary table must be named in the format [TableName]#TEMP, where TableName is the name of the table you are inserting to. For example:

INSERT INTO Subscriber#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000001', 'New Subscriber', '9000');
INSERT INTO Subscriber#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000002', 'New Subscriber 2', '9001');
INSERT INTO Subscriber#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000003', 'New Subscriber 3', '9002');

This creates a temporary table called Subscriber#TEMP with three columns and three rows of data. Since type cannot be determined on the temporary table itself, all values are stored in memory as strings. The values are later converted to the proper type when they are submitted to the Subscriber table.

Update the Actual Table

Once your temporary table is populated, it is now time to update the actual table in Salesforce Marketing Cloud. You can do this by performing an UPDATE to the actual table and selecting the input data from the temporary table. For example:

UPDATE Subscriber (Id, Status, MyCustomField__c) SELECT Id, Status, MyCustomField__c FROM Subscriber#TEMP
In this example, the full contents of the Subscriber#TEMP table are passed into the Subscriber table. This results in fewer requests being submitted to Salesforce Marketing Cloud since multiple updates may be submitted with each request, which is much better for performance if you have many records to update.

Results

The results of the query are stored in the LastResultInfo#TEMP temporary table. This table is cleared and repopulated the next time data is modified by passing in a temporary table. Please be aware that the LastResultInfo#TEMP table has no predefined schema. You need to check its metadata at run time before reading data.

Temporary Table Life Span

Temporary tables only last as long as the connection remains open. When the connection to Salesforce Marketing Cloud is closed, all temporary tables are cleared, including the LastResultInfo#TEMP table.

CData Python Connector for Salesforce Marketing Cloud

Data Model

The CData Python Connector for Salesforce Marketing Cloud models Salesforce Marketing Cloud data as an easy-to-use SQL database with tables, views, and stored procedures.

The connector exposes two schemas:

  • The REST API exposes broad access to Salesforce Marketing Cloud capabilities. All new Salesforce Marketing Cloud technologies implement the REST API. See REST Data Model for the available entities in the REST API.
  • The SOAP API provides comprehensive access to most email functionality. The SOAP API uses SOAP envelopes to pass information between you and Salesforce Marketing Cloud. See SOAP Data Model for the available entities in the SOAP API.

CData Python Connector for Salesforce Marketing Cloud

REST Data Model

The CData Python 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 Python 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.

Stored Procedures

Stored Procedures are actions that are invoked via SQL queries. They perform tasks beyond standard CRUD operations, including checking job status and managing OAuth access.

CData Python Connector for Salesforce Marketing Cloud

Tables

The connector models the data in Salesforce Marketing Cloud as a list of tables in a relational database that can be queried using standard SQL statements.

CData Python Connector for Salesforce Marketing Cloud Tables

Name 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. This table allows you to create, update, delete, and query these assets to support consistent brand messaging across campaigns and channels.
Callbacks Manages event notification callbacks that are configured in Salesforce Marketing Cloud. A callback defines an endpoint that receives real-time notifications when specified system events occur, such as message delivery or data import completion. This table allows you to create, update, delete, and query callback definitions to automate event-driven workflows.
CampaignAssets Maintains relationships between campaigns and their associated assets in Salesforce Marketing Cloud. Each record links campaign initiatives with digital assets such as email templates, images, or social media content. This table supports create, update, delete, and query operations for managing campaign resources effectively.
Campaigns Represents campaigns in Salesforce Marketing Cloud. Each campaign groups related marketing efforts and performance metrics under a single initiative. This table allows you to create, update, delete, and query campaigns to manage lifecycle stages, track engagement, and associate related assets or audiences.
Categories Create, update, delete and query categories(folders) in Content Builder.
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. This table allows you to create, delete, and query event definitions to orchestrate customer experiences.
FacebookMessengerProperties Defines properties for Facebook Messenger integrations in Salesforce Marketing Cloud. These properties control how messages are formatted, delivered, and tracked within Facebook channels. This table allows you to query existing properties or create new configurations to manage social messaging campaigns.
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. This table allows you to create, update, and query journey activities to refine automation workflows.
Journeys Represents customer journeys in Salesforce Marketing Cloud. A journey defines an automated, multi-step process that guides contacts through personalized interactions across channels. This table allows you to create, update, delete, and query journey definitions to manage audience engagement strategies.
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. This table allows you to query and create properties to support messaging automation for the LINE platform.
SendDefinitions Stores send definitions in Salesforce Marketing Cloud. A send definition specifies the parameters for email, Short Message Service (SMS), or push sends, including target audiences, content, and delivery options. This table allows you to create, update, delete, and query send definitions to manage outbound communication workflows.
Subscriptions Create, update, delete and query event notification subscriptions.

CData Python Connector for Salesforce Marketing Cloud

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. This table allows you to create, update, delete, and query these assets to support consistent brand messaging across campaigns and channels.

Table Specific Information

Select

Select all assets:

SELECT * FROM ASSETS

Retrieve a specific asset:

SELECT * FROM ASSETS WHERE ID = 20088

Advanced server side filtering using 'AND' and 'OR' logical operators are supported for this table. You can check in the table info if the column has supported filters. All the columns which have supported filters, also can be sorted server side.

SELECT * FROM ASSETS WHERE (Id = 5895 OR Id = 19442) AND EnterpriseId = 7307527 ORDER BY Name ASC, Id DESC

Insert

To create an Asset, you will need to specify at least the Name and TypeId column.

INSERT INTO ASSETS (TypeID, TypeName, Name) VALUES (207, 'templatebasedemail', 'First_Based_Template_Email_CData')

Update

Assets may be modified by providing the Id of the Asset and issuing an UPDATE statement.

UPDATE ASSETS SET Description = 'This is an updated asset.', Data = '
  "campaigns": {
    "campaigns": [
      {
        "campaignId": 12345,
        "campaignAssociationId": 2387
      }
    ]
  },
  "email": { } ... }'  WHERE ID = 19442

Delete

Assets may be deleted by providing the Id of the Asset and issuing a DELETE statement.

DELETE FROM ASSETS WHERE ID = 20027

Columns

Name Type ReadOnly References Filters Description
Id [KEY] Integer True =,!=,<,<=,>,>=

Identifies the unique record for the asset in Salesforce Marketing Cloud. This system-generated value is immutable and serves as the primary reference for all internal relationships, audit logs, and API operations. It links the asset to its associated metadata such as owner, category, and asset type, and is required for replication tracking and dependency resolution during publishing or enterprise sharing.

CustomerKey String False =,!=

Stores the customer-defined key or external identifier (Id) for the asset. This human-readable key is unique within a business unit and allows developers or marketers to reference the asset programmatically through REST or SOAP API operations. Unlike the system-generated Id or ObjectId fields, this key maintains referential integrity during migrations or environment synchronization. When not provided, the system automatically derives it from the asset name.

ObjectId String True

Contains the system-controlled, read-only text string that globally identifies the asset object. Unlike the Id field, which represents the local record Id within a specific environment, this field remains consistent across services, API layers, and replicated versions of the same asset. It enables the platform to track and reconcile an asset's identity across business units, environments, and publishing workflows.

Name String False =,!=

Specifies the display name that identifies the asset in the Content Builder module, the REST API, and automation tools. This value is defined by the user and used by marketers to locate, reference, and reuse assets across multiple campaigns. Renaming an asset updates its metadata but does not affect integrations that reference the CustomerKey.

Description String False =,!=

Provides a human-readable explanation of the asset's content, purpose, or intended audience. This description improves search accuracy, filtering, and collaboration within shared libraries. It can be updated freely and is displayed in both the UI and API results to assist with documentation and compliance review.

OwnerId Integer True =,!=,<,<=,>,>=

Identifies the user or business unit that owns the asset. This value defines edit and publish permissions and establishes accountability within enterprise environments. Ownership metadata is propagated to shared business units to preserve audit traceability. Changing this value can modify access rights in approval or publishing workflows.

OwnerName String True =,!=

Displays the full name of the asset owner for visibility and collaboration. This value mirrors the user record that is associated with the OwnerId field and helps administrators coordinate updates and enforce brand stewardship policies.

OwnerEmail String True =,!=

Holds the email address of the asset owner for audit reports, approval notifications, and workflow communication. This field supports compliance by enabling direct contact with content custodians and updates automatically when the owner's profile changes in Account Settings.

OwnerUserId Integer True

Links the asset owner to their internal user record. This numeric Id verifies permissions when publishing or sharing assets and functions as a join field for ownership validation across enterprise business units.

CreatedDate Datetime True =,!=,<,<=,>,>=

Records the date and time when the asset was first created in Salesforce Marketing Cloud. This timestamp is automatically generated and cannot be modified. It supports reporting dashboards, content lifecycle analytics, and compliance audit trails to identify creation trends and authorship.

CreatorId Integer True =,!=,<,<=,>,>=

Identifies the user who originally created the asset. This Id persists even if ownership later changes and supports accountability in activity-based reporting or historical audits. It ensures that original authorship is preserved for governance and performance review.

CreatorName String True

Shows the full name of the user who created the asset. This information appears in system logs, API metadata, and collaboration interfaces, allowing reviewers to attribute original authorship during approval or migration processes.

CreatorEmail String True

Holds the email address of the user who created the asset. This address is used to identify the original creator in audit notifications or cross-business-unit requests. It remains static even if the creator's role or access level changes later.

CreatorUserId Integer True

Links the asset creation event to the specific internal user record. This Id enables precise permission validation, and it is referenced in governance reporting and automation scripts to attribute imported assets to valid users.

ModifiedDate Datetime True =,!=,<,<=,>,>=

Captures the most recent date and time when the asset was modified. This value updates automatically upon any change to the asset's content or metadata. It underpins version tracking, synchronization, and rollback operations, helping administrators identify assets requiring review before publication.

ModifierId Integer True =,!=,<,<=,>,>=

Identifies the user who most recently modified the asset. This field provides traceability in shared environments and enables auditors to determine who performed the last update. It is referenced in version control processes to associate each revision with a specific editor.

ModifierName String True

Shows the name of the user who last modified the asset. This value appears in audit logs and the Content Builder details pane, informing collaborators of recent updates and supporting distributed review workflows.

ModifierEmail String True

Holds the email address of the user who most recently modified the asset. This address supports workflow notifications or change-request follow-ups and stays synchronized with user profile data to maintain audit consistency.

ModifierUserId Integer True

Links modification events to the user account that performed them. This Id connects the revision history to permission models, ensuring accurate accountability in compliance and quality-assurance reports.

EnterpriseId Integer True =,!=,<,<=,>,>=

Identifies the enterprise-level business unit that governs the asset. This value represents the root organization in an Enterprise 2.0 hierarchy and remains constant even when the asset is replicated or shared across subordinate units. In contrast, the MemberId field specifies the individual business unit that owns or manages the asset locally.

MemberId Integer True =,!=,<,<=,>,>=

Stores the Marketing Cloud Member Id (MID) for the business unit that owns the asset. This value defines the operational context for editing, localization, and data governance. Whereas the EnterpriseId field identifies the overarching enterprise parent, this field determines ownership and access permissions within that unit and is evaluated alongside EnterpriseId to resolve sharing scope and publishing rights.

ActiveDate Datetime False =,!=,<,<=,>,>=

Defines the date and time when the asset becomes active or available for use. When no value is supplied, the asset is active immediately upon creation.

ExpirationDate Datetime False =,!=,<,<=,>,>=

Defines when the asset expires or becomes inactive. After this date, the asset can no longer be used in new sends or automations but remains accessible for reporting. Used together with the ActiveDate field, it enforces lifecycle governance to prevent reuse of outdated content.

ContentType String False =,!=

Specifies the format or media category of the asset (for example, HTML, Text, Image, or JSON). This field determines which rendering engine and delivery channels are supported and ensures compatibility between asset design and targeted output medium.

TypeId Integer False =,!=,<,<=,>,>=

Identifies the asset's structural type definition within Salesforce Marketing Cloud. This system reference links the asset to internal metadata that controls supported properties, channels, and rendering logic.

TypeName String False

Indicates the internal technical name of the asset type. This value is used in API filtering and classification, enabling automation scripts to determine processing rules for specific asset formats during import or export.

TypeDisplayName String False

Provides the user-friendly display name of the asset type. This label appears in the Content Builder interface and reporting views to describe the content kind (for example, Email Template or Image File), helping users recognize content categories quickly.

CategoryId Integer False =,!=,<,<=,>,>=

Links the asset to the category or folder where it resides. Categories organize assets hierarchically for storage and access control and are evaluated when determining folder permissions and applying Content Builder filters for retrieval.

CategoryName String False

Displays the name of the category or folder that contains the asset. This value supports navigation and search within Content Builder's folder hierarchy and maintains consistency between UI and API folder structures.

CategoryParentId Integer False

References the parent category of the folder containing the asset. This value defines the hierarchical relationship between nested folders and supports inherited permissions and breadcrumb navigation.

Content String False =,!=

Contains the main content of the asset. This field can hold HTML markup, JSON configuration, or text that is used to render messages and pages. The message compiler reads this field directly during send execution to generate personalized output.

Design String False =,!=

Defines fallback design data that used when neither the primary Content nor SuperContent field is available. This field ensures a consistent layout by providing default visuals or placeholders and preserves rendering integrity in conditional-content assets.

SuperContent String False =,!=

Contains enhanced content that overrides the standard Content field during rendering. Typically used for localized or dynamic variations, this field allows targeted delivery of alternate layouts or messages when conditions are met.

File String False

Stores a Base64-encoded binary representation of a file that is associated with the asset. Supported media include images, documents, or templates uploaded to Content Builder. The file is validated for size and type according to the FileProperties field before distribution or publication.

FileProperties String False

Holds structured metadata about file-type assets, including file name, extension, size, and content type. These properties are generated automatically during upload and used to validate compatibility, enforce storage policies, and optimize asset delivery performance.

ForwardHtml String False

Contains the HTML markup that is used for the 'Forward to a Friend' version of the asset. This version renders when a recipient forwards the message using the platform's forwarding feature. This field preserves layout, branding, and personalization tokens where permitted to maintain a consistent experience across email clients.

ForwardText String False

Provides the plain-text equivalent of the 'Forward to a Friend' view. This version appears when a recipient's mail client or the forward flow supports text-only rendering. Including this view ensures accessibility and reliable delivery in environments that restrict HTML.

HtmlContent String False

Contains the primary HTML that is used by the compiler to render the asset during message generation. This field can include layout elements, reusable blocks, and personalization tokens that resolve for each recipient. Maintaining valid, lightweight HTML improves rendering accuracy and deliverability.

HtmlSlots String False

Defines named content regions, or slots, within the asset's HTML layout. Each slot acts as a placeholder where blocks or dynamic content can be inserted during authoring or send compilation. Well-defined slots standardize layouts while preserving design flexibility.

HtmlTemplate String False

References the base HTML template that governs the asset's structure and styling. The template determines available slots, shared components, and default formatting. Using consistent templates enforces brand standards and accelerates campaign creation.

Preheader String False

Stores the preheader text that appears beside or below the subject line in many inboxes. This short summary gives recipients additional context and encourages opens. The compiler evaluates this text at send time, and marketers can edit it in Content Builder.

SubjectLine String False

Specifies the subject line used for an email asset. The subject line directly influences open rates and must accurately reflect message content. This field can include personalization tokens that resolve during send execution.

SubscriptionCenter String False

Links the asset to an associated subscription-management experience. This connection enables recipients to manage preferences such as topics, frequency, and channels. Integrating assets with subscription centers supports compliance and reduces opt-out churn.

Text String False

Holds the plain-text representation of the asset for recipients who use text-only mail clients or prefer simplified messages. This field conveys the same information as the HTML version and includes required compliance text. Providing both formats improves accessibility and deliverability.

ViewAsAWebPage String False

Defines the configuration for the 'View as a Web Page' option in email assets. When this option is enabled, recipients can open the message in a browser to view a fully rendered version independent of client restrictions. This feature also aids troubleshooting and content review.

GenerateFrom String False

Specifies which view or template the compiler should use to generate the final version of the asset. This field directs the system to resolve the appropriate slots and content blocks for the selected channel. Using the correct source view ensures consistent presentation across automations and triggered sends.

Slots String False

Lists all content slots that are available within the asset. Each slot represents a defined region that can contain blocks or dynamic content during design. Establishing clear slot definitions provides structure and prevents layout errors.

Blocks String False

Lists the content blocks that compose the asset. Blocks are reusable modules such as images, text, buttons, or dynamic content elements that are inserted into slots. Standardized blocks speed production and preserve brand consistency.

MinBlocks Integer False

Specifies the minimum number of content blocks that are required for the asset to be considered complete. Authoring tools might enforce this rule to prevent incomplete designs and maintain layout integrity.

MaxBlocks Integer False

Specifies the maximum number of blocks that the asset can contain. This limit prevents overloaded layouts, improves rendering performance, and ensures a balanced design across devices.

AllowedBlocks String False

Lists the block types that are permitted within the asset. Restricting allowed blocks maintains technical compatibility and enforces creative guidelines. Validation occurs during authoring and send compilation to ensure compliance with design standards.

Template String False

Identifies the template that defines the asset's foundational layout and default styling. Templates establish reusable frameworks that simplify localization and seasonal updates while maintaining visual consistency.

CustomFields String False

Contains user-defined metadata fields that extend the standard asset schema. Custom fields capture workflow details, targeting notes, or reporting tags used during production. They appear in both the UI and APIs for automation and governance.

Data String False

Stores a set of key-value pairs that represent dynamic asset data. These values can be accessed by AMPscript or personalization logic during message compilation. Maintaining concise, well-structured data improves performance and readability.

Channels String False

Lists the delivery channels through which the asset can be used (for example, 'Email', 'SMS', 'Push', or 'Social'). Declaring supported channels guides validation and prevents use of incompatible assets. Clear channel assignment streamlines content discovery for multi-channel teams.

Version Integer False

Tracks the sequential version number of the asset. Each increment represents a published or saved milestone that supports rollback and approval workflows. Version tracking provides transparent change history for audit and collaboration.

Locked Boolean False

A Boolean field that returns a value of 'true' when the asset is locked to prevent edits or deletion, typically during approval, publication, or governance review. It returns a value of 'false' when the asset is open for modification. This state integrates with Content Builder approvals to safeguard approved content during campaigns.

Status String False

Defines the current workflow state of the asset (for example, 'Draft', 'Approved', 'Published', or 'Archived'). Status determines whether the asset can be used in sends and whether additional approval is required before editing. Consistent status management improves operational visibility and compliance.

Tags String False

Stores tags that are associated with the asset for filtering, search, and reporting. Tags help teams organize libraries by theme, campaign, or audience. Using standardized tags improves discoverability and reduces duplication.

BusinessUnitAvailability String False

Contains a mapping of business-unit Ids (MIDs) that are authorized to access or use the asset. This field ensures that shared content remains visible yet protected from unauthorized modification.

SharingProperties String False

Defines the configuration rules for sharing assets across business units that have Content Builder Sharing enabled. This field controls how those assets behave once they are shared, whether they replicated, synchronized, or linked as read-only copies. These settings maintain enterprise-wide content consistency while preserving source control.

CData Python Connector for Salesforce Marketing Cloud

Callbacks

Manages event notification callbacks that are configured in Salesforce Marketing Cloud. A callback defines an endpoint that receives real-time notifications when specified system events occur, such as message delivery or data import completion. This table allows you to create, update, delete, and query callback definitions to automate event-driven workflows.

Table Specific Information

Select

Select all callbacks:

SELECT * FROM Callbacks

Retrieve a specific callback:

SELECT * FROM Callbacks WHERE CallbackId = 94766

Insert

To create a Callback, you will need to specify at least the CallbackName and Url column.

INSERT INTO [Callbacks] (CallbackName, Url) VALUES ('cb1', 'https://example.com')

Update

Callbacks may be modified by providing the CallbackId of the callback and issuing an UPDATE statement.

UPDATE [Callbacks] SET CallbackName = 'cb update' WHERE CallbackId = '34cd6cfe-5a21-4f3e-94c5-b6313a6954a4'

Delete

Callbacks may be deleted by providing the CallbackId of the callback and issuing a DELETE statement.

DELETE FROM [Callbacks] WHERE CallbackId = '43841979-7154-4fc4-9789-909dbba3a54f'

Columns

Name Type ReadOnly References Filters Description
CallbackId [KEY] String False =

Identifies the unique string value that represents the event notification callback within Salesforce Marketing Cloud. This system-generated identifier (Id) is used to register, track, and manage callbacks that are defined for API event notifications.

CallbackName String False

Specifies the name that defines the event notification callback. This user-assigned label is used to identify callbacks in administrative views and API responses and helps distinguish multiple notification configurations that can exist within an account.

Url String False

Defines the endpoint URL that the system calls when an event notification is triggered. This value must be a valid, reachable URL that receives HTTPS POST requests containing payload data for subscribed events.

MaxBatchSize Integer False

Indicates the maximum number of event notifications that can be included in a single callback batch. This value controls the payload size for each delivery cycle and helps balance throughput against network performance. The system enforces this limit to optimize event dispatch efficiency.

Status String False

Defines the current operational state of the event notification callback (for example, 'Active', 'Paused', or 'Disabled'). This field determines whether the callback is currently processing notifications or awaiting reactivation. Monitoring callback status helps ensure uninterrupted event delivery.

StatusReason String False

Provides a descriptive reason that explains the callback's current status. This field records contextual information, such as error responses or administrative actions, that is used to diagnose callback issues or justify configuration changes.

CData Python Connector for Salesforce Marketing Cloud

CampaignAssets

Maintains relationships between campaigns and their associated assets in Salesforce Marketing Cloud. Each record links campaign initiatives with digital assets such as email templates, images, or social media content. This table supports create, update, delete, and query operations for managing campaign resources effectively.

View Specific Information

Select

Select all campaign assets for a specific campaign:

SELECT * FROM CampaignAssets WHERE CampaignId = '3130'

Retrieve a specific Campaign:

SELECT * FROM CampaignAssets WHERE CampaignId = '3130' AND Id = '3325'

Columns

Name Type ReadOnly References Filters Description
Id [KEY] Integer True =

Identifies the unique record for each campaign asset in Salesforce Marketing Cloud. This system-generated identifier (Id) serves as the primary key that is used to reference the campaign asset in API calls, reporting, and campaign management workflows.

CampaignId Integer True =

Stores the Id of the campaign with which that the asset is associated. This value links the asset to its parent campaign, allowing Marketing Cloud to group and report assets that contribute to a specific marketing initiative. It ensures data integrity and supports cross-channel campaign tracking.

Type String False

Specifies the classification or type of campaign asset (for example, 'Email', 'Landing Page', or 'Content Block'). This field determines how the asset is processed and displayed in campaign analytics and reporting dashboards.

ItemId String False

Stores the internal object Id that represents the specific asset within Salesforce Marketing Cloud. This value links the campaign asset record to its source object, such as a Content Builder item or send definition, enabling end-to-end traceability between campaign components and asset instances.

CreatedDate Datetime False

Records the exact date and time when the campaign asset was created. This timestamp is system-generated and used for audit trails, campaign versioning, and time-based analytics. It helps marketers track asset creation trends and manage campaign lifecycle events.

CData Python Connector for Salesforce Marketing Cloud

Campaigns

Represents campaigns in Salesforce Marketing Cloud. Each campaign groups related marketing efforts and performance metrics under a single initiative. This table allows you to create, update, delete, and query campaigns to manage lifecycle stages, track engagement, and associate related assets or audiences.

Table Specific Information

Select

Select all campaigns:

SELECT * FROM Campaigns

Retrieve a specific Campaign:

SELECT * FROM Campaigns WHERE Id = '3130'

Insert

To create a campaign, you will need to specify at least the Name column.

INSERT INTO [Campaigns] (Name, Description, CampaignCode, Color, Favorite) VALUES ('Test Camp', 'Test Description', 'tst 001', '0000ff', true)

Update

UPDATE operations are not supported for this table.

Delete

Campaigns may be deleted by providing the CampaignId of the campaign and issuing a DELETE statement.

DELETE FROM [Campaigns] WHERE Id = '5161'

Columns

Name Type ReadOnly References Filters Description
Id [KEY] Integer True =

Identifies the unique record for each campaign in Salesforce Marketing Cloud. This system-generated identifier (Id) serves as the primary key that is used to reference the campaign in API calls, analytics, and campaign management workflows. It ensures data integrity and supports reporting relationships across assets, sends, and journeys.

Name String False

Specifies the name that identifies the campaign. This user-defined value appears in Marketing Cloud dashboards, reports, and automation interfaces. Maintaining a clear and consistent naming convention helps users quickly locate and organize campaigns across business units.

CampaignCode String False

Stores the custom code that uniquely represents the campaign. This value can be used for cross-platform integration, analytics tracking, or external system synchronization. Campaign codes help align Marketing Cloud campaigns with third-party customer relationship management (CRM) or advertising identifiers.

Color String False

Defines the hexadecimal or predefined color value that represents the campaign visually in the user interface. This color helps users differentiate campaigns quickly in dashboards and overview reports.

Favorite Boolean False

A Boolean field that returns a value of 'true' when the campaign is marked as a favorite by the user. It returns a value of 'false' when it is not marked as a favorite. Marking a campaign as a favorite adds it to personalized quick-access lists within the user interface for faster navigation.

CreatedDate Datetime False

Records the date and time when the campaign was first created. This system-generated timestamp supports audit tracking, campaign lifecycle management, and time-based reporting. It is immutable and reflects the campaign's original creation event.

ModifiedDate Datetime False

Records the most recent date and time when the campaign was updated. This timestamp is automatically refreshed whenever campaign details or metadata are changed. It enables teams to track modification activity and identify recently edited campaigns.

Description String False

Provides a summary that explains the purpose, scope, or target audience of the campaign. This field supports search, categorization, and collaboration by offering context for marketing goals and key initiatives within Salesforce Marketing Cloud.

CData Python Connector for Salesforce Marketing Cloud

Categories

Create, update, delete and query categories(folders) in Content Builder.

Table Specific Information

Select

Select all categories:

SELECT * FROM Categories

Retrieve all categories which have a specific ParentId:

SELECT * FROM Categories WHERE ParentId = 71839

Retrieve a specific category:

SELECT * FROM Categories WHERE Id = 94766

All the columns except SharedWith and SharingType can be sorted server side:

SELECT * FROM Categories ORDER BY Name ASC

Insert

To create a Category, you will need to specify at least the Name and ParentId column.

INSERT INTO Categories (Name, ParentId, categoryType) VALUES ('New New New Folder', 71839, 'asset')

Update

Categories may be modified by providing the Id of the category and issuing an UPDATE statement.

UPDATE Categories SET SharedWith = '333,555,888', SharingType = 'edit', EnterpriseId = 12345 WHERE Id = 71839

Delete

Categories may be deleted by providing the Id of the category and issuing a DELETE statement.

DELETE FROM Categories WHERE Id = 94843

Columns

Name Type ReadOnly References Filters Description
Id [KEY] Integer True =

The Id of the category(folder) in Content Builder.

Name String False

Name of the category.

ParentId Integer False =

ID of the parent category.

CategoryType String False

The type of category, either asset or asset-shared, which is automatically set to the CategoryType of the parent category. If set to asset-shared, include the SharingProperties in the call.

EnterpriseId Integer False

ID of the enterprise this business unit belongs to.

MemberId Integer False

ID of the member who creates the category.

SharedWith String False

List of up to 100 MID IDs the category is shared with. To share the category with all business units in the enterprise, and if your account has access to Content Builder Across Enterprise Sharing, set this to 0. SharedWith cannot contain 0 and other MIDs simultaneously. Since shared categories live in and are owned by the enterprise business unit, don't include the enterprise business unit in the SharedWith property.

SharingType String False

Indicates the permission that you are granting to the list of MIDs in sharedWith. The only possible value for categories is edit.

The allowed values are edit.

Description String False

Description of the category.

CData Python Connector for Salesforce Marketing Cloud

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. This table allows you to create, delete, and query event definitions to orchestrate customer experiences.

Table Specific Information

Select

Retrieve all event definitions:

SELECT * FROM EventDefinitions

Retrieve a specific event definition:

SELECT * FROM EventDefinitions WHERE Id = '9955614b-02e7-4147-91a2-3f5f5fe9d679'

Retrieve all event definitions which are running in a specific mode:

SELECT * FROM EventDefinitions WHERE Mode = 'Test'

Retrieve all event definitions which contain the specified quoted phrase in their names:

SELECT * FROM EventDefinitions WHERE CONTAINS (Name, 'Welcome Journey')

Insert

To create an event definition, you will need to specify at least the Name and Type column. DataExtensionId is also required. If you do not specify it, you must specify the Schema column.

INSERT INTO EventDefinitions (Type, Name, DataExtensionId, IsVisibleInPicker) VALUES ('Event', 'FirstEventDefinition', '74bc3342-eaca-e711-b98f-38eaa71427a1', true)

Delete

Event definitions may be deleted by providing the Id of the event definition and issuing a DELETE statement.

DELETE FROM EventDefinitions WHERE Id = 'f10efb9e-cb91-4fc9-be50-c20f00f7f255'

Columns

Name Type ReadOnly References Filters Description
Id [KEY] String True =

Specifies the unique identifier (Id) that represents the event definition in Salesforce Marketing Cloud. This system-generated value is used to reference the event definition in Journey Builder, Event Administration, and API operations.

Type String False

Defines the type of the event definition. The event type determines how the event is initiated and processed within Journey Builder.

The allowed values are Event, ContactEvent, DateEvent, RestEvent.

Name String False Contains

Specifies the name that identifies the event definition in Marketing Cloud. This name appears in Event Administration and Journey Builder interfaces and helps users distinguish among available event sources.

CreatedDate Datetime True

Records the date and time when the event definition was created. This timestamp is automatically assigned and supports audit tracking and historical reporting.

CreatedBy Integer True

Specifies the Id of the user who created the event definition. This reference enables audit traceability and assists administrators in reviewing ownership or activity history.

ModifiedDate Datetime True

Records the most recent date and time when the event definition was updated. This value updates automatically whenever any configuration property is changed.

ModifiedBy Integer True

Specifies the Id of the user who last modified the event definition. This field helps track configuration updates for governance and compliance auditing.

Mode String False =

Defines the operational mode that determines how the event definition runs. Mode settings affect whether events are triggered manually, by schedule, or through API calls.

The allowed values are Production, Test.

The default value is Production.

EventDefinitionKey String False

Specifies the external key that uniquely identifies the event definition in Salesforce Marketing Cloud. This key must be unique and cannot contain special characters. It provides a stable reference across environments and API integrations.

DataExtensionId String False

Specifies the Id of the data extension that is associated with the event. When an event is fired through the API, the system writes event data to this data extension. This parameter is required when no schema is provided.

DataExtensionName String False

Displays the read-only name of the data extension that is associated with the event. This value helps users verify which data extension is linked to a specific event definition.

Description String False

Provides a summary that describes the purpose or behavior of the event definition. Including a meaningful description improves discoverability and documentation accuracy across business units.

Schema String False

Specifies the schema information that defines the structure of event data. When no data extension Id is provided, this schema is used to create the corresponding data extension automatically. This property ensures that incoming event data conforms to the expected format.

SendableCustomObjectField String False

Defines the field within the associated data extension that stores the subscriber key or email address. This value is required when defining a schema and enables message sends and contact association.

SendableSubscriberField String False

Indicates the type of subscriber field that the event definition uses to identify recipients. This field is required when defining a schema to ensure proper linkage between contact records and event data.

Schedule String False

Defines the scheduling information for an event-driven automation that runs daily according to the specified timing. When a schedule is configured, the system automatically creates a Fire Event activity in Automation Studio that triggers events from the associated data extension.

FilterDefinitionId String False

Specifies the Id of the filter definition that applies to the event. Filter definitions allow targeted event processing by limiting the scope of contacts that qualify for triggering.

FilterDefinitionTemplate String False

Specifies the template that is used to create or apply a filter definition for the event. Templates help standardize segmentation logic across event definitions.

IconUrl String False

Specifies the URL of the icon that represents the event definition in Event Administration and the Journey Builder Canvas. The icon provides a visual cue that helps users recognize the event type quickly.

Arguments String False

Contains filter criteria that define how the event data is evaluated before triggering.

Configuration String False

Specifies additional configuration data for the event.

ConfigurationArguments String False

Defines the set of arguments that configure how the event definition executes. These arguments can include dynamic parameters, mappings, or service endpoints used during event processing.

Metadata String False

Contains optional metadata that describes the event and its configuration properties. This parameter is typically used for event types other than 'Event' to store descriptive or operational information that supplements the definition.

InteractionCount Integer False

Records the total number of interactions that are associated with the event definition. This value provides insight into event usage and frequency within Journey Builder.

IsVisibleInPicker Boolean False

A Boolean field that returns a value of 'true' when the event definition is visible in the Event Picker for use in Journey Builder configuration. It returns a value of 'false' when the event is hidden or reserved for system use.

The default value is true.

Category String False

Specifies the general category or classification of the event type. Categories help group events by function or source for easier discovery and filtering in administrative tools.

The default value is event.

PublishedInteractionCount Integer False

Records the number of published interactions that use the event definition. This value helps determine the event's adoption and deployment within live journeys.

AutomationId String False

Specifies the Id of the automation that is linked to the event definition. This reference connects the event configuration to its corresponding Automation Studio workflow.

CData Python Connector for Salesforce Marketing Cloud

FacebookMessengerProperties

Defines properties for Facebook Messenger integrations in Salesforce Marketing Cloud. These properties control how messages are formatted, delivered, and tracked within Facebook channels. This table allows you to query existing properties or create new configurations to manage social messaging campaigns.

Table Specific Information

Select

Retrieve all registred facebook messenger properties:

SELECT * FROM FacebookMessengerProperties

Retrieve a specific registred facebook messenger property:

SELECT * FROM FacebookMessengerProperties WHERE PageId = '1732555047025799'

Insert

To register a new facebook messenger property you must specify PageId, ApplicationId, ApplicationSecret, PageName, PageAccessToken, CallbackVerifyToken, EndpointUrl and ApiVersion:

INSERT INTO FacebookMessengerProperties (PageId, ApplicationId, ApplicationSecret, PageName, PageAccessToken, EndpointUrl, CallbackVerifyToken, ApiVersion) VALUES ('1732555047025799', '1093076390764037', '03d537gg656gvkbe9b430f002e9c4517', 'SFMC Engineers', 'someaccesstoken4fasdcruib213123knubkdnfisdubnu12312ub3pijnb', 'https://graph.facebook.com/v2.6/me/messages', 'this_is_the_verify_token', 'v2.0')

Columns

Name Type ReadOnly References Filters Description
PageId [KEY] String False =

Specifies the unique identifier (Id) of the Facebook Page that is connected to the Messenger property. This identifier allows Salesforce Marketing Cloud to associate outgoing messages and incoming events with the correct Facebook Page.

ApplicationId String False

Specifies the Facebook Application Id that is registered for use with the Messenger integration. This value links the Salesforce Marketing Cloud account to a specific Facebook Application configuration for API authentication and message delivery.

ApplicationSecret String False

Specifies the Facebook application secret key that is used with the ApplicationId value to authenticate API requests. This value should be stored securely because it grants access to the associated Facebook App and its Messenger permissions.

PageName String False

Specifies the name of the Facebook page that is connected to the Messenger property. This name appears in user-facing interfaces and helps identify the origin of messages within Salesforce Marketing Cloud.

PageAccessToken String False

Specifies the access token that is required to authenticate message send requests to the Facebook Graph API. This token allows Salesforce Marketing Cloud to post messages, retrieve replies, and handle event callbacks for the connected page.

CallbackVerifyToken String False

Specifies the verification token that Facebook uses to validate webhook callbacks. This token ensures that incoming callback events originate from Facebook and have not been tampered with.

EndpointUrl String False

Specifies the Send API endpoint URL of the Facebook network. Salesforce Marketing Cloud uses this URL to deliver outbound messages and event notifications through the Facebook Graph API.

IsActive Boolean False

A Boolean field that returns a value of 'true' when the Facebook Messenger property is active and available for use. It returns a value of 'false' when the property is disabled, expired, or not linked to a valid page.

ApiVersion String False

Specifies the Facebook Graph API version that is used for the Messenger integration. This version determines available endpoints, authentication behavior, and compatibility with Facebook's latest messaging features.

CData Python Connector for Salesforce Marketing Cloud

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. This table allows you to create, update, and query journey activities to refine automation workflows.

Table Specific Information

Select

Retrieve journey activities for the latest version of the specified journey:

SELECT * FROM JourneyActivities WHERE JourneyId = '1cb643b5-3144-4d17-80fa-a1f0035e78e2'

Retrieve journey activities for a specific journey version:

SELECT * FROM JourneyActivities WHERE JourneyId = '1cb643b5-3144-4d17-80fa-a1f0035e78e2' AND JourneyVersion = 1

Retrieve journey activities from all journeys with a specific version:

SELECT * FROM JourneyActivities WHERE JourneyVersion = 1

Insert

To create a new journey activity, you will need to specify at least the JourneyId, JourneyVersion, Type, Key, Arguments, ConfigurationArguments column.

INSERT INTO JourneyActivities (JourneyId, JourneyVersion, Type, Key, Arguments, ConfigurationArguments) VALUES ('4753026f-20b2-481b-89c5-fcd76ffa41f7', 1, 'WAIT', 'WAITBYDURATION-1', '{
  "waitEndDateAttributeDataBound": "",
  "waitDefinitionId": "f3de0c9a-5ff8-4f7b-84bd-9309ca337227",
  "waitForEventId": "",
  "executionMode": "{{Context.ExecutionMode}}",
  "startActivityKey": "{{Context.StartActivityKey}}",
  "waitQueueId": "{{Context.WaitQueueId}}"
}', '{
  "waitDuration": 1,
  "waitUnit": "DAYS",
  "specifiedTime": "",
  "timeZone": "",
  "description": "",
  "waitEndDateAttributeExpression": "",
  "specificDate": "",
  "waitForEventKey": ""
}')

Update

Journey activities may be modified by providing the Id, JourneyId, JourneyVersion and issuing an UPDATE statement.

UPDATE JourneyActivities SET Description = 'First_Journey_Activity_Description', Outcomes = '[
  {
    "key": "11bb2807-3f3d-4305-af51-547df032dbaf",
    "next": "WAITBYDURATION-1",
    "arguments": null,
    "metaData": null
  }
]' WHERE Id = 'fa4c3d81-8043-40e2-9741-22708d3a2e25' AND  JourneyId = '4753026f-20b2-481b-89c5-fcd76ffa41f7' AND JourneyVersion = 1

Columns

Name Type ReadOnly References Filters Description
Id [KEY] String True

Specifies the unique identifier (Id) that Marketing Cloud assigns to the activity. This Id links the activity to its corresponding configuration within Journey Builder.

JourneyId [KEY] String True

Journeys.Id

=

Specifies the unique Id of the journey that contains this activity. This Id is generated by the Journey Builder API when the journey is created and ensures that the activity is associated with the correct journey record.

JourneyVersion [KEY] Integer True

Journeys.Version

=

Specifies the version number of the journey that contains this activity. Each version represents a published or edited state of the journey and helps distinguish activity behavior across iterations.

Key String False

Specifies the customer key that uniquely identifies the activity within the journey. This key remains stable across edits and is used for API calls, configuration storage, and journey versioning.

Name String False

Specifies the display name of the activity as shown in the Journey Builder user interface. This name helps users identify the purpose or function of the activity during journey design.

Description String False

Specifies the descriptive text that explains the purpose or behavior of the activity. This description provides context to users who configure or troubleshoot the journey.

Type String False

Specifies the activity type (for example, email activity, wait activity, event activity, or decision activity). Each activity type expects specific inputs that must be provided for the activity to run correctly within the journey.

Outcomes String False

Specifies the JSON array that defines the available outcomes for the activity. Outcomes determine the paths a contact can follow after the activity executes (for example, success, failure, or custom-defined branching results).

Arguments String False

Specifies the set of arguments that the activity requires at runtime. These arguments define operational behavior (for example, message payloads, wait durations, filter conditions, or event-mapped values). Each activity type requires its own argument structure.

ConfigurationArguments String False

Specifies the arguments that the activity uses during both publish time and runtime. These arguments define configuration values, mappings, or settings that must remain consistent across journey versions for the activity to execute correctly.

CData Python Connector for Salesforce Marketing Cloud

Journeys

Represents customer journeys in Salesforce Marketing Cloud. A journey defines an automated, multi-step process that guides contacts through personalized interactions across channels. This table allows you to create, update, delete, and query journey definitions to manage audience engagement strategies.

Table Specific Information

Select

Retrieve journeys with the most recent version:

SELECT * FROM Journeys

Retrieve a journey version:

SELECT * FROM Journeys WHERE ID = '1cb643b5-3144-4d17-80fa-a1f0035e78e2' AND Version = 1

Retrieve all journey versions:

SELECT * FROM Journeys WHERE MostRecentVersionOnly = false

Retrieve journeys with a specific tag:

SELECT * FROM Journeys WHERE Tag = 'First_Tag'

Retrieve journeys which have the specified search string inside the name or description:

SELECT * FROM Journeys WHERE NameOrDescription = 'Journey'

Retrieve journeys with specific work flow API version:

SELECT * FROM Journeys WHERE workFlowApiVersion = 1

Retrieve journeys with specific version:

SELECT * FROM Journeys WHERE Version = 1

Retrieve journeys with specific status:

SELECT * FROM Journeys WHERE Status = 'Draft'

Sort Journeys according to modifiedDate or name column:

SELECT * FROM Journeys ORDER BY ModifiedDate DESC
SELECT * FROM Journeys ORDER BY Name DESC

Insert

To create a new journey, you will need to specify at least the Name column.

INSERT INTO Journeys (Name) VALUES ('API-Created journey')

To create a new journey version, you will need to specify an existing journey key.

INSERT INTO Journeys (Name, Key) VALUES ('API-Created journey Version 3', '53bf5ea2-ff59-4c00-a23a-b1e9e333b80c')

Update

Journeys may be modified by providing the Id, Version of the journey and issuing an UPDATE statement.

UPDATE Journeys SET Name = 'API-Updated journey' WHERE Id = '257c51df-d6ed-4fb6-8fbc-70e63ed52b12' AND Version = 5

Delete

Journeys may be deleted by providing the Id of the journey and issuing a DELETE statement.

DELETE FROM Journeys WHERE Id = '53bf5ea2-ff59-4c00-a23a-b1e9e333b80c'

Journey versions may be deleted by providing the Id, Version of the journey and issuing a DELETE statement.

DELETE FROM Journeys WHERE Id = '257c51df-d6ed-4fb6-8fbc-70e63ed52b12' AND Version = 5

Columns

Name Type ReadOnly References Filters Description
Id [KEY] String True =

Specifies the unique identifier (Id) that Marketing Cloud generates for the journey when it is created. This Id is used to reference, query, and manage the journey across Journey Builder and API operations.

Version Integer True =

Specifies the version number of the journey. Each time the journey is republished, Marketing Cloud increments this value to represent the updated iteration.

Key String False

Specifies the customer key that uniquely identifies the journey within the business unit. This key is user-defined and remains stable across journey versions.

Name String False

Specifies the display name of the journey as shown in Journey Builder. Users see this name when configuring, publishing, or monitoring journeys across the Salesforce Marketing Cloud account.

Status String False =

Specifies the current publishing or execution status of the journey. This field helps filter journeys by their operational state.

The allowed values are Draft, Published, ScheduledToPublish, Stopped, Unpublished, Deleted.

CreatedDate Datetime True

Specifies the date and time when the journey was originally created in Journey Builder. This timestamp reflects the initial creation event.

ModifiedDate Datetime True

Specifies the date and time when the journey was last modified. This timestamp reflects any change to content, structure, configuration, or settings.

LastPublishedDate Datetime True

Specifies the date and time when the journey was most recently published. This value is used to track deployment events and determine when updates were released.

Description String False

Specifies a descriptive summary of the journey that explains its business purpose, target audience, or automation objective. This description helps teams understand how and why the journey operates.

WorkFlowApiVersion Double False =

Specifies the version of the Journey Builder workflow API that governs the execution logic for the journey. This version determines the available features and processing behaviors.

The default value is 1.

Tags String False

Specifies the collection of tags that are assigned to the journey to support organization, filtering, and categorization within Journey Builder and API queries.

Goals String False

Specifies the goals that are associated with the journey. Goals define the success criteria that Salesforce Marketing Cloud evaluates during execution to determine when a contact has completed the journey.

Triggers String False

Specifies the trigger configuration for the journey, including the entry source that determines how contacts enter the workflow. Trigger details vary by entry type (for example, event, data extension, or API entry).

Defaults String False

Specifies the ordered list of email address expressions that Journey Builder evaluates to determine which address should be used as the default sender or recipient context for applicable activities.

DefinitionId String True

Specifies the Id of the journey definition that governs the structure, configuration, and publishable form of the journey. This Id links execution logic to the underlying definition.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer more granular control over the data returned from the data source.

Name Type Description
MostRecentVersionOnly Boolean

Specifies whether the query should return only the most recent version of each matching journey. The value is 'true' when limiting results to the latest version and 'false' when including all versions.

The default value is true.

Tag String

Specifies a single tag to apply as a filter when retrieving journeys. The query returns only journeys that are associated with the specified tag.

NameOrDescription String

Specifies a search string used to filter journeys by matching the provided text against the Name or Description fields.

CData Python Connector for 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. This table allows you to query and create properties to support messaging automation for the LINE platform.

Table Specific Information

Select

Retrieve all registred line messenger properties:

SELECT * FROM LineMessengerProperties

Retrieve a specific registred line messenger property:

SELECT * FROM LineMessengerProperties WHERE ID = '23493453984234345'

Insert

To register a new line messenger property you must specify ChannelId, ChannelName, ChannelSecret, IsTransactional, IsTestChannel, EndpointUrl and ApiVersion:

INSERT INTO LineMessengerProperties (ChannelId, ChannelName, ChannelSecret, EndpointUrl, IsTransactional, IsTestChannel, IsActive, ApiVersion) VALUES ('23493453984234345', 'SFMC Engineers', '03d537gg656gvkbe9b430f002e9c4517', 'https://example.com/1732555047025799', true, false, true, 'v2.0')");

Columns

Name Type ReadOnly References Filters Description
ChannelId [KEY] String False =

Specifies the unique identifier (Id) of the LINE Messenger property. This Id corresponds to the LINE channel configured in Salesforce Marketing Cloud and is required for authentication and message routing.

ChannelName String False

Specifies the name of the LINE channel. This value matches the channel name configured in the LINE Developer Console and helps identify the messaging source within Salesforce Marketing Cloud.

ChannelSecret String False

Specifies the LINE channel secret that is required to authenticate requests between Salesforce Marketing Cloud and the LINE platform. This value validates that calls originate from a trusted integration.

CustomerConnectSecret String False

Specifies the LINE Customer Connect secret that validates inbound events sent through the Switcher API. This secret ensures that messages, replies, and webhook events originate from LINE and have not been tampered with.

IsTransactional Boolean False

Specifies whether the LINE channel is classified as transactional or reseller. A value of 'true' designates a transactional channel that is used for direct customer messaging, and a value of 'false' designates reseller channel behavior.

IsTestChannel Boolean False

Specifies whether the LINE channel is configured as a test channel. A value of 'true' indicates a sandbox or non-production configuration, and a value of 'false' indicates a live messaging channel.

EndpointUrl String False

Specifies the LINE Send API URL that Salesforce Marketing Cloud uses to transmit outbound messages. The endpoint determines where message payloads are delivered for processing by LINE.

IsActive Boolean False

Specifies whether the LINE Messenger resource is currently active. A value of 'true' indicates that the channel is enabled for messaging operations, and a value of 'false' indicates that the channel is disabled or not fully configured.

ApiVersion String False

Specifies the version of the Open Traceability Transport (OTT) API that applies to the LINE Messenger property. This version determines the supported message formats and API capabilities.

CData Python Connector for Salesforce Marketing Cloud

SendDefinitions

Stores send definitions in Salesforce Marketing Cloud. A send definition specifies the parameters for email, Short Message Service (SMS), or push sends, including target audiences, content, and delivery options. This table allows you to create, update, delete, and query send definitions to manage outbound communication workflows.

Table Specific Information

Select

Retrieve all send definitions:

SELECT * FROM SendDefinitions

Retrieve a specific send definition:

SELECT * FROM SendDefinitions WHERE DefinitionKey = '9955614b-02e7-4147-91a2-3f5f5fe9d679'

Retrieve all send definitions with Status as 'Active':

SELECT * FROM SendDefinitions WHERE Status = 'Active'

Insert

To create a send definition, you will need to specify at least the DefinitionKey, Name, SubscriptionsList and ContentCustomerKey column.

INSERT INTO SendDefinitions (DefinitionKey, Name, ContentCustomerKey, SubscriptionsList, OptionsCc, OptionsCreateJourney) VALUES ('TEST_Definition_Key', 'Test Definition Key', '76ad3572-abbc-4baa-b3fe-04c4364bf34a', 'All Subscribers', 'john@example.com', true)

Update

To update a send definition, you will need to specify the DefinitionKey of the SendDefinition.

UPDATE SendDefinitions SET OptionsCc = 'john@example.com,steve@example.com', OptionsBcc = 'michael@example.com,richard@example.com' WHERE DefinitionKey = 'TEST_Definition_Key'

Delete

Send definitions may be deleted by providing the Definition Key of the send definition and issuing a DELETE statement.

DELETE FROM SendDefinitions WHERE DefinitionKey = 'TEST_Definition_Key'

Columns

Name Type ReadOnly References Filters Description
DefinitionKey [KEY] String False =

Specifies the unique, user-generated key that identifies the send definition. This key is used to reference the definition programmatically and remains stable across edits.

DefinitionId String True

Specifies the unique identifier (Id) that Salesforce Marketing Cloud assigns to the send definition. This Id is used internally to manage, retrieve, and execute the definition.

Classification String False

Specifies the external key of the sending classification that is defined in Email Studio Administration. Only transactional classifications are permitted for this object. The default value is the system's transactional classification.

ContentCustomerKey String False

Specifies the unique key of the content asset that is associated with the send definition. This key identifies the email asset that is used when the definition executes.

CreatedDate Datetime True

Specifies the date and time when the send definition was created in Salesforce Marketing Cloud.

Description String False

Specifies the user-provided description that explains the purpose or intended use of the send definition.

Journey Boolean True

Specifies whether the send definition is available in Journey Builder as a transactional send journey. A value of 'true' enables the definition for journey-based triggering.

JourneyInteractionKey String True

Specifies the unique Id of the transactional send journey that is associated with the definition. This Id links the definition to the journey that triggers it.

ModifiedDate Datetime True

Specifies the date and time when the send definition was most recently modified.

Name String False

Specifies the name of the send definition as displayed in Email Studio and through API queries.

OptionsBcc String False

Specifies one or more email addresses to receive blind carbon copies (BCC) for every send. To dynamically populate BCC addresses at send time, create a profile attribute and reference it using the %%attribute%% syntax.

OptionsCc String False

Specifies one or more email addresses to receive carbon copies (CC) for every send. To dynamically populate CC addresses at send time, create a profile attribute and reference it using the %%attribute%% syntax.

OptionsTrackLinks Boolean False

Specifies whether Salesforce Marketing Cloud should wrap hyperlinks for click tracking and reporting. The default value is 'true'.

OptionsCreateJourney Boolean False

Specifies whether the system should create the underlying journey configuration when defining sendable schema fields such as subscriber key or email address. This setting is required only when schema information must be defined or validated.

RequestId String True

Specifies the unique Id of the request that performed the most recent operation on the send definition.

Status String False =,!=

Specifies the operational state of the send definition (for example, active, inactive, or deleted). Messages submitted to an active definition are processed and delivered. Messages submitted to an inactive definition are not processed and are instead queued for up to three days for possible reactivation.

SubscriptionsAutoAddSubscriber Boolean False

Specifies whether the system should automatically add the recipient's email address and contact key to the system-managed subscriber list that stores subscriber keys and profile attributes. The default value is 'true'.

SubscriptionsDataExtension String False

Specifies the external key of the triggered send data extension. Each triggered request inserts a new row into this data extension with relevant message and subscriber details.

SubscriptionsList String False

Specifies the external key of the list or All Subscribers context in which subscriber keys and profile attributes are stored. This list is used as a repository for subscription and profile data related to the send.

SubscriptionsUpdateSubscriber Boolean False

Specifies whether the system should update the recipient's subscriber key with the provided email address and profile attributes in subscriptions.list. This setting applies to email messages only. The default value is 'true'.

CData Python Connector for Salesforce Marketing Cloud

Subscriptions

Create, update, delete and query event notification subscriptions.

Table Specific Information

Select

Select all subscriptions:

SELECT * FROM Subscriptions

Retrieve a specific subscription:

SELECT * FROM Subscriptions WHERE SubscriptionId = 94766

Insert

To create a subscription, you will need to specify at least the SubscriptionName, CallbackId and EventCategoryTypes column.

INSERT INTO [Subscriptions] (SubscriptionName, CallbackId, EventCategoryTypes) VALUES ('sajli subscription', '6fb0758b-155d-4968-869d-7a4f5a3ad2fe', '[\"TransactionalSendEvents.EmailNotSent\", \"TransactionalSendEvents.EmailSent\"]')

Update

Subscriptions may be modified by providing the SubscriptionId and the EventCategoryTypes column of the subscription and issuing an UPDATE statement.

UPDATE [Subscriptions] SET Status = 'paused', EventCategoryTypes = '[\"TransactionalSendEvents.EmailNotSent\", \"TransactionalSendEvents.EmailSent\"]' WHERE SubscriptionId = 'db1e2af0-807d-463b-96e8-fe3aaa019fdb'

Delete

Subscriptions may be deleted by providing the SubscriptionId of the subscription and issuing a DELETE statement.

DELETE FROM [Subscriptions] WHERE SubscriptionId = '43841979-7154-4fc4-9789-909dbba3a54f'

Columns

Name Type ReadOnly References Filters Description
SubscriptionId [KEY] String False =

The Id of the event notification subscription.

SubscriptionName String False

The name of the event notification subscription.

CallbackId String False

Callbacks.CallbackId

=

The Id of the event notification callback.

CallbackName String False

The name of the event notification callback.

EventCategoryTypes String False

Event category types.

Filters String False

Filters.

Url String False

The url of the event notification callback.

MaxBatchSize Integer False

Maximum batch size of the event notification callback.

Status String False

The status of the event notification callback.

StatusReason String False

The status reason of the event notification callback.

CData Python Connector for Salesforce Marketing Cloud

Views

Views are similar to tables in the way that data is represented; however, views are read-only.

Queries can be executed against a view as if it were a normal table.

CData Python Connector for Salesforce Marketing Cloud Views

Name Description
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, such as templates, blocks, or layouts. This view is useful for identifying supported asset formats when creating or managing digital content.
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. This view provides insights into contact attributes, engagement status, and associated data extensions.
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. This view is used to review or export contact records for segmentation, personalization, or compliance reporting.
JourneyAuditLogs Returns audit logs for journeys and their versions in Salesforce Marketing Cloud. Each record captures configuration changes, version updates, or execution details that provide transparency and traceability for journey management. This view supports compliance and debugging by tracking historical activity.
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. Record retrieval is subject to a maximum file size of 1 GB to ensure performance and stability during data access.
MobileApplications Returns the list of mobile applications (apps) configured in a Salesforce Marketing Cloud account. Each mobile app record identifies applications that are used for push notifications or in-app messages. This view helps administrators manage mobile channels and confirm that app credentials and configurations are current.
SmsStatusCodes Returns Short Message Service (SMS) status codes recognized by Salesforce Marketing Cloud. Each status code represents a specific state of message delivery, such as pending, delivered, or failed. This view is useful for monitoring message outcomes and troubleshooting SMS communication issues.
TransactionalMessages Retrieves a paginated list of transactional messages that are not successfully sent in Salesforce Marketing Cloud. Results are ordered from the oldest to the newest message. This view provides visibility into message delivery issues and supports troubleshooting for transactional send processes.

CData Python Connector for Salesforce Marketing Cloud

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, such as templates, blocks, or layouts. This view is useful for identifying supported asset formats when creating or managing digital content.

Table Specific Information

Select

Retrieve all asset types:

SELECT * FROM AssetTypes

Columns

Name Type References Description
Id [KEY] Integer

Assets.TypeId

Identifies the unique record for each asset type in Salesforce Marketing Cloud. This system-generated identifier (Id) serves as the primary key that is used to reference the asset type in API calls, relationship mappings, and configuration metadata.
Name String Specifies the display name that defines the asset type. This user-readable name (for example, such as 'Email Template', 'Image', or 'Content Block') appears in the Content Builder and API results and helps developers and marketers distinguish among asset categories.
IsBaseAssetType Boolean A Boolean field that returns a value of 'true' when the asset type represents a foundational base type that other asset types inherit from. It returns a value of 'false' when the asset type is derived from or extends another type.
ParentId Integer Stores the Id of the parent asset type from which the current asset type is derived. This reference establishes inheritance relationships between asset types and supports type-based categorization, allowing complex content structures to share common properties and rendering behaviors.

CData Python Connector for 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. This view provides insights into contact attributes, engagement status, and associated data extensions.

Table Specific Information

Select

Retrieve all contacts:

SELECT * FROM Contact
Note: Most columns for this table are dynamic so they may not be the same as the columns specified below because you can have a different Contact schema in your Salesforce marketing cloud account.
Contacts that are in a deleted, deleting, or restricted state are not retrieved.

Columns

Name Type References Description
ContactID [KEY] Int Identifies the system-defined identifier (Id) that uniquely represents the contact within Salesforce Marketing Cloud. This Id is automatically generated when the contact record is created and remains immutable across all channels and data extensions. It serves as the master reference for contact relationships, event tracking, and subscription management within the Contact Builder module.
ContactKey String Specifies the user-defined Id that is assigned to the contact. This value acts as a cross-channel key that links contact records across email, mobile, and other customer engagement data sources. Maintaining a consistent contact key ensures that profile attributes, preferences, and engagement history are accurately unified within the contact model.

CData Python Connector for Salesforce Marketing Cloud

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. This view is used to review or export contact records for segmentation, personalization, or compliance reporting.

Table Specific Information

Select

Retrieve all contacts:

SELECT * FROM Contacts
Note: Most columns for this table are dynamic so they may not be the same as the columns specified below because you can have a different Contact schema in your Salesforce marketing cloud account.
Contacts that are in a deleted, deleting, or restricted state are not retrieved.

Columns

Name Type References Description
GroupConnect LINE Demographics.Address ID String Stores the unique identifier (Id) that represents the physical or account-level address that is associated with a LINE contact in the GroupConnect field. This Id links demographic details with the contact's LINE profile and is used to support localized targeting and message delivery.
GroupConnect LINE Demographics.Contact ID Long Specifies the system-defined Id that uniquely represents the contact within GroupConnect for LINE. This value enables Salesforce Marketing Cloud to associate LINE message interactions and subscription preferences with the unified contact profile in Contact Builder.
GroupConnect LINE Demographics.Contact Key String Specifies the user-defined contact key that links the LINE contact to the unified customer record in Contact Builder. Maintaining a consistent contact key across channels ensures that LINE activity, preferences, and subscription status are reflected accurately in cross-channel reports.
Contact.Contact ID [KEY] Int Specifies the system-defined Id that uniquely represents the contact in Salesforce Marketing Cloud. This identifier is automatically generated when the contact is created and provides the primary linkage point for all contact data extensions and engagement activities.
Contact.Contact Key String Specifies the user-defined contact key that is assigned to the contact record. This key acts as the cross-channel Id that is used to unify profile data and behavioral tracking across Email, MobileConnect, MobilePush, and GroupConnect interactions.
Email Demographics.Contacts ID Long Specifies the system-defined Id that represents the contact within the Email Demographics data set. This Id links each contact to their email send, open, and click activities that are tracked for personalization and reporting.
Email Demographics.NewAttrTest String Represents a test attribute that is used for validating new or custom demographic fields in Email Demographics. This column serves as an example or placeholder for custom attributes that are added during development or data model extension testing.
Email Demographics.NewAttrTest1 String Represents a secondary test attribute that demonstrates how additional demographic fields can be incorporated into the Email Demographics data set. It allows users to verify schema mapping and integration logic.
Email Demographics.NewAttrTest 2 String Represents a tertiary test attribute that is used for evaluating new attribute behavior and ensuring compatibility with email segmentation or personalization logic.
Email Demographics.tet String Represents a temporary test column that is used for data validation or sandbox testing purposes in the Email Demographics data extension.
Email Addresses.Email Address String Stores the primary email address that is associated with the contact record. This value is used for message delivery, subscription management, and identity resolution across Marketing Cloud email activities.
Email Addresses.HTML Enabled Bool A Boolean field that returns a value of 'true' when the contact prefers to receive HTML-formatted emails. It returns a value of 'false' when the contact prefers plain-text messages. This preference is referenced during message compilation to determine which version of an email to send.
MobileConnect Demographics.Contact ID Long Specifies the system-defined Id that uniquely represents the contact within the MobileConnect Demographics data set. This identifier links Short Message Service (SMS) activity, opt-in status, and message response data to the unified contact record.
MobileConnect Demographics.Locale String Specifies the language or regional setting that is associated with the contact's MobileConnect profile. Locale data supports personalized SMS messaging and compliance with local language requirements.
MobileConnect Demographics.Mobile Number String Stores the mobile phone number that is associated with the contact's MobileConnect profile. This number is validated during opt-in workflows and is used for message targeting, delivery tracking, and compliance reporting.
MobilePush Demographics.Application String Specifies the mobile application that is registered with Salesforce Marketing Cloud MobilePush and linked to the contact. This value identifies which application instance is used for push notifications and supports segmentation by application or platform.
MobilePush Demographics.Contact ID Long Specifies the system-defined Id that represents the contact within the MobilePush Demographics data set. This Id links push notification activity and subscription status to the unified contact profile.
MobilePush Demographics.Device ID String Stores the unique Id of the mobile device that is registered for receiving push notifications. This value supports device-level targeting, frequency capping, and troubleshooting for mobile engagement campaigns.
Contact.Business Unit ID Int Specifies the business unit Id that defines the organizational context for the contact record. This field determines which business unit owns or manages the contact's data and permissions within the enterprise hierarchy.
Email Addresses.Member ID Int Stores the Marketing Cloud Member Id (MID) that identifies the business unit responsible for managing the contact's email address and associated subscription data. This linkage ensures that opt-in preferences are properly enforced within each unit.
Email Addresses.List ID Int Specifies the list identifier (Id) that represents the subscriber list or audience segment that includes the contact's email address. This value is used to associate the contact with specific mailing lists and supports list-level subscription management.

CData Python Connector for Salesforce Marketing Cloud

JourneyAuditLogs

Returns audit logs for journeys and their versions in Salesforce Marketing Cloud. Each record captures configuration changes, version updates, or execution details that provide transparency and traceability for journey management. This view supports compliance and debugging by tracking historical activity.

Columns

Name Type References Description
JourneyId String

Journeys.Id

Specifies the unique identifier (Id) of the journey for which audit activity is recorded. This Id is generated by the Journey Builder API when the journey is created.
JourneyVersion Integer

Journeys.Version

Specifies the version number of the journey at the time the audited action occurred. Each version represents a specific published or edited state of the journey.
Key String Specifies the customer key that uniquely identifies the journey within the business unit. This key provides a stable reference across versions and API interactions.
Action String Specifies the action that was recorded in the audit log (for example, creating, editing, publishing, pausing, or stopping the journey).

The allowed values are all, create, modify, publish, unpublish, delete.

The default value is all.

Name String Specifies the display name of the journey at the time of the audited action. This name appears in the Journey Builder user interface and helps identify the journey's purpose during review.
Description String Specifies the descriptive text that explains the purpose or function of the journey. This description can assist administrators during audit reviews or change-history analysis.
ActionDate Datetime Specifies the date and time when the audited action occurred. This timestamp enables chronological tracking of journey changes and operations.
UserId Integer Specifies the Id of the user who performed the audited action. This information supports administrative reviews and compliance reporting.
UserName String Specifies the name of the user who performed the audited action. This value helps identify the origin of configuration changes or operational events.
ExecutionMode String Specifies the execution mode in which the journey was running at the time of the action (for example, test mode or standard execution). The mode affects how Journey Builder processes contacts and evaluates activities.
OriginalDefinitionId String Specifies the Id of the original journey definition from which the current version was derived. This value helps establish lineage across journey versions.
PublishRequestId String Specifies the Id of the publish request that initiated the journey's publication process. This Id can be used to correlate publication events with corresponding audit records.
PublishStatus String Specifies the publication status of the journey at the time of the audited action (for example, pending, publishing, published, or error).
Errors String Specifies any errors that occurred during the audited action. These details help diagnose configuration or publication issues.
ContactsEjected String Specifies the list of contacts that were ejected when the journey was stopped. This information provides traceability for contact paths that were terminated due to administrative actions.

CData Python Connector for 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. Record retrieval is subject to a maximum file size of 1 GB to ensure performance and stability during data access.

Table Specific Information

Select

Retrieves information about a specific contact, journey, or journey version:

SELECT * FROM JourneyHistory

Retrieves information about a specific contact, journey, or journey version within the specified date range.:

SELECT * FROM JourneyHistory where StartDate='2022-09-01T10:29:22.438Z' and EndDate = '2022-09-30T11:29:22.438Z'

NOTE: A maximum of 10k records can be retrieved using JourneyHistory. If only StartDate is mentioned, it will retrieve a maximum of 10k records from the StartDate. If both StartDate and EndDate are mentioned, it will fetch the first 10k records.

Columns

Name Type References Description
Id String Specifies the unique identifier (Id) of the journey history record. This Id is generated by the Journey Builder API when the journey begins processing contacts and is used to track execution details for the associated run.
ActivityId String Specifies the unique Id of the activity that the history record pertains to. This Id links the execution data to a specific activity within the journey version.
ActivityName String Specifies the name of the activity that is associated with the history record. This name helps identify the action or function performed during contact processing.
ActivityType String Specifies the type of activity that generated the history entry (for example, a message activity, event activity, wait activity, or decision activity).
ClientStatus String Specifies the client-facing status of the activity execution, indicating how the system interpreted the activity outcome during processing.
ContactKey String Specifies the customer key that identifies the contact being processed in the journey. This key ensures that the history record is associated with the correct individual within the business unit.
CreatedDate Datetime Specifies the date and time when the journey entered its running state for the associated contact or activity. This timestamp provides the starting point for evaluating the execution timeline.
DefinitionId String Specifies the Id of the journey definition that governs the activity being executed. This Id identifies the parent definition that underlies the version and structure of the journey.
DefinitionInstanceId String Specifies the Id of the journey definition instance that executed the activity. This instance Id represents the specific published version of the journey used during processing.
DefinitionName String Specifies the name of the journey definition that is associated with the execution record. This value helps identify the overarching journey that produced the history entry.
EndDate Datetime Specifies the date and time when the activity execution completed. This timestamp marks the end of the processing window for the activity.
EntrySource String Specifies the entry source that admitted the contact into the journey (for example, an event, data extension entry, or API entry call).
EpochTimeInMilliseconds Long Specifies the timestamp of the activity execution that is expressed as epoch time in milliseconds. This value provides a standardized format for time-based calculations and comparisons.
EventId String Specifies the Id of the event that triggered the activity or contributed to the execution context for the history record.
EventName String Specifies the name of the event that influenced the execution of the activity. This value is used to identify the event source within the journey.
LongId String Specifies the extended Id that represents the execution instance in long-format identifier form. This value allows for precise correlation across systems that require long Id formats.
Mid String Specifies the Marketing Cloud member Id (MID) of the business unit in which the journey executed. This value provides organizational context for the history record.
Message String Specifies the message or descriptive text that is associated with the activity execution. This message can include diagnostic information, event details, or system-generated notes.
OutcomeActivityId String Specifies the Id of the activity that represents the outcome of the executed step. This Id identifies the next activity selected by the journey based on evaluation results.
ResultMessages String Specifies the messages that describe the execution results of the activity. These messages can provide operational details or context for success, failure, or branching behavior.
ResultOutcomes String Specifies the outcome values that are returned during activity execution. These values determine how contacts proceed to the next activity or exit the journey.
ResultStatus String Specifies the status of the activity execution (for example, success, failure, or a system-defined result state). This status helps assess processing performance or identify issues.
ResultTags String Specifies the tags that are associated with the activity execution. Tags can provide metadata or classification details used for reporting or debugging.
SourceType String Specifies the source type that generated the history entry (for example, an API-driven event, an automation-triggered event, or a system-based action).
StartDate Datetime Specifies the date and time when the activity execution started. This timestamp marks the beginning of the execution interval for the associated activity.
Status String Specifies the overall status of the journey history record, indicating whether the activity or contact path is pending, running, paused, completed, or terminated.
TransactionTime Datetime Specifies the timestamp of the transaction that recorded the history entry. This value provides a precise reference point for chronological sorting and auditing.

CData Python Connector for Salesforce Marketing Cloud

MobileApplications

Returns the list of mobile applications (apps) configured in a Salesforce Marketing Cloud account. Each mobile app record identifies applications that are used for push notifications or in-app messages. This view helps administrators manage mobile channels and confirm that app credentials and configurations are current.

Columns

Name Type References Description
ApplicationId [KEY] String Specifies the unique identifier (Id) of the MobilePush application. This Id is generated by MobilePush and is required when sending notifications, retrieving configuration details, or managing the application through the API.
Name String Specifies the name that is assigned to MobilePush. This value appears in MobilePush configuration screens and helps users distinguish between different applications across platforms or environments.
Description String Specifies the descriptive text that explains the purpose or function of MobilePush. This description is often used for internal documentation and administrative clarity.
CreatedDate Datetime Specifies the date and time when the MobilePush application was created. This timestamp records its initial provisioning within Marketing Cloud.
ModifiedDate Datetime Specifies the date and time when MobilePush was last modified. Updates can include changes to credentials, certificates, or application settings.
Keys String Specifies the set of key–value pairs that store customer-defined metadata for use in MobilePush. These values can drive personalization, segmentation, or conditional message logic.
ApnsCertificateExpiration Datetime Specifies the expiration date and time of the Apple Push Notification service (APNs) certificate that is associated with the application. This value is essential for maintaining uninterrupted delivery to iOS devices.
ApnsEnabled Boolean Specifies whether Apple Push Notification service (APNs) is enabled for the application. A value of 'true' allows the application to send push notifications to iOS devices, and a value of 'false' indicates that APNs messaging is disabled.
GcmEnabled Boolean Specifies whether Google Cloud Messaging (GCM) is enabled for the application. A value of 'true' allows the application to send push notifications to Android devices through legacy GCM routing, and a value of 'false' indicates that GCM messaging is disabled.

CData Python Connector for Salesforce Marketing Cloud

SmsStatusCodes

Returns Short Message Service (SMS) status codes recognized by Salesforce Marketing Cloud. Each status code represents a specific state of message delivery, such as pending, delivered, or failed. This view is useful for monitoring message outcomes and troubleshooting SMS communication issues.

Table Specific Information

Select

Retrieve all status codes for the following countries: U.S., Canada, Brazil, and India. Use these codes to evaluate and troubleshoot your SMS sends.

SELECT * FROM SmsStatusCodes

Columns

Name Type References Description
Code [KEY] Integer Specifies the numeric status code that represents a Short Message Service (SMS) delivery or processing outcome. Carriers and the MobileConnect application use these codes to classify message behavior such as delivery, queuing, rejection, or failure.
Status String Specifies the descriptive status that corresponds to the SMS code. This value summarizes the delivery outcome or processing state that is returned by the carrier or messaging system.
Definition String Specifies the detailed explanation of the SMS status code. This definition provides context about why the status occurred and how the carrier or system interpreted the message event.

CData Python Connector for Salesforce Marketing Cloud

TransactionalMessages

Retrieves a paginated list of transactional messages that are not successfully sent in Salesforce Marketing Cloud. Results are ordered from the oldest to the newest message. This view provides visibility into message delivery issues and supports troubleshooting for transactional send processes.

Table Specific Information

Select

Select all TransactionalMessages:

SELECT * FROM TransactionalMessages

Columns

Name Type References Description
LastEventId Integer Specifies the unique identifier (Id) of the most recent event from which the response should begin. This Id allows you to retrieve transactional message events starting from a specific point in the event stream.
StatusCode Integer Specifies the numeric code that represents the reason that a transactional send did not complete. These codes map to the Email Send error codes and help identify delivery failures, validation issues, or provider errors.
StatusMessage String Specifies the descriptive message that explains why the transactional send did not complete. This message supplements the StatusCode value and provides human-readable context for diagnosing the issue.
EventCategoryType String Specifies the type of transactional send event. Common values include 'EmailSent' (for messages that are successfully handed off to the email provider), 'EmailNotSent' (for messages that failed with a specific reason), and 'EmailQueued' (for messages that are awaiting processing).
Timestamp String Specifies the date and time when the event occurred, expressed in Central Standard Time (CST) without daylight saving adjustments. This timestamp indicates when the system recorded the event.
DefinitionKey String Specifies the unique Id of the transactional send definition that is associated with the event. This Id links the event back to the definition that provided the message content and configuration.
EventId Integer Specifies the numeric Id of the event within the transactional messaging event stream. This Id helps identify and sequence events for tracking and reporting purposes.
MessageKey String Specifies the unique identifier used to track the status of the message throughout the transactional send process. This key is unique per message instance and appears in status and tracking queries.
ContactKey String Specifies the contact key that identifies the subscriber that is associated with the transactional message. This key maps the event to the subscriber's profile and activity history in Salesforce Marketing Cloud.
To String Specifies the channel address of the recipient. For email messages, this value is the recipient's email address. For Short Message Service (SMS) messages, this value is the recipient's mobile phone number.

CData Python Connector for Salesforce Marketing Cloud

Stored Procedures

Stored procedures are function-like interfaces that extend the functionality of the connector beyond simple SELECT/INSERT/UPDATE/DELETE operations with Salesforce Marketing Cloud.

Stored procedures accept a list of parameters, perform their intended function, and then return any relevant response data from Salesforce Marketing Cloud, along with an indication of whether the procedure succeeded or failed.

CData Python Connector for Salesforce Marketing Cloud Stored Procedures

Name Description
CheckDataExtensionJobStatus Retrieves the current status of a data extension job in Salesforce Marketing Cloud. This procedure is used to monitor asynchronous requests that insert or upsert rows into a data extension. It provides feedback on job completion, errors, and processing progress.
CreateDataExtensionJob Initiates an asynchronous process to insert or upsert data into a data extension in Salesforce Marketing Cloud. It supports operations by key or identifier (Id) and returns job details for tracking and performance monitoring.
CreateImportSendDeliveryReport Generates a CSV file (.csv) containing detailed delivery information for Short Message Service (SMS) messages in Salesforce Marketing Cloud. This procedure produces a report for a specified message list (MessageList) and places it in the account's enhanced File Transfer Protocol (FTP) location. This report helps administrators verify delivery metrics and troubleshoot communication results.
CreateKeyword Creates a keyword for a specified account in Salesforce Marketing Cloud. Keywords are used to manage Short Message Service (SMS) interactions by associating inbound text responses with specific campaigns or workflows. This procedure facilitates automated opt-in or content-triggered messaging.
CreateMessageListDeliveryReport Triggers the generation of a delivery report for a specified message list (MessageList) in Salesforce Marketing Cloud. This procedure provides performance metrics for message delivery and engagement tracking.
CreateOptInMessage Creates a Short Message Service (SMS opt-in message in Salesforce Marketing Cloud. This message confirms a recipient's consent to receive future SMS communications and records subscription details for compliance tracking.
CreateTriggeredSend Creates a triggered send object in Salesforce Marketing Cloud. A triggered send represents a specific instance of an automated email send initiated by an API event or system trigger. This procedure allows real-time delivery of personalized messages.
DeleteKeyword Deletes an existing keyword from a specified Salesforce Marketing Cloud account. Removing a keyword prevents further inbound Short Message Service (SMS) messages from being associated with the corresponding campaign or automation.
FireEntryEvent Fires an entry event to initiate a journey in Salesforce Marketing Cloud. This procedure triggers contact entry into a defined customer journey, enabling automated interactions based on real-time behavioral or data events.
GetChannelViewHtml Returns the compiled HTML for a specified channel view within Salesforce Marketing Cloud. This output represents the final rendered content of an asset, allowing developers to preview or validate HTML rendering for a channel or campaign.
GetDataExtensionJobResults Retrieves the results of a completed data extension job in Salesforce Marketing Cloud. It returns information about rows inserted, updated, or skipped, providing transparency into data import or synchronization operations.
GetDeliveryStatusOfQueuedMO Retrieves the delivery status of a queued mobile-originated (MO) message in Salesforce Marketing Cloud. This procedure provides delivery details to support message tracking and diagnostic reporting for mobile messaging workflows.
GetFileForAnAsset Retrieves the binary file associated with an asset in Salesforce Marketing Cloud. This procedure enables direct access to stored files, such as images or documents, for reuse or download through integrations.
GetHeaderFooterAccount Retrieves the default header and footer configuration for a Salesforce Marketing Cloud account. These settings define standardized branding elements that can be applied to email and web templates for consistency across communications.
GetHeaderFooterEmail Retrieves the header and footer content that is associated with a specific email in Salesforce Marketing Cloud. These elements define the standardized branding and layout sections that appear at the top and bottom of an email message. This procedure helps ensure consistent design and compliance across campaigns.
GetImportSendStatus Retrieves the status of an ImportSend automation in Salesforce Marketing Cloud. This automation imports data and triggers send operations, and the procedure returns information about execution state, completion time, and any related errors.
GetImportStatus Retrieves the status of an import job in Salesforce Marketing Cloud. This procedure provides details about job progress, success, or failure, allowing users to monitor large-scale data import operations and resolve potential processing issues.
GetJourneyPublicationStatus Retrieves the publication status of a journey in Salesforce Marketing Cloud. This procedure returns information about whether a journey version is published, queued, or has encountered errors during deployment. It is essential for verifying automation readiness.
GetMessageContactHistory Retrieves the history of the last message that was sent to a specific mobile number in Salesforce Marketing Cloud. This procedure provides delivery timestamps, message content identifiers (Ids), and channel information for audit and tracking purposes.
GetMessageContactStatus Retrieves the overall delivery status of a message that was sent to a specific contact in Salesforce Marketing Cloud. This procedure aggregates delivery states such as queued, sent, delivered, or failed, supporting detailed message tracking and performance monitoring.
GetMessageListStatus Returns the status of a message that was sent to a group of mobile numbers in Salesforce Marketing Cloud. This procedure provides a summary of delivery outcomes for the entire list, enabling administrators to confirm message reach and troubleshoot delivery issues.
GetMessageSendStatus Retrieves the current send status of a message in Salesforce Marketing Cloud. This procedure provides operational insights into queued, in-progress, or completed sends, allowing real-time monitoring of outbound communication performance.
GetOAuthAccessToken Gets an authentication token from SalesforceMarketingCloud.
GetOAuthAuthorizationURL Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps.
GetRefreshListStatus Retrieves the status of a list refresh job in Salesforce Marketing Cloud. This procedure returns progress indicators, completion results, and error information for automation processes that update subscriber or data extension lists.
GetSubscriptionStatus Returns the current subscription status for one or more mobile numbers or subscriber keys in Salesforce Marketing Cloud. This procedure identifies whether each contact is subscribed, unsubscribed, or pending confirmation, supporting compliance with communication preferences and opt-in regulations.
GetTrackingHistoryOfQueuedMO Retrieves the complete tracking history of a queued mobile-originated (MO) message in Salesforce Marketing Cloud. This procedure includes delivery attempts, carrier responses, and timestamps that help administrators analyze message flow and resolve delivery issues.
ImportAndSendMessage Imports contact or message data and immediately initiates message sends in Salesforce Marketing Cloud. This procedure combines data ingestion and outbound communication in a single automated operation to support rapid campaign deployment.
PostMessageToList Initiates a message send to one or more contact lists in Salesforce Marketing Cloud. This procedure supports mass communication by triggering predefined message content for targeted lists managed within the account.
PostMessageToNumber Initiates the sending of a message to one or more mobile numbers in Salesforce Marketing Cloud. This procedure supports direct, one-to-one or one-to-many mobile communications for marketing or transactional purposes.
PublishJourney Publishes a specified journey version asynchronously in Salesforce Marketing Cloud. Publication makes the journey active and available for contact entry, enabling real-time automation execution.
QueueContactImport Queues a contact import job in Salesforce Marketing Cloud. This procedure prepares contact data for processing and import into the system, allowing for asynchronous execution and progress tracking.
QueueMoMessage Queues a mobile-originated (MO) message for sending in Salesforce Marketing Cloud. It supports asynchronous message handling to manage large volumes of inbound or outbound Short Message Service (SMS) traffic efficiently.
RefreshList Refreshes a list in Salesforce Marketing Cloud. This procedure updates subscriber data and segmentation logic to reflect recent imports or status changes, ensuring that campaigns target the most current audience information.
RefreshOAuthAccessToken Refreshes the OAuth access token used for authentication with SalesforceMarketingCloud.
SendMessageToRecipient Sends an over-the-top (OTT) message to a specific recipient in Salesforce Marketing Cloud. Supported OTT networks include Facebook Messenger and LINE. This procedure facilitates cross-platform communication with customers through integrated messaging channels.
SendTransactionalMessageToMultipleRecipients Sends a transactional message to multiple recipients using a defined send definition in Salesforce Marketing Cloud. This procedure supports bulk message delivery while maintaining individualized personalization for each recipient.
SendTransactionalMessageToRecipient Sends a transactional message to a single recipient using a specified send definition in Salesforce Marketing Cloud. This procedure enables the delivery of personalized, event-triggered communications.
StopJourney Stops a running journey in Salesforce Marketing Cloud. This procedure halts active automation processes and prevents new contacts from entering the journey while preserving existing data for analysis and compliance.

CData Python Connector for Salesforce Marketing Cloud

CheckDataExtensionJobStatus

Retrieves the current status of a data extension job in Salesforce Marketing Cloud. This procedure is used to monitor asynchronous requests that insert or upsert rows into a data extension. It provides feedback on job completion, errors, and processing progress.

Input

Name Type Required Description
RequestId String True Specifies the unique identifier (Id) that is provided by a previously submitted asynchronous insert or update request. This value identifies the original operation whose progress or results are being retrieved.

Result Set Columns

Name Type Description
RequestStatus String Indicates the current status of the asynchronous request (for example, 'Pending', 'Completed', or 'Error'). This value reflects the latest state of the job and helps developers monitor processing progress through API responses or automated workflows.
ResultStatus String Returns the overall outcome of the request (for example, 'Success' or 'Failure'). This field provides high-level completion information that can be used to determine whether subsequent data-retrieval or error-handling steps are required.
HasErrors Boolean A Boolean field that returns a value of 'true' when the results from processing the request contain one or more errors. It returns a value of 'false' when the request completes successfully without exceptions. This flag helps automate post-processing validation and exception reporting.
CallDateTime Datetime Records the date and time when the asynchronous request was first received by the system. This timestamp establishes the start point for performance monitoring and API auditing.
CompletionDateTime Datetime Records the date and time when the asynchronous request completed processing. This value is set automatically by the system and supports reporting on job duration and completion metrics.
PickupDateTime Datetime Records the date and time when the asynchronous request was picked up from the queue for processing.
RequestId String Returns the Id of the request that inserted or upserted data rows into the data extension. This output confirms that the system has processed and recorded the referenced job successfully.

CData Python Connector for Salesforce Marketing Cloud

CreateDataExtensionJob

Initiates an asynchronous process to insert or upsert data into a data extension in Salesforce Marketing Cloud. It supports operations by key or identifier (Id) and returns job details for tracking and performance monitoring.

Input

Name Type Required Description
DataExtensionId String False Specifies the unique identifier (Id) of the data extension where rows are to be inserted or upserted. This system-generated value determines the target data extension for the asynchronous operation and ensures that the correct structure and field mapping are applied during execution.
CustomerKey String False Specifies the customer-defined key that uniquely identifies the data extension in API operations. This key provides a stable reference across environments and can be used instead of the system-generated Id when initiating or automating insert and upsert operations.
RowsAggregate String False Contains a JSON-formatted aggregate that defines the rows to be inserted or upserted into the target data extension. Each row includes field names and corresponding values that comply with the schema of the specified data extension. This parameter supports bulk operations and asynchronous job submission.
Mode String False Specifies the operation mode that determines how data is written to the target data extension.

The allowed values are INSERT, UPSERT.

The default value is INSERT.

Result Set Columns

Name Type Description
RequestId String Returns the unique identifier (Id) of the successfully queued asynchronous request. This Id is used in subsequent operations to retrieve the current status or results of the operation.

CData Python Connector for Salesforce Marketing Cloud

CreateImportSendDeliveryReport

Generates a CSV file (.csv) containing detailed delivery information for Short Message Service (SMS) messages in Salesforce Marketing Cloud. This procedure produces a report for a specified message list (MessageList) and places it in the account's enhanced File Transfer Protocol (FTP) location. This report helps administrators verify delivery metrics and troubleshoot communication results.

Input

Name Type Required Description
TokenId String True Specifies the unique identifier (Id) that is provided in the MessageList REST API response. This value authenticates the delivery report request and ensures that the report corresponds to the correct message batch or send event.
FileName String True Specifies the name of the report file that is generated in the Enhanced FTP 'reports' folder for the associated Marketing Cloud account. The file name should include a recognizable prefix or timestamp to support automated retrieval and archival.

Result Set Columns

Name Type Description
Success Boolean A Boolean field that returns a value of 'true' when the CSV (.csv) delivery report file is successfully generated in the designated FTP folder. It returns a value of 'false' when the report generation fails or the file cannot be created due to configuration or connection errors.

CData Python Connector for Salesforce Marketing Cloud

CreateKeyword

Creates a keyword for a specified account in Salesforce Marketing Cloud. Keywords are used to manage Short Message Service (SMS) interactions by associating inbound text responses with specific campaigns or workflows. This procedure facilitates automated opt-in or content-triggered messaging.

Input

Name Type Required Description
LongCode String False Specifies the long code on which the keyword is created. A long code is a standard ten-digit phone number that supports two-way Short Message Service (SMS) communication. Defining a long code allows the system to register and route keyword-based messages for localized or low-volume messaging programs.
ShortCode String False Specifies the short code on which the keyword is created. A short code is a five- or six-digit number that supports high-volume SMS traffic. Associating a keyword with a short code enables subscribers to opt in, opt out, or interact with campaigns using simple text commands.
Keyword String False Specifies the keyword that is created on the designated long or short code. The keyword serves as the trigger word that subscribers text to initiate subscription actions, request information, or participate in campaigns. Each keyword must be unique within its code and country context.
CountryCode String False Specifies the two-letter country code that identifies the country associated with the short code. This value ensures that the keyword registration complies with local messaging regulations and carrier routing requirements.

Result Set Columns

Name Type Description
KeywordId String Returns the unique identifier (Id) of the keyword that is created. This system-generated value can be used in subsequent API operations to manage, track, or delete the keyword configuration.

CData Python Connector for Salesforce Marketing Cloud

CreateMessageListDeliveryReport

Triggers the generation of a delivery report for a specified message list (MessageList) in Salesforce Marketing Cloud. This procedure provides performance metrics for message delivery and engagement tracking.

Input

Name Type Required Description
TokenId String True Specifies the unique identifier (Id) that is provided in the MessageList REST API response. This value authenticates the request and ensures that the report generation process corresponds to the correct message batch within the MobileConnect messaging tool.
MessageId String True Specifies the API key of the message definition that is configured in the MobileConnect user interface. This key identifies the specific message template or send definition for which the delivery report is being generated.
FileName String True Specifies the name of the delivery report file that is generated in the Enhanced FTP 'reports' folder for the associated Marketing Cloud account. Using consistent file naming (for example, including a message identifier or timestamp) helps automate file retrieval and reporting workflows.

Result Set Columns

Name Type Description
Success Boolean A Boolean field that returns a value of 'true' when the delivery report is successfully triggered for the specified message definition. It returns a value of 'false' when the report cannot be initiated due to configuration, connection, or validation errors.

CData Python Connector for Salesforce Marketing Cloud

CreateOptInMessage

Creates a Short Message Service (SMS opt-in message in Salesforce Marketing Cloud. This message confirms a recipient's consent to receive future SMS communications and records subscription details for compliance tracking.

Input

Name Type Required Description
LongCode String False Specifies the long code on which the opt-in message is created. A long code is a standard ten-digit number used for two-way Short Message Service (SMS) communication. Either a long code or short code is required for message setup.
ShortCode String False Specifies the short code on which the opt-in message is created. A short code is a five- or six-digit number that supports high-volume SMS programs. Either a long code or short code must be provided when configuring the opt-in message.
MessageName String True Specifies the display name that identifies the opt-in message within Salesforce Marketing Cloud. This name is used for management, reporting, and API reference.
MessageText String False Specifies the text content of the opt-in message that users receive during the subscription process. The message typically includes welcome or instructional text that introduces the subscription program.
CountryCode String False Specifies the two-letter country code that identifies the country to which the short code belongs. This value is required for short-code messages and ensures that message routing and compliance follow country-specific carrier regulations.
Keyword String True Specifies the keyword that users text to subscribe to the message program. The keyword triggers the opt-in workflow and must be unique within its long code, short code, and country combination.
MessageOptInType String True Defines the opt-in workflow template that determines how user confirmation is handled. Acceptable types include 'Single', 'Double', and 'Age'. 'Single' opt-in requires users to send one keyword (for example, 'JOIN') to subscribe. 'Double' opt-in requires an additional confirmation message (for example, 'Y' or 'YES'). 'Age' opt-in uses the double opt-in process with an added age confirmation step that verifies the user's eligibility before finalizing the subscription.
ResponseMessage String False Specifies the message that is sent to users after they text the keyword in a 'Single' opt-in workflow. This parameter is required for 'Single' and is ignored for 'Double' or 'Age'. The message confirms successful enrollment and can include program details or help instructions.
DoubleOptInInitialMessage String False Specifies the message that is sent to users to request confirmation of their opt-in in a 'Double' or 'Age' workflow. This message is required for both 'Double' and 'Age' types and prompts users to reply with a valid confirmation response or their age, as appropriate.
DoubleOptInConfirmationMessage String False Specifies the confirmation message that is sent to users after they reply with 'Y' or 'YES' in a 'Double' workflow or after they complete the age confirmation step in an 'Age' workflow. This message confirms successful opt-in and is required for 'Double' and 'Age' templates.
DoubleOptInValidResponses String False Lists the valid confirmation responses that users can send in a 'Double' workflow (for example, 'Y' or 'YES'). This parameter is required for 'Double' and ignored for 'Single' and 'Age' workflows. Validation ensures that only predefined confirmation responses trigger successful subscription.
OptInInvalidAgeMessage String False Specifies the message that is sent to users whose provided age does not meet the minimum requirement in an 'Age' opt-in workflow. This message is required for 'Age' and is ignored for 'Single' and 'Double'. It helps maintain compliance with age-based subscription policies.
MinimumAge Integer False Defines the minimum age that users must meet to be subscribed through an 'Age' workflow. This parameter is required for 'Age' and ignored for 'Single' and 'Double'. Users who provide a lower age recieve the message that is defined in the OptInInvalidAgeMessage field instead of being subscribed.
AllowSingleOptIn Boolean False A Boolean field that returns a value of 'true' when users are allowed to receive a different response if they are already opted in to the same program. It returns a value of 'false' when duplicate opt-ins are not differentiated.
DuplicateOptInMessage String False Specifies the message that is sent to users who attempt to opt in when they are already subscribed. This message acknowledges the duplicate opt-in attempt and can include program reminders or additional call-to-action text.
OptinErrorMessage String True Specifies the message that is sent to users when an error occurs during the opt-in process. This message ensures that the user receives a meaningful response even when system or configuration issues prevent successful enrollment.
StartDate Date True Defines the date and time when the opt-in message becomes active and available for user interaction. Messages sent before this date are not processed by the opt-in workflow.
EndDate Date True Defines the date and time when the opt-in message becomes inactive. If users attempt to opt in after this date, they receive the default keyword response for the associated code or the response message of the replacement keyword. This behavior ensures continuity for users and prevents expired campaigns from receiving new opt-ins.
NextKeyword String False Specifies the keyword that is automatically appended to the next inbound message that users send after the initial opt-in message. For example, if the NextKeyword value is 'ZIP', the system prompts users to reply with their postal code after subscribing. This parameter enables sequential data collection for progressive profiling.

Result Set Columns

Name Type Description
MessageID String Returns the unique identifier (Id) of the opt-in message that is created. This system-generated value can be used in subsequent API operations to retrieve, modify, or delete the opt-in configuration.

CData Python Connector for Salesforce Marketing Cloud

CreateTriggeredSend

Creates a triggered send object in Salesforce Marketing Cloud. A triggered send represents a specific instance of an automated email send initiated by an API event or system trigger. This procedure allows real-time delivery of personalized messages.

Table Specific Information

Subscriber Attributes

To create SubscriberAttributes, you must insert data in a temporary table called 'Subscribers#TEMP'.

INSERT INTO Subscribers#Temp(Order_Number,Order_Status,Purchase_Date) VALUES (1234,'received','2015-06-30 11:10:36.956')

EXECUTE CreateTriggeredSend  key='TEST_1', FromAddress='test123@salesforce.com', FromName='test', ToAddress='arctest42@gmail.com',SubscriberKey='12345678', Subscribers='Subscribers#Temp'

Execute

you can execute the stored procedure.

EXECUTE CreateTriggeredSend  key='TEST_1', FromAddress='test123@salesforce.com', FromName='test', ToAddress='arctest42@gmail.com',SubscriberKey='12345678'

EXECUTE CreateTriggeredSend  key='TEST_1', FromAddress='test123@salesforce.com', FromName='test', ToAddress='arctest42@gmail.com', SubscriberKey='12345678', SubscriberAttributes='{\"attrname\":\"test\",\"attrname2\":22,\"attrname3\":\"testing\"}'

Input

Name Type Required Description
Key String False Specifies the external key that identifies the triggered send definition to use for this triggered send. This value corresponds to the external key that is assigned to the definition in Marketing Cloud and can be used instead of the SendId field to select the target definition.
SendId String False Specifies the identifier (Id) of the entry-event send definition that is returned when a triggered send definition is created. You must provide either the send Id or the key to identify the triggered send definition that is executed.
FromAddress String False Specifies the email address that is displayed as the sender of the message. This value should belong to a verified sending domain that is configured for deliverability and compliance.
FromName String False Specifies the display name that appears as the sender in the recipient's inbox. Using a recognizable from name improves trust and open rates.
ToAddress String True Specifies the recipient's email address. This address is validated before the send request is queued.
SubscriberKey String True Specifies the unique Id that is defined for the message recipient. SubscriberKey links the send event to the contact profile so that tracking, preferences, and personalization resolve correctly.
SubscriberAttributes String False Contains name-and-value pairs that provide attribute data used to personalize the message for this recipient. Attributes must match fields that are defined in the triggered send definition or its associated data sources.
RequestType String False Specifies how the request is processed.

Result Set Columns

Name Type Description
Success String A Boolean field that returns a value of 'true' when the triggered send request is accepted and created successfully. It returns a value of 'false' when the request fails validation or cannot be queued.
RecipientSendId String Returns the Id that is generated for the recipient's send when the event send definition is triggered successfully. This Id can be used to correlate the request with tracking, logs, and diagnostics.
Messages String Returns a collection of message-level results and diagnostics that are produced by the triggered send, including status messages, error details, and validation feedback. These details assist with troubleshooting and audit reporting.

CData Python Connector for Salesforce Marketing Cloud

DeleteKeyword

Deletes an existing keyword from a specified Salesforce Marketing Cloud account. Removing a keyword prevents further inbound Short Message Service (SMS) messages from being associated with the corresponding campaign or automation.

Delete Keyword By Id

Deletes a keyword on an account given a keyword Id.

EXECUTE DeleteKeyword KeywordId = 'alm5LXNSSktGMGluRznRb1Rb1R5MDZFQTo4Njow'

Delete Keyword By Longcode

Deletes a keyword on an account given a keyword and long code.

EXECUTE DeleteKeyword LongCode = '5550003232', Keyword = 'TEST'

Delete Keyword By Shortcode

Deletes a keyword on an account given a keyword, short code, and country code.

EXECUTE DeleteKeyword ShortCode = '89239', Keyword = 'TEST', CountryCode = 'US'

Input

Name Type Required Description
KeywordId String False Specifies the encoded identifier (Id) of the keyword that is to be deleted. This system-generated value uniquely identifies the keyword configuration within Salesforce Marketing Cloud and ensures that the correct keyword record is targeted for deletion.
Keyword String False Specifies the keyword that is to be deleted from the associated long or short code. Keywords act as trigger words that subscribers text to participate in programs or manage subscriptions. Deleting a keyword removes its ability to process inbound messages.
LongCode String False Specifies the long code that is associated with the keyword being deleted. A long code is a standard ten-digit number that supports two-way Short Message Service (SMS) communication for localized or low-volume campaigns.
ShortCode String False Specifies the short code that is associated with the keyword being deleted. A short code is a five- or six-digit number that supports high-volume SMS programs. Either a long code or short code must be provided to identify the correct keyword configuration.
CountryCode String False Specifies the two-letter country code that identifies the country in which the short code is registered. This parameter ensures that deletion requests are processed under the correct country-level messaging compliance settings.

Result Set Columns

Name Type Description
Status String Returns the operational status of the keyword after the delete operation completes. This output confirms whether the deletion succeeded or if further action is required.

CData Python Connector for Salesforce Marketing Cloud

FireEntryEvent

Fires an entry event to initiate a journey in Salesforce Marketing Cloud. This procedure triggers contact entry into a defined customer journey, enabling automated interactions based on real-time behavioral or data events.

Input

Name Type Required Description
ContactKey String True Specifies the unique identifier (Id) that represents the subscriber or contact associated with the event. This key links the event instance to a specific contact record in Salesforce Marketing Cloud and ensures that the correct contact is admitted into the journey.
EventDefinitionKey String True Specifies the unique event definition key that identifies the event source to be triggered. The event definition key is found in the Event Administration section of the Journey Builder after the event is created and saved. This value applies to both standard and custom events and must not contain a period ('.').
Data String False Specifies the data payload that defines the event properties. This parameter is required when the event includes custom fields or when the event definition specifies additional attributes. The provided data populates the data extension that is associated with the triggered event.

Result Set Columns

Name Type Description
EventInstanceId String Returns the Id that represents the specific instance of the entry event that is triggered. This system-generated value can be used to track, audit, or correlate the event with the corresponding Journey Builder execution.

CData Python Connector for Salesforce Marketing Cloud

GetChannelViewHtml

Returns the compiled HTML for a specified channel view within Salesforce Marketing Cloud. This output represents the final rendered content of an asset, allowing developers to preview or validate HTML rendering for a channel or campaign.

Input

Name Type Required Description
AssetId Integer True Specifies the unique identifier (Id) of the asset whose view content is to be retrieved. This value identifies the source asset in Content Builder and determines which file or message content is compiled.
ViewName String True Specifies the name of the asset view to retrieve. Common view types include 'HTML', 'Text', and 'Preview'. This value determines which version of the asset content is returned by the stored procedure.
Thumbnail Boolean False A Boolean field that is set to a value of 'true' to return a base64-encoded thumbnail image of the compiled content. It is set to a value of 'false' to return the complete HTML view instead of a thumbnail representation.
IncludeHeaderFooter Boolean False A Boolean field that is set to a value of 'true' to include the message header and footer in the returned content when the asset contains HTML or text views. It is set to a value of 'false' to exclude header and footer content from the output.
IncludeDesignContent Boolean False A Boolean field that is set to a value of 'true' to include additional design content, such as layout elements and design-time components, in the returned thumbnail image. It is set to a value of 'false' to return only the rendered message body.
DownloadPath String False Specifies the full file path where the compiled HTML output is saved. This parameter determines the local or network storage location for the rendered asset view.
Encoding String False Specifies the encoding type of the FileData input that is used when saving the compiled HTML file. The encoding ensures correct character rendering and compatibility with the chosen file format.

The allowed values are NONE, BASE64.

The default value is BASE64.

Result Set Columns

Name Type Description
Success Boolean A Boolean field that returns a value of 'true' when the download or view retrieval operation completes successfully. It returns a value of 'false' when the operation fails due to an invalid path, permissions issue, or compilation error.
Compiled String Returns the fully rendered representation of the specified asset view. Depending on parameters, this output can contain the complete HTML markup or the Base64-encoded thumbnail image that represents the rendered asset.

CData Python Connector for Salesforce Marketing Cloud

GetDataExtensionJobResults

Retrieves the results of a completed data extension job in Salesforce Marketing Cloud. It returns information about rows inserted, updated, or skipped, providing transparency into data import or synchronization operations.

Input

Name Type Required Description
RequestId String True Specifies the unique identifier (Id) that is returned from a previously submitted asynchronous insert or update request. This Id is used to retrieve the status and detailed results of that specific data extension operation.

Result Set Columns

Name Type Description
Page String Returns the current page number of the result set that is retrieved for the asynchronous job. This value allows clients to page through large data sets in multiple retrieval calls.
PageSize String Returns the number of data rows that are included in each page of results. This parameter helps control pagination and optimize response size when reviewing job output.
Count String Returns the total number of data rows that were added or modified as a result of the asynchronous request. This count provides visibility into the scale of the processed operation.
Status String Returns the processing status of the request (for example, 'Pending', 'Completed', or 'Error'). This status helps determine whether additional pages or error-handling steps are required.
ErrorCode String Returns an error code when the API cannot insert or update a data row. The error code categorizes the type of failure that occurred and supports programmatic troubleshooting.
Message String Returns a descriptive message when the API cannot insert or update a data row. The message provides detailed context about the specific issue that prevented successful processing.
RequestId String Returns the unique Id of the asynchronous request whose results are being retrieved. This output confirms that the results correspond to the specified request and can be used for reconciliation or logging.

CData Python Connector for Salesforce Marketing Cloud

GetDeliveryStatusOfQueuedMO

Retrieves the delivery status of a queued mobile-originated (MO) message in Salesforce Marketing Cloud. This procedure provides delivery details to support message tracking and diagnostic reporting for mobile messaging workflows.

Input

Name Type Required Description
TokenId String True Specifies the unique token identifier (Id) that is returned for the queued mobile-originated (MO) message. This value is used to retrieve delivery details and confirm message status within the MobileConnect message queue.

Result Set Columns

Name Type Description
Tracking String Returns the tracking history of the queued MO message. The tracking history includes timestamps, delivery confirmations, and carrier response codes that indicate whether the message was successfully processed, delivered, or failed in transit.

CData Python Connector for Salesforce Marketing Cloud

GetFileForAnAsset

Retrieves the binary file associated with an asset in Salesforce Marketing Cloud. This procedure enables direct access to stored files, such as images or documents, for reuse or download through integrations.

Input

Name Type Required Description
AssetId Integer True Specifies the unique identifier (Id) of the asset whose associated file is to be retrieved. This identifier links the stored procedure request to the correct Content Builder asset.
DownloadPath String False Specifies the full file path where the retrieved asset file is saved. This path determines the local or network location for the downloaded file output.

Result Set Columns

Name Type Description
Success Boolean A Boolean field that returns a value of 'true' when the asset file is successfully retrieved and stored. It returns a value of 'false' when the operation fails due to invalid identifiers, connection errors, or file access issues.
Content String Returns a Base64-encoded string that represents the binary content of the retrieved file. This value can be decoded to reconstruct the original asset file for use in other applications or systems.

CData Python Connector for Salesforce Marketing Cloud

GetHeaderFooterAccount

Retrieves the default header and footer configuration for a Salesforce Marketing Cloud account. These settings define standardized branding elements that can be applied to email and web templates for consistency across communications.

Result Set Columns

Name Type Description
HTMLHeader String Returns the HTML version of the default message header that is configured for the account. This header typically includes branded elements, such as logos or navigation links, that appear at the top of email messages.
HTMLFooter String Returns the HTML version of the default message footer that is configured for the account. The footer generally includes required compliance elements, such as unsubscribe links, legal disclaimers, or company contact information.
TextHeader String Returns the plain-text version of the default message header that is configured for the account. This header appears in text-only email sends and preserves basic structure without HTML formatting.
TextFooter String Returns the plain-text version of the default message footer that is configured for the account. This footer appears in text-only messages and includes required contact and compliance details without HTML styling.

CData Python Connector for Salesforce Marketing Cloud

GetHeaderFooterEmail

Retrieves the header and footer content that is associated with a specific email in Salesforce Marketing Cloud. These elements define the standardized branding and layout sections that appear at the top and bottom of an email message. This procedure helps ensure consistent design and compliance across campaigns.

Input

Name Type Required Description
AssetId Integer True Specifies the unique identifier (Id) of the email asset whose header and footer content is to be retrieved. This identifier links the stored procedure request to a specific message that is stored in Content Builder.

Result Set Columns

Name Type Description
HTMLHeader String Returns the HTML version of the message header that is defined for the specified email asset. This section typically includes branded elements, such as a logo, navigation links, or other design components that appear at the top of the message.
HTMLFooter String Returns the HTML version of the message footer that is defined for the specified email asset. The footer often includes compliance elements such as unsubscribe links, mailing addresses, or legal disclaimers.
TextHeader String Returns the plain-text version of the message header that is defined for the specified email asset. This header is used in text-only versions of messages and preserves structure without HTML formatting.
TextFooter String Returns the plain-text version of the message footer that is defined for the specified email asset. This footer appears in text-only messages and includes essential compliance and contact details without HTML styling.

CData Python Connector for Salesforce Marketing Cloud

GetImportSendStatus

Retrieves the status of an ImportSend automation in Salesforce Marketing Cloud. This automation imports data and triggers send operations, and the procedure returns information about execution state, completion time, and any related errors.

Input

Name Type Required Description
TokenID String True Specifies the unique identifier (Id) that is returned by the ImportAndSend stored procedure. This Id links the status request to a specific ImportSend automation and ensures that the correct run history is retrieved.

Result Set Columns

Name Type Description
Status String Returns the current processing status of the ImportSend automation (for example, 'Pending', 'Running', 'Completed', or 'Error'). This value indicates the operational state of the automation at the time of the request.
LastUpdate Datetime Returns the most recent date and time when the ImportSend automation record was updated. This timestamp reflects changes to processing status or logging information.
CreatedTime Datetime Returns the date and time when the ImportSend automation was created. This timestamp provides a historical reference for tracking the lifecycle of the automation.
StartTime Datetime Returns the date and time when the ImportSend automation began processing the submitted import file. This timestamp helps determine when the automation started evaluating and sending messages.
CompletedTime Datetime Returns the date and time when the ImportSend automation finished processing. This timestamp confirms that all import and send operations have completed for the associated request.
LastRunTime Datetime Returns the date and time when the ImportSend automation last executed. This value helps administrators review recent activity and monitor automation frequency.
Source String Returns the source system or configuration that initiated the ImportSend automation. This value identifies where the import originated and assists in tracking end-to-end message-processing workflows.
Inserted Integer Returns the number of new records that were written to the _MobileSubscription data extension during the import process. This count reflects the volume of subscribers who were added as part of the automation.
Updated Integer Returns the number of existing subscriber records that were updated during the import process. This value indicates how many contacts received refreshed subscription attributes or statuses.
Invalid Integer Returns the number of rows in the import file that cannot be processed because of validation errors or missing data. This count helps identify issues that require correction before resubmitting the file.

CData Python Connector for Salesforce Marketing Cloud

GetImportStatus

Retrieves the status of an import job in Salesforce Marketing Cloud. This procedure provides details about job progress, success, or failure, allowing users to monitor large-scale data import operations and resolve potential processing issues.

Input

Name Type Required Description
ListID String True Specifies the unique identifier (Id) of the MobileConnect list that is associated with the import operation. This identifier ensures that the stored procedure retrieves the status for the correct list-based import.
TokenID String True Specifies the unique Id that is returned by the ImportQueue operation. This value links the request to a specific MobileConnect import job and allows the system to return its current processing status.

Result Set Columns

Name Type Description
Status String Returns the current status message that describes the progress or completion state of the MobileConnect list import associated with the provided token. This message helps determine whether the import is pending, processing, completed, or failed.

CData Python Connector for Salesforce Marketing Cloud

GetJourneyPublicationStatus

Retrieves the publication status of a journey in Salesforce Marketing Cloud. This procedure returns information about whether a journey version is published, queued, or has encountered errors during deployment. It is essential for verifying automation readiness.

Input

Name Type Required Description
StatusId String True Specifies the unique identifier (Id) of the journey publication status record to retrieve. This identifier links the request to a specific publication attempt and allows the system to return its current state.

Result Set Columns

Name Type Description
Status String Returns the publishing status for the specified status Id, indicating whether the associated journey version is pending publication, actively publishing, successfully published, or has encountered an error.

CData Python Connector for Salesforce Marketing Cloud

GetMessageContactHistory

Retrieves the history of the last message that was sent to a specific mobile number in Salesforce Marketing Cloud. This procedure provides delivery timestamps, message content identifiers (Ids), and channel information for audit and tracking purposes.

Input

Name Type Required Description
MessageId String True Specifies the unique identifier (Id) of the message that is associated with the MessageContact record. This identifier links the request to a specific outbound MobileConnect message whose contact-level history is being retrieved.
TokenId String True Specifies the unique Id that is returned for the MessageContact operation. This value enables retrieval of message-tracking details that correspond to a specific send request.
MobileNumber String True Specifies the mobile number that is associated with the contact whose message history is being requested. This value ensures that the stored procedure returns tracking data for the correct recipient.

Result Set Columns

Name Type Description
Count Integer Returns the total number of recipients that are included in the send request after subtracting any mobile numbers that were unsubscribed at the time of sending. This count reflects the number of intended recipients who were eligible to receive the message.
CreateDate Datetime Returns the date and time when the MessageContact send request was submitted. This timestamp provides a reference point for reviewing delivery history and tracking message-processing timelines.
Status String Returns the delivery status of the message for the specified contact. This status indicates whether the message was delivered, bounced, queued, or failed during carrier processing.
History String Returns the detailed history that is associated with the most recent message sent to the specified mobile number. This history can include status changes, carrier responses, timestamps, and other diagnostic information that describe the contact's message-delivery lifecycle.

CData Python Connector for Salesforce Marketing Cloud

GetMessageContactStatus

Retrieves the overall delivery status of a message that was sent to a specific contact in Salesforce Marketing Cloud. This procedure aggregates delivery states such as queued, sent, delivered, or failed, supporting detailed message tracking and performance monitoring.

Input

Name Type Required Description
MessageId String True Specifies the unique identifier (Id) of the message that is associated with the MessageContact record. This identifier links the request to a specific MobileConnect message whose contact-level status is being retrieved.
TokenId String True Specifies the unique Id that is returned for the MessageContact operation. This value enables retrieval of delivery information that corresponds to a specific send request.

Result Set Columns

Name Type Description
Message String Returns the text of the Short Message Service (SMS) message that was sent to the contact. This value reflects the final message content that was delivered or attempted for delivery.
Count Integer Returns the total number of recipients included in the send request after subtracting any mobile numbers that were unsubscribed at the time of sending. This count represents the number of contacts who were eligible to receive the message.
CreateDate Datetime Returns the date and time when the MessageContact send request was submitted. This timestamp establishes the start of the message-processing timeline.
CompleteDate Datetime Returns the date and time when the message send process completed for the associated request. This value helps confirm whether delivery events have fully resolved.
Status String Returns the delivery status of the message for the specified contact. This status indicates whether the message was delivered, bounced, queued, or failed during carrier or system processing.
Tracking String Returns the tracking information that describes how the message progressed through the delivery pipeline. Tracking details can include carrier responses, status transitions, timestamps, and other indicators that help diagnose message-delivery outcomes.

CData Python Connector for Salesforce Marketing Cloud

GetMessageListStatus

Returns the status of a message that was sent to a group of mobile numbers in Salesforce Marketing Cloud. This procedure provides a summary of delivery outcomes for the entire list, enabling administrators to confirm message reach and troubleshoot delivery issues.

Input

Name Type Required Description
MessageId String True Specifies the unique identifier (Id) of the message that is associated with the MessageList send operation. This Id links the request to the specific outbound SMS message definition used for the bulk send.
TokenId String True Specifies the unique Id that is returned for the MessageList operation. This Id enables the stored procedure to retrieve delivery information for the correct batch of recipients.

Result Set Columns

Name Type Description
Message String Returns the text of the Short Message System (SMS) message that was sent to the group of recipients. This value reflects the final message content delivered or attempted for delivery during the MessageList send.
Count Integer Returns the total number of recipients included in the send request after subtracting any mobile numbers that were unsubscribed at the time of sending. This count represents the number of contacts who were eligible to receive the message.
CreateDate Datetime Returns the date and time when the MessageList send request was submitted. This timestamp marks the beginning of the message-processing timeline for the batch send.
CompleteDate Datetime Returns the date and time when the MessageList send process completed. This value confirms when all delivery events for the associated batch resolved, including carrier acknowledgments.
Status String Returns the delivery status of the message for the overall group of recipients. This status indicates whether the batch send is pending, in progress, completed, or has encountered errors during processing.
Tracking String Returns the tracking information that describes how the batch message progressed through the delivery pipeline for the group of recipients. Tracking details can include carrier responses, status transitions, timestamps, and delivery outcomes used for diagnostics and reporting.

CData Python Connector for Salesforce Marketing Cloud

GetMessageSendStatus

Retrieves the current send status of a message in Salesforce Marketing Cloud. This procedure provides operational insights into queued, in-progress, or completed sends, allowing real-time monitoring of outbound communication performance.

EXECUTE GetMessageSendStatus MessageKey = 'bcX0qaEp0USGciEnUJTW0w'

Input

Name Type Required Description
MessageKey String True Specifies the unique identifier (Id) that is used to track the delivery status of a specific transactional message send. This Id links the request to the message event that was generated through the Transactional Messaging API.

Result Set Columns

Name Type Description
RequestId String Returns the unique Id that represents this status-retrieval request. This value can be used for logging, auditing, or correlating multiple status inquiries.
EventCategoryType String Returns the event category type that is associated with the TransactionalSendEvents system. This value identifies the type of transactional messaging event that generated the status record, such as submission, delivery, or failure.
Timestamp String Returns the date and time when the event occurred, expressed in Central Standard Time. This timestamp allows send-status events to be sequenced accurately for analysis and troubleshooting.
CompositeId String Returns a Marketing Cloud–specific processing Id that uniquely identifies the combined event and message-processing sequence. This Id can be referenced in support cases or internal diagnostics to trace how the event was handled within the platform.

CData Python Connector for Salesforce Marketing Cloud

GetOAuthAccessToken

Gets an authentication token from SalesforceMarketingCloud.

Input

Name Type Required Description
AuthMode String False The type of authentication mode to use. Select App for getting authentication tokens via a desktop app. Select Web for getting authentication tokens via a Web app.

The allowed values are APP, WEB.

The default value is APP.

Verifier String False The verifier token returned by SalesforceMarketingCloud after using the URL obtained with GetOAuthAuthorizationUrl.
Scope String False Space-separated list of data-access permissions for your application. Review REST API Permission IDs and Scopes for a full list of permissions. If scope is not specified, the token is issued with the scopes assigned to the API integration in Installed Packages.
State String False Used by your application to maintain state between the request and the redirect. The authorization server includes this value when redirecting the end-user's browser back to your application. This parameter is recommended because it helps to minimize the risk of cross-site forgery attack.
CallbackUrl String False The page to return the SalesforceMarketingCloud app after authentication has been completed.
GrantType String False Authorization grant type. Only available for OAuth 2.0.

The allowed values are CODE, CLIENT.

AccountId String False Account identifier, or MID, of the target business unit. Use to switch between business units.

Result Set Columns

Name Type Description
OAuthAccessToken String The OAuth token.
OAuthRefreshToken String The OAuth refresh token.
ExpiresIn String The remaining lifetime for the access token in seconds.

CData Python Connector for Salesforce Marketing Cloud

GetOAuthAuthorizationURL

Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps.

Input

Name Type Required Description
CallbackUrl String True Where the end user is directed after login. Must match a redirect URL specified on the API integration in Installed Packages.
Scope String False Space-separated list of data-access permissions for your application. Review REST API Permission IDs and Scopes for a full list of permissions. If scope is not specified, the token is issued with the scopes assigned to the API integration in Installed Packages.
State String False Used by your application to maintain state between the request and the redirect. The authorization server includes this value when redirecting the end-user's browser back to your application. This parameter is recommended because it helps to minimize the risk of cross-site forgery attack.

Result Set Columns

Name Type Description
URL String The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app.

CData Python Connector for Salesforce Marketing Cloud

GetRefreshListStatus

Retrieves the status of a list refresh job in Salesforce Marketing Cloud. This procedure returns progress indicators, completion results, and error information for automation processes that update subscriber or data extension lists.

Input

Name Type Required Description
ListId String True Specifies the unique identifier (Id) of the MobileConnect list that is associated with the refresh operation. This Id ensures that the stored procedure retrieves the status for the correct list whose subscription records were refreshed.
TokenId String True Specifies the unique Id that is returned by the RefreshList operation. This Id links the status request to a specific MobileConnect list-refresh job and allows the system to return the most recent processing outcome.

Result Set Columns

Name Type Description
Status String Returns the current processing status of the list-refresh job, indicating whether the refresh is pending, running, completed, or has encountered an error.

CData Python Connector for Salesforce Marketing Cloud

GetSubscriptionStatus

Returns the current subscription status for one or more mobile numbers or subscriber keys in Salesforce Marketing Cloud. This procedure identifies whether each contact is subscribed, unsubscribed, or pending confirmation, supporting compliance with communication preferences and opt-in regulations.

EXECUTE GetSubscriptionStatus MobileNumbers = '["15555555555"]'
EXECUTE GetSubscriptionStatus SubscriberKeys = '["ExampleSubKey1"]'

Input

Name Type Required Description
MobileNumbers String False Specifies an array of mobile numbers for which subscription status information is requested. Each number is evaluated against MobileConnect subscription records to determine whether the contact is currently opted in, opted out, or pending confirmation.
SubscriberKeys String False Specifies an array of subscriber keys for which subscription status information is requested. Subscriber keys allow subscription checks to be performed even when mobile numbers change or when multiple numbers are associated with a single contact.

Result Set Columns

Name Type Description
Contacts String Returns detailed subscription status information for each mobile number or subscriber key provided in the request. This information can include opt-in status, opt-out status, pending confirmations, and any applicable messaging restrictions.

CData Python Connector for Salesforce Marketing Cloud

GetTrackingHistoryOfQueuedMO

Retrieves the complete tracking history of a queued mobile-originated (MO) message in Salesforce Marketing Cloud. This procedure includes delivery attempts, carrier responses, and timestamps that help administrators analyze message flow and resolve delivery issues.

Input

Name Type Required Description
TokenId String True Specifies the unique identifier (Id) that is returned for the queued mobile-originated (MO) message. This Id links the request to a specific inbound message that is awaiting processing and ensures that the correct tracking information is retrieved.

Result Set Columns

Name Type Description
Status String Returns the current processing status of the queued MO message, indicating whether the message is pending, processing, completed, or has encountered an error during carrier or system handling.
History String Returns the detailed tracking history of the queued MO message. This history can include timestamps, carrier responses, processing outcomes, and any status transitions that occurred while the message was being evaluated.

CData Python Connector for Salesforce Marketing Cloud

ImportAndSendMessage

Imports contact or message data and immediately initiates message sends in Salesforce Marketing Cloud. This procedure combines data ingestion and outbound communication in a single automated operation to support rapid campaign deployment.

EXECUTE ImportAndSendMessage MessageId = 'MessageId', " +
          "Keyword = 'Test_Keyword'," +
          "NotificationEmail = 'myEmail@example.com'," +
          "IsDuplicationAllowed = true," +
          "IsDuplicationAllowed = true," +
          "ImportDefinition = '[{" +
          "    \"FileName\": \"MyTestList.csv\"," +
          "    \"ImportType\": \"FILE\"," +
          "    \"ImportMappingType\": \"ManualMap\"," +
          "    \"FieldMaps\": [{" +
          "      \"Destination\": \"_FirstName\"," +
          "      \"Source\": \"First Name\"" +
          "    }, {" +
          "      \"Destination\": \"_Subscriberkey\"," +
          "      \"Source\": \"Subscriber Key\"" +
          "    }, {" +
          "      \"Destination\": \"_LastName\"," +
          "      \"Source\": \"Last Name\"" +
          "    }, {" +
          "      \"Destination\": \"_MobileNumber\"," +
          "      \"Source\": \"Mobile\"" +
          "    }, {" +
          "      \"Destination\": \"_CountryCode\"," +
          "      \"Source\": \"Country\"" +
          "    }]" +
          "  }]'

Input

Name Type Required Description
MessageId String True Specifies the encoded message identifier (Id) of the MobileConnect message that is used during the import-and-send operation. This Id links the import request to the correct message template or send definition.
Keyword String True Specifies the valid keyword on the associated short code that is used to opt the imported mobile numbers into the program. Using this keyword ensures that recipients are subscribed before message delivery occurs.
NotificationEmail String False Specifies the email address that receives notifications when the import operation completes. This value provides visibility into job status and helps administrators monitor automated sends.
Override Boolean False A Boolean field that is set to a value of 'true' when the override message text should be used instead of the default message. It is set to a value of 'false' when the system should send the original configured message.
OverrideText String False Specifies the message text that replaces the default message when the Override parameter is set to a value of 'true'. This text provides customized content for the outbound send.
IsDuplicationAllowed Boolean False A Boolean field that is set to a value of 'true' when duplicate messages are permitted during the import-and-send operation. It is set to a value of 'false' when duplicate sends should be prevented.
IsVisible Boolean False A Boolean field that is set to a value of 'true' when the import definition and the automatically created list should be visible in the MobileConnect interface. It is set to a value of 'false' when these resources should remain hidden from standard user views.
ImportDefinition String True Specifies the list of import definitions that should be created as part of the import-and-send operation. Currently, only one import definition is supported per request.

Result Set Columns

Name Type Description
TokenId String Returns the token Id that represents the queued import-and-send job. This Id can be used to retrieve status information or the results of the operation.
LastPublishDate String Returns the date and time when the associated message or import definition was last published. This value helps confirm that the latest configuration was used during the operation.

CData Python Connector for Salesforce Marketing Cloud

PostMessageToList

Initiates a message send to one or more contact lists in Salesforce Marketing Cloud. This procedure supports mass communication by triggering predefined message content for targeted lists managed within the account.

EXECUTE PostMessageToList MessageId = 'NCNSDNsd222as85dj92j2sM',  TargetListIds = ' [" +
          "        \"bzZ0cENGam1FZUtNX0poTDRYZzhlQTo2Mzow\"" +
          "    ]', OverrideTemplateTargetLists = true, OverrideTemplateExclusionLists = false, IgnoreExclusionLists = true, OverrideMessageText = false, " +
          "ContentURL = 'http://image.exct.net/lib/fe6d15707662057c7411/m/1/dj_CC_AUS.jpg'," +
          "UtcOffset = '-0500', WindowStart = '1500', WindowEnd = '2200', AllowDuplication = false

Input

Name Type Required Description
MessageId String True Specifies the encoded identifier (Id) of the outbound message definition. This Id appears when creating an 'API Entry Event' message in the user interface. If the configuration screen is no longer available, the Id can be retrieved by inspecting the associated API resource when the message is opened in the UI.
TargetListIds String False Specifies one or more list Id values that identify the lists whose contacts will be included in the send. When these values are provided, they override the message's default inclusion lists.
OverrideTemplateTargetLists Boolean False Specifies whether the values in the TargetListIds input should override the message's default target list configuration. A value of 'true' applies the override, and a value of 'false' retains the template defaults.
ExclusionListIds String False Specifies one or more list Id values that identify the lists whose contacts must be excluded from the send. When these values are provided, they override the message's default exclusion lists.
OverrideTemplateExclusionLists Boolean False Specifies whether the values in ExclusionListIds input should override the message's default exclusion list configuration. A value of 'true' applies the override, and a value of 'false' retains the template defaults.
IgnoreExclusionLists Boolean False Specifies whether all exclusion lists, including default exclusion lists defined for the message, should be ignored. A value of 'true' disables exclusion filtering for the send.
OverrideMessageText Boolean False Specifies whether the message text that is provided by the caller should override the message text that is stored with the outbound message definition. A value of 'true' applies the override.
MessageText String False Specifies the outbound message text. This value is required when OverrideMessageText field is set to 'true' and replaces the existing message body stored in the definition.
UtcOffset String False Specifies the offset from Coordinated Universal Time (UTC) that applies to the start and end times of the blackout window. A valid offset is required in every request to ensure that blackout restrictions are evaluated correctly.
WindowStart String False Specifies the start time of the blackout window in the time zone that is determined by the UtcOffset parameter. To determine whether the scheduled SendTime input falls within the blackout period, convert both the start and end times to UTC before evaluating them.
WindowEnd String False Specifies the end time of the blackout window in the time zone determined by the UtcOffset parameter. To determine whether the scheduled SendTime input falls within the blackout period, convert both the start and end times to UTC before evaluating them.
SendTime Datetime False Specifies the UTC date and time when the message is scheduled for delivery. If the value represents a time in the past, the message is sent immediately. The blackout window is still enforced when a blackout configuration exists.
AllowDuplication Boolean False Specifies whether the same mobile number is allowed to receive multiple copies of the message. A value of 'true' permits duplication during the send.
ContentURL String False Specifies the URL of the media file that is to be included with a Multimedia Messaging Service (MMS) message. This content is downloaded by carriers when processing the outbound request.

Result Set Columns

Name Type Description
TokenId String Specifies the token Id that is returned after the request is submitted. This Id is used to request the processing status in a follow-up API call.

CData Python Connector for Salesforce Marketing Cloud

PostMessageToNumber

Initiates the sending of a message to one or more mobile numbers in Salesforce Marketing Cloud. This procedure supports direct, one-to-one or one-to-many mobile communications for marketing or transactional purposes.

Subscribers

The columns available for the Subscribers temporary table are the following:

ColumnDescription
MobileNumberSpecifies the mobile number used as the unique identifier for that record.
SubscriberKeySpecifies the SubscriberKey value used as the unique identifier for that record.
AttributesSet real-time attributes for individual personalization strings, per subscriber. The subscriber attribute must match the attribute string in the message. You can pass attributes that are not used as attributes in the message into the SMS send log.

Execute

Use mobile numbers for referecing contact records:

EXECUTE PostMessageToNumber MessageId = 'NCNSDNsd222as85dj92j2sM', mobileNumbers = '[" +
          "    \"13175551212\"" +
          "    ]', Subscribe = true, Resubscribe = true, keyword = 'JOINSMS', Override = true, messageText = 'Welcome to Code@', ContentURL = 'http://image.exct.net/lib/abcd/m/1/dj_CC_AUS.jpg', SendTime = '2012-10-05 20:01'

Use Subscribers#TEMP table as an alternate way for referecing contact records:

INSERT INTO Subscribers#TEMP (MobileNumber, SubscriberKey, Attributes) VALUES ('15555554410', 'ExampleSubKey1', '{" +
          "            \"FirstName\":\"Michael\"" +
          "            }')
INSERT INTO Subscribers#TEMP (MobileNumber, SubscriberKey, Attributes) VALUES ('15555552254', 'ExampleSubKey2', '{" +
          "            \"FirstName\":\"Kristen\"" +
          "            }')          
EXECUTE PostMessageToNumber MessageId = 'NCNSDNsd222as85dj92j2sM', Subscribe = true, Resubscribe = true, Keyword = 'JOINSMS', Override = false, SendTime = '2012-10-05 20:01' 

Input

Name Type Required Description
MessageId String True Specifies the encoded identifier (Id) of the outbound message definition. This Id is required to route the send request to the appropriate MobileConnect message configuration.
MobileNumbers String False Specifies an array that contains one or more mobile numbers that should receive the message. Each number must be in a valid format supported by the carrier.
Subscribe Boolean False Specifies whether Salesforce Marketing Cloud should create a subscription for the mobile number when none exists. A value of 'true' creates a new subscription that aligns with the message's short code and keyword.
Resubscribe Boolean False Specifies whether Salesforce Marketing Cloud should reinstate a subscription for the mobile number if it is currently unsubscribed. A value of 'true' reactivates the subscription so that the contact can receive messages again.
Keyword String False Specifies the keyword associated with the short code that applies to the outbound message. This parameter is required when Subscribe or Resubscribe is set to 'true' because the subscription workflow must map to the appropriate keyword.
Override Boolean False Specifies whether the provided MessageText value should override the message text that is stored with the message definition. A value of 'true' applies the override.
MessageText String False Specifies the message text that replaces the text stored with the outbound message definition. This value is required when the Override input is set to 'true'.
UtcOffset String False Specifies the offset from Coordinated Universal Time (UTC) that applies to the blackout window start and end times. This value is required in every request to ensure that blackout restrictions are evaluated correctly.
WindowStart String False Specifies the start time of the blackout window in the time zone that is determined by the UtcOffset parameter. To determine whether the SendTime input falls within the blackout period, convert the start and end times to UTC before comparing them to the scheduled delivery time.
WindowEnd String False Specifies the end time of the blackout window in the time zone that is determined by the UtcOffset parameter. To determine whether the SendTime input falls within the blackout period, convert the start and end times to UTC before comparing them to the scheduled delivery time.
SendTime Date False Specifies the UTC date and time when the message should be delivered. If the value represents a time in the past, the system sends the message immediately. Blackout window rules still apply when a blackout configuration exists.
ContentURL String False Specifies the URL of the media content to be sent with an Multimedia Messaging Service (MMS) message. Carriers retrieve this content when processing the outbound request.

Result Set Columns

Name Type Description
TokenId String Specifies the token Id that is returned after the request is submitted. This Id can be used in a subsequent API call to check the processing status of the send.

CData Python Connector for Salesforce Marketing Cloud

PublishJourney

Publishes a specified journey version asynchronously in Salesforce Marketing Cloud. Publication makes the journey active and available for contact entry, enabling real-time automation execution.

Input

Name Type Required Description
JourneyId String True Specifies the unique identifier (Id) of the journey, expressed as a globally unique Id. Salesforce Marketing Cloud assigns this value to each journey definition, and the publish operation uses it to locate and activate the correct journey.
JourneyVersion Integer True Specifies the version number of the journey that should be published. This value determines which iteration of the journey definition is activated and made available for entry and execution.

Result Set Columns

Name Type Description
StatusId String Specifies the status Id that represents the outcome of the publish request. This Id can be used to retrieve additional publication details (for example, success, failure, or validation results).

CData Python Connector for Salesforce Marketing Cloud

QueueContactImport

Queues a contact import job in Salesforce Marketing Cloud. This procedure prepares contact data for processing and import into the system, allowing for asynchronous execution and progress tracking.

FieldMaps

The columns available for the FieldMaps temporary table are the following:

ColumnDescription
DestinationDestination field map.
OrdinalOrdinal field map.
SourceSource field map.

Execute


INSERT INTO FieldMaps#TEMP (destination, ordinal, source) VALUES ('_MobileNumber', 2, 'mobile number')
INSERT INTO FieldMaps#TEMP (destination, ordinal, source) VALUES ('_CountryCode', 3, 'locale')
INSERT INTO FieldMaps#TEMP (destination, ordinal, source) VALUES ('_SubscriberKey', 1, 'subscriber key')
EXECUTE QueueContactImport ListId = 'UEhwdktFWXpFZUs3Z3hRUW45R2dBQTo2Mzow', ShortCode = '90913', Keyword = 'WELCOME', SendEmailNotification = true, EmailAddress = 'example@example.com', " +
          "ImportMappingType = 'MapByOrdinal', FileName = 'testdata.csv', FileType = 'csv', IsFirstRowHeader = true

Input

Name Type Required Description
ListId String True Specifies the list identifier (Id) that determines to which MobileConnect list the imported contacts should be added. This Id links the file import to the appropriate subscription list.
ShortCode String False Specifies the short code that is associated with the import. The short code defines the messaging channel through which contacts can receive future messages.
Keyword String False Specifies the keyword that applies to the import. The keyword determines the subscription context that is assigned to the imported contacts.
SendEmailNotification Boolean False Specifies whether an email notification should be sent when the contact import begins or completes. A value of 'true' enables notifications.
EmailAddress String False Specifies the email address that receives the import notification when the SendEmailNotification field is set to 'true'.
ImportMappingType String False Specifies the field mapping strategy that is used to interpret the columns in the import file. This value determines how file fields map to MobileConnect attributes.
FileName String False Specifies the name of the import file, including its extension. The file must be uploaded to the designated Enhanced FTP location before processing.
FileType String False Specifies the type of that is file used for the import. The only supported file type is a .csv file.
IsFirstRowHeader Boolean False Specifies whether the first row of the file contains column headers. A value of 'true' treats the first row as header information.

Result Set Columns

Name Type Description
TokenId String Specifies the token Id that is generated for the queued contact import. This Id can be used to check the processing status in a follow-up request.

CData Python Connector for Salesforce Marketing Cloud

QueueMoMessage

Queues a mobile-originated (MO) message for sending in Salesforce Marketing Cloud. It supports asynchronous message handling to manage large volumes of inbound or outbound Short Message Service (SMS) traffic efficiently.

EXECUTE QueueMoMessage MobileNumbers = '[" +
          "  \"15555551212\"" +
          "  ]', ShortCode = '86288', MessageText = 'CODETEST'
EXECUTE QueueMoMessage Subscribers = '[    " +
          "     {   " +
          "       \"mobilenumber\": \"15555551212\",    " +
          "       \"subscriberkey\": \"0_MC1652\"   " +
          "     },    " +
          "     {   " +
          "       \"mobilenumber\": \"15555551213\",    " +
          "       \"subscriberkey\": \"0_MC1652\"   " +
          "     }   " +
          "   ]', ShortCode = '86288', MessageText = 'CODETEST'

Input

Name Type Required Description
MobileNumbers String False Specifies an array of mobile numbers that represent the source of the mobile-originated (MO) message simulation. This parameter is used when the message should be processed as coming from raw phone numbers that are not linked to existing subscriber profiles. Either the MobileNumbers or Subscribers parameters must be provided, but not both.
Subscribers String False Specifies an array of objects that each contain a subscriber key and a mobile number. This parameter is used when the MO message simulation must be tied to specific subscriber records in Salesforce Marketing Cloud. Each entry maps the inbound message to a known contact. Either the Subscribers or MobileNumbers parameters must be provided, but not both.
ShortCode String True Specifies the short code through which the message is processed. The short code determines the messaging route and applies the appropriate subscription and compliance rules.
MessageText String True Specifies the message text that is queued for delivery as an MO message simulation. This text represents the inbound message content that the system processes.

Result Set Columns

Name Type Description
Results String Specifies the results that are returned after the MO message is queued for processing. These results can include submission details, validation outcomes, or any errors that are detected during the queue operation.

CData Python Connector for Salesforce Marketing Cloud

RefreshList

Refreshes a list in Salesforce Marketing Cloud. This procedure updates subscriber data and segmentation logic to reflect recent imports or status changes, ensuring that campaigns target the most current audience information.

Input

Name Type Required Description
ListId String True Specifies the unique identifier (Id) of the MobileConnect list that should be refreshed. Refreshing the list updates its membership based on the most recent subscription data tied to the associated short code and keyword.

Result Set Columns

Name Type Description
TokenId String Specifies the token Id that is returned after the refresh request is queued. This Id can be used in a follow-up call to check the processing status of the list refresh operation.

CData Python Connector for Salesforce Marketing Cloud

RefreshOAuthAccessToken

Refreshes the OAuth access token used for authentication with SalesforceMarketingCloud.

Input

Name Type Required Description
OAuthRefreshToken String True Set this to the token value that expired.
GrantType String False Authorization grant type. Only available for OAuth 2.0.

The allowed values are CODE, CLIENT.

Result Set Columns

Name Type Description
OAuthAccessToken String The authentication token returned from SalesforceMarketingCloud. This can be used in subsequent calls to other operations for this particular service.
OAuthRefreshToken String This is the same as the access token.
ExpiresIn String The remaining lifetime on the access token.

CData Python Connector for Salesforce Marketing Cloud

SendMessageToRecipient

Sends an over-the-top (OTT) message to a specific recipient in Salesforce Marketing Cloud. Supported OTT networks include Facebook Messenger and LINE. This procedure facilitates cross-platform communication with customers through integrated messaging channels.

MessageContents

You cannot send an OTT message to the recipient without specifying the content of the message. To create message contents, you must insert data in a temporary table called 'MessageContents#TEMP'. The columns available for this temporary table are the following:

ColumnDescription
TypeIndicates the message content type of the send request with values: text, image, audio, video, native.
TextMessage text to be sent out to the recipient. Required for 'text' type message content.
UrlURL of the multimedia attachment to be sent out to the recipient. Required for 'image, audio, video' type message content.
AltUrlAlternate URL of the multimedia attachment to be sent out to the recipient. Required for LINE for 'image, video' type message content.
DurationLength of the audio multimedia attachment to be sent out to the recipient. Required for LINE for 'audio' type message content.
NativePayloadOtt-network-specific blob of JSON payload passed in message request.
IsReusableIndicates if a multimedia attachment can be reused for future messages. Only supported for Messenger.
AttachmentIdAttachment Id of a reusable multimedia asset. Only supported for Messenger.

MessageCustomKeys

You can also specify message custom keys to pass-through in the message payload by inserting data in a temporary table called 'MessageCustomKeys#TEMP'. The columns available for this temporary table are the following:

ColumnDescription
messagingTypeIndicates the messaging_type of a messenger send request with values: RESPONSE, UPDATE, MESSAGE_TAG. Required for Messenger send requests.
tagMessage Tag of a messenger send request. Required for Messenger send request if messagingType = Message_TAG.
notificationTypeIndicates the push notification type for message send request with values: REGULAR, SILENT_PUSH, NO_PUSH. Required for Messenger. Optional for Messenger send requests.

Execute

Messenger message send:

INSERT INTO MessageContents#TEMP (type, text) VALUES ('text', 'thanks for purchase')
INSERT INTO MessageCustomKeys#TEMP (messagingType) VALUES ('RESPONSE')
EXECUTE SendMessageToRecipient MessageKey = 'e1c35141-6e5c-4bc2-813b-60f969e52b0d', MessageGroupKey = 'CanBeAGUIDorAny100UnicodeCharString', SenderType = 'messenger', SenderId = '503868699681937', OttId = 'FBfacdb735074f7c492c0bf190fa99020', UserReference = '1938cd4d34cc4db0b109756b8a9b14ff', Subject = 'Message Name', ValidityPeriod = 30"

Different Messenger Content Types:

INSERT INTO MessageContents#TEMP (type, url, AltUrl, IsReusable, AttachmentId) VALUES ('image', 'https://example.com/original.jpg', 'https://example.com/preview.jpg', true, 12345)
INSERT INTO MessageCustomKeys#TEMP (messagingType) VALUES ('RESPONSE')
EXECUTE SendMessageToRecipient MessageKey = 'e1c35141-6e5c-4bc2-813b-60f969e52b0d', MessageGroupKey = 'CanBeAGUIDorAny100UnicodeCharString', SenderType = 'messenger', SenderId = '503868699681937', OttId = 'FBfacdb735074f7c492c0bf190fa99020', UserReference = '1938cd4d34cc4db0b109756b8a9b14ff', Subject = 'Message Name', ValidityPeriod = 30"

LINE message send:

INSERT INTO MessageContents#TEMP (type, text) VALUES ('text', 'thanks for purchase')
INSERT INTO MessageCustomKeys#TEMP (messagingType) VALUES ('RESPONSE')
EXECUTE SendMessageToRecipient MessageKey = 'CanBeAGUIDorAny100UnicodeCharString', MessageGroupKey = 'CanBeAGUIDorAny100UnicodeCharString', SenderType = 'line', SenderId = '2145435435632435', OttId = 'U42348yafsd8y3248yfsq8cy9088934d', UserReference = '1938cd4d34cc4db0b109756b8a9b14ff', Subject = 'Message Name', ValidityPeriod = 30"

Input

Name Type Required Description
MessageKey String True Specifies the user-defined identifier (Id) for the outbound message. This key distinguishes the message from other requests and is used for tracking and reporting.
MessageGroupKey String False Specifies a user-defined identifier that groups multiple send requests together. This grouping allows related message requests to be tracked and managed as a single logical set.
SenderType String True Specifies the name of the over-the-top (OTT) messaging network that is used to deliver the message. This value determines the routing behavior and required authentication context.
SenderId String True Specifies the Id of the OTT resource that sends the message. For LINE, this value is the LINE channel Id. For Messenger, this value is the Facebook page Id.
OttId String True Specifies the recipient's identifier within the OTT network. For LINE, if the system cannot validate the userReference value, it retries by using the OttId value together with the sender Id.
UserReference String True Specifies an alternate Id for the recipient. For Messenger, this value corresponds to the user_ref token. For LINE, this value corresponds to the reply token that LINE generates for an inbound message event. This token is used to send a direct reply to that event and is valid only for a short period.
Subject String False Specifies the message name or subject label that identifies the content or purpose of the outbound message.
ValidityPeriod Integer True Specifies the length of time during which the request remains valid. If delivery cannot be completed within this period, the request expires and is not processed.

Result Set Columns

Name Type Description
OttRequestId String Specifies the identifier (Id) that represents the OTT send request. This Id can be used in follow-up operations to check the status or outcome of the request.

CData Python Connector for Salesforce Marketing Cloud

SendTransactionalMessageToMultipleRecipients

Sends a transactional message to multiple recipients using a defined send definition in Salesforce Marketing Cloud. This procedure supports bulk message delivery while maintaining individualized personalization for each recipient.

Execute

Transactional message send:

For RecipientAggregate and Attributes either JSON or temp table as input. For example,

INSERT INTO RecipientAggregate#TEMP (RecipientContactKey, RecipientTo, RecipientMessageKey, RecipientAttributes) VALUES ('recipient1', 'recipient1@example.com', 'nFL4ULgheUeaGbPIMzJJSw', '{"RequestAttribute_1":"value_1", "RequestAttribute_2":"value_2", "Attribute1":"This is one for recipient1", "Attribute2":"This is two for recipient1"}');
INSERT INTO RecipientAggregate#TEMP (RecipientContactKey, RecipientTo, RecipientMessageKey, RecipientAttributes) VALUES ('recipient2', 'recipient2@example.com', 'GV1LhQ6NFkqFUAE1IsoQ9Q', '{"UserAttribute_3":"value_3", "UserAttribute_4":"value_4"}');

EXECUTE SendTransactionalMessageToMultipleRecipients DefinitionKey = '2FA_order_accounts', RecipientAggregate = 'RecipientAggregate#TEMP', Attributes = '{"UserAttribute_a":"value_a", "UserAttribute_b":"value_b"}'

INSERT INTO Attributes#TEMP (UserAttr_1, UserAttr_2) VALUES ('UserAttrValue_1', 'UserAttrValue_2');

INSERT INTO RecipientAggregate#TEMP (RecipientContactKey, RecipientTo, RecipientMessageKey, RecipientAttributes) VALUES ('recipient1', 'recipient1@example.com', 'nFL4ULgheUeaGbPIMzJJSw', '{"RequestAttribute_1":"value_1", "RequestAttribute_2":"value_2", "Attribute1":"This is one for recipient1", "Attribute2":"This is two for recipient1"}');
INSERT INTO RecipientAggregate#TEMP (RecipientContactKey, RecipientTo, RecipientMessageKey, RecipientAttributes) VALUES ('recipient2', 'recipient2@example.com', 'GV1LhQ6NFkqFUAE1IsoQ9Q', '{"UserAttribute_3":"value_3", "UserAttribute_4":"value_4"}');


EXECUTE SendTransactionalMessageToMultipleRecipients DefinitionKey = '2FA_order_accounts', RecipientAggregate = 'RecipientAggregate#TEMP', Attributes = 'Attributes#TEMP'

Input

Name Type Required Description
DefinitionKey String True Specifies the unique identifier (Id) of the send definition that determines the content, settings, and classification used for the transactional send. This Id links the request to the definition configured in Marketing Cloud.
RecipientContactKey String False Specifies the unique Id for the subscriber receiving the message. Each request must include a contact key. You can use an existing subscriber key or allow the system to create one at send time by providing the recipient's email address.
RecipientTo String False Specifies the channel address of the recipient. For email, this value is the recipient's email address. For other channels, the address format depends on the channel type.
RecipientMessageKey String False Specifies the unique Id that is used to track message status for the recipient. This value can be generated automatically or provided in the request. It can be up to 100 characters and accepts all characters. Each recipient in the request must have a unique message key; duplicate keys within the same request cause the message to be rejected.
RecipientAttributes String False Specifies the set of key–value pairs that personalize the message for the recipient. These attributes must correspond to profile attributes, content attributes, or triggered send data extension attributes.
RecipientAggregate String True Specifies an array of recipient objects that contain the parameters, personalization data, and metadata required for each recipient in a multirecipient send request. Each object can include tracking identifiers and attribute mappings.
Attributes String False Specifies the key–value pairs used to personalize the message for the recipient. These values must map to profile attributes, content attributes, or triggered send data extension attributes. This parameter applies when attributes are provided at the request level rather than at the individual recipient level.

Result Set Columns

Name Type Description
RequestId String Specifies the unique Id that is assigned to the transactional send request. This Id is used in follow-up calls to retrieve the status or results of the request.
MessageKey String Specifies the unique Id that tracks the message send status for monitoring and reporting purposes.
Status String Specifies the operational status of the transactional send request (for example, queued, processing, completed, or failed).
ErrorMessage String Specifies the error message that is returned when the request encounters a failure. This value helps diagnose issues with validation, configuration, or delivery.

CData Python Connector for Salesforce Marketing Cloud

SendTransactionalMessageToRecipient

Sends a transactional message to a single recipient using a specified send definition in Salesforce Marketing Cloud. This procedure enables the delivery of personalized, event-triggered communications.

Execute

Send a transactional message:

Attributes support either JSON or temp table as input. For example,

EXECUTE SendTransactionalMessageToRecipient MessageKey = 'e1c35141-6e5c-4bc2-813b-60f969e52b0d', DefinitionKey = 'CanBeAGUIDorAny100UnicodeCharString', RecipientContactKey = 'd3c4a2d2-b620-4a39-88aa-b14868b766c6', RecipientTo = 'john@example.com', Attributes = '{"UserAttr_1":"UserAttrValue_1","UserAttr_2":"UserAttrValue_2"}'

INSERT INTO Attributes#TEMP (UserAttr_1, UserAttr_2) VALUES ('UserAttrValue_1', 'UserAttrValue_2');

EXECUTE SendTransactionalMessageToRecipient MessageKey = 'e1c35141-6e5c-4bc2-813b-60f969e52b0d', DefinitionKey = 'CanBeAGUIDorAny100UnicodeCharString', RecipientContactKey = 'd3c4a2d2-b620-4a39-88aa-b14868b766c6', RecipientTo = 'john@example.com', Attributes = 'Attributes#TEMP';

Input

Name Type Required Description
MessageKey String True Specifies the user-defined identifier (Id) for the outbound message. This Id distinguishes the message from other send requests and is used to track the status of the transactional send.
DefinitionKey String True Specifies the unique Id of the send definition that determines the content, sending classification, and configuration used for the transactional message.
RecipientContactKey String True Specifies the contact key that identifies the subscriber who receives the message. Each request must include a contact key. You can use an existing subscriber key or allow the system to create one at send time by providing the recipient's email address.
RecipientTo String False Specifies the channel address of the recipient. For email, this value is the recipient's email address. For other channels, the address format depends on the channel type.
Attributes String False Specifies the set of key–value pairs that is used to personalize the message for the recipient. These values must correspond to profile attributes, content attributes, or triggered send-data extension attributes.

Result Set Columns

Name Type Description
RequestId String Specifies the unique Id that is assigned to the transactional send request. This Id is used in follow-up operations to retrieve the status or outcome of the request.

CData Python Connector for Salesforce Marketing Cloud

StopJourney

Stops a running journey in Salesforce Marketing Cloud. This procedure halts active automation processes and prevents new contacts from entering the journey while preserving existing data for analysis and compliance.

Input

Name Type Required Description
JourneyId String True Specifies the unique identifier (Id) of the journey that should be stopped. This Id is expressed as a globally unique Id and corresponds to the journey definition that is stored in Journey Builder.
JourneyVersion Integer True Specifies the version number of the journey to stop. This value determines which published iteration of the journey is affected by the stop operation.

Result Set Columns

Name Type Description
Success Boolean Specifies whether the stop operation succeeded. A value of 'true' confirms that the journey was stopped, and a value of 'false' indicates that the request did not complete successfully.

CData Python Connector for Salesforce Marketing Cloud

SOAP Data Model

The CData Python 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.

Commonly used tables include:

Table Description
Automation Defines automations created within Automation Studio in Salesforce Marketing Cloud. Each automation specifies a sequence of scheduled or triggered activities such as imports, sends, or data updates.
BounceEvent Provides details about email bounce events in Salesforce Marketing Cloud.
BusinessUnit Represents a business unit within an Enterprise or Enterprise 2.0 Salesforce Marketing Cloud account. Each business unit defines a logical partition for users, data, and permissions.
ClickEvent Contains tracking data for link click events in Salesforce Marketing Cloud.
DataExtension Represents a data extension within a Salesforce Marketing Cloud account. A data extension is a custom table that stores subscriber or relational data used for segmentation, personalization, or automation.
DataExtensionField Represents individual fields within a data extension in Salesforce Marketing Cloud. Each field defines the data type, length, and attributes of a column in a data extension.
Email Represents an email object in Salesforce Marketing Cloud. Each record contains metadata about an email message, including subject, content area references, and send configurations.
EmailSendDefinition Stores email send definitions in Salesforce Marketing Cloud. Each record includes message details, sender and delivery profiles, and audience configurations.
ImportDefinition Defines reusable import definitions in Salesforce Marketing Cloud. Each import definition specifies the file location, mapping, and data extension target for recurring import operations.
List Represents subscriber lists in Salesforce Marketing Cloud. A list defines a group of subscribers that share common attributes or purposes, such as newsletter recipients or event registrants.
ListSubscriber Retrieves subscriber relationships for lists in Salesforce Marketing Cloud. Each record shows which lists a subscriber belongs to or which subscribers are assigned to a list.
OpenEvent Records open events for email sends in Salesforce Marketing Cloud. Each record includes the timestamp, subscriber key, and send context for an opened message.
QueryDefinition Represents an SQL query activity that can be executed through the SOAP API in Salesforce Marketing Cloud.
Send Represents email send operations in Salesforce Marketing Cloud. Each record includes aggregate tracking data for sent emails, such as audience size, delivery results, and performance metrics.
SendSummary Provides summary information for a completed send event in Salesforce Marketing Cloud. Each record includes key metrics such as total sent, delivered, opened, and bounced messages.
SentEvent Contains tracking data for email send events in Salesforce Marketing Cloud.
Subscriber Represents a subscriber in Salesforce Marketing Cloud. Each record identifies an individual who has opted to receive marketing communications via email or Short Message Service (SMS).
TriggeredSendDefinition Defines triggered send definitions in Salesforce Marketing Cloud. A triggered send definition establishes parameters for automatically sending emails to contacts who meet specified conditions or trigger events.
TriggeredSendSummary Provides summary metrics for specific triggered send operations in Salesforce Marketing Cloud. Each record includes counts for messages sent, delivered, and failed, supporting operational and performance analysis.
UnsubEvent Contains data about unsubscription events in Salesforce Marketing Cloud. Each record captures the subscriber, timestamp, and context of the unsubscribe action.

Stored Procedures

Stored Procedures are actions that are invoked via SQL queries. They perform tasks beyond standard CRUD operations, including creating schemas and managing OAuth tokens.

CData Python Connector for Salesforce Marketing Cloud

Tables

The connector models the data in Salesforce Marketing Cloud as a list of tables in a relational database that can be queried using standard SQL statements.

CData Python Connector for Salesforce Marketing Cloud Tables

Name Description
Account Represents an account within Salesforce Marketing Cloud. Each record defines the configuration, credentials, and organizational context of a Marketing Cloud account. This table supports management of account-level metadata for system integration and user provisioning.
AccountUser Represents an individual user who belongs to a specific Salesforce Marketing Cloud account. Each user record includes details such as roles, permissions, and access settings. This table supports queries and updates but does not allow deletions to protect account integrity.
BusinessUnit Represents a business unit within an Enterprise or Enterprise 2.0 Salesforce Marketing Cloud account. Each business unit defines a logical partition for users, data, and permissions. This table supports query and update operations but does not allow deletions to maintain enterprise hierarchy integrity.
ContentArea Represents a content area (ContentArea) in Salesforce Marketing Cloud. A ContentArea defines a reusable section of content, such as text, images, or dynamic blocks, that can be inserted into multiple messages or templates. This table allows you to manage reusable content elements to ensure brand consistency and efficiency.
DataExtension Represents a data extension within a Salesforce Marketing Cloud account. A data extension is a custom table that stores subscriber or relational data used for segmentation, personalization, or automation. This table allows you to query, create, and manage data structures that support targeted communications.
Email Represents an email object in Salesforce Marketing Cloud. Each record contains metadata about an email message, including subject, content area references, and send configurations. This table is used to query or manage email assets that are stored and deployed from the account.
EmailSendDefinition Stores email send definitions in Salesforce Marketing Cloud. Each record includes message details, sender and delivery profiles, and audience configurations. This table allows you to define and manage parameters that control how and when emails are sent to subscribers.
FileTrigger Represents configuration data that defines file-based automation triggers within Salesforce Marketing Cloud. A file trigger initiates an automation when a file is placed in a designated Enhanced FTP location, enabling automated imports or other workflow actions that begin upon file detection. This table does not support delete operations.
FilterDefinition Defines audience segmentation filters in Salesforce Marketing Cloud. Each filter specifies logical rules that identify which contacts or subscribers meet specific criteria. This table supports update and query operations but does not allow inserts, as filters are managed within the platform interface.
ImportDefinition Defines reusable import definitions in Salesforce Marketing Cloud. Each import definition specifies the file location, mapping, and data extension target for recurring import operations. This table supports query and update operations, but it does not allow inserts because imports are configured through the application interface.
List Represents subscriber lists in Salesforce Marketing Cloud. A list defines a group of subscribers that share common attributes or purposes, such as newsletter recipients or event registrants. This table supports list management operations including queries, inserts, and updates.
Portfolio Represents a file that is stored in the portfolio of a Salesforce Marketing Cloud account. Each record includes file metadata such as name, type, and storage location. This table supports query and management of digital assets that are uploaded or referenced across campaigns.
ProgramManifestTemplate Represents standardized templates that define the structure and configuration of program manifests that are used within Salesforce Marketing Cloud workflows. These templates provide a consistent model for describing program components and their relationships. This table does not support insert or delete operations.
QueryDefinition Represents an SQL query activity that can be executed through the SOAP API in Salesforce Marketing Cloud. Each query definition specifies the SQL text, data extension target, and scheduling information for automated query execution. This table supports query and retrieval operations but does not allow inserts or updates.
ReplyMailManagementConfiguration Defines configuration settings for Reply Mail Management (RMM) in Salesforce Marketing Cloud. RMM determines how reply emails are processed, routed, and categorized for an account. This table does not support deletions to preserve email routing integrity.
Send Represents email send operations in Salesforce Marketing Cloud. Each record includes aggregate tracking data for sent emails, such as audience size, delivery results, and performance metrics. This table supports query and reporting but does not allow deletes or updates.
SendClassification Represents send classifications in Salesforce Marketing Cloud. A send classification defines the delivery parameters for a message, including CAN-SPAM classification (commercial and transactional or relationship messages), sender profile, and delivery profile. This table helps enforce consistent email compliance and brand policies.
SenderProfile Stores sender profile configurations in Salesforce Marketing Cloud. A sender profile defines the 'From' name, 'From' email address, and reply handling for outbound messages. This table supports integration with send definitions to maintain consistent sender identity across campaigns.
SMSTriggeredSend Represents individual instances of Short Message Service (SMS) triggered sends in Salesforce Marketing Cloud. Each record corresponds to a message sent as part of a triggered send definition. This table does not support deletes or updates to preserve historical send data.
Subscriber Represents a subscriber in Salesforce Marketing Cloud. Each record identifies an individual who has opted to receive marketing communications via email or Short Message Service (SMS). This table is central to subscriber management, preference handling, and audience segmentation.
SuppressionListDefinition Represents suppression lists in Salesforce Marketing Cloud. A suppression list defines subscribers who should be excluded from specific sends or publications. Each record can be associated with one or more suppression contexts to enforce message exclusions.
TriggeredSendDefinition Defines triggered send definitions in Salesforce Marketing Cloud. A triggered send definition establishes parameters for automatically sending emails to contacts who meet specified conditions or trigger events. The 'All Subscribers' list permission is required when using the default list for triggered sends.

CData Python Connector for Salesforce Marketing Cloud

Account

Represents an account within Salesforce Marketing Cloud. Each record defines the configuration, credentials, and organizational context of a Marketing Cloud account. This table supports management of account-level metadata for system integration and user provisioning.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Account WHERE Id = 123

SELECT * FROM Account WHERE Id IN (123, 456)

SELECT * FROM Account WHERE CreatedDate > '2017/01/25'

Insert

You must specify the Name column when executing an insert against this table.

INSERT INTO Account (Name) VALUES ('Test')

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE Account SET Fax = '1123123' WHERE Id = 123

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM Account WHERE Id = 123

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the unique identifier (Id) of the account. This Id distinguishes the account within the Salesforce Marketing Cloud environment and is used to reference it in configuration, hierarchy, and API operations.

AccountType String False

Specifies the type of Salesforce Marketing Cloud account (for example, 'BUSINESS_UNIT or 'ENTERPRISE_2'). This value determines the features, permissions, and structural capabilities available to the account.

The allowed values are BUSINESS_UNIT, CHANNEL_CONNECT, CONNECT, DOTO_MEMBER, ENTERPRISE_2, EXACTTARGET, LP_MEMBER, None, PRO_CONNECT, PRO_CONNECT_CLIENT.

ParentID Int False

Specifies the Id of the parent account for hierarchical configurations such as Lock and Publish, On Your Behalf, Enterprise, and Enterprise 2.0 models. This value links the account to the business unit or enterprise structure that governs it.

BrandID Int False

Specifies the Id of the branding profile that is associated with the account. Branding profiles provide sender identity details such as logos, colors, and footers that are applied to email assets.

PrivateLabelID Int False

Specifies the Id of the private label configuration for the account. Private label settings control custom branding for login pages, navigation, and account-level interfaces.

ReportingParentID Int False

Specifies the Id of the parent account that is used for consolidated reporting within an account hierarchy. This value determines which higher-level account receives aggregated metrics and roll-up reporting for the current business unit.

Name String False

Specifies the name of the account as displayed in the Salesforce Marketing Cloud interface and in administrative tools.

Email String False

Specifies the default email address that is associated with the account. This address can be used for administrative communications and determines whether subscriber information is eligible for email sends.

BusinessName String False

Specifies the business name of the account owner. This value often appears in email footers, compliance displays, and account-level branding.

Phone String False

Specifies the primary phone number that is associated with the account owner or business entity.

Address String False

Specifies the physical address that is used for compliance purposes when communicating with a person. This address can appear in the required footer of commercial messages.

Fax String False

Specifies the fax number that is associated with the account owner, when it is applicable.

City String False

Specifies the city portion of the account owner's physical mailing address. This value appears in the required footer of email messages.

State String False

Specifies the geographic state or region that is associated with the account owner's physical mailing address.

Zip String False

Specifies the postal or ZIP code of the account owner's physical mailing address.

Country String False

Specifies the country associated with the account owner's physical mailing address. This value appears in the required footer of email messages to support compliance with regional regulations.

IsActive Boolean False

Specifies whether the account is currently active. A value of 'true' indicates that the account can be used for sends, API requests, and administrative operations.

IsTestAccount Bool False

Specifies whether the account is classified as a test account. A value of 'true' indicates that the account is designated for testing or non-production use.

Client_ClientID1 Int True

Specifies the client Id that is associated with the account within the broader Salesforce Marketing Cloud client structure.

DBID Int False

Specifies the internal database Id that Salesforce Marketing Cloud uses to reference the account within its underlying platform infrastructure. This value is system-generated, read-only, and not used in customer-facing operations.

CustomerID Long False

Specifies the long-form internal customer Id that Salesforce Marketing Cloud assigns to the account for backend processing and system reconciliation. This value is system-generated, read-only, and not exposed in standard UI workflows.

DeletedDate Datetime True

Specifies the date and time when the account was deleted or scheduled for deactivation.

EditionID Int False

Specifies the edition of the Salesforce Marketing Cloud product that the account uses. Product editions determine feature availability and capacity limits.

ModifiedDate Datetime False

Specifies the date and time when the account information was last modified through the interface or an API call.

CreatedDate Datetime False

Specifies the date and time when the account was originally created within Salesforce Marketing Cloud.

ParentName String False

Specifies the name of the parent account that appears in the account hierarchy. This value helps administrators understand business unit inheritance and governance relationships.

Subscription_SubscriptionID String True

Specifies the internal subscription Id that Salesforce Marketing Cloud assigns for backend subscription management and billing alignment. This value is system-generated, read-only, and not surfaced in standard UI workflows.

Subscription_HasPurchasedEmails Bool True

Indicates whether the subscription record is associated with purchased email-sending capacity. This value reflects backend subscription metadata and is not typically used in customer-facing operations.

Subscription_EmailsPurchased Int True

Specifies the number of email sends that the account has purchased as part of its subscription.

Subscription_Period String True

Specifies the subscription term that Salesforce Marketing Cloud records for internal billing and entitlement tracking. This value represents the period that is associated with the account's contracted services and is system-managed rather than used in customer-facing operations.

Subscription_AccountsPurchased Int True

Specifies the total number of Salesforce Marketing Cloud accounts that are included in the subscription.

Subscription_LPAccountsPurchased Int True

Specifies the number of Lock and Publish accounts that are purchased as part of the subscription.

Subscription_DOTOAccountsPurchased Int True

Specifies the number of Salesforce Marketing Cloud agency reseller accounts that are purchased for the subscription.

Subscription_BUAccountsPurchased Int True

Specifies the number of business units that are purchased for the subscription.

Subscription_AdvAccountsPurchased Int True

Specifies the number of advertising accounts that are included in the subscription.

Subscription_BeginDate Datetime True

Specifies the date when the subscription term begins.

Subscription_EndDate Datetime True

Specifies the date when the subscription term ends.

PartnerKey String False

Specifies the unique partner-supplied Id for the account. This value is available only through the API.

Client_PartnerClientKey String True

Specifies the partner client key that is associated with the account within the partner integration.

InheritAddress Bool False

Specifies whether an Enterprise 2.0 business unit inherits its physical address information from its parent business unit.

UnsubscribeBehavior Int True

Specifies how the system handles unsubscribe actions for the account. The value determines the unsubscribe model that is applied.

Subscription_ContractNumber String True

Specifies the contract number that is associated with the subscription. This value is not currently exposed in Salesforce Marketing Cloud but is expected to represent a contractual reference Id that licensing and billing systems use for cross-system reconciliation.

Subscription_ContractModifier String True

Specifies an optional modifier value that is associated with the subscription contract.

IsTrialAccount Bool False

Indicates whether the account operates under a trial subscription. This field is not currently in active use but is expected to help distinguish trial environments from paid environments for entitlement and feature-availability logic.

Client_EnterpriseID Long True

Specifies the read-only Id of the enterprise to which the client belongs.

ParentAccount_ID Int False

Specifies the read-only Id of the account's parent within the hierarchy.

ParentAccount_Name String True

Specifies the name of the account's parent within the hierarchy.

ParentAccount_ParentID Int True

Specifies the read-only Id of the parent's parent account within the hierarchy.

ParentAccount_CustomerKey String True

Specifies the customer key for the parent account. The customer key uniquely identifies the parent account within its object type.

ParentAccount_AccountType String True

Specifies the account type of the parent account (for example, an enterprise or business unit account).

CustomerKey String False

Specifies the user-supplied unique Id for the account object within its object type.

Locale_LocaleCode String True

Specifies the locale code that is associated with the account's localization settings.

TimeZone_ID Int True

Specifies the read-only Id of the timezone that is assigned to the account.

TimeZone_Name String True

Specifies the descriptive name of the timezone that is assigned to the account.

Roles String False

Specifies the collection of roles that are assigned to the account for permission and access control.

ContextualRoles Int True

Specifies the contextual role assignments that are applied to the account based on feature usage or business unit context.

ObjectState String False

Specifies an internal state value that represents the account's current system-level condition. This field supports lifecycle tracking, such as indicating whether an account configuration is being provisioned, updated, or archived.

LanguageLocale_LocaleCode String True

Specifies the locale code that is associated with the language layout for the account.

IndustryCode String False

Specifies the industry classification code that is associated with the account.

AccountState Int False

Specifies the operational state of the account, such as active or inactive.

SubscriptionRestrictionFlags Long False

Specifies restriction settings that apply to the subscription. These flags control subscription-level limitations and operational constraints.

CData Python Connector for Salesforce Marketing Cloud

AccountUser

Represents an individual user who belongs to a specific Salesforce Marketing Cloud account. Each user record includes details such as roles, permissions, and access settings. This table supports queries and updates but does not allow deletions to protect account integrity.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM AccountUser WHERE Id = 123

SELECT * FROM AccountUser WHERE Id IN (123, 456)

SELECT * FROM AccountUser WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Client_Id, Name, Email, UserID, and Password.

INSERT INTO AccountUser (Client_Id, UserId, Name, Email, Password) VALUES (123, 'bcabsbasbcasb', 'Test', 'test@gmail.com', 'testpas@2sowrd')

Update

You must specify the Id and the Client_Id in the WHERE clause when executing an update against this table.

UPDATE AccountUser SET Name = 'changed' WHERE Id = 123 AND Client_Id = 456

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the unique identifier (Id) that the system assigns to the account user record.

CreatedDate Datetime False

Indicates the date and time when the account user record was created. This timestamp is maintained by the system.

ModifiedDate Datetime False

Indicates the most recent date and time when the account user record was changed. This value helps track administrative updates and audit activity.

Client_ID [KEY] Int False

Specifies the Id of the client that is associated with the account user. This value links the user to the appropriate Marketing Cloud client context.

AccountUserID Int False

Specifies the Id that is assigned by Salesforce Marketing Cloud for the account user. This Id uniquely identifies the user within the account and is required for administrative and API-level operations.

UserID String False

Specifies the Id of the user within the authentication and login system. This value is used for credential management and user lookup.

Name String False

Specifies the display name that is associated with the user. This value appears in administrative interfaces and access-management tools.

Email String False

Specifies the primary email address that is associated with the user. This value is used for login, notifications, and administrative communication.

MustChangePassword Bool False

Returns a value of 'true' when the user must change their password at the next login. It returns a value of 'false' when no password change is required.

ActiveFlag Bool False

Returns a value of 'true' when the user account is active and permitted to access the system. It returns a value of 'false' when the account is inactive or disabled.

ChallengePhrase String False

Specifies the phrase that the user selects for login assistance workflows. This phrase helps verify the user's identity during account recovery.

ChallengeAnswer String False

Specifies the answer that corresponds to the challenge phrase for login assistance. This value is validated during account recovery and authentication checks.

IsAPIUser Bool False

Returns a value of 'true' when the user is authorized to authenticate through API methods. It returns a value of 'false' when the user can access the system only through the user interface. API-enabled users retain their passwords until those passwords are explicitly changed.

NotificationEmailAddress String False

Specifies the email address to which system notifications, password alerts, and administrative messages for the user are sent.

Client_PartnerClientKey String False

Specifies the partner client key that is associated with this user when the account is integrated with a partner system. This value is available through the API and supports partner-driven provisioning workflows.

Password String False

Specifies the password that is assigned to the account user. This value is stored and handled according to Marketing Cloud's security protocols.

Locale_LocaleCode String True

Specifies the locale code that defines the user's regional formatting for dates, numbers, and language preferences.

TimeZone_ID Int True

Specifies the Id of the time zone that is associated with the user. This value determines how the platform displays time-based information to the user.

TimeZone_Name String True

Specifies the name of the time zone that is associated with the user. This value provides a readable reference that aligns with the user's TimeZone_ID.

CustomerKey String False

Specifies the user-supplied unique Id for this object within its object type. This value enables custom integration, mapping, and synchronization scenarios.

DefaultBusinessUnit Int False

Specifies the business unit that the user accesses by default upon login. This value determines the user's initial workspace and content scope.

LanguageLocale_LocaleCode String True

Specifies the locale code that determines the user's language and translation preferences within the interface.

Client_ModifiedBy Int False

Specifies the Id of the user who most recently modified this account user record. This value supports auditing and administrative traceability.

CData Python Connector for Salesforce Marketing Cloud

BusinessUnit

Represents a business unit within an Enterprise or Enterprise 2.0 Salesforce Marketing Cloud account. Each business unit defines a logical partition for users, data, and permissions. This table supports query and update operations but does not allow deletions to maintain enterprise hierarchy integrity.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM BusinessUnit WHERE Id = 123

SELECT * FROM BusinessUnit WHERE Id IN (123, 456)

SELECT * FROM BusinessUnit WHERE CreatedDate > '2017/01/25'

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE BusinessUnit SET Name = 'Changed' WHERE Id = 123

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the system-generated identifier (Id) that uniquely represents the business unit within the Marketing Cloud hierarchy.

AccountType String False

Specifies the Salesforce Marketing Cloud account classification assigned to the business unit. Valid values include BUSINESS_UNIT, CHANNEL_CONNECT, CONNECT, DOTO_MEMBER, ENTERPRISE_2, EXACTTARGET, LP_MEMBER, None, PRO_CONNECT, and PRO_CONNECT_CLIENT. This classification determines feature access, provisioning rules, and administrative scope.

ParentID Int False

Specifies the Id of the parent account or enterprise business unit. This value determines the hierarchical structure that governs permissions, shared content, and inherited settings.

BrandID Int False

Specifies the branding profile that is associated with the business unit. This value determines which brand tags and identity properties apply to messages sent from the unit.

PrivateLabelID Int False

Specifies the private label configuration that is associated with the business unit. This configuration customizes interface elements and branding in supported contexts.

ReportingParentID Int False

Specifies the Id of the parent account used for consolidated roll-up reporting. This value determines where the business unit's tracking and performance metrics aggregate within an enterprise hierarchy.

Name String False

Specifies the display name that is assigned to the business unit. This value appears in Salesforce Marketing Cloud Administration and in business-unit selection menus.

Email String False

Specifies the default email address that is associated with the business unit. Systems use this address as the default sender context when subscriber information does not provide an override.

FromName String False

Specifies the default 'From Name' value that is used for email messages that originate from the business unit. This value helps establish sender identity in outbound communications.

BusinessName String False

Specifies the legal or operational business name that is associated with the business unit. This value is included in required physical mailing address components in email footers.

Phone String False

Specifies the contact phone number that is associated with the business unit. This value appears in compliance-required physical address details.

Address String False

Specifies the mailing address that is associated with the business unit. This address appears in the physical address footer that all compliant email messages must include.

Fax String False

Specifies the fax number that is associated with the business unit. This value is maintained for completeness within the physical address profile.

City String False

Specifies the city component of the business unit's physical mailing address. This value appears in the required footer of all outbound email messages.

State String False

Specifies the state component of the physical mailing address associated with the business unit.

Zip String False

Specifies the postal or zip code for the business unit's physical address.

Country String False

Specifies the country component of the physical mailing address that is associated with the business unit.

IsActive Bool False

Returns a value of 'true' when the business unit is active and available for use. It returns a value of 'false' when the business unit is inactive or restricted through administrative controls.

IsTestAccount Bool False

Returns a value of 'true' when the business unit is designated as a test account. It returns a value of 'false' when the business unit operates as a production environment.

Client_ID Int False

Specifies the internal client Id that is assigned to the business unit. This value determines the organizational and billing scope of the unit.

DBID Int False

Specifies an internal database Id that is maintained for system-level operations. This value is not used in customer-facing processes.

CustomerID Long False

Specifies the customer-level Id that is associated with the business unit. This value supports billing, entitlements, and account provisioning.

DeletedDate Datetime False

Specifies the date and time when the business unit was marked for deletion. Administrators must set this value before the system can remove the business unit.

EditionID Int False

Specifies the Salesforce Marketing Cloud product edition assigned to the business unit. This edition determines available features and entitlement boundaries.

IsTrialAccount Bool False

Returns a value of 'true' when the business unit operates under a trial subscription. It returns a value of 'false' when the business unit is fully licensed.

Locale_LocaleCode String True

Specifies the locale code that determines the business unit's default regional formatting, such as date, time, and number display rules.

Client_EnterpriseID Long True

Specifies the enterprise-level Id that is associated with the business unit. This value defines the top-level organizational context for hierarchy and permissions.

ModifiedDate Datetime False

Indicates the most recent date and time when the business unit's configuration or metadata was updated.

CreatedDate Datetime False

Specifies the date and time when the business unit was created within the enterprise hierarchy.

Subscription_SubscriptionID String True

Specifies the internal subscription Id that is associated with the business unit's licensed services. This value supports contract alignment and entitlement tracking.

Subscription_HasPurchasedEmails Bool True

Returns a value of 'true' when the subscription record is associated with purchased email-sending capacity. It returns a value of 'false' when the subscription does not include email sends.

Subscription_EmailsPurchased Int True

Specifies the number of email messages that the business unit is licensed to send under its subscription agreement.

Subscription_Period String True

Specifies the subscription term that Salesforce Marketing Cloud records for internal billing and entitlement tracking. This value represents the contract period that is associated with licensed services.

Subscription_AccountsPurchased Int True

Specifies the number of Salesforce Marketing Cloud accounts that are included in the subscription. This value determines how many child business units the organization can provision.

Subscription_LPAccountsPurchased Int True

Specifies the number of Lock and Publish accounts that the subscription supports. These accounts enable controlled asset distribution and governance.

Subscription_DOTOAccountsPurchased Int True

Specifies the number of Salesforce Marketing Cloud agency reseller accounts that are included in the subscription. These accounts support distributed operations across multiple customer entities.

Subscription_BUAccountsPurchased Int True

Specifies the number of business units that the subscription allows the customer to create within the enterprise hierarchy.

Subscription_AdvAccountsPurchased Int True

Specifies the number of advertising accounts that the business unit is licensed to use. These accounts support integrated advertising activities across connected channels.

Subscription_BeginDate Datetime True

Specifies the date and time when the subscription term for the business unit begins. This value determines when licensed capabilities and entitlements become active.

Subscription_EndDate Datetime True

Specifies the date and time when the subscription term ends. This value determines when licensed services expire unless the subscription is renewed.

Subscription_Notes String True

Contains internal notes or annotations that are associated with the subscription record. This field is retained for compatibility but is not commonly used in modern subscription workflows.

Subscription_ContractNumber String True

Specifies the contract number that is associated with the business unit's subscription. This value supports internal billing, licensing reconciliation, and cross-system contract tracking.

Subscription_ContractModifier String True

Specifies an optional modifier or qualifier that is associated with the subscription contract. This value can represent amendments or special terms that affect the contract configuration.

PartnerKey String False

Specifies the unique partner-supplied Id that is associated with the business unit. This value is available only through the API and allows external systems to map or track the account consistently.

Client_PartnerClientKey String True

Specifies the partner client key that external systems provide for the business unit. This value enables cross-system reference, synchronization, and partner-level reporting.

ParentName String False

Specifies the display name of the parent account that governs the business unit. This value reflects the hierarchical structure within the enterprise.

ParentAccount_ID Int True

Specifies the Id of the parent account in the Salesforce Marketing Cloud hierarchy. This value determines which account provides inherited settings and administrative oversight.

ParentAccount_Name String True

Specifies the display name of the parent account from which the business unit inherits configuration and permissions.

CustomerKey String False

Specifies the user-defined unique Id that is assigned to the business unit within its object type. This value supports cross-system references and environment migrations.

Description String False

Provides a human-readable description that communicates the purpose, characteristics, or administrative role of the business unit within the enterprise.

DefaultSendClassification_ObjectID String True

Specifies the system-controlled, read-only Id of the default send classification that governs how commercial or transactional sends are defined for the business unit.

DefaultHomePage_ID String True

Specifies the Id of the home page that users see when they access the business unit. This value determines the default landing experience in the user interface.

InheritAddress Bool False

Returns a value of 'true' when the business unit inherits its address information from its parent account. It returns a value of 'false' when the business unit maintains its own address configuration.

ContextualRoles Int True

Specifies the contextual role assignments that apply to the business unit. These values determine which permissions, capabilities, and feature-level access rights are available within this specific account context.

LanguageLocale_LocaleCode String True

Specifies the locale code that governs language presentation within the business unit. This value determines the regional language format used in the interface.

CData Python Connector for Salesforce Marketing Cloud

ContentArea

Represents a content area (ContentArea) in Salesforce Marketing Cloud. A ContentArea defines a reusable section of content, such as text, images, or dynamic blocks, that can be inserted into multiple messages or templates. This table allows you to manage reusable content elements to ensure brand consistency and efficiency.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ContentArea WHERE Id = 123

SELECT * FROM ContentArea WHERE Id IN (123, 456)

SELECT * FROM ContentArea WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name and Content.

INSERT INTO ContentArea (Name, Content) VALUES ('Testing', 'Hello world')

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE ContentArea SET Name = 'Changed' WHERE Id = 123

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM ContentArea WHERE Id = 123

Columns

Name Type ReadOnly Description
RowObjectID String False

Specifies the system-controlled text string that uniquely identifies the individual row that represents the content area in the underlying data store. This value supports internal tracking and record reconciliation.

ObjectID String False

Specifies the system-controlled text string that uniquely identifies the content area object across API operations. This value ensures consistency when retrieving or updating content assets.

ID [KEY] Int False

Specifies the system-generated identifier (Id) that uniquely represents the content area within Salesforce Marketing Cloud. This Id is read-only and supports administrative and programmatic reference.

CustomerKey String False

Specifies the user-defined unique Id that is assigned to the content area within its object type. This value enables external systems and templates to reference the content area consistently across environments.

Client_ID Int False

Specifies the Id of the client context that is associated with the content area. This value determines the business unit in which the content area exists.

ModifiedDate Datetime False

Indicates the most recent date and time when the content area was updated. This value helps administrators track editorial and configuration changes.

CreatedDate Datetime False

Specifies the date and time when the content area was created. This value supports lifecycle tracking and audit requirements.

CategoryID Int False

Specifies the Id of the folder in which the content area is stored within Content Builder. This value supports folder-based organization and access control.

Name String False

Specifies the name that has been assigned to the content area. This value appears in Content Builder, search results, and API responses.

Layout String False

Specifies the layout type that is associated with the content area. This value determines how the content is structured or rendered in downstream email or content blocks.

IsDynamicContent Bool False

Returns a value of 'true' when the content area contains dynamic content that renders different output based on subscriber attributes or rules. It returns a value of 'false' when the content area contains static content only.

Content String False

Specifies the HTML or text content that the content area contains. This value represents the primary material used in email and template rendering.

IsSurvey Bool False

Returns a value of 'true' when the content area includes survey-related material that is intended to collect responses or feedback. It returns a value of 'false' when the content area does not include survey elements.

IsBlank Bool False

Returns a value of 'true' when the content area contains no content. It returns a value of 'false' when any content, markup, or whitespace is present.

Key String False

Specifies the internal key that Salesforce Marketing Cloud uses to reference the content area when it is included in HTML bodies or template constructs. This value ensures proper resolution during rendering.

CData Python Connector for Salesforce Marketing Cloud

DataExtension

Represents a data extension within a Salesforce Marketing Cloud account. A data extension is a custom table that stores subscriber or relational data used for segmentation, personalization, or automation. This table allows you to query, create, and manage data structures that support targeted communications.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM DataExtension WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name, CustomerKey, and Fields.

Note: The Salesforce Marketing Cloud APIs have problems with DataExtensions with names longer than 40 characters. Try to limit the name to something relatively short.

INSERT INTO DataExtension (Name, CustomerKey, Fields) VALUES ('TestName', 'TestCustomerKey', 'fieldname1;fieldname2;fieldname3')

Update

You must specify the ObjectId or CustomerKey or Name in the WHERE clause when executing an update against this table.

UPDATE DataExtension SET ResetRetentionPeriodOnImport = true WHERE ObjectId = 'nzxcaslkjd-123'

Delete

You must specify the ObjectId or CustomerKey or Name in the WHERE clause when executing a delete against this table.

DELETE FROM DataExtension WHERE ObjectId = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled identifier (Id) that uniquely identifies the data extension object. This value is assigned internally and cannot be modified by users.

PartnerKey String False

Specifies the unique partner-provided key that is associated with the data extension. This value is available only through API interactions.

CustomerKey String False

Specifies the user-supplied unique Id for the data extension within its object type. This value is often used in programmatic operations and configuration workflows.

Name String False

Specifies the name of the data extension. The value is visible in the user interface and is used to identify the resource in Salesforce Marketing Cloud applications.

CreatedDate Datetime False

Indicates the date and time when the data extension was created. This value is system-controlled.

ModifiedDate Datetime False

Indicates the date and time when the system last modified the data extension. This information assists with auditing and lifecycle tracking.

Client_ID Int False

Specifies the Id of the client associated with the data extension.

Description String False

Provides descriptive information about the purpose and usage of the data extension. This text helps administrators and developers understand the intended function of the stored data.

IsSendable Bool False

Returns a value of 'true' when the data extension can be used as a sendable audience in message sends. It returns a value of 'false' when the data extension is not eligible for send operations.

IsTestable Bool False

Returns a value of 'true' when the data extension can be used in test sends. It returns a value of 'false' when the data extension cannot participate in test send processes.

SendableDataExtensionField_Name String False

Specifies the name of the sendable field within the data extension. This field must correspond to a value that can be mapped to a subscriber identifier.

SendableSubscriberField_Name String False

Specifies the name of the subscriber field to which the sendable data-extension field is mapped. This mapping establishes the subscriber context used during email sends.

Template_CustomerKey String False

Specifies the user-supplied unique Id of the data extension template, if one is used. This value identifies the template structure from which the data extension was created.

CategoryID Long False

Specifies the Id of the folder that stores the data extension in the folder hierarchy.

Status String False

Indicates the status of the data extension. This value represents conditions such as active, inactive, or deleted.

IsPlatformObject Bool False

Returns a value of 'true' when the data extension is classified as a platform object. It returns a value of 'false' when the data extension does not qualify as a platform-level resource.

DataRetentionPeriodLength Int False

Specifies the number of time units that determine how long the data extension retains stored records before removal.

DataRetentionPeriodUnitOfMeasure Int False

Specifies the unit of time (for example, days or months) that is associated with the data retention period.

RowBasedRetention Bool False

Returns a value of 'true' when the data retention policy removes records based on individual rows. It returns a value of 'false' when the system deletes the entire data extension at the end of the retention cycle.

ResetRetentionPeriodOnImport Bool False

Returns a value of 'true' when a successful import causes the retention period to restart. It returns a value of 'false' when the retention period continues without being reset after imports.

DeleteAtEndOfRetentionPeriod Bool False

Returns a value of 'true' when the data extension is deleted at the end of its retention period. It returns a value of 'false' when the data extension remains available after the retention period ends.

RetainUntil String False

Specifies the date that marks the end of the retention period for the data extension. This value is system-calculated based on the configured retention policy.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer more granular control over the data returned from the data source.

Name Type Description
Fields String

Specifies a semicolon-separated list of field names that should be added to the data extension. This value is a pseudocolumn used for defining field creation operations.

CData Python Connector for Salesforce Marketing Cloud

Email

Represents an email object in Salesforce Marketing Cloud. Each record contains metadata about an email message, including subject, content area references, and send configurations. This table is used to query or manage email assets that are stored and deployed from the account.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Email WHERE Id = 123

SELECT * FROM Email WHERE Id IN (123, 456)

SELECT * FROM Email WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name and Subject.

INSERT INTO Email (Name, Subject) VALUES ('Testing', 'Greetings')

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE Email SET Name = 'Changed' WHERE Id = 31558

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM Email WHERE Id = 123

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the identifier (Id) that uniquely identifies the email asset within Marketing Cloud.

PartnerKey String False

Specifies the partner-provided unique Id that is associated with the email asset and is accessible only through the API.

CreatedDate Datetime False

Indicates the date and time when the email asset was created. This value is generated automatically by the system.

ModifiedDate Datetime False

Indicates the date and time when the email asset was last modified. This value updates whenever the email content or configuration changes.

Client_ID Int False

Specifies the Id of the client account that owns the email asset.

Name String False

Specifies the display name of the email asset, which appears in the user interface and in retrieval operations.

PreHeader String False

Contains the text that appears as the preheader for the email message on supported devices. This value provides preview context before the recipient opens the message.

CategoryID Int False

Specifies the Id of the folder that stores the email asset within the Content Builder hierarchy.

HTMLBody String False

Contains the HTML markup that defines the visual structure and content of the email message.

TextBody String False

Contains the plain-text version of the email message that is used for recipients who receive non-HTML messages.

Subject String False

Specifies the subject line of the email message, which appears in the recipient's inbox.

IsActive Bool False

Returns a value of 'true' when the email asset is active and available for use in sends. It returns a value of 'false' when the asset is inactive or restricted through administrative controls.

IsHTMLPaste Bool False

Returns a value of 'true' when the email message is created from pasted HTML rather than through the visual editor. It returns a value of 'false' when the email is created using other editing methods.

ClonedFromID Int False

Specifies the Id of the source email from which the current email asset was cloned. This value helps track template or content lineage.

Status String False

Specifies the current operational status of the email asset (for example, draft, published, or archived).

EmailType String False

Specifies the preferred email format associated with the asset (for example, HTML or text-only).

CharacterSet String False

Indicates the character encoding that is used in the email message to support proper rendering of special characters.

HasDynamicSubjectLine Bool False

Returns a value of 'true' when the email message uses dynamic content to personalize the subject line at send time. It returns a value of 'false' when the subject line remains static for all recipients.

ContentCheckStatus String False

Indicates the current validation state for the email's content, which reflects whether content checks have completed successfully or are still in progress.

Client_PartnerClientKey String False

Specifies the partner client key that is associated with the account that owns the email asset.

ContentAreas String False

Contains information about the content areas that are referenced within the email message, including any reusable or dynamic content blocks.

CustomerKey String False

Specifies the user-supplied unique identifier for the email asset within its object type.

CData Python Connector for Salesforce Marketing Cloud

EmailSendDefinition

Stores email send definitions in Salesforce Marketing Cloud. Each record includes message details, sender and delivery profiles, and audience configurations. This table allows you to define and manage parameters that control how and when emails are sent to subscribers.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM EmailSendDefinition WHERE ObjectID = 123

SELECT * FROM EmailSendDefinition WHERE ObjectID IN (123, 456)

SELECT * FROM EmailSendDefinition WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name, SendClassification_CustomerKey, and Email_Id.

INSERT INTO EmailSendDefinition (Name, SendClassification_CustomerKey, Email_Id) VALUES ('Testing', 13507, 31677)

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE EmailSendDefinition SET Description = 'Changed' WHERE ObjectId = 'acasascas'

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM EmailSendDefinition WHERE ObjectId = 'sdfsdf123'

Columns

Name Type ReadOnly Description
Client_ID Int True

Specifies the identifier (Id) of the client account that owns the send definition within Marketing Cloud.

CreatedDate Datetime False

Indicates the date and time when the send definition was created. This value is generated automatically by the system.

ModifiedDate Datetime False

Indicates the date and time when the send definition was last modified. This value updates whenever configuration properties or delivery settings change.

ObjectID String False

Contains the system-controlled text string Id that uniquely represents the send definition across internal services and API operations.

CustomerKey String False

Specifies the user-supplied unique Id for the send definition within its object type. This key is often used in API-based send operations and retrieval calls.

Name String False

Defines the display name of the send definition that appears in the user interface and within associated send workflows.

CategoryID Int False

Specifies the Id of the folder that stores the send definition within the Content Builder or Email Studio hierarchy.

Description String False

Provides a descriptive explanation of the send definition's purpose, configuration, or business context.

SendClassification_CustomerKey String False

Specifies the user-defined unique Id for the send classification that governs CAN-SPAM classification, delivery profile, and sender profile settings.

SenderProfile_CustomerKey String True

Specifies the user-defined unique Id for the sender profile that controls the visible sender information for outbound email messages.

SenderProfile_FromName String True

Defines the display name that appears in the email's 'From' field when the send definition is used.

SenderProfile_FromAddress String True

Specifies the email address that appears in the 'From' field for the send definition's outbound messages.

DeliveryProfile_SourceAddressType String True

Indicates the type of source internet protocol (IP) address that the delivery profile uses for message delivery (for example, default or dedicated IP pools).

DeliveryProfile_PrivateIP String True

Contains information about the private IP addresses that are assigned to the delivery profile for routing outbound email traffic.

DeliveryProfile_DomainType String True

Defines the domain type (for example, a default domain or a private authenticated domain) that is used by the delivery profile.

DeliveryProfile_PrivateDomain String True

Specifies the private domain that the delivery profile uses for authenticated sending or domain alignment within deliverability configurations.

DeliveryProfile_HeaderSalutationSource String True

Defines the source for the header salutation (for example, a profile attribute, a default value, or a content-derived value) that is applied to outbound messages .

DeliveryProfile_FooterSalutationSource String True

Defines the source of the footer salutation applied to outbound messages. Valid options include Default, ContentLibrary, or None.

SuppressTracking Bool False

Returns a value of 'true' when the send definition is configured to suppress tracking data for opens and clicks. It returns a value of 'false' when tracking metrics are fully captured and reported.

IsSendLogging Bool False

Returns a value of 'true' when send logging is enabled for the send definition, allowing send-level data to be captured in a designated data extension. It returns a value of 'false' when logging is disabled.

Email_ID Int True

Specifies the Id of the email asset that is associated with the send definition.

CCEmail String False

Specifies one or more carbon copy (CC) email addresses that should receive copies of the outbound message.

BccEmail String False

Specifies one or more blind carbon copy (BCC) email addresses that should receive copies of the outbound message without visibility to other recipients.

AutoBccEmail String False

Defines the automatically applied BCC address that receives a copy of every message sent through the send definition.

TestEmailAddr String False

Specifies an email address that is used to send test messages for validation prior to execution of a production send.

EmailSubject String False

Defines the static subject line that is applied to messages sent through the send definition.

DynamicEmailSubject String False

Contains subject-line content that can be personalized dynamically for recipients during send processing.

IsMultipart Bool False

Returns a value of 'true' when the email is sent using Multipart/MIME formatting to deliver both HTML and plain-text versions. It returns a value of 'false' when a single-part format is used.

IsWrapped Bool False

Returns a value of 'true' when link-wrapping is enabled to support click tracking within the message. It returns a value of 'false' when the message's links are not wrapped for tracking purposes.

SendLimit Int False

Specifies the maximum number of messages that can be sent through the send definition within a predefined send window.

DeduplicateByEmail Bool False

Returns a value of 'true' when the send definition removes duplicate email addresses before sending. It returns a value of 'false' when duplicate addresses are preserved.

ExclusionFilter String False

Contains AMPscript logic that evaluates to a Boolean result to determine whether a recipient should be excluded from the send.

Additional String False

Specifies a campaign-related Id that is associated with the send, often used for reporting or external system correlation.

IsPlatformObject Bool False

Returns a value of 'true' when the send definition is classified as a platform-level object for internal use. It returns a value of 'false' when the object is not platform-scoped.

CData Python Connector for Salesforce Marketing Cloud

FileTrigger

Represents configuration data that defines file-based automation triggers within Salesforce Marketing Cloud. A file trigger initiates an automation when a file is placed in a designated Enhanced FTP location, enabling automated imports or other workflow actions that begin upon file detection. This table does not support delete operations.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) query is processed server side:

SELECT * FROM FileTrigger WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name.

INSERT INTO FileTrigger (Name) VALUES ('Testing')

Update

You must specify the ObjectId in the WHERE clause when executing an update against this table.

UPDATE FileTrigger SET Name = 'Changed' WHERE ObjectId = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Contains the system-controlled text string identifier (Id) that uniquely represents the file-trigger configuration across internal services and API operations.

CustomerKey String False

Specifies the user-supplied unique Id for the file-trigger configuration within its object type.

Client_ID Long False

Specifies the Id of the client account that owns the file-trigger configuration.

ExternalReference String False

Provides an external reference value that is reserved for future integration or orchestration scenarios.

Name String False

Defines the display name that is assigned to the file-trigger configuration in the user interface.

Description String False

Provides a descriptive explanation of the file-trigger configuration and its intended purpose within data import or automation workflows.

Type String False

Indicates the list type that is associated with the file-trigger configuration. Valid values include Public, Private, Salesforce, GlobalUnsubscribe, and Master.

Status String False

Defines the current operational state of the file-trigger configuration (for example, active, inactive, or processing).

StatusMessage String False

Contains a system-generated message that describes the most recent status returned by an API call or automation process.

RequestParameterDetail String False

Contains supplemental request-parameter information that is captured during file-trigger processing. This value provides additional context for downstream automation, tracking, or diagnostic workflows that evaluate how the trigger was invoked.

ResponseControlManifest String False

Captures system-generated response details that describe how the file-trigger operation was handled. This value provides structured information that downstream automation or monitoring tools can reference when evaluating trigger outcomes or execution paths.

FileName String False

Specifies the name of the file that is associated with the file-trigger configuration, including its extension.

LastPullDate Datetime False

Indicates the most recent date and time when the system attempted to retrieve or evaluate a file that is associated with the file-trigger configuration. This value helps track historical pull activity for auditing or troubleshooting.

ScheduledDate Datetime False

Indicates the date and time when the file-trigger process is scheduled to execute according to its configuration. This timestamp helps align trigger activity with expected automation timing and supports auditing or monitoring workflows.

IsActive Bool False

Returns a value of 'true' when the file-trigger configuration is enabled for evaluation or processing. It returns a value of 'false' when the configuration is disabled or inactive.

CreatedDate Datetime False

Indicates the date and time when the file-trigger configuration was created.

ModifiedDate Datetime False

Indicates the date and time when the file-trigger configuration was last modified.

Client_CreatedBy Int False

Returns the Id of the user who created the file-trigger configuration.

Client_ModifiedBy Int False

Returns the Id of the user who last modified the file-trigger configuration.

CData Python Connector for Salesforce Marketing Cloud

FilterDefinition

Defines audience segmentation filters in Salesforce Marketing Cloud. Each filter specifies logical rules that identify which contacts or subscribers meet specific criteria. This table supports update and query operations but does not allow inserts, as filters are managed within the platform interface.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) query is processed server side:

SELECT * FROM FilterDefinition WHERE CreatedDate > '2017/01/25'

Update

You must specify the ObjectId in the WHERE clause when executing an update against this table.

UPDATE FilterDefinition SET Name = 'Changed' WHERE ObjectId = 'nzxcaslkjd-123'

Delete

You must specify the ObjectId in the WHERE clause when executing a delete against this table.

DELETE FROM FilterDefinition WHERE Object = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Stores the system-controlled text string identifier (Id) that uniquely identifies the filter definition within Salesforce Marketing Cloud. This value is read-only and ensures consistent reference across filtering, segmentation, and automation activities.

Client_ID Int True

Specifies the client Id that associates this filter definition with the correct Salesforce Marketing Cloud account or business unit. This value ensures that filtering logic executes in the appropriate account context.

Client_ClientPartnerKey Int True

Stores the partner-assigned client key that links this filter definition to an external integration or partner system. This value provides cross-system traceability when filtering logic originates outside Salesforce Marketing Cloud.

Name String False

Provides the display name of the filter definition. This value identifies the definition in the user interface and in API responses.

CustomerKey String False

Stores the user-supplied unique Id for the filter definition. This Id corresponds to the external key that is used to reference the definition in API calls and automated workflows.

CreatedDate Datetime False

Indicates the date and time when the filter definition was created. This timestamp supports auditing and version control in segmentation workflows.

ModifiedDate Datetime False

Indicates the most recent date and time when the filter definition was modified. This value helps track updates to filtering logic and assists with troubleshooting.

Description String False

Provides a detailed explanation of the purpose, criteria, and expected use of the filter definition. This text supports documentation efforts and improves maintainability.

DataSource_ID Int True

Specifies the read-only numeric Id that identifies the data source used by the filter definition. The data source determines where the filter criteria are applied.

DataSource_ObjectID String True

Stores the system-controlled text string Id that uniquely identifies the data source that is associated with the filter definition. This Id ensures consistent reference across data views and segmentation processes.

DataSource_Name Int True

Provides the name of the data source that supplies the records being filtered. This value identifies the origin of the data used in the filtering operation.

DataSource_ListName Int True

Specifies the list name that is associated with the data source when the filter definition references a subscriber list. This value helps identify the audience segment being targeted.

DataSource_CustomerKey String True

Stores the user-supplied unique Id for the data source. This Id corresponds to the external key used to reference the data source in API operations.

DataSource_CreatedDate Datetime True

Indicates the date and time when the associated data source was created. This timestamp helps track data lineage and dependency timing.

DataSource_ModifiedDate Datetime True

Indicates the most recent date and time when the associated data source was modified. This value supports auditing and consistency checking when filter logic relies on evolving data structures.

DataFilter String False

Contains the defined filtering criteria expressed as one or more filter parts. These criteria determine how the system evaluates records from the underlying data source to produce a targeted segmentation output.

CData Python Connector for Salesforce Marketing Cloud

ImportDefinition

Defines reusable import definitions in Salesforce Marketing Cloud. Each import definition specifies the file location, mapping, and data extension target for recurring import operations. This table supports query and update operations, but it does not allow inserts because imports are configured through the application interface.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ImportDefinition WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM ImportDefinition WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM ImportDefinition WHERE CreatedDate > '2017/01/25'

Update

You must specify the ObjectId in the WHERE clause when executing an update against this table.

UPDATE ImportDefinition SET Name = 'Changed' WHERE ObjectId = 'nzxcaslkjd-123'

Delete

You must specify the ObjectId in the WHERE clause when executing a delete against this table.

DELETE FROM ImportDefinition WHERE ObjectId = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled text string identifier (Id) that uniquely represents this import definition object.

PartnerKey String False

Specifies the unique partner-provided Id for this object, which is accessible only through API-level integrations.

Client_ClientID1 Int False

Specifies the client Id that is associated with the account context in which this import definition operates.

Name String False

Specifies the name of the import definition.

CustomerKey String False

Specifies the user-supplied unique Id for this import definition within its object type.

Description String False

Provides descriptive information that explains the purpose and configuration of the import definition.

FileSpec String False

Specifies the file-naming pattern that the import process expects. Valid substitutions include %%YEAR%%, %%MONTH%%, and %%DAY%%, which allow dynamic file-name resolution.

AllowErrors Bool False

Returns a value of 'true' when the import is permitted to continue after an error occurs. It returns a value of 'false' when the import must stop upon encountering an error.

FieldMappingType String False

Specifies how the system maps fields between the imported file and the destination data structure for this import definition.

FileType String False

Specifies the column delimiter type that is used in the import file (for example, 'CSV', 'TAB', or 'Other').

UpdateType String False

Specifies the update behavior that is applied to records during the import process.

MaxFileAge Int False

Specifies the maximum allowable age, expressed in hours, of the oldest file that can be included in this import definition.

MaxFileAgeScheduleOffset Int False

Specifies the number of hours used as an offset when calculating file age, which allows the import schedule to account for timezone differences.

MaxImportFrequency Int False

Specifies the minimum number of hours the system must wait before allowing another file to be imported.

DestinationObject_ID Int False

Specifies the destination object's Id.

DestinationObject_ObjectID String False

Specifies the system-controlled text string Id of the destination object.

Notification_ResponseType String True

Specifies the notification response type that is used when the import process generates a notification.

Notification_ResponseAddress String False

Specifies the email address or endpoint to which the import notification should be sent.

RetrieveFileTransferLocation_ObjectID String False

Specifies the system-controlled text string Id of the file transfer location from which import files are retrieved.

Delimiter String False

Specifies the delimiter that is used to separate data within the imported file.

HeaderLines Int False

Specifies the number of header lines in the file that should be ignored during processing.

EndOfLineRepresentation String False

Specifies the line-ending character or character sequence that is used in the import file.

NullRepresentation String False

Specifies the character or sequence that represents a null value during the import process.

StandardQuotedStrings Bool False

Returns a value of 'true' when the import process uses standard quoted-string handling. It returns a value of 'false' when the import process uses non-standard handling.

DateFormattingLocale_LocaleCode String False

Specifies the locale code that is used to interpret date formats during the import process.

CData Python Connector for Salesforce Marketing Cloud

List

Represents subscriber lists in Salesforce Marketing Cloud. A list defines a group of subscribers that share common attributes or purposes, such as newsletter recipients or event registrants. This table supports list management operations including queries, inserts, and updates.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM List WHERE Id = 123

SELECT * FROM List WHERE Id IN (123, 456)

SELECT * FROM List WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following field when inserting to this table: ListName.

INSERT INTO List (ListName) VALUES ('Test')

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE List SET ListName = 'Changed' WHERE Id = 123

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM List WHERE Id = 123

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the identifier (Id) that uniquely identifies the list.

ObjectID String False

Specifies the system-controlled text string Id that is assigned to the list object for internal tracking.

PartnerKey String False

Specifies the unique Id that is provided by a partner for the list when it is accessed through the API.

CreatedDate Datetime False

Indicates the date and time when the list was created.

ModifiedDate Datetime False

Indicates the date and time when information about the list was last modified.

Client_ID Int False

Specifies the Id of the client that owns or manages the list.

Client_PartnerClientKey String False

Specifies the partner-defined client key that is associated with the account.

ListName String False

Specifies the name that is assigned to the list.

Description String False

Provides descriptive information about the purpose, use case, or contents of the list.

Category Int False

Specifies the Id of the folder where the list is stored within the account's folder structure.

Type String False

Specifies the type of list. Valid values include 'Public', 'Private', 'Salesforce', 'GlobalUnsubscribe', and 'Master'.

CustomerKey String False

Specifies the user-supplied unique Id for the list within the list object type.

ListClassification String True

Specifies the classification that defines how the list behaves within Salesforce Marketing Cloud Cloud, such as for subscription management or audience segmentation.

AutomatedEmail_ID Int False

Specifies the Id of the automated email configuration that is associated with this list.

CData Python Connector for Salesforce Marketing Cloud

Portfolio

Represents a file that is stored in the portfolio of a Salesforce Marketing Cloud account. Each record includes file metadata such as name, type, and storage location. This table supports query and management of digital assets that are uploaded or referenced across campaigns.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Portfolio WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM Portfolio WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM Portfolio WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: DisplayName, FileName, CustomerKey, and Source_URN.

INSERT INTO Portfolio (DisplayName, FileName, CustomerKey,  Source_URN) VALUES ('portdisplayname', 'portfilename.jpg', 'portcuskey', 'https://example.com/image.jpg')

Update

You must specify the ObjectID in the WHERE clause when executing an update against this table.

UPDATE Portfolio SET DisplayName = 'ChangedDisplayName' WHERE ObjectID = 'nzxcaslkjd-123'

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

DELETE FROM Portfolio WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
RowObjectID String False

Specifies the system-generated identifier (Id) for the specific row within the Portfolio object.

ObjectID [KEY] String False

Specifies the system-controlled text string that serves as the unique object Id for the Portfolio item.

PartnerKey String False

Specifies the partner-provided unique Id that external systems use to reference the Portfolio item through the API.

CustomerKey String False

Specifies the user-supplied unique identifier for the Portfolio item within the object type.

Client_ID Int False

Specifies the Id of the client that is associated with the Portfolio item.

CategoryID Int False

Specifies the Id of the folder that contains the Portfolio item.

FileName String False

Specifies the file name that is associated with the Portfolio item, including any applicable extensions.

DisplayName String False

Specifies the human-readable name that appears for the Portfolio item in user interfaces.

Description String False

Provides descriptive and informational text that explains the purpose, contents, or usage of the Portfolio item.

TypeDescription String False

Provides descriptive information about the type or classification of the Portfolio item.

IsUploaded Bool False

Returns a value of 'true' when the Portfolio item originates from an uploaded file. It returns a value of 'false' when the file is system-generated or sourced from another internal process.

IsActive Bool False

Returns a value of 'true' when the Portfolio item is active and available for use in Salesforce Marketing Cloud. It returns a value of 'false' when the item is inactive, archived, or restricted by administrative controls.

FileSizeKB Int False

Specifies the file size of the Portfolio item in kilobytes.

ThumbSizeKB Int False

Specifies the size in kilobytes of the thumbnail image that is associated with the Portfolio item.

FileWidthPX Int False

Specifies the width of the Portfolio item's image in pixels.

FileHeightPX Int False

Specifies the height of the Portfolio item's image in pixels.

FileURL String False

Specifies the URL where the Portfolio file is stored and accessed for rendering or download.

ThumbURL String False

Specifies the URL of the thumbnail image that corresponds to the Portfolio item.

CacheClearTime Datetime False

Indicates the date and time when cached versions of the Portfolio item were last cleared to ensure updated rendering or retrieval.

CategoryType String False

Specifies whether the Portfolio folder is shared with other account users. Valid values are 'shared_portfolio' and 'media'.

CreatedDate Datetime False

Indicates the date and time when the Portfolio item was created.

CreatedBy Int False

Specifies the Id of the user who created the Portfolio item.

ModifiedBy Int False

Specifies the Id of the user who last modified the Portfolio item.

ModifiedDate Datetime False

Indicates the date and time when the Portfolio item was most recently modified.

ModifiedByName String True

Specifies the name of the user who most recently modified the Portfolio item.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer more granular control over the data returned from the data source.

Name Type Description
Source_URN String

Specifies the uniform resource name (URN) that identifies the original storage location of the Portfolio item.

CData Python Connector for Salesforce Marketing Cloud

ProgramManifestTemplate

Represents standardized templates that define the structure and configuration of program manifests that are used within Salesforce Marketing Cloud workflows. These templates provide a consistent model for describing program components and their relationships. This table does not support insert or delete operations.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ProgramManifestTemplate WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM ProgramManifestTemplate WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-123')

SELECT * FROM ProgramManifestTemplate WHERE CreatedDate > '2017/01/25'

Update

You must specify the ObjectID in the WHERE clause when executing an update against this table.

UPDATE ProgramManifestTemplate SET Content = 'ChangedContent' WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled text string identifier (Id) that uniquely identifies the program manifest template within Marketing Cloud.

CustomerKey String False

Specifies a user-supplied unique Id for the template within its object type. This value is commonly used for cross-environment promotion, API retrieval, and automation logic.

Client_ID Long False

Specifies the Id of the client account that owns this program manifest template.

Name String False

Provides the display name of the program manifest template. The name helps users locate and reference the template in configuration workflows and API calls.

Description String False

Provides a detailed explanation of the purpose, usage, and functional intent of the program manifest template. This description helps administrators understand when and how to apply the template to automation or orchestration processes.

Type String False

Specifies the program manifest category that classifies the template according to its functional purpose. This value determines how the template is interpreted during program execution and how it interacts with related automation steps.

OperationType String False

Provides metadata that specifies the type of operation the system should perform when this program manifest template is invoked. This value influences downstream workflow behavior and processing rules.

Content String False

Specifies the serialized configuration data or structured definition that the program manifest template contains. This content supplies the operational logic, field mappings, or execution details that should be applied when the template runs.

IsActive Bool False

Returns a value of 'true' when the template is active and available for program execution. It returns a value of 'false' when the template is inactive or disabled for administrative or operational reasons.

CreatedDate Datetime False

Specifies the read-only date and time when the program manifest template was created in the system.

ModifiedDate Datetime False

Specifies the date and time when the program manifest template was most recently modified.

CData Python Connector for Salesforce Marketing Cloud

QueryDefinition

Represents an SQL query activity that can be executed through the SOAP API in Salesforce Marketing Cloud. Each query definition specifies the SQL text, data extension target, and scheduling information for automated query execution. This table supports query and retrieval operations but does not allow inserts or updates.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM QueryDefinition WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM QueryDefinition WHERE ObjectID IN ('nzxcaslkjd-123', 456)

SELECT * FROM QueryDefinition WHERE CreatedDate > '2017/01/25'

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

DELETE FROM QueryDefinition WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled text string identifier (Id) that uniquely identifies the query definition within the platform.

Client_ID Int False

Specifies the Id of the client account that owns or executes the query definition.

Name String False

Specifies the user-defined name of the query definition as displayed in automation tools and administrative interfaces.

CustomerKey String False

Specifies the user-supplied unique key that identifies the query definition for API operations, imports, and automated activities.

Description String False

Provides a detailed explanation of the purpose and behavior of the query definition, including how the resulting data set is intended to be used.

QueryText String False

Specifies the SQL query text that defines the records to select, transform, or filter. The platform executes this query against the specified source data extensions.

TargetType String False

Specifies the target output type that determines whether the query writes results to a data extension, overwrites an existing target, or appends to an existing data set.

DataExtensionTarget_Name String False

Specifies the name of the data extension that is designated as the target for the query results.

DataExtensionTarget_CustomerKey String False

Specifies the user-supplied unique key that identifies the target data extension where the query results will be written.

DataExtensionTarget_Description String False

Provides a description of the target data extension that clarifies its structure, purpose, or the type of records it is expected to store.

TargetUpdateType String False

Specifies the update behavior that is applied when the query writes data to the target (for example, overwrite, add, or update).

FileType String False

Specifies the file-delimiter format that applies when exporting query results to a file (for example, 'CSV', 'TAB', or 'Other').

FileSpec String False

Specifies the file-naming pattern that is used when exporting query output to a file. The pattern supports date-based substitutions such as %%YEAR%%, %%MONTH%%, and %%DAY%%.

Status String False

Specifies the operational status of the query definition, which indicates whether it is active, paused, running, or has encountered an error.

CreatedDate Datetime False

Specifies the date and time when the query definition was initially created.

ModifiedDate Datetime False

Specifies the date and time when the query definition was most recently modified.

CategoryID Int False

Specifies the Id of the folder that stores the query definition within the account's organizational hierarchy.

CData Python Connector for Salesforce Marketing Cloud

ReplyMailManagementConfiguration

Defines configuration settings for Reply Mail Management (RMM) in Salesforce Marketing Cloud. RMM determines how reply emails are processed, routed, and categorized for an account. This table does not support deletions to preserve email routing integrity.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ReplyMailManagementConfiguration WHERE Id = 123

SELECT * FROM ReplyMailManagementConfiguration WHERE Id IN (123, 456)

SELECT * FROM ReplyMailManagementConfiguration WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: EmailDisplayName and EmailReplyAddress.

INSERT INTO ReplyMailManagementConfiguration (EmailDisplayName, EmailReplyAddress) VALUES ('Test', 'buzzlightyear@mymail.com')

Update

You must set a new value for EmailReplyAddress when executing an update against this table, and also supply its Id.

UPDATE ReplyMailManagementConfiguration SET EmailReplyAddress = 'newemailreply@gmail.com' WHERE Id = 123

Columns

Name Type ReadOnly Description
ID [KEY] Int False

The unique identifier (Id) of the reply mail management configuration.

Client_ID Int True

The Id of the client that is associated with this reply mail management configuration.

EmailDisplayName String False

Provides the display name that appears in the 'From' field when subscribers receive reply mail management messages. This value defines how the sending identity is presented in email clients.

ReplySubdomain String False

Specifies the subdomain that the reply mail management configuration uses for routing inbound replies. This subdomain forms part of the reply-to address that manages inbound subscriber responses.

EmailReplyAddress String False

Identifies the forwarding address to which inbound email replies are delivered after reply mail management processing evaluates unsubscribe requests, keywords, and filtering rules.

CreatedDate Datetime False

Indicates the date and time when this reply mail management configuration was created.

ModifiedDate Datetime False

Indicates the most recent date and time when this reply mail management configuration was modified by any system or user action.

DNSRedirectComplete Bool False

Returns a value of 'true' when the reply-to subdomain's domain name system (DNS) records have been fully redirected to the Salesforce Marketing Cloud mail servers. It returns a value of 'false' when DNS routing has not yet been completed or verified.

DeleteAutoReplies Bool False

Returns a value of 'true' when automatic replies (for example, out-of-office messages or auto-responders) are deleted instead of being forwarded to the configured reply address. It returns a value of 'false' when automatic replies are allowed to pass through to the forwarding mailbox.

SupportUnsubscribes Bool False

Returns a value of 'true' when the reply mail management configuration processes unsubscribe requests that are submitted through inbound email replies. It returns a value of 'false' when unsubscribe handling is disabled and inbound requests must be managed through other workflows.

SupportUnsubKeyword Bool False

Returns a value of 'true' when the configuration recognizes an unsubscribe keyword within an inbound email and applies the corresponding opt-out action. It returns a value of 'false' when unsubscribe-keyword recognition is disabled.

SupportUnsubscribeKeyword Bool False

Returns a value of 'true' when the configuration recognizes the word 'unsubscribe' or a similar keyword within inbound email content and applies opt-out logic. It returns a value of 'false' when unsubscribe-keyword detection is not enabled.

SupportRemoveKeyword Bool False

Returns a value of 'true' when the configuration supports a remove keyword that instructs the system to remove the subscriber from a mailing list. It returns a value of 'false' when remove-keyword actions are not processed.

SupportOptOutKeyword Bool False

Returns a value of 'true' when the configuration recognizes an opt-out keyword and applies the related subscription removal rules. It returns a value of 'false' when opt-out keywords are not evaluated.

SupportLeaveKeyword Bool False

Returns a value of 'true' when the configuration recognizes a leave keyword as an instruction to discontinue receiving messages. It returns a value of 'false' when leave-keyword support is not active.

SupportMisspelledKeywords Bool False

Returns a value of 'true' when the configuration uses heuristic matching to interpret common misspellings of unsubscribe-related keywords. It returns a value of 'false' when only exact keyword matches are accepted.

SendAutoReplies Bool False

Returns a value of 'true' when the reply mail management configuration automatically sends an acknowledgment message to the subscriber who replied. It returns a value of 'false' when no automatic acknowledgment email is sent.

AutoReplySubject String False

Defines the subject line of the acknowledgment email that the system sends when automatic replies are enabled within this reply mail management configuration.

AutoReplyBody String False

Contains the text or HTML body of the acknowledgment message that is delivered to subscribers when automatic replies are enabled.

ForwardingAddress String False

Specifies the mailbox to which inbound subscriber replies are forwarded after reply mail management processing completes unsubscribe logic, keyword interpretation, and automated handling steps.

ConversationLifetimeDays Int False

Indicates the number of calendar days that a reply mail management conversation remains active before the system considers it expired and eligible for closure.

ConversationLifetimeCycles Int False

Indicates the number of reply cycles (message exchanges) permitted within an active conversation before the system expires the session and applies any associated expiration rules.

AnonymousRuleSet_ObjectID String True

The system-controlled text string Id that identifies the rule set that is used to evaluate reply mail interactions when the sender identity cannot be matched or authenticated.

AnonymousRuleSet_Name Int True

Provides the name of the rule set that governs processing for anonymous or unidentified reply mail flows.

AnonymousRuleSet_CustomerKey String True

The user-supplied unique key that identifies the rule set that is used specifically for anonymous reply mail scenarios.

AnonymousAckTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to send acknowledgment messages for anonymous inbound replies.

AnonymousAckTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send definition responsible for acknowledgment messaging in anonymous conversation flows.

AnonymousAckTriggeredSend_Name String True

Specifies the name that is assigned to the triggered send definition that generates acknowledgment messages in anonymous reply scenarios.

AnonymousAckTriggeredSend_TriggeredSendStatus String True

Indicates the operational status of the triggered send definition used to acknowledge anonymous inbound replies.

AnonymousForwardTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to forward anonymous inbound replies to the configured forwarding address.

AnonymousForwardTriggeredSend_CustomerKey String True

The user-supplied unique key that identifies the triggered send definition responsible for forwarding messages received from anonymous or unidentified senders.

AnonymousForwardTriggeredSend_Name String True

Specifies the name assigned to the triggered send definition that forwards anonymous inbound replies.

AnonymousForwardTriggeredSend_TriggeredSendStatus String True

Indicates the operational status of the triggered send definition that forwards messages received from anonymous senders.

ResponderConversationRuleSet_ObjectID String True

Specifies the system-controlled text string Id that identifies the rule set responsible for handling reply mail conversations initiated by a responder rather than by the original message sender.

ResponderConversationRuleSet_Name Int True

Specifies the name that is assigned to the rule set that governs how reply mail management processes conversation replies that originate from a responder rather than an initial sender.

ResponderConversationRuleSet_CustomerKey String True

Specifies the user-supplied unique key that identifies the rule set used for responder-initiated conversation processing.

ResponderConversationAckTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to send acknowledgment messages to a responder.

ResponderConversationAckTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the acknowledgment triggered send associated with a responder conversation.

ResponderConversationAckTriggeredSend_Name String True

Specifies the name assigned to the acknowledgment triggered send definition that responds to messages received from a responder.

ResponderConversationAckTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the acknowledgment triggered send that is used in responder conversations.

ResponderConversationForwardTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to forward responder messages.

ResponderConversationForwardTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send used to forward messages received from a responder.

ResponderConversationForwardTriggeredSend_Name String True

Specifies the name that is assigned to the triggered send definition responsible for forwarding responder messages.

ResponderConversationForwardTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the triggered send definition that forwards responder replies.

InitiatorConversationRuleSet_ObjectID String True

Specifies the system-controlled text string Id that identifies the rule set that processes conversations initiated by a subscriber.

InitiatorConversationRuleSet_Name Int True

Specifies the name that is assigned to the rule set that governs the handling of conversation replies that originate from an initiating subscriber.

InitiatorConversationRuleSet_CustomerKey String True

Specifies the user-supplied unique key that identifies the rule set used to process conversation flows started by a subscriber.

InitiatorConversationAckTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the acknowledgment triggered send for conversations initiated by a subscriber.

InitiatorConversationAckTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send definition used to send acknowledgment responses to initiating subscribers.

InitiatorConversationAckTriggeredSend_Name String True

Specifies the name that is assigned to the triggered send definition that provides acknowledgment messaging for subscriber-initiated conversations.

InitiatorConversationAckTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the triggered send that provides acknowledgment messages for initiating subscribers.

InitiatorConversationForwardTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to forward subscriber-initiated conversations.

InitiatorConversationForwardTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send responsible for forwarding messages from an initiating subscriber.

InitiatorConversationForwardTriggeredSend_Name String True

Specifies the name assigned to the triggered send definition that forwards messages within subscriber-initiated conversations.

InitiatorConversationForwardTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the triggered send that forwards subscriber-initiated conversation messages.

ConversationExpirationTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used to notify users when a conversation reaches the configured expiration point.

ConversationExpirationTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send used for conversation-expiration notifications.

ConversationExpirationTriggeredSend_Name String True

Specifies the name that is assigned to the triggered send definition that handles conversation-expiration messaging.

ConversationExpirationTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the triggered send that processes messages related to conversation expiration.

MultiUseViolationTriggeredSend_ObjectID String True

Specifies the system-controlled text string Id that identifies the triggered send definition used when the system detects a multi-use violation in reply mail processing.

MultiUseViolationTriggeredSend_CustomerKey String True

Specifies the user-supplied unique key that identifies the triggered send that manages multi-use violation notifications.

MultiUseViolationTriggeredSend_Name String True

Specifies the name that is assigned to the triggered send definition used for multi-use violation handling.

MultiUseViolationTriggeredSend_TriggeredSendStatus String True

Indicates the current operational status of the triggered send definition that responds to multi-use violations.

InboundAddressIsOneUse Bool False

Returns a value of 'true' when the inbound reply address is configured for single-use processing, meaning the address is intended for one conversation thread before expiration or rotation. It returns a value of 'false' when the inbound reply address supports multiple uses or ongoing conversation threads.

CData Python Connector for Salesforce Marketing Cloud

Send

Represents email send operations in Salesforce Marketing Cloud. Each record includes aggregate tracking data for sent emails, such as audience size, delivery results, and performance metrics. This table supports query and reporting but does not allow deletes or updates.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Send WHERE Id = 123

SELECT * FROM Send WHERE Id IN (123, 456)

SELECT * FROM Send WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: FromName, Email_Id, and List_Id.

INSERT INTO Send (FromName, Email_Id, List_Id) VALUES ('NASA', 31677, 52362)

Columns

Name Type ReadOnly Description
ID [KEY] Int False

Specifies the system-generated identifier (Id) that is used to uniquely identify the send record. This value supports tracking and reporting workflows.

PartnerKey String False

Specifies the unique partner-supplied key that is associated with the send record and is accessible only through API integrations.

CreatedDate Datetime False

Specifies the date and time when the send record was created. This value is read-only.

ModifiedDate Datetime False

Indicates the date and time when the send record was last modified. This value reflects system-managed changes.

Client_ID Int False

Specifies the Id of the client that owns or initiates the send operation.

Client_PartnerClientKey String False

Specifies the partner-defined client key that is associated with the marketing account and exposed through API workflows.

Email_ID Int False

Specifies the Id of the email asset that is used for the send operation.

Email_PartnerKey String False

Specifies the unique partner-supplied key that is associated with the email asset and is accessible only through API integrations.

SendDate Datetime False

Specifies the date and time when the send action occurred. This value is used for tracking and reporting.

FromAddress String False

Specifies the 'From' email address that is associated with the send record. This address reflects the configured sender profile.

FromName String False

Specifies the display name that is associated with the sender and shown to recipients.

Duplicates Int False

Indicates the number of duplicate email addresses that are detected during the send process.

InvalidAddresses Int False

Indicates the number of recipient addresses that are determined to be invalid during the send process.

ExistingUndeliverables Int False

Indicates whether prior bounces exist for recipients that are included in the send.

ExistingUnsubscribes Int False

Indicates whether prior unsubscribe events are associated with recipients included in the send.

HardBounces Int False

Indicates the number of hard bounces that occur as part of the send processing.

SoftBounces Int False

Indicates the number of soft bounces that occur during the send.

OtherBounces Int False

Specifies the number of bounces classified as 'Other' that occur during the send.

ForwardedEmails Int False

Indicates the number of messages that recipients forward to additional recipients.

UniqueClicks Int False

Indicates the number of unique click events that are recorded for the message.

UniqueOpens Int False

Indicates the number of unique open events that are registered for the message.

NumberSent Int False

Indicates the total number of email messages that are sent as part of the send operation.

NumberDelivered Int False

Indicates the number of sent messages that are successfully delivered without bouncing.

NumberTargeted Int False

Indicates the number of potential recipients that are targeted as part of the send.

NumberErrored Int False

Indicates the number of emails that are not sent because an error occurs during message construction or processing.

NumberExcluded Int False

Indicates the number of recipients that are excluded from the send because of held, unsubscribed, master unsubscribed, or global unsubscribed status.

Unsubscribes Int False

Indicates the number of unsubscribe events that occur as part of the send.

MissingAddresses Int False

Specifies the number of records that do not include required address information.

Subject String False

Specifies the subject line that is associated with the email message.

PreviewURL String False

Specifies the URL that is used to preview the message that is associated with the send.

SentDate Datetime False

Specifies the date and time when the send operation took place. This value can match or differ from the scheduled SendDate value that is based on processing time.

EmailName String False

Specifies the name of the email asset that is used for the send.

Status String False

Specifies the status that is associated with the send record (for example, Completed or InProgress).

IsMultipart Bool False

Returns a value of 'true' when the message is sent with Multipart/MIME enabled. It returns a value of 'false' when the message is delivered without Multipart/MIME formatting applied.

SendLimit Int False

Indicates the maximum number of messages that the send definition allows within a designated send window.

SendWindowOpen Datetime False

Specifies the date and time when the send window begins for the send definition.

SendWindowClose Datetime False

Specifies the date and time when the send window ends for the send definition.

IsAlwaysOn Bool False

Returns a value of 'true' when the send operation is allowed to proceed while the system is in maintenance mode. It returns a value of 'false' when the operation is restricted during maintenance windows.

Additional String False

Specifies the campaign identifier that customers assign to group or categorize the send.

BCCEmail String False

Specifies the blind carbon copy (Bcc) email addresses that are configured to receive a copy of the message.

EmailSendDefinition_ObjectID String False

Specifies the system-controlled object Id that is associated with the email send definition.

EmailSendDefinition_CustomerKey String False

Specifies the customer key that is associated with the email send definition.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer more granular control over the data returned from the data source.

Name Type Description
List_Id Int

Specifies the Id of the list that is associated with the send request.

CData Python Connector for Salesforce Marketing Cloud

SendClassification

Represents send classifications in Salesforce Marketing Cloud. A send classification defines the delivery parameters for a message, including CAN-SPAM classification (commercial and transactional or relationship messages), sender profile, and delivery profile. This table helps enforce consistent email compliance and brand policies.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SendClassification WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM SendClassification WHERE ObjectID IN ('nzxcaslkjd-123', 456)

SELECT * FROM SendClassification WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name, DeliveryProfile_ObjectID, and SenderProfile_ObjectID.

INSERT INTO SendClassification (Name, DeliveryProfile_ObjectID, SenderProfile_ObjectID) VALUES ('TestName', 'aa1231231', 'vvb1231231')

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

DELETE FROM SendClassification WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled identifier (Id) that is assigned to the send classification object. This value is used to reference the object in system workflows and API operations.

SendClassificationType String False

Specifies the type that is associated with the send classification. Valid values include 'Operational', which bypasses subscription checks, and 'Marketing', which adheres to subscriber preferences.

Name String False

Specifies the name that is assigned to the send classification. This value provides a human-readable label for administrative and API use.

Description String False

Provides descriptive information that explains the purpose or configuration of the send classification. This information supports administrative oversight and auditing.

CustomerKey String False

Specifies the user-supplied unique Id that is associated with the send classification within its object type. This value is required for external references and API operations.

SenderProfile_CustomerKey String False

Specifies the customer key that is associated with the sender profile that is used for 'From Name', 'From Address', and related delivery metadata.

SenderProfile_ObjectID String False

Specifies the system-controlled object Id that is assigned to the sender profile that is linked to this send classification.

DeliveryProfile_CustomerKey String False

Specifies the customer key that is associated with the delivery profile that defines IP configuration, domain details, and delivery routing rules.

DeliveryProfile_ObjectID String False

Specifies the system-controlled object Id that is assigned to the delivery profile that is linked to this send classification.

ArchiveEmail Bool False

Returns a value of 'true' when the send classification is configured to archive email messages for compliance or auditing. It returns a value of 'false' when archiving is not applied.

Client_ID Long False

Specifies the Id of the client that owns or administers the send classification.

Client_PartnerClientKey String False

Specifies the partner-defined client key that is associated with the account and accessible through API integrations.

PartnerKey String False

Specifies the unique partner-supplied key that is associated with the send classification and available only through API operations.

CreatedDate Datetime False

Specifies the date and time when the send classification object was created. This value is system-generated and read-only.

ModifiedDate Datetime False

Indicates the date and time when the send classification object was last modified. This value reflects administrative or automated system updates.

CData Python Connector for Salesforce Marketing Cloud

SenderProfile

Stores sender profile configurations in Salesforce Marketing Cloud. A sender profile defines the 'From' name, 'From' email address, and reply handling for outbound messages. This table supports integration with send definitions to maintain consistent sender identity across campaigns.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SenderProfile WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM SenderProfile WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM SenderProfile WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name, FromName, and FromAddress.

INSERT INTO SenderProfile (Name, FromName, FromAddress) VALUES ('Test', 'Friendly Neighborhood', 'DisneyLand@gmail.com')

Update

You must specify the ObjectID in the WHERE clause when executing an update against this table.

UPDATE SenderProfile SET Name = 'changed_name', Description = 'changed_desc', FromName = 'changed_from_name', FromAddress = 'changed@gmail.com' WHERE ObjectID = 'nzxcaslkjd-123'

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

DELETE FROM SenderProfile WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
Name String False

Specifies the display name that is assigned to the sender profile and shown throughout Email Studio and related send configuration workflows.

Description String False

Provides a description that explains the purpose, usage context, or administrative details of the sender profile.

FromName String False

Specifies the default From Name that is used in email messages that reference this sender profile.

FromAddress String False

Specifies the default 'From Address' value that is associated with this sender profile and applied to outbound email messages.

UseDefaultRMMRules Bool False

Returns a value of 'true' when the sender profile uses the default Reply Mail Management (RMM) rules that are configured for the account. It returns a value of 'false' when the profile uses custom RMM rules instead of the account defaults.

AutoForwardToEmailAddress String True

Specifies the email address to which automatically forwarded replies should be sent when reply forwarding is enabled for the sender profile.

AutoForwardToName String True

Specifies the display name that is used as the To Name on automatically forwarded email messages.

DirectForward Bool False

Returns a value of 'true' when the sender profile allows replies to be forwarded directly to the designated forwarding address without RMM intervention. It returns a value of 'false' when replies are processed through RMM logic instead of being forwarded directly.

AutoForwardTriggeredSend_ObjectID String False

Specifies the system-controlled object identifier (Id) that represents the triggered send definition that is used for automatic forwarding actions.

AutoReply Bool False

Returns a value of 'true' when the sender profile sends an automatic reply message for inbound replies. It returns a value of 'false' when the profile does not send automatic replies.

AutoReplyTriggeredSend_ObjectID String False

Specifies the system-controlled object Id of the triggered send definition that is used to generate an automatic reply email.

SenderHeaderEmailAddress String False

Specifies the email address that is included in the sender header when outbound messages reference this sender profile.

SenderHeaderName String False

Specifies the display name that is included in the sender header when outbound messages reference this sender profile.

DataRetentionPeriodLength String False

Specifies the number of time units for which data that relates to the sender profile should be retained as part of data retention and compliance policies.

ReplyManagementRuleSet_ObjectID String False

Specifies the system-controlled object Id that identifies the rule set that governs reply mail management behavior for this sender profile.

RMMRuleCollection_ObjectID String False

Specifies the system-controlled object Id for the collection of RMM rules that apply to the sender profile.

Client_ID Long False

Specifies the Id of the client that owns or manages the sender profile.

PartnerKey String False

Specifies the unique partner-provided key that is associated with the sender profile and accessible only through the API.

CreatedDate Datetime False

Indicates the date and time when the sender profile was created. This value is system-generated and read-only.

ModifiedDate Datetime False

Indicates the date and time when the sender profile was last modified. This value updates when administrative or automated changes occur.

ObjectID String False

Specifies the system-controlled object Id that uniquely identifies the sender profile within Marketing Cloud.

CustomerKey String False

Specifies the user-supplied unique Id for the sender profile within its object type. This Id is used for API interactions and cross-object references.

Client_CreatedBy Int False

Returns the Id of the user who created the sender profile.

Client_ModifiedBy Int False

Returns the Id of the user who last modified the sender profile.

CData Python Connector for Salesforce Marketing Cloud

SMSTriggeredSend

Represents individual instances of Short Message Service (SMS) triggered sends in Salesforce Marketing Cloud. Each record corresponds to a message sent as part of a triggered send definition. This table does not support deletes or updates to preserve historical send data.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SMSTriggeredSend WHERE ObjectID = 123

SELECT * FROM SMSTriggeredSend WHERE ObjectID IN (123, 456)

SELECT * FROM SMSTriggeredSend WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following field when inserting to this table: SMSTriggeredSendDefinition_ObjectID.

INSERT INTO SMSTriggeredSend (SMSTriggeredSendDefinition_ObjectID) VALUES (123)

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled text string that serves as the unique identifier (Id) for the Short Message Service (SMS) triggered-send record. This Id is generated automatically and provides a stable reference for the object.

CreatedDate Datetime False

Indicates the date and time of the object's creation. This timestamp is generated by the system to record when the SMS triggered-send record was first added.

Client_ID Int False

Specifies the Id of the client. This Id associates the SMS triggered-send record with the correct Marketing Cloud account context.

SmsSendId String False

Specifies the Id for a specific SMS send that is associated with the triggered-send process. This Id links the mobile message activity to the corresponding triggered-send definition and execution.

SMSTriggeredSendDefinition_ObjectID String False

Specifies the system-controlled text string that is used as the Id of the SMS triggered-send definition. This value identifies the configuration that dictates how the triggered SMS message is constructed and delivered.

CData Python Connector for Salesforce Marketing Cloud

Subscriber

Represents a subscriber in Salesforce Marketing Cloud. Each record identifies an individual who has opted to receive marketing communications via email or Short Message Service (SMS). This table is central to subscriber management, preference handling, and audience segmentation.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Subscriber WHERE Id = 123

SELECT * FROM Subscriber WHERE Id IN (123, 456)

SELECT * FROM Subscriber WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: SubscriberKey and EmailAddress.

INSERT INTO Subscriber (SubscriberKey, EmailAddress) VALUES (123, 'test@gmail.com')

Update

You must specify the Id in the WHERE clause when executing an update against this table.

UPDATE Subscriber SET EmailAddress = 'changed@gmail.com' WHERE Id = 123

Delete

You must specify the Id in the WHERE clause when executing a delete against this table.

DELETE FROM Subscriber WHERE Id = 123

Columns

Name Type ReadOnly Description
ID Int False

Specifies the unique identifier (Id) for the subscriber record. This Id distinguishes the subscriber from all other subscriber records within the system.

PartnerKey String False

Specifies the unique Id that is provided by a partner system for the subscriber. This partner-supplied value enables cross-system correlation and is accessible only through the API.

CreatedDate Datetime False

Indicates the date and time when the subscriber record was created. This timestamp is generated automatically and provides an audit reference for record lifecycle tracking.

Client_ID Int False

Specifies the Id of the client that owns the subscriber record. This Id establishes the account context in which the subscriber exists.

Client_PartnerClientKey String False

Specifies the user-defined partner key for the client that is associated with the subscriber. This key provides an additional mapping reference for external integrations.

EmailAddress String False

Specifies the email address that is associated with the subscriber. This value determines the address used for email sends and subscriber-level communication.

SubscriberKey String False

Specifies the unique key that identifies a subscriber across all lists, data extensions, and channels. This key is typically user-defined and ensures consistent subscriber recognition throughout the system.

UnsubscribedDate Datetime False

Indicates the date and time when the subscriber unsubscribed from a list or communication stream. This timestamp reflects the moment the subscriber opted out of receiving further messages.

Status String False

Defines the current status of the subscriber. This status reflects whether the subscriber is active, bounced, held, unsubscribed, or otherwise restricted from receiving messages.

EmailTypePreference String False

Specifies the preferred email format for the subscriber. This value determines whether the subscriber receives messages in HTML, text-only, or multipart format based on their stated preference.

CData Python Connector for Salesforce Marketing Cloud

SuppressionListDefinition

Represents suppression lists in Salesforce Marketing Cloud. A suppression list defines subscribers who should be excluded from specific sends or publications. Each record can be associated with one or more suppression contexts to enforce message exclusions.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SuppressionListDefinition WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM SuppressionListDefinition WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM SuppressionListDefinition WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name.

INSERT INTO SuppressionListDefinition (Name) VALUES ('Test')

Update

You must specify the ObjectID in the WHERE clause when executing an update against this table.

UPDATE SuppressionListDefinition SET Name = 'Changed' WHERE ObjectID = 'nzxcaslkjd-123'

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

DELETE FROM SuppressionListDefinition WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID String False

Specifies the system-controlled text string that serves as the unique identifier (Id) for the suppression-list definition. This Id is read-only and is generated internally.

CustomerKey String False

Specifies the user-supplied unique Id for the suppression-list definition. This value provides an external reference that is used for integration, retrieval, and configuration tasks.

Name String False

Defines the name that is assigned to the suppression-list definition. This value helps users identify the definition within the user interface and automation workflows.

Description String False

Describes the purpose, scope, or functional behavior of the suppression-list definition. This description helps users understand how and when the list should be applied.

Client_CreatedBy Int False

Returns the Id of the user who created the suppression-list definition. This value supports auditing and administrative tracking.

CreatedDate Datetime False

Indicates the date and time when the suppression-list definition was created. This timestamp supports chronological tracking of configuration changes.

Client_ModifiedBy Int False

Returns the Id of the user who most recently modified the suppression-list definition. This value supports administrative oversight and auditing.

ModifiedDate Datetime False

Indicates the date and time when the suppression-list definition was last modified. This timestamp reflects the most recent update to its configuration.

Category Long False

Specifies the folder Id that is used to organize the suppression-list definition within the account's folder structure. This value supports navigation and access control.

Client_ID Int False

Specifies the Id of the client that owns or manages the suppression-list definition. This Id links the definition to the appropriate account.

Client_EnterpriseID Long False

Specifies the enterprise-level Id that is associated with the client. This value is reserved for future enterprise-level functionality.

SubscriberCount Long False

Indicates the number of subscriber records that are currently stored on the suppression list. This value helps assess the size and impact of the list within send operations.

CData Python Connector for Salesforce Marketing Cloud

TriggeredSendDefinition

Defines triggered send definitions in Salesforce Marketing Cloud. A triggered send definition establishes parameters for automatically sending emails to contacts who meet specified conditions or trigger events. The 'All Subscribers' list permission is required when using the default list for triggered sends.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM TriggeredSendDefinition WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM TriggeredSendDefinition WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM TriggeredSendDefinition WHERE CreatedDate > '2017/01/25'

Insert

You must specify the following fields when inserting to this table: Name, SendClassification_ObjectID, and Email_Id.

INSERT INTO TriggeredSendDefinition (Name, SendClassification_ObjectID, Email_Id) VALUES ('Test', 'nzxcaslkjd-789', 123)

Update

You must specify the ObjectID in the WHERE clause when executing an update against this table.

UPDATE TriggeredSendDefinition SET Description = 'Changed' WHERE ObjectID = 'nzxcaslkjd-123'

Delete

You must specify the ObjectID in the WHERE clause when executing a delete against this table.

When deleting a row from this table, the row will not be deleted, but instead the value of TriggeredSendStatus will be set to false.

DELETE FROM TriggeredSendDefinition WHERE ObjectID = 'nzxcaslkjd-123'

Columns

Name Type ReadOnly Description
ObjectID [KEY] String False

Specifies the system-controlled text string that serves as the unique identifier (Id) for the triggered-send definition record.

PartnerKey String False

Specifies the partner-supplied unique Id that is associated with the triggered-send definition and used exclusively for partner integrations.

CreatedDate Datetime False

Specifies the date and time when the triggered-send definition record was created. This value is read-only.

ModifiedDate Datetime False

Specifies the date and time when the triggered-send definition record was last modified. This value is read-only.

Client_ID Long False

Specifies the Id of the client account that owns the triggered-send definition.

CustomerKey String False

Specifies the user-supplied unique Id for the triggered-send definition within the object type.

Email_ID Int False

Specifies the Id of the associated email asset that is used when the triggered send is executed.

List_ID Int False

Specifies the Id of the subscriber list that is associated with the triggered send.

Name String False

Specifies the name that is assigned to the triggered-send definition.

Description String False

Provides descriptive information that explains the purpose or configuration of the triggered-send definition.

TriggeredSendStatus String False

Specifies the status of the triggered send, which indicates whether the definition is active, paused, or otherwise restricted.

HeaderContentArea_ID Int False

Specifies the Id of the header content area that is associated with the triggered-send definition.

FooterContentArea_ID Int False

Specifies the Id of the footer content area that is associated with the triggered-send definition.

SendClassification_ObjectID String False

Specifies the system-controlled text string that serves as the Id of the send classification that is associated with the triggered-send definition.

SendClassification_CustomerKey String False

Specifies the customer key (Id) of the send classification that is linked to the triggered-send definition.

SenderProfile_CustomerKey String False

Specifies the customer key (Id) of the sender profile that is linked to the triggered-send definition.

SenderProfile_ObjectID String False

Specifies the system-controlled text string that serves as the Id of the sender profile that is associated with the triggered-send definition.

DeliveryProfile_CustomerKey String False

Specifies the customer key (Id) of the delivery profile that is associated with the triggered-send definition.

DeliveryProfile_ObjectID String False

Specifies the system-controlled text string that serves as the identifier (Id) of the delivery profile that is associated with the triggered-send definition.

PrivateDomain_ObjectID String False

Specifies the system-controlled text string that serves as the identifier (Id) of the private domain that is configured for the triggered send.

PrivateIP_ID Int True

Specifies the read-only identifier (Id) of the private internet protocol (IP) address that is assigned to the triggered send.

AutoAddSubscribers Bool False

Returns a value of 'true' when the triggered-send process automatically adds the recipient to a subscriber list. It returns a value of 'false' when the triggered-send process does not add the recipient to a subscriber list.

AutoUpdateSubscribers Bool False

Returns a value of 'true' when the triggered-send process updates existing subscriber information during send processing. It returns a value of 'false' when subscriber information is not updated.

FromName String False

Specifies the display name that is used in the 'From' field of the email message for the triggered send.

FromAddress String False

Specifies the email address that is used in the 'From' field when the triggered email is sent.

BccEmail String False

Specifies one or more email addresses that receive a blind-carbon copy (Bcc) of the triggered email message.

EmailSubject String False

Specifies the subject line that is used for the triggered-send email message.

DynamicEmailSubject String False

Specifies the dynamic subject-line content that is rendered at send time based on personalization or AMPscript logic.

IsMultipart Bool False

Returns a value of 'true' when the triggered-send email is delivered as a multipart MIME message. It returns a value of 'false' when the email is not delivered in multipart format.

IsWrapped Bool False

Returns a value of 'true' when the triggered-send email includes wrapped links that are required for click-tracking. It returns a value of 'false' when link wrapping is not applied.

TestEmailAddr String False

Specifies the test email address to which test versions of the triggered-send email can be delivered.

AllowedSlots String False

Specifies configuration data that defines delivery slot permissions or restrictions. This field is reserved for future functional expansion.

SendLimit Int False

Specifies the maximum number of messages that can be delivered under the triggered-send definition within a defined send window.

SendWindowOpen Datetime False

Specifies the date and time when the allowed send window begins for the triggered-send definition.

SendWindowClose Datetime False

Specifies the date and time when the allowed send window ends for the triggered-send definition.

SuppressTracking Bool False

Returns a value of 'true' when the triggered-send definition suppresses tracking for opens, clicks, and other send events. It returns a value of 'false' when tracking is recorded normally.

Keyword String False

Specifies a keyword value that is reserved for future functionality within triggered-send processing.

List_PartnerKey String False

Specifies the partner-supplied unique Id that is associated with the referenced list object and available only through partner integrations.

Email_PartnerKey String False

Specifies the partner-supplied unique Id that is associated with the referenced email asset and available only through partner integrations.

SendClassification_PartnerKey String False

Specifies the partner-supplied unique Id that is associated with the send classification and available only through partner integrations.

PrivateDomain_PartnerKey String True

Specifies the partner-supplied unique Id that is associated with the private domain configuration and available only through partner integrations.

PrivateIP_PartnerKey String True

Specifies the partner-supplied unique Id that is associated with the private IP address configuration and available only through partner integrations.

Client_PartnerClientKey String False

Specifies the user-defined partner key (Id) that is assigned to the client account for integration or tracking purposes.

IsPlatformObject Bool False

Returns a value of 'true' when the triggered-send definition is a platform-managed object. It returns a value of 'false' when the triggered-send definition is not classified as a platform object.

CategoryID Int False

Specifies the Id of the folder that contains the triggered-send definition within the account's organizational hierarchy.

CData Python Connector for Salesforce Marketing Cloud

Views

Views are similar to tables in the way that data is represented; however, views are read-only.

Queries can be executed against a view as if it were a normal table.

CData Python Connector for Salesforce Marketing Cloud Views

Name Description
Automation Defines automations created within Automation Studio in Salesforce Marketing Cloud. Each automation specifies a sequence of scheduled or triggered activities such as imports, sends, or data updates. This view provides visibility into configured automation workflows.
BounceEvent Provides details about email bounce events in Salesforce Marketing Cloud. Each record includes Simple Mail Transfer Protocol (SMTP) codes and diagnostic information related to delivery failures. This view supports deliverability analysis and campaign performance optimization.
ClickEvent Contains tracking data for link click events in Salesforce Marketing Cloud. Each record includes the timestamp, URL identifier (Id), and destination URL for a link that a subscriber clicked in a sent message. This view is essential for analyzing engagement metrics and user interaction behavior.
DataExtensionField Represents individual fields within a data extension in Salesforce Marketing Cloud. Each field defines the data type, length, and attributes of a column in a data extension. This view provides metadata that supports schema validation and data integrity checks.
DataExtensionTemplate Represents data extension templates in Salesforce Marketing Cloud. A template defines the structural blueprint that can be reused to create multiple data extensions with consistent schema design. This view allows administrators to standardize data collection and storage across campaigns.
DataFolder Represents folders within a Salesforce Marketing Cloud account. Each folder organizes related content, data extensions, or automations into a hierarchical structure for easier management and access control. This view supports navigation and organizational reporting across stored assets.
DoubleOptInMOKeyword Defines mobile-originated (MO) keywords used for double opt-in workflows in Salesforce Marketing Cloud. Each record specifies the keyword that allows mobile users to confirm subscriptions through a two-step consent process. This view ensures compliance with opt-in regulations and supports secure subscriber management.
FileTriggerTypeLastPull Provides information about the most recent retrieval of file-trigger activity for each trigger type. This view helps track when a file-based trigger was last evaluated
ForwardedEmailEvent Records events in which a subscriber used the Forward to a Friend feature to share an email with another recipient in Salesforce Marketing Cloud. Each record includes details such as the sender, recipient, and timestamp of the forwarding action. This view supports tracking viral sharing and referral engagement.
ForwardedEmailOptInEvent Specifies opt-in events that occur when a recipient subscribes as a result of receiving a Forward to a Friend email in Salesforce Marketing Cloud. This view helps identify new subscribers who joined through referral-based interactions.
HelpMOKeyword Defines the actions associated with the HELP Short Message Service (SMS) keyword for a Salesforce Marketing Cloud account. The HELP keyword allows subscribers to request information about the sender or message program. This view supports compliance with mobile communication standards.
ImportResultsSummary Provides summary results for import jobs that were initiated from an import definition in Salesforce Marketing Cloud. Each record includes the total rows processed, successful imports, and errors encountered. This retrieve-only view supports reporting and monitoring of data import performance.
LinkSend Provides link-level details for email sends in Salesforce Marketing Cloud. Each record identifies a specific link, its tracking identifier (Id), and its relationship to a send event. This view supports engagement analysis by correlating links to subscriber click behavior.
ListSend Provides retrieve-only properties that describe the lists associated with completed send operations in Salesforce Marketing Cloud. Each record links a send event to one or more lists to support campaign tracking and performance analysis.
ListSubscriber Retrieves subscriber relationships for lists in Salesforce Marketing Cloud. Each record shows which lists a subscriber belongs to or which subscribers are assigned to a list. This view supports subscription management and audience segmentation reporting.
NotSentEvent Contains information about email messages that failed to send in Salesforce Marketing Cloud. Each record includes diagnostic codes and timestamps to support root-cause analysis of delivery failures.
OpenEvent Records open events for email sends in Salesforce Marketing Cloud. Each record includes the timestamp, subscriber key, and send context for an opened message. This view provides key engagement metrics for campaign performance analysis.
PrivateIP Contains details about private IP addresses that are assigned for message sends in Salesforce Marketing Cloud. Each record identifies the dedicated IP address used for outbound email delivery, supporting IP reputation management and sender authentication practices.
Publication Represents publication-level configuration details that support managing how subscriber-facing content is organized and distributed in Salesforce Marketing Cloud. This view provides structural information that describes publication settings, visibility rules, and relationships used in content distribution workflows.
PublicationSubscriber Describes subscribers who are associated with a publication list in Salesforce Marketing Cloud. Each record defines a subscriber's status, preferences, and linkage to a specific publication for audience management and compliance tracking.
PublicKeyManagement Provides information about public encryption keys that are stored in Salesforce Marketing Cloud for use in secure data exchange and authentication workflows. This view helps identify which keys are available for validating signatures, encrypting payloads, or establishing trusted integrations with external systems.
ResultItem Contains the individual result records returned from an asynchronous API call in Salesforce Marketing Cloud. Each record represents the outcome of a processed item, such as a contact import or message send.
ResultMessage Contains summary messages generated from asynchronous API calls in Salesforce Marketing Cloud. Each message provides status information, execution results, or error diagnostics to assist in monitoring API-based processes.
Role Defines user roles and permissions that are assigned within a Salesforce Marketing Cloud account. Each record specifies access levels, feature entitlements, and user group associations. This view supports auditing of security and access configurations.
SendEmailMOKeyword Defines the action that sends a triggered email message in response to a mobile-originated (MO) message in Salesforce Marketing Cloud. This view maps keywords in Short Message Service (SMS) messages to corresponding triggered email sends for integrated cross-channel automation.
SendSMSMOKeyword Defines the actions taken when Salesforce Marketing Cloud receives a specific mobile-originated (MO) keyword. Each record links a keyword to an automation or message send workflow to support two-way Short Message Serviec (SMS) communication.
SendSummary Provides summary information for a completed send event in Salesforce Marketing Cloud. Each record includes key metrics such as total sent, delivered, opened, and bounced messages. This retrieve-only view supports campaign reporting and performance analysis.
SentEvent Contains tracking data for email send events in Salesforce Marketing Cloud. Each record captures subscriber-level delivery results, including send time, recipient address, and message identifier (Id). This view supports detailed tracking and reporting of message performance.
SMSMTEvent Contains information about outbound (mobile-terminated) Short Message Service (SMS) messages that were are to subscribers in Salesforce Marketing Cloud. Each record includes message identifiers (Ids), timestamps, and delivery results for mobile messaging analysis.
SMSSharedKeyword Contains information used to request or manage shared Short Message Service (SMS) keywords in Salesforce Marketing Cloud. Shared keywords allow multiple accounts or business units to use the same keyword within defined boundaries. This view supports keyword governance and provisioning.
SMSTriggeredSendDefinition Defines Short Message Service (SMS) triggered send definitions in Salesforce Marketing Cloud. Each definition includes message templates, target audiences, and sending parameters. This view supports auditing and configuration validation for automated SMS workflows.
SubscriberList Retrieves the lists that are associated with a specific subscriber in Salesforce Marketing Cloud. Each record links a subscriber to one or more lists to support segmentation, subscription tracking, and campaign targeting.
SubscriberSendResult Provides information about message send outcomes at the individual subscriber level. This view helps identify whether a message was delivered, bounced, deferred, or otherwise processed for each subscriber, enabling detailed send-level analysis and troubleshooting.
SubscriberStatusEvent Retrieves information about subscribers, the current subscribers' status and the reasons why the subscribers unsubscribed, if any.
SuppressionListContext Defines the context within which a suppression list can be associated in Salesforce Marketing Cloud. Each context determines the scope of a suppression list, such as a specific business unit, publication, or message type.
SurveyEvent Contains information about survey responses recorded in Salesforce Marketing Cloud. Each record captures the timestamp and context of the response, supporting analysis of audience feedback and engagement.
Template Represents email templates in Salesforce Marketing Cloud. Each record defines the layout, content placeholders, and associated sender settings that are used to build emails. This view helps ensure standardized formatting and brand alignment across campaigns.
TimeZone Lists supported time zones in Salesforce Marketing Cloud. Each record includes the time zone identifier (Id), offset, and regional description. This view supports configuration of time-based automations and send scheduling.
TriggeredSendSummary Provides summary metrics for specific triggered send operations in Salesforce Marketing Cloud. Each record includes counts for messages sent, delivered, and failed, supporting operational and performance analysis.
UnsubEvent Contains data about unsubscription events in Salesforce Marketing Cloud. Each record captures the subscriber, timestamp, and context of the unsubscribe action. This view supports compliance reporting and audience retention analysis.
UnsubscribeFromSMSPublicationMOKeyword Defines the keyword that subscribers can use to unsubscribe from a Short Message Service (SMS) publication list in Salesforce Marketing Cloud. This configuration supports opt-out workflows and compliance with mobile communication regulations.

CData Python Connector for Salesforce Marketing Cloud

Automation

Defines automations created within Automation Studio in Salesforce Marketing Cloud. Each automation specifies a sequence of scheduled or triggered activities such as imports, sends, or data updates. This view provides visibility into configured automation workflows.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but DateTime values: =, !=, <>, >, >=, <, <=, IN. For DateTime values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Automation WHERE ObjectID = 123

SELECT * FROM Automation WHERE ObjectID IN (123, 456)

SELECT * FROM Automation WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled, read-only text string that uniquely identifies the automation object. This value remains consistent across API interactions and is used to reference the automation in programmatic workflows.
Name String Specifies the display name that is assigned to the automation. This value appears in Automation Studio and in API responses.
Description String Provides a human-readable explanation of the automation's purpose or behavior. This value helps administrators understand how and when the automation is intended to run.
Schedule_ID Int Specifies the read-only identifier (Id) of the schedule that is associated with the automation. This Id links the automation to its configured recurrence pattern.
CustomerKey String Specifies the user-supplied unique Id for the automation within its object type. This value enables external systems to reference the automation consistently across environments.
Client_ID Long Specifies the Id of the client context to which this automation belongs. This value determines the business unit and organizational scope in which the automation executes.
IsActive Bool Returns a value of 'true' when the automation is active and eligible to run. It returns a value of 'false' when the automation is inactive or paused.
CreatedDate Datetime Indicates the system-assigned date and time when the automation record was created. This value assists with auditing and lifecycle tracking.
Client_CreatedBy Int Specifies the Id of the user who created the automation. This value supports administrative traceability.
ModifiedDate Datetime Indicates the most recent date and time when the automation record was updated. This value reflects configuration changes or status updates.
Client_ModifiedBy Int Specifies the Id of the user who most recently modified the automation. This value supports auditing of administrative actions.
Status Int Indicates the current operational status of the automation. This value reflects whether the automation is running, paused, failed, or completed based on Automation Studio processing.
Client_EnterpriseID Long Specifies an internal enterprise-level Id that is associated with the automation's client context. This value is reserved for system-level configuration and does not participate in standard customer workflows.

CData Python Connector for Salesforce Marketing Cloud

BounceEvent

Provides details about email bounce events in Salesforce Marketing Cloud. Each record includes Simple Mail Transfer Protocol (SMTP) codes and diagnostic information related to delivery failures. This view supports deliverability analysis and campaign performance optimization.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM BounceEvent WHERE Id = 123

SELECT * FROM BounceEvent WHERE Id IN (123, 456)

SELECT * FROM BounceEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-generated identifier (Id) that uniquely represents the bounce event record within Salesforce Marketing Cloud. This Id is read-only and is used to reference the specific tracking event in reporting and API queries.
ObjectID String Specifies the system-controlled, read-only text string that uniquely identifies the bounce event object across API operations. This value ensures consistency when events are retrieved, correlated, or audited.
PartnerKey String Specifies the unique Id that a partner system supplies for the event record. This value is accessible only through the API and supports cross-system mapping and reconciliation.
CreatedDate Datetime Indicates the date and time when the bounce event record was created. This value supports auditing and the sequencing of tracking events.
ModifiedDate Datetime Indicates the most recent date and time when the bounce event record was updated. This value reflects system adjustments that occur during tracking reconciliation.
Client_ID Int Specifies the Id of the business unit that is associated with the bounce event. This value determines the organizational context in which the send and subsequent bounce occurred.
SendID Int Specifies the Id of the email send operation that is associated with the bounce event. This Id links the bounce to the exact send job that produced the tracking result.
SubscriberKey String Specifies the unique subscriber key that identifies the recipient whose email message resulted in the bounce. This value connects the event to a specific contact in Salesforce Marketing Cloud.
EventDate Datetime Indicates the date and time when the bounce tracking event occurred. This value reflects the moment when the receiving mail server returned the bounce response.
SMTPCode String Specifies the Simple Mail Transfer Protocol (SMTP) response code that is returned by the receiving mail server during the bounce. This code provides technical insight into why delivery failed.
BounceCategory String Describes the high-level category of the bounce (for example, hard bounce or soft bounce). This value helps classify delivery failures for analytics and remediation.
SMTPReason String Provides the descriptive SMTP reason text that the receiving mail server returned with the bounce code. This value offers additional diagnostic information for troubleshooting delivery issues.
BounceType String Indicates a more specific type of bounce, which reflects the detailed nature of the delivery failure. This value assists with tracking, reporting, and automated response handling.
EventType String Specifies the tracking event type. For bounce events, this value identifies the record as part of bounce-related tracking activity.
TriggeredSendDefinitionObjectID String Specifies the object Id of the triggered send definition that is associated with the bounce event. This value links the event to a specific triggered send configuration.
BatchID Int Specifies the batch Id that groups triggered send events together. This value enables systems to correlate the bounce event with the batch of messages delivered during the same triggered send execution.

CData Python Connector for Salesforce Marketing Cloud

ClickEvent

Contains tracking data for link click events in Salesforce Marketing Cloud. Each record includes the timestamp, URL identifier (Id), and destination URL for a link that a subscriber clicked in a sent message. This view is essential for analyzing engagement metrics and user interaction behavior.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ClickEvent WHERE Id = 123

SELECT * FROM ClickEvent WHERE Id IN (123, 456)

SELECT * FROM ClickEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-generated identifier (Id) that uniquely represents the click event record within Salesforce Marketing Cloud. This Id is read-only and allows tracking systems to reference the specific engagement activity.
ObjectID String Specifies the system-controlled, read-only text string that uniquely identifies the click event object across API operations. This value ensures consistency when retrieving, correlating, or auditing tracking data.
PartnerKey String Specifies the unique Id that an external partner system provides for the click event. This value is available only through the API and supports cross-platform reconciliation and event mapping.
CreatedDate Datetime Indicates the date and time when the click event record was created within the tracking system. This value supports auditing and historical analysis.
ModifiedDate Datetime Indicates the most recent date and time when the click event record was updated. This value captures system adjustments that occur during processing or data normalization.
Client_ID Int Specifies the Id of the business unit that is associated with the click event. This value establishes the organizational context for the send and engagement activity.
SendID Int Specifies the Id of the email send that is associated with the click event. This Id ties the engagement activity to the specific send job that produced the message.
SubscriberKey String Specifies the unique subscriber key that identifies the contact who generated the click event. This value connects the engagement to a specific Salesforce Marketing Cloud contact record.
EventDate Datetime Indicates the date and time when the click tracking event occurred. This value reflects the moment when the subscriber clicked a tracked URL in the message.
EventType String Specifies the type of tracking event. For click events, this value identifies the activity as an interaction with a tracked URL.
TriggeredSendDefinitionObjectID String Specifies the object Id of the triggered send definition that is associated with the click event. This value links the engagement back to the triggered send configuration.
BatchID Int Specifies the batch Id that groups triggered send events together. This value allows reporting systems to correlate the click event with other events from the same triggered send execution.
URLID Int Specifies the Id of the URL that the subscriber clicked. This value maps the engagement to a tracked link in the message.
URL String Specifies the URL that the subscriber clicked as part of the tracking event. This value enables detailed reporting on link-level engagement.

CData Python Connector for Salesforce Marketing Cloud

DataExtensionField

Represents individual fields within a data extension in Salesforce Marketing Cloud. Each field defines the data type, length, and attributes of a column in a data extension. This view provides metadata that supports schema validation and data integrity checks.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM DataExtensionField WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled identifier (Id) that uniquely identifies the data extension field object. This value is assigned internally and cannot be modified by users.
PartnerKey String Specifies the unique partner-provided key that is associated with the data extension field. This value is available only through API interactions.
CustomerKey String Specifies the user-supplied unique Id that identifies the data extension field within its object type. This value corresponds to the external key that is displayed in the user interface.
Name String Specifies the name of the data extension field. The name is visible in the user interface and is used to identify the column when interacting with the data extension.
DefaultValue String Specifies the default value that is assigned to the data extension field when no explicit value is provided during a data operation.
MaxLength Int Specifies the maximum allowable length for the field's stored value. This constraint is enforced during data writes and updates.
IsRequired Bool Returns a value of 'true' when the data extension field must contain a value and cannot be null. It returns a value of 'false' when the data extension field can remain empty during data operations.
Ordinal Int Specifies the position of the data extension field within the field collection. This value determines the ordering when the system processes or displays fields.
IsPrimaryKey Bool Returns a value of 'true' when the data extension field functions as a primary key for the data extension. It returns a value of 'false' when the data extension field does not participate in primary key enforcement.
FieldType String Specifies the data type of the data extension field. This value defines how the system stores, validates, and interprets the field's contents.
CreatedDate Datetime Indicates the date and time when the data extension field was created. This value is system-controlled.
ModifiedDate Datetime Indicates the date and time when the system last modified the data extension field. This information assists with auditing and lifecycle management.
Scale Int Specifies the numeric scale that is used for decimal fields. This value determines the number of digits that appear to the right of the decimal point.
Client_ID Int Specifies the Id of the client that is associated with the data extension field.
DataExtension_CustomerKey String Specifies the user-supplied unique Id of the data extension to which this field belongs. This value links the field definition to its parent data extension.
StorageType String Specifies the field's storage behavior. Valid values are Plain, Encrypted, Obfuscated, or Unspecified. These settings determine how the system stores and secures the field's data.

CData Python Connector for Salesforce Marketing Cloud

DataExtensionTemplate

Represents data extension templates in Salesforce Marketing Cloud. A template defines the structural blueprint that can be reused to create multiple data extensions with consistent schema design. This view allows administrators to standardize data collection and storage across campaigns.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM DataExtensionTemplate WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled identifier (Id) that uniquely identifies the data extension template object. This value is assigned internally and cannot be modified by users.
PartnerKey String Specifies the unique partner-provided key that is associated with the data extension template. This value is accessible only through the API.
CustomerKey String Specifies the user-supplied unique Id that identifies the data extension template within its object type. This value corresponds to the external key displayed in the user interface.
Name String Specifies the name of the data extension template. The name is used to identify the template in the user interface and during configuration.
CreatedDate Datetime Indicates the date and time when the data extension template was created. This value is read-only and maintained by the system.
ModifiedDate Datetime Indicates the date and time when the data extension template was last modified. This information supports auditing, change control, and lifecycle tracking.
Client_ID Int Specifies the Id of the client that is associated with the data extension template.
Description String Provides a human-readable explanation of the data extension template. This description helps users understand the template's purpose, usage, and behavior.
IsSendable Bool Returns a value of 'true' when the data extension template supports message sending operations in Salesforce Marketing Cloud. It returns a value of 'false' when the data extension template cannot be used as a sendable data source.
IsTestable Bool Returns a value of 'true' when the data extension template can be used in message test sends. It returns a value of 'false' when the data extension template cannot participate in test send workflows.
SendableCustomObjectField String Specifies the name of the field within the template that represents the sendable custom object field. This field must align with the subscriber Id that is used for message sends.
SendableSubscriberField String Specifies the name of the field within the template that identifies the subscriber to whom messages are sent. This field corresponds to either the subscriber key or the email address.
DataRetentionPeriodLength String Specifies the numeric duration of the data retention period that applies to the data extension template. This value defines how long data remains available before retention policies take effect.
DataRetentionPeriodUnitOfMeasure Int Specifies the unit of time that is associated with the data retention period (for example, days, weeks, or months). This unit works together with the DataRetentionPeriodLength value to determine total retention duration.
RowBasedRetention Bool Returns a value of 'true' when the system removes data based on the age of individual rows rather than the entire data set. It returns a value of 'false' when retention applies to the entire data extension as a whole.
ResetRetentionPeriodOnImport Bool Returns a value of 'true' when the system resets the retention period each time new data is imported into the data extension. It returns a value of 'false' when retention timelines continue uninterrupted regardless of imports.
DeleteAtEndOfRetentionPeriod Bool Returns a value of 'true' when the system deletes data automatically upon the completion of the configured retention period. It returns a value of 'false' when the system retains the data beyond the specified retention duration.
RetainUntil Datetime Specifies the calendar date and time until which the data will be retained under the active retention policy. This value determines when the final retention threshold is reached.

CData Python Connector for Salesforce Marketing Cloud

DataFolder

Represents folders within a Salesforce Marketing Cloud account. Each folder organizes related content, data extensions, or automations into a hierarchical structure for easier management and access control. This view supports navigation and organizational reporting across stored assets.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM DataFolder WHERE Id = 123

SELECT * FROM DataFolder WHERE Id IN (123, 456)

SELECT * FROM DataFolder WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-generated identifier (Id) that uniquely identifies the data folder record. This value is read-only and is assigned automatically by the system.
Client_ID Int Specifies the Id of the client that owns or manages the data folder. This value determines the business context in which the folder exists.
ParentFolder_ID Int Specifies the Id of the parent data folder that contains this folder. This value establishes the hierarchical structure used to organize folders.
ParentFolder_CustomerKey String Specifies the user-supplied unique Id that is assigned to the parent folder within its object type. This value is used to reference the parent folder programmatically.
ParentFolder_ObjectID String Specifies the system-controlled, read-only text string that uniquely identifies the parent folder object. This Id remains consistent across system operations.
ParentFolder_Name String Specifies the name of the parent data folder. This value helps users understand the folder's placement within the folder hierarchy.
ParentFolder_Description String Provides descriptive information about the parent data folder. This description helps clarify the folder's purpose, business function, or organizational role.
ParentFolder_ContentType String Specifies the content type associated with the parent folder, which determines what kinds of assets or objects the folder can contain.
ParentFolder_IsActive Bool Returns a value of 'true' when the parent data folder is active and available for use. It returns a value of 'false' when the parent data folder is inactive or unavailable for operational tasks.
ParentFolder_IsEditable Bool Returns a value of 'true' when users can modify properties of the parent folder through the profile center. It returns a value of 'false' when the parent folder's properties are locked and cannot be edited.
ParentFolder_AllowChildren Bool Returns a value of 'true' when the parent data folder is allowed to contain child folders. It returns a value of 'false' when the parent data folder must remain a leaf folder without subordinate folders.
Name String Specifies the name of the data folder. The name is used for display, navigation, and organizational purposes across the user interface.
Description String Provides a human-readable description of the data folder. This description helps users understand the folder's role, purpose, and stored content.
ContentType String Specifies the content type that is associated with the data folder. The content type determines what types of objects or assets can be stored in this folder.
IsActive Bool Returns a value of 'true' when the data folder is active and can be accessed or managed. It returns a value of 'false' when the data folder is inactive or restricted by administrative settings.
IsEditable Bool Returns a value of 'true' when users can modify the data folder's properties through the profile center. It returns a value of 'false' when the folder's properties are fixed and cannot be changed.
AllowChildren Bool Returns a value of 'true' when the data folder supports the creation of child folders. It returns a value of 'false' when the folder is not permitted to have subordinate folders.
CreatedDate Datetime Indicates the date and time when the data folder was created. This value is read-only and supports auditing and historical tracking.
ModifiedDate Datetime Indicates the date and time when the data folder was last modified. This information supports change management and version control.
Client_ModifiedBy Int Specifies the Id of the user who last modified the data folder. This value supports audit logging and administrative oversight.
ObjectID String Specifies the system-controlled, read-only text string that uniquely identifies the data folder object. This identifier supports internal system processes and external API references.
CustomerKey String Specifies the user-supplied unique Id that identifies the data folder within its object type. This value is commonly used for automation, API interactions, and configuration references.
Client_EnterpriseID Long Specifies the enterprise-level Id that is associated with the client record.
Client_CreatedBy Int Specifies the Id of the user who created the data folder. This information supports auditing and regulatory compliance.

CData Python Connector for Salesforce Marketing Cloud

DoubleOptInMOKeyword

Defines mobile-originated (MO) keywords used for double opt-in workflows in Salesforce Marketing Cloud. Each record specifies the keyword that allows mobile users to confirm subscriptions through a two-step consent process. This view ensures compliance with opt-in regulations and supports secure subscriber management.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM DoubleOptInMOKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int The unique identifier (Id) of the client associated with this mobile-originated (MO) keyword configuration.
CreatedDate Datetime The read-only date and time when this MO keyword configuration was created. This value is system-controlled.
ModifiedDate Datetime The date and time when this MO keyword configuration was last modified. This value allows administrators to track update history.
CustomerKey String The user-supplied unique Id for this MO keyword configuration within its object type.
IsDefaultKeyword Bool Returns a value of 'true' when this MO keyword configuration functions as the default Short Message System (SMS) keyword handling rule for the account. It returns a value of 'false' when another keyword configuration governs default SMS keyword behavior.
DefaultPublication_ID Int The read-only Id for the default publication list that is associated with this MO keyword workflow.
InvalidPublicationMessage String The message that is sent to a subscriber who attempts to subscribe or unsubscribe from a publication list that is not valid for this double opt-in workflow.
InvalidResponseMessage String The message that is sent to a subscriber who responds with input that is not recognized as a valid action or confirmation during the double opt-in process.
MissingPublicationMessage String The message that is sent to a subscriber when the system cannot determine which publication list the subscriber intends to join or leave during the double opt-in process. This message prompts the subscriber to specify a valid publication list so the request can continue.
NeedPublicationMessage String The message that is sent to a subscriber whose response does not indicate which publication list they intend to join or leave. This message prompts the subscriber to specify a valid list.
PromptMessage String The message that is sent to the subscriber as part of the double opt-in process to request a confirming response.
SuccessMessage String The SMS message that is sent to the subscriber after a triggered email send succeeds as part of the double opt-in workflow.
UnexpectedErrorMessage String The message that is sent to the subscriber when an unexpected system error interrupts the double opt-in process.
ValidPublications String The list of publication identifiers that are permitted for use with this double opt-in configuration. These values determine which lists subscribers can confirm.
ValidResponses String The set of acceptable subscriber responses that complete the double opt-in process. These values determine how the system interprets subscriber confirmation actions.

CData Python Connector for Salesforce Marketing Cloud

FileTriggerTypeLastPull

Provides information about the most recent retrieval of file-trigger activity for each trigger type. This view helps track when a file-based trigger was last evaluated

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM FileTriggerTypeLastPull WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM FileTriggerTypeLastPull WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

Columns

Name Type Description
Client_ID Long Specifies the client identifier (Id) that associates the record with the correct Salesforce Marketing Cloud account context. This value ensures that file-trigger pull tracking is scoped to the appropriate business unit or enterprise environment.
ObjectID [KEY] String Stores the system-controlled text string Id that uniquely identifies this file-trigger pull record. This identifier is read-only and ensures consistency when referencing the record across internal processes and API interactions.
ExternalReference String Captures an optional external reference value that can link this file-trigger pull record to outside systems, configuration inputs, or workflow components that participate in file-trigger activity.
Type String Indicates the type that is associated with the file-trigger category. This value helps classify how the trigger source should be interpreted and ensures that pull history is grouped according to its functional role.
LastPullDate Datetime Indicates the most recent date and time when the system attempted to retrieve or evaluate files for the specified trigger type. This timestamp supports auditing, monitoring, and troubleshooting of file-trigger operations.

CData Python Connector for Salesforce Marketing Cloud

ForwardedEmailEvent

Records events in which a subscriber used the Forward to a Friend feature to share an email with another recipient in Salesforce Marketing Cloud. Each record includes details such as the sender, recipient, and timestamp of the forwarding action. This view supports tracking viral sharing and referral engagement.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ForwardedEmailEvent WHERE Id = 123

SELECT * FROM ForwardedEmailEvent WHERE Id IN (123, 456)

SELECT * FROM ForwardedEmailEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Stores the read-only identifier (Id) that uniquely identifies this forwarded email event record. This Id is used for tracking, troubleshooting, and referencing individual forwarding actions within Marketing Cloud.
ObjectID String Stores the system-controlled text string Id that uniquely identifies this event object across Salesforce Marketing Cloud systems. This value ensures consistent referencing in reporting, automation, and API retrieval operations.
PartnerKey String Contains the partner-supplied unique Id that links this forwarded email event to an external integration. This key provides cross-platform traceability when partner systems participate in email activity processing.
CreatedDate Datetime Indicates the date and time when the record for the forwarded email event was created. This timestamp supports event auditing and helps reconstruct email activity timelines.
ModifiedDate Datetime Indicates the most recent date and time when the record for the forwarded email event was updated. This value supports troubleshooting and event reconciliation when forwarding behavior changes.
Client_ID Int Specifies the client Id that associates the forwarded email event with the correct Salesforce Marketing Cloud account or business unit. This value ensures that tracking data is evaluated within the proper account context.
SendID Int Specifies the Id of the send operation that originally delivered the email. This value allows downstream reporting and tracking tools to correlate the forwarding event with the specific message send.
SubscriberKey String Stores the unique subscriber key that is associated with the contact who forwarded the email. This value identifies the individual whose interaction triggered the forwarding event.
EventDate Datetime Indicates the date and time when the subscriber forwarded the email. This timestamp helps reconstruct subscriber engagement patterns and forwarding chains.
EventType String Specifies the type of tracking event that is recorded for the forwarded email action. This value helps classification systems distinguish forwarding events from opens, clicks, bounces, or other engagement activities.
TriggeredSendDefinitionObjectID String Stores the system-controlled text string Id that identifies the triggered send definition that is associated with the forwarded email event. This Id links the activity to the definition that produced the email.
BatchID Int Specifies the batch Id that is used to group this forwarded email event with related tracking events. This value enables reporting tools to aggregate engagement activity for the same send execution.

CData Python Connector for Salesforce Marketing Cloud

ForwardedEmailOptInEvent

Specifies opt-in events that occur when a recipient subscribes as a result of receiving a Forward to a Friend email in Salesforce Marketing Cloud. This view helps identify new subscribers who joined through referral-based interactions.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ForwardedEmailOptInEvent WHERE Id = 123

SELECT * FROM ForwardedEmailOptInEvent WHERE Id IN (123, 456)

SELECT * FROM ForwardedEmailOptInEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Stores the read-only identifier (Id) that uniquely identifies this forwarded email opt-in event record. This Id is used for tracking, auditing, and referencing individual opt-in actions that occur through forwarded email interactions.
ObjectID String Stores the system-controlled text string Id that uniquely identifies this event object across Salesforce Marketing Cloud systems. This value ensures consistent referencing in reporting, automation, and API-based operations.
PartnerKey String Contains the partner-defined unique Id that links this forwarded email opt-in event to an external integration. This key supports cross-system traceability when partner platforms participate in opt-in processing.
CreatedDate Datetime Indicates the date and time when the record for the forwarded email opt-in event was created. This timestamp supports event auditing and helps reconstruct subscriber engagement timelines.
ModifiedDate Datetime Indicates the most recent date and time when the forwarded email opt-in event record was updated. This value supports troubleshooting and reconciliation activities.
Client_ID Int Specifies the client Id that associates the forwarded email opt-in event with the appropriate Salesforce Marketing Cloud account or business unit. This association ensures that opt-in activity is evaluated within the correct account context.
SendID Int Specifies the Id of the send operation that delivered the original email that led to the opt-in. This value allows downstream reporting tools to link the opt-in activity to the specific message send.
SubscriberKey String Stores the subscriber key that identifies the contact associated with the original forwarded email interaction. This value distinguishes the forwarding contact from the subscriber who opted in.
EventDate Datetime Indicates the date and time when the forwarded email opt-in event occurred. This information helps reconstruct engagement patterns and opt-in sequences.
EventType String Specifies the type of tracking event captured for the forwarded email opt-in action. This classification allows reporting tools to differentiate opt-ins from other engagement events such as opens, clicks, or bounces.
TriggeredSendDefinitionObjectID String Stores the system-controlled text string Id that identifies the triggered send definition that is associated with this opt-in event. This Id links the activity back to the triggered send configuration that produced the email.
BatchID Int Specifies the batch Id used to group this forwarded email opt-in event with other related tracking events. This grouping supports aggregated reporting for a specific send execution.
OptInSubscriberKey String Stores the subscriber key of the individual who opted in through the forwarded email process. This value identifies the newly opted-in subscriber and differentiates this contact from the subscriber who performed the forwarding action.

CData Python Connector for Salesforce Marketing Cloud

HelpMOKeyword

Defines the actions associated with the HELP Short Message Service (SMS) keyword for a Salesforce Marketing Cloud account. The HELP keyword allows subscribers to request information about the sender or message program. This view supports compliance with mobile communication standards.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM HelpMOKeyword WHERE Client_ID = 123

SELECT * FROM HelpMOKeyword WHERE Client_ID IN (123, 456)

SELECT * FROM HelpMOKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int Specifies the client identifier (Id) that associates the HELP mobile-originated (MO) keyword configuration with the correct Salesforce Marketing Cloud account or business unit. This value ensures that keyword behaviors are evaluated within the proper account context.
CreatedDate Datetime Indicates the read-only date and time when the HELP MO keyword configuration was created. This timestamp supports auditing and historical tracking of keyword setup activity.
ModifiedDate Datetime Indicates the most recent date and time when the HELP MO keyword configuration was updated. This information helps administrators track changes made to keyword behavior or messaging.
CustomerKey String Stores the user-supplied unique Id for this HELP MO keyword configuration. This value corresponds to the external key that is assigned within the user interface and supports consistent referencing in API operations.
IsDefaultKeyword Bool Returns a value of 'true' when the system should treat this HELP keyword configuration as the default option in cases where no other keyword rules apply. It returns a value of 'false' when another keyword configuration is explicitly selected or available.
MoreChoicesPrompt String Contains the text that informs the mobile message sender that additional choices or menu options are available as part of a HELP keyword response. This content supports guided navigation through multi-option HELP sequences.
DefaultHelpMessage String Stores the default HELP message text that is delivered to subscribers who request HELP through an MO message. This value ensures that a consistent and compliant HELP response is sent when no custom messaging is configured.
MenuText String Defines the text used to present multiple selectable options in response to a HELP MO request. This text is used when HELP actions include menu-style interactions for subscribers.
FriendlyName String Contains the user-friendly display name for the HELP MO keyword. This value provides an easily recognizable reference for administrators configuring or reviewing keyword behavior.

CData Python Connector for Salesforce Marketing Cloud

ImportResultsSummary

Provides summary results for import jobs that were initiated from an import definition in Salesforce Marketing Cloud. Each record includes the total rows processed, successful imports, and errors encountered. This retrieve-only view supports reporting and monitoring of data import performance.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ImportResultsSummary WHERE Id = 123

SELECT * FROM ImportResultsSummary WHERE Id IN (123, 456)

SELECT * FROM ImportResultsSummary WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled text string identifier (Id) that is assigned to this import-results summary object.
ID Int Returns the read-only Id that uniquely identifies this summary record.
Client_ID Long Specifies the Id of the client that is associated with this import-results summary.
ImportDefinitionCustomerKey String Specifies the customer key that is associated with the import definition that produced these results.
TaskResultID Int Returns the task result Id that is associated with this summary of import results.
ImportStatus String Specifies the status of the import operation that generated this summary.
StartDate String Indicates the start date for the time range that is used to retrieve import-result information.
EndDate String Specifies the end date for the time range that is used to retrieve import-result information.
DestinationID String Specifies the Id of the list or data extension that received the imported records.
NumberSuccessful Int Indicates the number of records that were successfully imported during the operation.
NumberDuplicated Int Indicates the number of duplicated records that were encountered during the import operation.
NumberErrors Int Indicates the number of records that resulted in errors during the import process.
TotalRows Int Indicates the total number of rows included in this import-results summary.
ImportType String Specifies the type of import that was performed.

CData Python Connector for Salesforce Marketing Cloud

LinkSend

Provides link-level details for email sends in Salesforce Marketing Cloud. Each record identifies a specific link, its tracking identifier (Id), and its relationship to a send event. This view supports engagement analysis by correlating links to subscriber click behavior.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM LinkSend WHERE Id = 123

SELECT * FROM LinkSend WHERE Id IN (123, 456)

SELECT * FROM LinkSend WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the read-only identifier (Id) that uniquely identifies this link-send record.
SendID Int Specifies the Id of the send operation that is associated with the link activity.
PartnerKey String Specifies the unique identifier that is provided by a partner for this object when accessed through the API.
Client_ID Int Specifies the Id of the client that is associated with this link-send record.
Client_PartnerClientKey String Specifies the partner-defined client key that is associated with the account.
Link_ID Int Specifies the Id of the link referenced in the context of the send.
Link_PartnerKey String Specifies the unique identifier that is provided by a partner for the link object when accessed through the API.
Link_TotalClicks Int Indicates the total number of clicks that are recorded for the link across all recipients.
Link_UniqueClicks Int Indicates the number of unique recipients who clicked the link at least once.
Link_URL String Specifies the URL that is associated with the tracked link in the send.
Link_Alias String Specifies the descriptive name that is assigned to the link within the message.

CData Python Connector for Salesforce Marketing Cloud

ListSend

Provides retrieve-only properties that describe the lists associated with completed send operations in Salesforce Marketing Cloud. Each record links a send event to one or more lists to support campaign tracking and performance analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ListSend WHERE Id = 123

SELECT * FROM ListSend WHERE Id IN (123, 456)

SELECT * FROM ListSend WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the read-only identifier (Id) that uniquely identifies the list-send record.
PartnerKey String Specifies the unique Id that is provided by a partner for the list-send record when accessed through the API.
Client_ID Int Specifies the Id of the client that owns or manages the send activity.
SendID Int Specifies the Id of the specific send operation associated with this record.
List_ID Int Specifies the read-only Id of the list that is associated with the send.
List_ListName String Specifies the name of the list that was used as the audience for the send.
Duplicates Int Specifies the number of duplicate email addresses that were detected across the lists included in the send. This value only appears when the send targets multiple lists.
InvalidAddresses Int Specifies the number of email addresses that were identified as invalid during the send process.
ExistingUndeliverables Int Specifies the number of email addresses that were already marked as undeliverable before the send occurred.
ExistingUnsubscribes Int Specifies the number of email addresses that were already unsubscribed before the send occurred.
HardBounces Int Specifies the number of hard bounces that occurred during the send. A hard bounce indicates a permanent delivery failure.
SoftBounces Int Specifies the number of soft bounces that occurred during the send. A soft bounce indicates a temporary or intermittent delivery failure.
OtherBounces Int Specifies the number of bounces that were classified as Other-type bounces during the send.
ForwardedEmails Int Specifies the number of forwarded email events that were recorded for the send.
UniqueClicks Int Specifies the number of unique contacts who clicked at least one tracked link within the message.
UniqueOpens Int Specifies the number of unique contacts who opened the message at least once as part of this send.
NumberSent Int Specifies the total number of emails that were sent during the send action. This value includes messages that later resulted in bounces.
NumberDelivered Int Specifies the number of sent emails that were successfully delivered and did not bounce.
Unsubscribes Int Specifies the number of unsubscribe events that occurred as a result of this send.
MissingAddresses Int Specifies the number of records in the send that did not contain a valid email address.
PreviewURL String Specifies the URL that can be used to preview the message associated with the send.

CData Python Connector for Salesforce Marketing Cloud

ListSubscriber

Retrieves subscriber relationships for lists in Salesforce Marketing Cloud. Each record shows which lists a subscriber belongs to or which subscribers are assigned to a list. This view supports subscription management and audience segmentation reporting.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ListSubscriber WHERE Id = 123

SELECT * FROM ListSubscriber WHERE Id IN (123, 456)

SELECT * FROM ListSubscriber WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the read-only identifier (Id) that uniquely identifies the list-subscriber record.
ObjectID String Specifies the system-controlled text string that the platform generates to identify this list-subscriber record.
SubscriberKey String Specifies the unique subscriber key that identifies the individual subscriber associated with the list entry.
CreatedDate Datetime Specifies the read-only date and time when the list-subscriber record was created.
ModifiedDate Datetime Indicates the date and time when the list-subscriber record was last modified.
Client_ID Int Specifies the Id of the client that owns or manages the subscriber and list association.
Client_PartnerClientKey String Specifies the user-defined partner key that is associated with the client for integration or partner tracking.
ListID Int Specifies the Id of the list on which the subscriber resides.
Status String Specifies the current subscription status for the subscriber on the list (for example, 'Active', 'Unsubscribed', or 'Held').
UnsubscribedDate Datetime Specifies the date and time when the subscriber unsubscribed from the list.

CData Python Connector for Salesforce Marketing Cloud

NotSentEvent

Contains information about email messages that failed to send in Salesforce Marketing Cloud. Each record includes diagnostic codes and timestamps to support root-cause analysis of delivery failures.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM NotSentEvent WHERE SendID = 123

SELECT * FROM NotSentEvent WHERE SendID IN (123, 456)

SELECT * FROM NotSentEvent WHERE CreatedDate > '2024/01/25'

Columns

Name Type Description
SendID Int Specifies the identifier (Id) of the specific send that is associated with the not-sent event.
SubscriberKey String Specifies the value that identifies the subscriber that is associated with the not-sent event within Salesforce Salesforce Marketing Cloud.
EventDate Datetime Indicates the date and time when the not-sent tracking event occurred.
Client_ID Int Specifies the Id of the client that is associated with the event.
EventType String Specifies the classification of the tracking event that captures why the message was not sent.
BatchID Int Specifies the batch Id that groups the event with related triggered-send activity.
TriggeredSendDefinitionObjectID String Specifies the system-generated object Id that is used to associate the event with its corresponding triggered send definition.
ListID Int Specifies the list Id that identifies the list to which the subscriber belonged at the time of the not-sent event.
PartnerKey String Specifies the partner-provided unique Id used by external systems to reference the event through the API.
SubscriberID Int Specifies the Id that uniquely identifies the subscriber within Marketing Cloud.

CData Python Connector for Salesforce Marketing Cloud

OpenEvent

Records open events for email sends in Salesforce Marketing Cloud. Each record includes the timestamp, subscriber key, and send context for an opened message. This view provides key engagement metrics for campaign performance analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM OpenEvent WHERE Id = 123

SELECT * FROM OpenEvent WHERE Id IN (123, 456)

SELECT * FROM OpenEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the read-only identifier (Id) that uniquely identifies the open-event record.
ObjectID [KEY] String Specifies the system-controlled, read-only text string that serves as the unique object Id for the open-event record.
PartnerKey String Specifies the partner-supplied unique Id that external systems use to reference the event through the API.
CreatedDate Datetime Indicates the date and time when the open-event record was created.
ModifiedDate Datetime Indicates the date and time when information about the open-event record was last modified.
ClientID [KEY] Int Specifies the Id of the client that is associated with the open-event record.
SendID Int Specifies the Id of the specific send that is associated with the open event.
SubscriberKey String Specifies the value that identifies the subscriber who generated the open event.
EventDate Datetime Indicates the date and time when the open tracking event occurred.
EventType String Specifies the category of tracking event recorded for the open action.
TriggeredSendDefinitionObjectID String Specifies the system-generated object Id that links the open event to its associated triggered send definition.
BatchID Int Specifies the batch Id that groups the open event with related triggered-send activity.

CData Python Connector for Salesforce Marketing Cloud

PrivateIP

Contains details about private IP addresses that are assigned for message sends in Salesforce Marketing Cloud. Each record identifies the dedicated IP address used for outbound email delivery, supporting IP reputation management and sender authentication practices.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM PrivateIP WHERE Id = 123

SELECT * FROM PrivateIP WHERE Id IN (123, 456)

SELECT * FROM PrivateIP WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the read-only identifier (Id) that uniquely identifies the private internet protocol (IP) record.
PartnerKey String Specifies the partner-provided unique Id that external systems use to reference the private IP record through the API.
CreatedDate Datetime Indicates the date and time when the private IP record was created.
Client_ID Int Specifies the Id of the client that is associated with the private IP record.
Name String Specifies the name assigned to the private IP record for organizational or administrative reference.
Description String Provides descriptive information that explains the purpose, configuration, or operational role of the private IP record.
IsActive Bool Returns a value of 'true' when the private IP address is active and available for use in send operations or delivery configurations. It returns a value of 'false' when the private IP address is inactive, retired, or restricted by administrative controls.
OrdinalID String Specifies the positional Id that indicates where this private IP record appears within an ordered sequence of related configuration items.
IPAddress String Specifies the private IP address that is used for message delivery, authentication, or domain alignment within Marketing Cloud.
Client_PartnerClientKey String Specifies the partner-supplied client key that external systems use to correlate the private IP record with partner-side account identifiers.

CData Python Connector for Salesforce Marketing Cloud

Publication

Represents publication-level configuration details that support managing how subscriber-facing content is organized and distributed in Salesforce Marketing Cloud. This view provides structural information that describes publication settings, visibility rules, and relationships used in content distribution workflows.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Publication WHERE Id = 123

SELECT * FROM Publication WHERE Id IN (123, 456)

SELECT * FROM Publication WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-defined identifier (Id) that uniquely identifies the publication within the account.
PartnerKey String Provides a unique Id that is supplied by an external partner system and is available only through API access. This value enables system-to-system correlation when multiple platforms exchange publication metadata.
CreatedDate Datetime Specifies the read-only date and time when the publication was initially created.
ModifiedDate Datetime Specifies the date and time when the publication record was most recently modified.
Client_ID Int Specifies the Id of the client account that owns or manages the publication.
Client_PartnerClientKey String Specifies the partner-supplied key that associates the publication with a specific client context for integration or reporting purposes.
Name String Specifies the user-defined name of the publication. The name appears in configuration tools and API responses to help users identify the publication.
Category Int Specifies the Id of the folder in which the publication is stored. This categorization helps organize publication assets within the account's folder hierarchy.

CData Python Connector for Salesforce Marketing Cloud

PublicationSubscriber

Describes subscribers who are associated with a publication list in Salesforce Marketing Cloud. Each record defines a subscriber's status, preferences, and linkage to a specific publication for audience management and compliance tracking.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM PublicationSubscriber WHERE Publication_ID = 123

SELECT * FROM PublicationSubscriber WHERE Publication_ID IN (123, 456)

SELECT * FROM PublicationSubscriber WHERE Publication_CreatedDate > '2017/01/25'

Columns

Name Type Description
Publication_ID Int Specifies the system-defined identifier (Id) that uniquely identifies the publication associated with the subscriber.
Publication_PartnerKey String Specifies the partner-supplied unique Id that external systems use to correlate publication records during API-driven integrations.
Publication_CreatedDate Datetime Specifies the read-only date and time when the publication that is associated with this subscriber was created.
Publication_ModifiedDate Datetime Specifies the date and time when the publication record associated with this subscriber was most recently modified.
Publication_Client_ID Int Specifies the Id of the client account that owns the publication that is associated with this subscriber.
Publication_Client_PartnerClientKey String Specifies the partner-defined key that associates the publication with a specific client context for integration or reporting purposes.
Client_ID Int Specifies the Id of the client account that owns or manages the subscriber record.
Client_PartnerClientKey String The partner-defined key that links the subscriber record to an external client integration context.
Publication_Name String Specifies the user-defined name of the publication to which the subscriber is linked.
Publication_Category Int Specifies the Id of the folder in which the publication is organized, which helps categorize publication assets within the account's folder hierarchy.
Subscriber_ID Int Specifies the system-defined Id that uniquely identifies the subscriber record.
Subscriber_SubscriberKey String The subscriber key that uniquely identifies the individual subscriber across Salesforce Marketing Cloud channels.
Subscriber_PrimarySMSAddress_AddressType String Provides the type of Short Message Service (SMS) address that is associated with the subscriber's primary mobile messaging profile, such as a short code or long code.
Subscriber_PrimarySMSAddress_Address String Specifies the mobile number or code value that is used as the subscriber's primary SMS address for publication-based messaging.
Subscriber_PrimarySMSAddress_Carrier String Specifies the mobile carrier that is associated with the subscriber's primary SMS address. This information can be used for routing, reporting, or compliance checks.
Subscriber_PrimarySMSPublicationStatus String Specifies the subscriber's SMS publication status, which indicates whether the subscriber is opted in, opted out, pending confirmation, or restricted from receiving publication messages.

CData Python Connector for Salesforce Marketing Cloud

PublicKeyManagement

Provides information about public encryption keys that are stored in Salesforce Marketing Cloud for use in secure data exchange and authentication workflows. This view helps identify which keys are available for validating signatures, encrypting payloads, or establishing trusted integrations with external systems.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM PublicKeyManagement WHERE Id = 123

SELECT * FROM PublicKeyManagement WHERE Id IN (123, 456)

SELECT * FROM PublicKeyManagement WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-defined identifier (Id) that uniquely identifies the public key record within the account.
Client_ID Long Specifies the Id of the client account that owns or manages the public key.
Name String Provides the descriptive name that is assigned to the public key entry. This name helps administrators recognize the appropriate key for encryption, validation, or integration tasks.
PartnerKey String Specifies the partner-supplied unique Id that external systems use to correlate the key record during API-based integrations.
Key String Specifies the stored public key material that is used for encryption, signature verification, or secure message exchange within supported Salesforce Marketing Cloud workflows.
CreatedDate Datetime Specifies the read-only date and time when the public key record was initially created.
ModifiedDate Datetime Specifies the date and time when the public key record was most recently modified.

CData Python Connector for Salesforce Marketing Cloud

ResultItem

Contains the individual result records returned from an asynchronous API call in Salesforce Marketing Cloud. Each record represents the outcome of a processed item, such as a contact import or message send.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ResultItem WHERE AsyncAPIRequestQueueID = 123

SELECT * FROM ResultItem WHERE AsyncAPIRequestQueueID IN (123, 456)

SELECT * FROM ResultItem WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
AsyncAPIRequestQueueID Int Specifies the identifier (Id) of the asynchronous API request queue that stores and tracks queued API operations.
RequestID String Specifies the unique Id of the initial asynchronous API call that initiated the request.
ConversationID String Specifies the unique Id that groups together multiple asynchronous API calls that must be processed as a single logical unit.
CorrelationID String Identifies the correlation key that links related objects and operations across multiple asynchronous requests.
Client_ID Int Indicates the Id of the client that is associated with the asynchronous API request.
CreatedDate Datetime Indicates the date and time when the result item was created as part of asynchronous API processing.
StatusCode String Defines the status code returned for the asynchronous API request.
StatusMessage String Describes the detailed status of the asynchronous API call, including success, warnings, or errors.
OrdinalID Int Specifies the system-controlled, read-only ordinal Id that represents the position of the result item within a sequence.
ErrorCode Int Identifies the numeric error code that is returned when the asynchronous API request encounters a failure condition.
RequestType String Indicates whether the API request was processed as a synchronous or asynchronous operation.
RequestObjectType String Defines the type of object that is involved in the API request, such as an email, data extension, or triggered send.
ResultType Int Indicates whether the returned result originated from synchronous or asynchronous API processing.
Client_PartnerClientKey String Specifies the user-defined partner client key that is assigned to the account for partner-level correlation and tracking.

CData Python Connector for Salesforce Marketing Cloud

ResultMessage

Contains summary messages generated from asynchronous API calls in Salesforce Marketing Cloud. Each message provides status information, execution results, or error diagnostics to assist in monitoring API-based processes.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM ResultMessage WHERE RequestID = 123

SELECT * FROM ResultMessage WHERE RequestID IN (123, 456)

SELECT * FROM ResultMessage WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
RequestID String Specifies the unique identifier (Id) of the initial asynchronous API call that initiated the overall request workflow.
ConversationID String Specifies the Id that represents the conversation context for the asynchronous API call. All related requests that must be processed as a single unit share this Id.
Client_ID Int Specifies the Id of the client that is associated with the asynchronous API operation.
CreatedDate Datetime Indicates the date and time when the result message object was created.
OverallStatusCode String Defines the overall status returned for the asynchronous API conversation.
StatusCode String Indicates the status returned for the individual asynchronous API request.
StatusMessage String Provides a descriptive message that explains the status of the asynchronous API call.
ErrorCode Int Identifies the error that is associated with the asynchronous API request by using a numeric code.
RequestType String Defines whether the request that is represented by the result message is processed through synchronous or asynchronous API behavior.
ResultType String Indicates whether the result that is returned by the system originated from synchronous or asynchronous API processing.
ResultDetailXML String Contains detailed result information for the request in XML format, enabling structured inspection of outcomes.
Client_PartnerClientKey String Specifies the user-defined partner key that is associated with the client.

CData Python Connector for Salesforce Marketing Cloud

Role

Defines user roles and permissions that are assigned within a Salesforce Marketing Cloud account. Each record specifies access levels, feature entitlements, and user group associations. This view supports auditing of security and access configurations.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Account WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM Account WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM Account WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled identifier (Id) that is used to uniquely identify the role object. This value is read-only.
CustomerKey String Specifies the user-supplied unique Id for the role object within the broader object type. This value is typically assigned through the user interface or an API workflow.
Name String Specifies the name of the role. This name is displayed in administrative tools and user-permissions settings.
Description String Provides descriptive information that is used to document the role's purpose, functional scope, or administrative use.
IsPrivate Bool Returns a value of 'true' when the role is a private role that is defined by a specific Salesforce Marketing Cloud account rather than by the platform. It returns a value of 'false' when the role is a standard role that is available across accounts.
IsSystemDefined Bool Returns a value of 'true' when the role is a system-defined role that is created and maintained by the Salesforce Marketing Cloud application. It returns a value of 'false' when the role is a custom role that is created and managed by an administrator.
Client_EnterpriseID Long Specifies the enterprise-level Id that is associated with the client in multi-business-unit environments. This value is reserved for future use.
Client_ID Int Specifies the Id of the client that owns or manages the role record.
Client_CreatedBy Int Specifies the Id of the user that is responsible for creating the role object.
CreatedDate Datetime Specifies the date and time when the role object was created. This value is read-only.
Client_ModifiedBy Int Specifies the Id of the user that is responsible for modifying the role object.
ModifiedDate Datetime Indicates the date and time when the role object was last modified.
PermissionSets String Specifies the permission sets that are applied to the role. Each permission set groups related capabilities that can be assigned collectively.
Permissions String Specifies the array of individual permissions that are associated with the role. Each permission defines a distinct operational capability within Salesforce Marketing Cloud.

CData Python Connector for Salesforce Marketing Cloud

SendEmailMOKeyword

Defines the action that sends a triggered email message in response to a mobile-originated (MO) message in Salesforce Marketing Cloud. This view maps keywords in Short Message Service (SMS) messages to corresponding triggered email sends for integrated cross-channel automation.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SendEmailMOKeyword WHERE Client_ID = 123

SELECT * FROM SendEmailMOKeyword WHERE Client_ID IN (123, 456)

SELECT * FROM SendEmailMOKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int Specifies the identifier (Id) of the client that owns or administers the mobile-originated (MO) keyword configuration.
CreatedDate Datetime Specifies the date and time when the MO keyword configuration object was created. This value is system-generated and read-only.
ModifiedDate Datetime Indicates the date and time when the MO keyword configuration object was last modified. This value reflects administrative or automated updates.
CustomerKey String Specifies the user-supplied unique Id for the MO keyword configuration within its object type. This Id is required for API access and cross-object references.
NextState_CustomerKey String Specifies the customer key that is associated with the next workflow state that is executed after this keyword is processed.
IsDefaultKeyword Bool Returns a value of 'true' when the system defaults to this SMS keyword action because no other keyword options are available. It returns a value of 'false' when the system does not treat this configuration as the default keyword action.
SuccessMessage String Specifies the Short Message Service (SMS) message that is sent to the mobile user when a triggered email send succeeds as a result of the keyword action. This message confirms that the requested email operation was successful.
MissingEmailMessage String Specifies the SMS message that is sent when an MO keyword submission does not include a valid email address. This message prompts the user to provide correct information.
FailureMessage String Specifies the SMS message that is sent to the mobile user when the system attempts but fails to send the triggered email that is associated with the keyword action. This message informs the user of the failure.
TriggeredSend_CustomerKey String Specifies the customer key that is associated with the triggered send definition that is executed when this keyword is received.

CData Python Connector for Salesforce Marketing Cloud

SendSMSMOKeyword

Defines the actions taken when Salesforce Marketing Cloud receives a specific mobile-originated (MO) keyword. Each record links a keyword to an automation or message send workflow to support two-way Short Message Serviec (SMS) communication.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SendSMSMOKeyword WHERE Client_ID = 123

SELECT * FROM SendSMSMOKeyword WHERE Client_ID IN (123, 456)

SELECT * FROM SendSMSMOKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int Specifies the Id of the client that owns or manages the Short Message Service (SMS) keyword configuration.
CreatedDate Datetime Indicates the system-generated date and time when the SMS MO keyword record was created.
ModifiedDate Datetime Indicates the date and time when the SMS MO keyword record was last modified as part of administrative or automated updates.
NextMOKeyword_CustomerKey String Specifies the customer key that identifies the next mobile-originated (MO) keyword to use in an SMS conversation flow. This value defines the follow-up keyword that is referenced when the current keyword workflow transitions to another processing state.
CustomerKey String Specifies the user-supplied unique Id for the SMS MO keyword configuration within its object type. This Id is used for API interactions and cross-object references.
ObjectID [KEY] String Specifies the system-controlled object Id that uniquely identifies the SMS MO keyword record within Marketing Cloud.
IsDefaultKeyword Bool Returns a value of 'true' when the account defaults to this SMS keyword action because no other applicable keyword options are available. It returns a value of 'false' when another keyword action is selected or explicitly configured for the incoming message.
Message String Specifies the message content that is returned to the subscriber as part of the SMS MO keyword response workflow.
ScriptErrorMessage String Specifies the message that is delivered to the subscriber when an error occurs while processing the SMS MO keyword conversation. This message provides fallback guidance when scripted logic cannot be executed.

CData Python Connector for Salesforce Marketing Cloud

SendSummary

Provides summary information for a completed send event in Salesforce Marketing Cloud. Each record includes key metrics such as total sent, delivered, opened, and bounced messages. This retrieve-only view supports campaign reporting and performance analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SendSummary WHERE Client_ID = 123

SELECT * FROM SendSummary WHERE Client_ID IN (123, 456)

SELECT * FROM SendSummary WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int Specifies the identifier (Id) of the client that owns or operates the send activity.
AccountID Int Specifies the unique Id for the account that is associated with the send summary record. This Id is used to link sending activity back to the originating account.
SendID Int Specifies the Id that identifies the specific send operation for which summary information is being reported.
DeliveredTime String Indicates the time at which the message that is associated with the send was delivered to the destination system or provider.
CreatedDate Datetime Indicates the system-generated date and time when the send summary record was created.
ModifiedDate Datetime Indicates the date and time when the send summary record was last modified as part of reporting or administrative updates.
CustomerKey String Specifies the user-supplied unique Id that is assigned to this send summary object within its object type.
PartnerKey String Specifies the partner-supplied unique Id that is associated with this send summary record and is available only through API access.
AccountName String Specifies the name of the account that is associated with the send operation.
AccountEmail String Specifies the email address that is associated with the account and that is used for reporting, administrative notices, or message attribution.
IsTestAccount Bool Returns a value of 'true' when the account is configured as a test account for validation or non-production sending scenarios. It returns a value of 'false' when the account operates as a standard production environment.
TotalSent Int Indicates the total number of messages that were sent as part of the send operation.
Transactional Int Indicates the number of transactional messages that were included in the send operation.
NonTransactional Int Specifies the number of marketing or non-transactional messages that were included as part of the send operation.

CData Python Connector for Salesforce Marketing Cloud

SentEvent

Contains tracking data for email send events in Salesforce Marketing Cloud. Each record captures subscriber-level delivery results, including send time, recipient address, and message identifier (Id). This view supports detailed tracking and reporting of message performance.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SentEvent WHERE Client_ID = 123

SELECT * FROM SentEvent WHERE Client_ID IN (123, 456)

SELECT * FROM SentEvent WHERE EventDate > '2024/01/25'

Columns

Name Type Description
SendID Int Specifies the unique identifier (Id) for the specific send operation that generated the sent event record. This Id enables reporting systems to associate the event with the correct outbound message.
SubscriberKey String Specifies the subscriber key that identifies the individual subscriber for whom the sent event was recorded. This value is used to correlate the event with subscriber-level activity.
EventDate Datetime Indicates the date and time when the sent event occurred as part of tracking and delivery reporting.
Client_ID Int Specifies the Id of the client that owns or administers the send and its associated event data.
EventType String Specifies the type of tracking event that is associated with the send, such as a system-generated representation of a successful send action.
BatchID Int Specifies the Id of the batch that groups related triggered send events for collective reporting and processing.
TriggeredSendDefinitionObjectID String Specifies the system-controlled Id that is associated with the triggered send definition used to generate the event.
ListID Int Specifies the Id of the subscriber list to which the subscriber belongs at the time of the send operation.
PartnerKey String Specifies the partner-assigned unique Id that is associated with the event record and available only through API access.
SubscriberID Int Specifies the Id of the subscriber that is associated with the sent event.

CData Python Connector for Salesforce Marketing Cloud

SMSMTEvent

Contains information about outbound (mobile-terminated) Short Message Service (SMS) messages that were are to subscribers in Salesforce Marketing Cloud. Each record includes message identifiers (Ids), timestamps, and delivery results for mobile messaging analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SMSMTEvent WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM SMSMTEvent WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM SMSMTEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled text string that serves as the unique identifier (Id) for the event record that is generated when a Short Message Service (SMS) message is delivered to a mobile device as part of a mobile-terminated (MT) interaction. This Id ensures that the platform can reliably reference and track the event.
EventDate Datetime Indicates the date and time when the mobile-terminated SMS tracking event occurred.
Client_ID Long Specifies the Id of the client that owns or administers the SMS configuration associated with this event.
MOCode String Specifies the mobile-originated (MO) code that is associated with the MO or MT tracking event. This value identifies the keyword or short code path that triggered the interaction.
SMSTriggeredSend_SMSSendId String Specifies the Id of the specific SMS send operation that is associated with the triggered send event.
SMSTriggeredSend_SMSTriggeredSendDefinition_ObjectID String Specifies the system-controlled text string identifier that is associated with the triggered send definition used for this SMS event.
SMSTriggeredSend_SMSTriggeredSendDefinition_CustomerKey String Specifies the user-supplied unique identifier for the triggered send definition that governs how the SMS message was generated and delivered.
Subscriber_ID Int Specifies the Id of the subscriber for whom the SMS tracking event was recorded.
Subscriber_SubscriberKey String Specifies the subscriber key that identifies the individual subscriber associated with the SMS event.
Subscriber_PrimarySMSAddress_Address String Specifies the primary SMS address that is associated with the subscriber's profile and used for message delivery.
Carrier String Specifies the mobile carrier that is associated with the subscriber's SMS address and used to route the message through the appropriate network.

CData Python Connector for Salesforce Marketing Cloud

SMSSharedKeyword

Contains information used to request or manage shared Short Message Service (SMS) keywords in Salesforce Marketing Cloud. Shared keywords allow multiple accounts or business units to use the same keyword within defined boundaries. This view supports keyword governance and provisioning.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SMSSharedKeyword WHERE Client_ID = 123

SELECT * FROM SMSSharedKeyword WHERE Client_ID IN (123, 456)

SELECT * FROM SMSSharedKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
CreatedDate Datetime Specifies the read-only date and time of the object's creation. This value is generated automatically by the system to establish when the shared keyword record was first added.
ModifiedDate Datetime Indicates the last time object information was modified. This value reflects system-tracked updates that are applied to the shared keyword record.
Client_ID Long Specifies the unique identifier (Id) of the client. This Id associates the shared keyword record with the correct Marketing Cloud account context.
SharedKeyword String Specifiesthe Short Message Service (SMS) keyword that is requested for use in an account. This keyword represents the text string that subscribers send to initiate a mobile interaction using a shared short code.
RequestDate Datetime Specifies the date when the request for an SMS shared keyword was made. This date establishes when the keyword entered the approval workflow.
EffectiveDate Datetime Specifies the date when an SMS shared keyword becomes active for use. This date determines when the keyword can begin receiving and processing subscriber messages.
ExpireDate Datetime Specifies the date when an SMS shared keyword stops being active for use. This date marks the point at which the keyword no longer accepts inbound message traffic.
ReturnToPoolDate Datetime Specifies the date when an expired SMS keyword becomes available to be reassigned for different use on a shared short code. This date supports lifecycle management of shared keyword resources.
ShortCode String Specifies the short code for which an SMS keyword was requested. This short code represents the numeric messaging address that is associated with the SMS interaction.

CData Python Connector for Salesforce Marketing Cloud

SMSTriggeredSendDefinition

Defines Short Message Service (SMS) triggered send definitions in Salesforce Marketing Cloud. Each definition includes message templates, target audiences, and sending parameters. This view supports auditing and configuration validation for automated SMS workflows.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SMSTriggeredSendDefinition WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM SMSTriggeredSendDefinition WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM SMSTriggeredSendDefinition WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled, read-only text string that serves as the unique identifier (Id) for the Short Message Service (SMS) triggered-send definition. This Id is generated automatically and is used to reference the definition within the system.
CustomerKey String Specifies the user-supplied unique Id for the triggered-send definition within its object type. This Id enables consistent identification across API operations and user interface components.
Client_ID Long Specifies the Id of the client. This Id associates the triggered-send definition with the correct Marketing Cloud account context.
Name String Specifies the name of the triggered-send definition. This value is displayed in the user interface and is used to distinguish this definition from other definitions.
Description String Describes and provides detailed information regarding the triggered-send definition. This text helps users understand the purpose, configuration, and functional context of the definition.
Publication_ID Int Specifies the read-only Id of the publication that is associated with the triggered-send definition. This Id links the definition to the appropriate SMS program or publication list.
CreatedDate Datetime Indicates the read-only date and time of the object's creation. This timestamp is generated automatically when the triggered-send definition is added to the system.
ModifiedDate Datetime Indicates the last time the triggered-send definition was modified. This timestamp reflects the most recent administrative or configuration update.
Content_ID Int Specifies the read-only Id of the content asset that is associated with the triggered-send definition. This Id identifies the SMS message content that is used during the triggered-send process.
SendToList Bool Returns a value of 'true' when the SMS triggered send is configured to send to a list instead of an individual subscriber. It returns a value of 'false' when the send is directed to a single subscriber rather than a list.
DataExtension_ObjectID String Specifies the system-controlled, read-only text string that serves as the Id of the data extension used as the target for the triggered send. This Id identifies the data source that supplies subscriber data for the send operation.
IsPlatformObject Bool Returns a value of 'true' when the triggered-send definition represents a platform-level object that is used across multiple account contexts. It returns a value of 'false' when the object is scoped only to the local business unit or account.

CData Python Connector for Salesforce Marketing Cloud

SubscriberList

Retrieves the lists that are associated with a specific subscriber in Salesforce Marketing Cloud. Each record links a subscriber to one or more lists to support segmentation, subscription tracking, and campaign targeting.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SubscriberList WHERE Id = 123

SELECT * FROM SubscriberList WHERE Id IN (123, 456)

SELECT * FROM SubscriberList WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ListSubID Long Specifies the unique identifier (Id) for the subscriber-list association record. This Id identifies the specific linkage between a subscriber and a list.
ID [KEY] Int Specifies the Id for the list-subscriber record. This Id uniquely identifies the object within the Marketing Cloud environment.
PartnerKey String Specifies the partner-supplied key that is associated with the object as part of an external integration. This key is accessible only through the API.
CreatedDate Datetime Specifies the date and time when the list-subscriber record was created. This value is read only and is set automatically by the system.
Subscriber_UnsubscribedDate Datetime Specifies the date and time when the subscriber unsubscribed from the associated list. This value allows downstream processes to evaluate historical opt-out activity.
Client_ID Int Specifies the Id of the client account that owns the list-subscriber record. This Id determines the account context in which the object exists and is managed.
Status String Specifies the status that is associated with the list-subscriber relationship (for example, Active, Unsubscribed, or Held). This value reflects how the subscriber is treated for future sends.
List_ID Int Specifies the Id of the list to which the subscriber is associated. This Id identifies the specific list that defines the audience membership.
List_ListName String Specifies the name of the list that is associated with the subscriber. This value is used for identification, reporting, and user-interface display.
Subscriber_Status String Specifies the status that is associated with the subscriber within the context of this list. This value can differ from the subscriber's global status.
Subscriber_CreatedDate Datetime Specifies the date and time when the subscriber record was created in the system. This value provides historical context for segmentation and reporting.
Subscriber_ID Int Specifies the Id of the subscriber. This Id uniquely identifies the subscriber object within the Salesforce Marketing Cloud account.
Subscriber_EmailAddress String Specifies the email address that is associated with the subscriber. This address represents the primary communication channel for email sends.
Subscriber_SubscriberKey String Specifies the subscriber key that uniquely identifies a subscriber across multiple lists, business units, and data sources. This key is required for all send-related operations.
Subscriber_PartnerKey String Specifies the partner-provided key for the subscriber, which is used for external system correlation. This key is accessible only through the API.

CData Python Connector for Salesforce Marketing Cloud

SubscriberSendResult

Provides information about message send outcomes at the individual subscriber level. This view helps identify whether a message was delivered, bounced, deferred, or otherwise processed for each subscriber, enabling detailed send-level analysis and troubleshooting.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SubscriberSendResult WHERE Id = 123

SELECT * FROM SubscriberSendResult WHERE Id IN (123, 456)

SELECT * FROM SubscriberSendResult WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Send_ID Int Specifies the unique identifier (Id) for the send that is associated with the subscriber's result record. This Id is read only and is managed by the system.
ID [KEY] Int Specifies the Id for the subscriber send-result record. This Id uniquely identifies the result object within the account and is read only.
Email_ID Int Specifies the Id of the email message that is associated with the subscriber's send result. This Id allows reporting systems to join send-result data with email-definition data.
Email_Name String Specifies the name of the email message that is associated with the subscriber's send result. This value provides user-friendly identification for reporting and auditing.
Subject String Specifies the subject line that is associated with the message that was sent to the subscriber. This value reflects the rendered subject at the time of send.
FromName String Specifies the 'From Name' value that is associated with the email message. This value reflects the branding that is applied at the time of send.
FromAddress String Specifies the 'From Address' value that is associated with the email message. This address represents the sending mailbox that is visible to the subscriber.
SentDate Datetime Specifies the date and time when the email message was sent to the subscriber. This timestamp is generated by the sending engine.
OpenDate Datetime Specifies the date and time when the subscriber opened the message. This value contributes to open-rate reporting and engagement analysis.
ClickDate Datetime Specifies the date and time when the subscriber clicked a link within the message. This value contributes to click-through tracking and engagement reporting.
Subscriber_Partnerkey String Specifies the partner-provided key that is associated with the subscriber for integration and correlation with external systems. This key is accessible only via the API.
Subscriber_EmailAddress String Specifies the email address of the subscriber who received the message. This address serves as the primary identifier for email delivery.
Subscriber_PartnerType String Specifies the partner-defined subscriber classification that is used for third-party correlation and integration workflows.
UnsubscribeDate Datetime Specifies the date and time when the subscriber unsubscribed as a result of the send. This value supports compliance reporting and audience-health analysis.
LastOpenDate Int Specifies the date the subscriber last opened the message, expressed as an integer timestamp. This value reflects the most recent engagement event.
LastClickDate Int Specifies the date the subscriber last clicked a link within the message, expressed as an integer timestamp. This value reflects the most recent click-through event.
BounceDate Datetime Specifies the date and time when the subscriber's email address generated a bounce for this send. This value supports deliverability reporting.
EventDate Int Specifies the date of the event that is associated with the send result, expressed as an integer timestamp for system processing.
TotalClicks Int Specifies the total number of clicks that are generated by the subscriber for the message. This value includes repeated clicks on the same link.
UniqueClicks Int Specifies the number of unique clicks that are performed by the subscriber for the message. This value counts each link only once per subscriber.
EmailAddress Int Specifies the 'From' address that is associated with the email message. This value is provided as an Id for reporting consistency.
Subscriber_ID Int Specifies the Id of the subscriber that is associated with the send result. This Id uniquely identifies the subscriber within the account and is read only.
SubscriberTypeID Int Specifies the Id that represents the subscriber type. This Id classifies subscriber records for system-level processing.
Subscriber_SubscriberKey String Specifies the subscriber key that uniquely identifies the subscriber across lists, business units, and data sources.
Send_PartnerKey String Specifies the partner-provided key that is associated with the send. This key is used for external correlation and is accessible only via the API.
PartnerKey String Specifies the partner-provided key that is associated with the send-result object. This key supports external system mapping and is accessible only via the API.
Client_ID Int Specifies the Id of the client account that owns the send-result record. This Id determines the account context for processing and reporting.
OtherBounces Int Specifies the number of bounces that are classified as Other-type bounces for the message. This value reflects bounce categories that do not fall into soft or hard classifications.
SoftBounces Int Specifies the number of soft bounces that are associated with the send. Soft bounces occur when temporary delivery issues prevent successful delivery.
HardBounces Int Specifies the number of hard bounces that are associated with the send. Hard bounces occur when permanent delivery issues prevent email acceptance.

CData Python Connector for Salesforce Marketing Cloud

SubscriberStatusEvent

Retrieves information about subscribers, the current subscribers' status and the reasons why the subscribers unsubscribed, if any.

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled text string that serves as the unique identifier (Id) for the subscriber-status event record. This Id is read-only and is generated internally.
SubscriberID Long Specifies the Id that is assigned to the subscriber within the Salesforce Marketing Cloud account context. This Id is used to link the status event to the corresponding subscriber record.
Client_ID Long Specifies the Id of the client that owns or manages the subscriber associated with this status event. The system uses this Id to ensure that status tracking aligns to the correct account.
CurrentStatus String Defines the subscriber status that is currently active at the time the event was recorded. This value reflects the most recent state (for example, Active, Bounced, or Unsubscribed.
PreviousStatus String Defines the subscriber status that was in effect immediately prior to the status change represented by this event. This value provides historical context for understanding lifecycle transitions.
CreatedDate Datetime Indicates the date and time when the subscriber-status event was created within the system. This value establishes the chronological sequence of the subscriber's status changes.
SubscriberKey String Specifies the subscriber key that uniquely identifies the subscriber across lists, sends, and data extensions. This value is used for tracking, segmentation, and auditing.
ReasonUnsub String Specifies the explanation that describes why the subscriber unsubscribed from a list or communication source. This value can represent a system-detected reason or a subscriber-provided reason.

CData Python Connector for Salesforce Marketing Cloud

SuppressionListContext

Defines the context within which a suppression list can be associated in Salesforce Marketing Cloud. Each context determines the scope of a suppression list, such as a specific business unit, publication, or message type.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SuppressionListContext WHERE Id = 123

SELECT * FROM SuppressionListContext WHERE Id IN (123, 456)

SELECT * FROM SuppressionListContext WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled text string that serves as the unique identifier (Id) for the suppression-list context record. This Id is read-only and is generated internally.
Definition_ObjectID String Specifies the system-controlled text string that serves as the Id of the suppression-list definition that is associated with this context. This Id is read-only and is generated internally.
Definition_Name String Defines the name that is assigned to the suppression-list definition that is associated with this context. This value helps identify the definition within configuration workflows.
Definition_CustomerKey String Specifies the user-supplied unique Id for the suppression-list definition that is associated with this context. This value provides an external reference for integration, retrieval, or configuration tasks.
Definition_Category Long Identifies the folder category in which the suppression-list definition is stored. This value supports organization, access control, and hierarchical navigation.
Definition_Description String Describes the purpose, scope, or functional details of the suppression-list definition that is associated with this context. This description helps users understand how the definition is intended to be used.
Context String Specifies the context that is assigned to the suppression-list definition, such as its usage scenario or scope of application. This value determines when and where the suppression list is applied.
SendClassification_ObjectID String Specifies the system-controlled text string that serves as the Id of the send classification that is associated with the suppression-list context. This Id is read-only and is generated internally.
Send_ID Int Specifies the Id of the send to which this suppression-list context applies. This Id is read-only and is used to link the context to a specific send record.
SenderProfile_ObjectID String Specifies the system-controlled text string that serves as the Id of the sender profile associated with this suppression-list context. This Id is read-only and is generated internally.
SendClassificationType String Defines the type of the associated send classification that is used with this suppression-list context. Valid values include 'Operational' and 'Marketing', which determine how the suppression rules are enforced.
Client_CreatedBy Int Returns the Id of the user who created the suppression-list context record. This Id supports auditing and administrative tracking.
CreatedDate Datetime Indicates the date and time when the suppression-list context record was created. This value provides chronological tracking for configuration changes.
Client_ModifiedBy Int Returns the Id of the user who most recently modified the suppression-list context record. This Id supports auditing and administrative oversight.
ModifiedDate Datetime Indicates the date and time when the suppression-list context record was last modified. This timestamp reflects the most recent update to configuration details.
Client_ID Long Specifies the Id of the client that owns or manages the suppression-list context. This Id links the context to the correct account.
Client_EnterpriseID Long Specifies the enterprise-level Id that is associated with the client.
AppliesToAllSends Bool Returns a value of 'true' when the suppression-list context applies to all transactional and marketing sends for the client. It returns a value of 'false' when the suppression-list context applies only to specific sends or classifications.

CData Python Connector for Salesforce Marketing Cloud

SurveyEvent

Contains information about survey responses recorded in Salesforce Marketing Cloud. Each record captures the timestamp and context of the response, supporting analysis of audience feedback and engagement.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM SurveyEvent WHERE Id = 123

SELECT * FROM SurveyEvent WHERE Id IN (123, 456)

SELECT * FROM SurveyEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID [KEY] Int Specifies the system-generated unique identifier (Id) for the survey event. This Id is read-only and is assigned automatically by the system.
ObjectID String Specifies the system-controlled text string that serves as the unique Id for the survey-event object. This Id is read-only and is generated internally.
PartnerKey String Specifies the unique partner-assigned Id for the survey event. This value is accessible only through the API and is used for external system correlation.
CreatedDate Datetime Indicates the date and time when the survey event was created. This timestamp is read-only and is generated automatically.
ModifiedDate Datetime Indicates the date and time when the survey-event record was last modified. This timestamp supports auditing and administrative review.
Client_ID Int Specifies the Id of the client that owns or manages the survey event. This Id links the record to the appropriate account.
SendID Int Specifies the Id of the send that is associated with the survey event. This Id links the event back to the originating message send operation.
SubscriberKey String Specifies the unique subscriber Id that is associated with the event. This value identifies which subscriber provided the survey response.
EventDate Datetime Indicates the date and time when the survey event occurred. This timestamp reflects when the subscriber interacted with the survey content.
EventType String Defines the type of tracking event that is associated with the survey interaction. This value helps categorize the event within reporting.
TriggeredSendDefinitionObjectID String Specifies the system-controlled Id of the triggered send definition that is associated with the survey event. This Id provides linkage to automation and send configuration.
BatchID Int Specifies the batch Id that groups the survey event with related send-tracking events. This value supports processing and reporting alignment.
Question String Specifies the survey question presented to the subscriber as part of the tracked interaction. This value reflects the exact question text.
Answer String Specifies the answer that the subscriber provided in response to the survey question. This value captures the subscriber's submitted input.

CData Python Connector for Salesforce Marketing Cloud

Template

Represents email templates in Salesforce Marketing Cloud. Each record defines the layout, content placeholders, and associated sender settings that are used to build emails. This view helps ensure standardized formatting and brand alignment across campaigns.

Table-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM Template WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM Template WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM Template WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID String The system-generated text value that uniquely identifies this template object within Salesforce Marketing Cloud.
ID [KEY] Int The unique identifier (Id) for the record. This value is system-generated and cannot be modified.
Client_ID Int The Id that identifies the client account that owns or manages this template.
TemplateName String The name that identifies the template within the Salesforce Marketing Cloud application. This value helps administrators and content builders locate and reuse the template in email creation workflows.
LayoutHTML String The HTML markup that defines the structural layout, content regions, and visual framework of the template. This value allows designers to control formatting, placement of elements, and rendering behavior across email clients.
BackgroundColor String The color value that determines the background color applied to the template. This value influences visual branding and readability for the rendered email.
BorderColor String The color value that determines the border color that surrounds the template or its content regions. This value helps maintain consistent formatting and visual structure.
BorderWidth Int The numeric value that defines the width, in pixels, of the borders that appear around the template. This value controls how prominently the border is displayed in the final email design.
Cellpadding Int The numeric value that defines the internal padding, in pixels, within each table cell in the template layout. This value controls spacing between cell edges and content.
Cellspacing Int The numeric value that defines the spacing, in pixels, between individual table cells within the template layout. This value influences how tightly or loosely the table structure appears.
Width Int The numeric value that specifies the full pixel width of the template. This value determines how the template renders across various email clients and viewing panes.
Align String The alignment setting that determines how content within the template is positioned horizontally. This value influences layout presentation when the email is rendered.
ActiveFlag Int The numeric value that indicates whether the template is available for selection and use within the Salesforce Marketing Cloud account. A value of '1' typically indicates that the template is active.
CategoryID Int The Id that identifies the content validation category assigned to the email message that uses this template. This value allows systems to track the validation state for compliance and deliverability checks.
CategoryType String The value that identifies the type of categorization that links related objects across multiple requests. This value supports grouping, auditing, and coordinated processing of template-related operations.
OwnerID Int The Id that identifies the business unit (also known as the Member Identification value) that created the template within an Enterprise 2.0 account structure. This value supports security and content access controls.
HeaderContent_ID Int The Id that identifies the header content that is associated with the template. This value links the template to reusable content blocks.
HeaderContent_ObjectID String The system-generated text value that identifies the object that stores the header content associated with this template.
Layout_ID Int The Id that identifies the layout configuration that is assigned to the template. This value determines the structural framework used for rendering content.
Layout_LayoutName String The name of the layout that defines the structural arrangement and formatting rules used by the template.
CustomerKey String The user-supplied Id that uniquely identifies the template within the object type. This value supports custom integrations, automation, and cross-environment migrations.
TemplateSubject String The subject line text that the template applies to emails that are created from it. This value provides a default that helps standardize branding and communication patterns.
IsTemplateSubjectLocked Bool Returns a value of 'true' when the subject defined in the header content cannot be modified by emails that use this template. It returns a value of 'false' when the subject can be changed during email creation.

CData Python Connector for Salesforce Marketing Cloud

TimeZone

Lists supported time zones in Salesforce Marketing Cloud. Each record includes the time zone identifier (Id), offset, and regional description. This view supports configuration of time-based automations and send scheduling.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM TimeZone

Columns

Name Type Description
ID [KEY] Int The unique identifier (Id) for the timezone record. This value is system-generated and uniquely identifies the timezone entry within the schema.
Name String The descriptive name of the timezone, such as a standard region or offset label. This value helps users and systems reference the appropriate timezone for scheduling, localization, and data processing activities.

CData Python Connector for Salesforce Marketing Cloud

TriggeredSendSummary

Provides summary metrics for specific triggered send operations in Salesforce Marketing Cloud. Each record includes counts for messages sent, delivered, and failed, supporting operational and performance analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM TriggeredSendSummary WHERE ObjectID = 'nzxcaslkjd-123'

SELECT * FROM TriggeredSendSummary WHERE ObjectID IN ('nzxcaslkjd-123', 'nzxcaslkjd-456')

SELECT * FROM TriggeredSendSummary WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ObjectID [KEY] String Specifies the system-controlled text string that serves as the unique identifier (Id) for the triggered-send summary record.
Client_ID Long Specifies the Id of the client account that is associated with the triggered-send summary.
Client_PartnerClientKey String Specifies the partner-provided unique key that is associated with the client account and used only within partner integrations.
CustomerKey String Specifies the user-supplied unique Id for the triggered-send summary object.
PartnerKey String Specifies the partner-provided unique Id for the triggered-send summary object and available only through partner integrations.
Sent Long Indicates the total number of triggered-send messages that were successfully sent.
NotSentDueToOptOut Long Indicates the number of triggered-send messages that were not delivered because the subscribers opted out of receiving communications.
NotSentDueToUndeliverable Long Indicates the number of triggered-send messages that were not delivered because the destination addresses were undeliverable.
Bounces Long Indicates the total number of bounce events that resulted from the triggered send.
Opens Long Indicates the total number of opens recorded across all messages in the triggered send.
UniqueOpens Long Indicates the number of distinct subscribers who opened at least one message within the triggered send.
Clicks Long Indicates the total number of click interactions recorded for the triggered send.
UniqueClicks Long Indicates the number of distinct subscribers who clicked at least one link within the triggered send.
OptOuts Long Indicates the number of subscribers who opted out of receiving future messages after receiving the triggered send.
SurveyResponses Long Indicates the number of responses submitted to any survey questions included in the triggered send.
FTAFRequests Long Indicates the number of Forward To A Friend (FTAF) request actions that were initiated from within the triggered send.
FTAFEmailsSent Long Indicates the number of Forward To A Friend (FTAF) emails that were sent as a result of subscriber requests.
FTAFOptIns Long Indicates the number of subscribers who opted in to future communications as a result of a Forward To A Friend (FTAF) action.
Conversions Long Indicates the total number of conversions that resulted from the triggered send.
UniqueConversions Long Indicates the number of distinct subscribers who completed a conversion action that is associated with the triggered send.
NotSentDueToError Long Indicates the number of triggered-send messages that were not delivered because an error occurred during processing.
RowObjectID String Specifies the row-level unique Id for the triggered-send summary record.
TriggeredSendDefinition_ObjectID String Specifies the system-controlled unique Id of the triggered-send definition that is associated with the summarized results.
Queued Long Indicates the number of triggered-send messages that are queued and awaiting processing.

CData Python Connector for Salesforce Marketing Cloud

UnsubEvent

Contains data about unsubscription events in Salesforce Marketing Cloud. Each record captures the subscriber, timestamp, and context of the unsubscribe action. This view supports compliance reporting and audience retention analysis.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM UnsubEvent WHERE Id = 123

SELECT * FROM UnsubEvent WHERE Id IN (123, 456)

SELECT * FROM UnsubEvent WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
ID Int Specifies the read-only unique identifier (Id) for the unsubscribe event record.
ObjectID String Specifies the system-controlled text string that serves as the unique Id for the unsubscribe event object.
PartnerKey String Specifies the partner-provided unique Id for the unsubscribe event object that is available only through partner integrations.
CreatedDate Datetime Specifies the read-only date and time when the unsubscribe event record was created.
ModifiedDate Datetime Indicates the date and time when the unsubscribe event record was last modified.
Client_ID Int Specifies the Id of the client account that is associated with the unsubscribe event.
SendID Int Specifies the Id of the send operation that is associated with the unsubscribe event.
SubscriberKey String Specifies the user-supplied subscriber key that identifies the subscriber who performed the unsubscription.
EventDate Datetime Specifies the date and time when the unsubscribe tracking event occurred.
EventType String Specifies the type of tracking event that is associated with the unsubscribe action.
TriggeredSendDefinitionObjectID String Specifies the system-controlled Id of the triggered-send definition that is associated with the unsubscribe event.
BatchID Int Specifies the batch Id that ties the unsubscribe event to a related group of triggered-send events.
List_ID Int Specifies the Id of the list that is associated with the unsubscription action.
List_Type String Specifies the type of list that is associated with the unsubscription event. Valid values include 'Public', 'Private', 'Salesforce', 'GlobalUnsubscribe', and 'Master'.
List_ListClassification String Specifies the classification that is applied to the list that is associated with the unsubscription event.
IsMasterUnsubscribed Bool Indicates whether the subscriber performed a master unsubscribe action. It returns a value of 'false' when the subscriber did not perform a master unsubscribe.

CData Python Connector for Salesforce Marketing Cloud

UnsubscribeFromSMSPublicationMOKeyword

Defines the keyword that subscribers can use to unsubscribe from a Short Message Service (SMS) publication list in Salesforce Marketing Cloud. This configuration supports opt-out workflows and compliance with mobile communication regulations.

View-Specific Information

Select

The connector uses the Salesforce Marketing Cloud APIs to process the following WHERE clause operators for all but date-time values: =, !=, <>, >, >=, <, <=, IN. For date-time values, only > and < are supported. The connector processes other filters client-side within the connector.

For example, the following (but not only) queries are processed server side:

SELECT * FROM UnsubscribeFromSMSPublicationMOKeyword WHERE Client_ID = 123

SELECT * FROM UnsubscribeFromSMSPublicationMOKeyword WHERE Client_ID IN (123, 456)

SELECT * FROM UnsubscribeFromSMSPublicationMOKeyword WHERE CreatedDate > '2017/01/25'

Columns

Name Type Description
Client_ID Int Specifies the identifier (Id) of the client account that is associated with the keyword configuration for mobile-originated (MO) messages in the Short Message Service (SMS) system.
CreatedDate Datetime Specifies the read-only date and time when the SMS MO keyword configuration record was created.
ModifiedDate Datetime Indicates the date and time when the SMS MO keyword configuration record was last modified.
CustomerKey String Specifies the user-supplied unique Id for the SMS MO keyword configuration.
NextMOKeyword_CustomerKey String Specifies the customer key of the next MO keyword that is used to continue an SMS conversation flow.
IsDefaultKeyword Bool Indicates whether the account defaults to this SMS keyword action when no other keyword-specific option is available. It returns a value of 'false' when the account does not default to this SMS keyword action.
AllUnsubSuccessMessage String Contains the message that is sent to the subscriber when they successfully unsubscribe from all SMS publication lists.
InvalidPublicationMessage String Specifies the message that is sent when a subscriber attempts to subscribe to or unsubscribe from a publication list that does not exist or cannot be identified.
SingleUnsubSuccessMessage String Contains the message that is sent to the subscriber when they successfully unsubscribe from a single SMS publication list.

CData Python Connector for Salesforce Marketing Cloud

Stored Procedures

Stored procedures are function-like interfaces that extend the functionality of the connector beyond simple SELECT/INSERT/UPDATE/DELETE operations with Salesforce Marketing Cloud.

Stored procedures accept a list of parameters, perform their intended function, and then return any relevant response data from Salesforce Marketing Cloud, along with an indication of whether the procedure succeeded or failed.

CData Python Connector for Salesforce Marketing Cloud Stored Procedures

Name Description
CreateSchema Generates a schema file for a specified table or view in Salesforce Marketing Cloud. The schema file describes field names, data types, and relationships, supporting integration or documentation purposes.
CreateTriggeredSend Creates a triggered send object in Salesforce Marketing Cloud. A triggered send represents a specific instance of an automated email send that is initiated by an API event or system trigger. This procedure allows real-time delivery of personalized messages.
GetOAuthAccessToken Gets an authentication token from SalesforceMarketingCloud.
GetOAuthAuthorizationURL Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps.
RefreshOAuthAccessToken Refreshes the OAuth access token used for authentication with SalesforceMarketingCloud.

CData Python Connector for Salesforce Marketing Cloud

CreateSchema

Generates a schema file for a specified table or view in Salesforce Marketing Cloud. The schema file describes field names, data types, and relationships, supporting integration or documentation purposes.

CreateSchema

Creates a local schema file (.rsd) from an existing table or view in the data model.

The schema file is created in the directory set in the Location connection property when this procedure is executed. You can edit the file to include or exclude columns, rename columns, or adjust column datatypes.

The connector checks the Location to determine if the names of any .rsd files match a table or view in the data model. If there is a duplicate, the schema file will take precedence over the default instance of this table in the data model. If a schema file is present in Location that does not match an existing table or view, a new table or view entry is added to the data model of the connector.

Input

Name Type Required Description
TableName String True Specifies the name of the table or view for which the schema file should be generated. This value determines the structure that the stored procedure exports into the resulting schema.
FileName String False Specifies the full file path and the name of the schema file to generate. The path must include the parent directory configured in the Location property, the directory that corresponds to the schema type such as SOAP, and the .rsd file name that represents the target table or view. For example, a valid Windows path might be 'C:\\Users\\User\\Desktop\\SalesforceMarketingCloud\\SOAP\\table.rsd'.

Result Set Columns

Name Type Description
Result String Returns a value of 'Success' when the schema is generated without errors. It returns a value of 'Failure' when the stored procedure encounters a problem during schema creation.
FileData String Specifies the generated schema that is returned as a Base64-encoded string. This value is provided only when neither the FileName nor FileStream input is supplied, and it enables callers to capture the schema directly within the API response.

CData Python Connector for Salesforce Marketing Cloud

CreateTriggeredSend

Creates a triggered send object in Salesforce Marketing Cloud. A triggered send represents a specific instance of an automated email send that is initiated by an API event or system trigger. This procedure allows real-time delivery of personalized messages.

Table Specific Information

Subscribers

You cannot create a trigger send without specifying the subscribers. To create subscribers, you must insert data in a temporary table called 'Subscribers#TEMP'.

Example: Create two subscribers

INSERT INTO Subscribers#TEMP (SubscriberKey, EmailAddress) VALUES ('a4367b39-d7d6-4612-a020-0952aa9e83dd', 'test@gmail.com.com')
INSERT INTO Subscribers#TEMP (SubscriberKey, EmailAddress) VALUES ('21621cc5-d12e-46d0-bf09-a429da29ef1a', 'testtest@gmail.com.com')

Attributes

To create attributes, you must insert data in a temporary table called 'Attributes#TEMP'.

Example: Create two attributes

INSERT INTO Attributes#TEMP (Name, Value) VALUES ('orderstatus', 'received')
INSERT INTO Attributes#TEMP (Name, Value) VALUES ('orderdate', '2015-06-30 11:10:36.956')

Execute

After creating at least one subscriber item, you can execute the stored procedure.

EXECUTE CreateTriggeredSend Owner_ClientId = '7307527', Owner_FromName = 'From_Name', Owner_FromAddress = 'test@gmail.com.com', TriggeredSendDefinitionCustomerKey = '27775'

Input

Name Type Required Description
TriggeredSendDefinitionCustomerKey String True Specifies the external key that identifies the triggered send definition that is associated with the triggered send operation. This value determines which configured definition the system should use when creating the triggered send object.
Owner_ClientId String False Specifies the identifier (Id) of the account that owns the triggered send. This value determines the business unit context in which the triggered send is created and executed.
Owner_FromAddress String False Specifies the email address that appears in the 'From' field of the triggered send. This value establishes the sender identity shown to recipients.
Owner_FromName String False Specifies the 'From Name' value that is associated with the triggered send. This value provides the display name that accompanies the 'From' address in outbound messages.

Result Set Columns

Name Type Description
Success Boolean Returns a value of 'true' when the triggered send object is created successfully. It returns a value of 'false' when the creation request encounters an error or fails validation.

CData Python Connector for Salesforce Marketing Cloud

GetOAuthAccessToken

Gets an authentication token from SalesforceMarketingCloud.

Input

Name Type Required Description
AuthMode String False The type of authentication mode to use. Select App for getting authentication tokens via a desktop app. Select Web for getting authentication tokens via a Web app.

The allowed values are APP, WEB.

The default value is APP.

Verifier String False The verifier token returned by SalesforceMarketingCloud after using the URL obtained with GetOAuthAuthorizationUrl.
Scope String False Space-separated list of data-access permissions for your application. Review REST API Permission IDs and Scopes for a full list of permissions. If scope is not specified, the token is issued with the scopes assigned to the API integration in Installed Packages.
State String False Used by your application to maintain state between the request and the redirect. The authorization server includes this value when redirecting the end-user's browser back to your application. This parameter is recommended because it helps to minimize the risk of cross-site forgery attack.
CallbackUrl String False The page to return the SalesforceMarketingCloud app after authentication has been completed.
GrantType String False Authorization grant type. Only available for OAuth 2.0.

The allowed values are CODE, CLIENT.

AccountId String False Account identifier, or MID, of the target business unit. Use to switch between business units.

Result Set Columns

Name Type Description
OAuthAccessToken String The OAuth token.
OAuthRefreshToken String The OAuth refresh token.
ExpiresIn String The remaining lifetime for the access token in seconds.

CData Python Connector for Salesforce Marketing Cloud

GetOAuthAuthorizationURL

Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps.

Input

Name Type Required Description
CallbackUrl String True Where the end user is directed after login. Must match a redirect URL specified on the API integration in Installed Packages.
Scope String False Space-separated list of data-access permissions for your application. Review REST API Permission IDs and Scopes for a full list of permissions. If scope is not specified, the token is issued with the scopes assigned to the API integration in Installed Packages.
State String False Used by your application to maintain state between the request and the redirect. The authorization server includes this value when redirecting the end-user's browser back to your application. This parameter is recommended because it helps to minimize the risk of cross-site forgery attack.

Result Set Columns

Name Type Description
URL String The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app.

CData Python Connector for Salesforce Marketing Cloud

RefreshOAuthAccessToken

Refreshes the OAuth access token used for authentication with SalesforceMarketingCloud.

Input

Name Type Required Description
OAuthRefreshToken String True Set this to the token value that expired.
GrantType String False Authorization grant type. Only available for OAuth 2.0.

The allowed values are CODE, CLIENT.

Result Set Columns

Name Type Description
OAuthAccessToken String The authentication token returned from SalesforceMarketingCloud. This can be used in subsequent calls to other operations for this particular service.
OAuthRefreshToken String This is the same as the access token.
ExpiresIn String The remaining lifetime on the access token.

CData Python Connector for Salesforce Marketing Cloud

System Tables

You can query the system tables described in this section to access schema information, information on data source functionality, and batch operation statistics.

Schema Tables

The following tables return database metadata for Salesforce Marketing Cloud:

Data Source Tables

The following tables return information about how to connect to and query the data source:

  • sys_connection_props: Returns information on the available connection properties.
  • sys_sqlinfo: Describes the SELECT queries that the connector can offload to the data source.

Query Information Tables

The following table returns query statistics for data modification queries, including batch operations:

  • sys_identity: Returns information about batch operations or single updates.

CData Python Connector for Salesforce Marketing Cloud

sys_catalogs

Lists the available databases.

The following query retrieves all databases determined by the connection string:

SELECT * FROM sys_catalogs

Columns

Name Type Description
CatalogName String The database name.

CData Python Connector for Salesforce Marketing Cloud

sys_schemas

Lists the available schemas.

The following query retrieves all available schemas:

          SELECT * FROM sys_schemas
          

Columns

Name Type Description
CatalogName String The database name.
SchemaName String The schema name.

CData Python Connector for Salesforce Marketing Cloud

sys_tables

Lists the available tables.

The following query retrieves the available tables and views:

          SELECT * FROM sys_tables
          

Columns

Name Type Description
CatalogName String The database containing the table or view.
SchemaName String The schema containing the table or view.
TableName String The name of the table or view.
TableType String The table type (table or view).
Description String A description of the table or view.
IsUpdateable Boolean Whether the table can be updated.
IsInsertable Boolean Whether the table can be inserted into.
IsDeleteable Boolean Whether rows can be deleted from the table.

CData Python Connector for Salesforce Marketing Cloud

sys_tablecolumns

Describes the columns of the available tables and views.

The following query returns the columns and data types for the Subscriber table:

SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName = 'Subscriber' 

Columns

Name Type Description
CatalogName String The name of the database containing the table or view.
SchemaName String The schema containing the table or view.
TableName String The name of the table or view containing the column.
ColumnName String The column name.
DataTypeName String The data type name.
DataType Int32 An integer indicating the data type. This value is determined at run time based on the environment.
Length Int32 The storage size of the column.
DisplaySize Int32 The designated column's normal maximum width in characters.
NumericPrecision Int32 The maximum number of digits in numeric data. The column length in characters for character and date-time data.
NumericScale Int32 The column scale or number of digits to the right of the decimal point.
IsNullable Boolean Whether the column can contain null.
Description String A brief description of the column.
Ordinal Int32 The sequence number of the column.
IsAutoIncrement String Whether the column value is assigned in fixed increments.
IsGeneratedColumn String Whether the column is generated.
IsHidden Boolean Whether the column is hidden.
IsArray Boolean Whether the column is an array.
IsReadOnly Boolean Whether the column is read-only.
IsKey Boolean Indicates whether a field returned from sys_tablecolumns is the primary key of the table.
ColumnType String The role or classification of the column in the schema. Possible values include SYSTEM, LINKEDCOLUMN, NAVIGATIONKEY, REFERENCECOLUMN, and NAVIGATIONPARENTCOLUMN.
ColumnCapabilities Int32 A bit mask denoting the column's write capabilities. The value is the sum of the following: 1 if the column is required for INSERTs, 2 if the column is allowed for INSERTs, and 4 if the column is allowed for UPDATEs. A value of 0 indicates that the write capabilities of the column are unknown or that the column is read-only.

CData Python Connector for Salesforce Marketing Cloud

sys_procedures

Lists the available stored procedures.

The following query retrieves the available stored procedures:

          SELECT * FROM sys_procedures
          

Columns

Name Type Description
CatalogName String The database containing the stored procedure.
SchemaName String The schema containing the stored procedure.
ProcedureName String The name of the stored procedure.
Description String A description of the stored procedure.
ProcedureType String The type of the procedure, such as PROCEDURE or FUNCTION.

CData Python Connector for Salesforce Marketing Cloud

sys_procedureparameters

Describes stored procedure parameters.

The following query returns information about all of the input parameters for the SelectEntries stored procedure:

SELECT * FROM sys_procedureparameters WHERE ProcedureName = 'SelectEntries' AND Direction = 1 OR Direction = 2

To include result set columns in addition to the parameters, set the IncludeResultColumns pseudo column to True:

SELECT * FROM sys_procedureparameters WHERE ProcedureName = 'SelectEntries' AND IncludeResultColumns='True'

Columns

Name Type Description
CatalogName String The name of the database containing the stored procedure.
SchemaName String The name of the schema containing the stored procedure.
ProcedureName String The name of the stored procedure containing the parameter.
ColumnName String The name of the stored procedure parameter.
Direction Int32 An integer corresponding to the type of the parameter: input (1), input/output (2), or output(4). input/output type parameters can be both input and output parameters.
DataType Int32 An integer indicating the data type. This value is determined at run time based on the environment.
DataTypeName String The name of the data type.
NumericPrecision Int32 The maximum precision for numeric data. The column length in characters for character and date-time data.
Length Int32 The number of characters allowed for character data. The number of digits allowed for numeric data.
NumericScale Int32 The number of digits to the right of the decimal point in numeric data.
IsNullable Boolean Whether the parameter can contain null.
IsRequired Boolean Whether the parameter is required for execution of the procedure.
IsArray Boolean Whether the parameter is an array.
Description String The description of the parameter.
Ordinal Int32 The index of the parameter.
Values String The values you can set in this parameter are limited to those shown in this column. Possible values are comma-separated.
SupportsStreams Boolean Whether the parameter represents a file that you can pass as either a file path or a stream.
IsPath Boolean Whether the parameter is a target path for a schema creation operation.
Default String The value used for this parameter when no value is specified.
SpecificName String A label that, when multiple stored procedures have the same name, uniquely identifies each identically-named stored procedure. If there's only one procedure with a given name, its name is simply reflected here.
IsCDataProvided Boolean Whether the procedure is added/implemented by CData, as opposed to being a native Salesforce Marketing Cloud procedure.

Pseudo-Columns

Name Type Description
IncludeResultColumns Boolean Whether the output should include columns from the result set in addition to parameters. Defaults to False.

CData Python Connector for Salesforce Marketing Cloud

sys_keycolumns

Describes the primary and foreign keys.

The following query retrieves the primary key for the Subscriber table:

         SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='Subscriber' 
          

Columns

Name Type Description
CatalogName String The name of the database containing the key.
SchemaName String The name of the schema containing the key.
TableName String The name of the table containing the key.
ColumnName String The name of the key column.
IsKey Boolean Whether the column is a primary key in the table referenced in the TableName field.
IsForeignKey Boolean Whether the column is a foreign key referenced in the TableName field.
PrimaryKeyName String The name of the primary key.
ForeignKeyName String The name of the foreign key.
ReferencedCatalogName String The database containing the primary key.
ReferencedSchemaName String The schema containing the primary key.
ReferencedTableName String The table containing the primary key.
ReferencedColumnName String The column name of the primary key.

CData Python Connector for Salesforce Marketing Cloud

sys_foreignkeys

Describes the foreign keys.

The following query retrieves all foreign keys which refer to other tables:

         SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
          

Columns

Name Type Description
CatalogName String The name of the database containing the key.
SchemaName String The name of the schema containing the key.
TableName String The name of the table containing the key.
ColumnName String The name of the key column.
PrimaryKeyName String The name of the primary key.
ForeignKeyName String The name of the foreign key.
ReferencedCatalogName String The database containing the primary key.
ReferencedSchemaName String The schema containing the primary key.
ReferencedTableName String The table containing the primary key.
ReferencedColumnName String The column name of the primary key.
ForeignKeyType String Designates whether the foreign key is an import (points to other tables) or export (referenced from other tables) key.

CData Python Connector for Salesforce Marketing Cloud

sys_primarykeys

Describes the primary keys.

The following query retrieves the primary keys from all tables and views:

         SELECT * FROM sys_primarykeys
          

Columns

Name Type Description
CatalogName String The name of the database containing the key.
SchemaName String The name of the schema containing the key.
TableName String The name of the table containing the key.
ColumnName String The name of the key column.
KeySeq String The sequence number of the primary key.
KeyName String The name of the primary key.

CData Python Connector for Salesforce Marketing Cloud

sys_indexes

Describes the available indexes. By filtering on indexes, you can write more selective queries with faster query response times.

The following query retrieves all indexes that are not primary keys:

          SELECT * FROM sys_indexes WHERE IsPrimary='false'
          

Columns

Name Type Description
CatalogName String The name of the database containing the index.
SchemaName String The name of the schema containing the index.
TableName String The name of the table containing the index.
IndexName String The index name.
ColumnName String The name of the column associated with the index.
IsUnique Boolean True if the index is unique. False otherwise.
IsPrimary Boolean True if the index is a primary key. False otherwise.
Type Int16 An integer value corresponding to the index type: statistic (0), clustered (1), hashed (2), or other (3).
SortOrder String The sort order: A for ascending or D for descending.
OrdinalPosition Int16 The sequence number of the column in the index.

CData Python Connector for Salesforce Marketing Cloud

sys_connection_props

Returns information on the available connection properties and those set in the connection string.

The following query retrieves all connection properties that have been set in the connection string or set through a default value:

SELECT * FROM sys_connection_props WHERE Value <> ''

Columns

Name Type Description
Name String The name of the connection property.
ShortDescription String A brief description.
Type String The data type of the connection property.
Default String The default value if one is not explicitly set.
Values String A comma-separated list of possible values. A validation error is thrown if another value is specified.
Value String The value you set or a preconfigured default.
Required Boolean Whether the property is required to connect.
Category String The category of the connection property.
IsSessionProperty String Whether the property is a session property, used to save information about the current connection.
Sensitivity String The sensitivity level of the property. This informs whether the property is obfuscated in logging and authentication forms.
PropertyName String A camel-cased truncated form of the connection property name.
Ordinal Int32 The index of the parameter.
CatOrdinal Int32 The index of the parameter category.
Hierarchy String Shows dependent properties associated that need to be set alongside this one.
Visible Boolean Informs whether the property is visible in the connection UI.
ETC String Various miscellaneous information about the property.

CData Python Connector for Salesforce Marketing Cloud

sys_sqlinfo

Describes the SELECT query processing that the connector can offload to the data source.

See SQL Compliance for SQL syntax details.

Discovering the Data Source's SELECT Capabilities

Below is an example data set of SQL capabilities. Some aspects of SELECT functionality are returned in a comma-separated list if supported; otherwise, the column contains NO.

NameDescriptionPossible Values
AGGREGATE_FUNCTIONSSupported aggregation functions.AVG, COUNT, MAX, MIN, SUM, DISTINCT
COUNTWhether COUNT function is supported.YES, NO
IDENTIFIER_QUOTE_OPEN_CHARThe opening character used to escape an identifier.[
IDENTIFIER_QUOTE_CLOSE_CHARThe closing character used to escape an identifier.]
SUPPORTED_OPERATORSA list of supported SQL operators.=, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR
GROUP_BYWhether GROUP BY is supported, and, if so, the degree of support.NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE
OJ_CAPABILITIESThe supported varieties of outer joins supported.NO, LEFT, RIGHT, FULL, INNER, NOT_ORDERED, ALL_COMPARISON_OPS
OUTER_JOINSWhether outer joins are supported.YES, NO
SUBQUERIESWhether subqueries are supported, and, if so, the degree of support.NO, COMPARISON, EXISTS, IN, CORRELATED_SUBQUERIES, QUANTIFIED
STRING_FUNCTIONSSupported string functions.LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE
NUMERIC_FUNCTIONSSupported numeric functions.ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE
TIMEDATE_FUNCTIONSSupported date/time functions.NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT
REPLICATION_SKIP_TABLESIndicates tables skipped during replication.
REPLICATION_TIMECHECK_COLUMNSA string array containing a list of columns which will be used to check for (in the given order) to use as a modified column during replication.
IDENTIFIER_PATTERNString value indicating what string is valid for an identifier.
SUPPORT_TRANSACTIONIndicates if the provider supports transactions such as commit and rollback.YES, NO
DIALECTIndicates the SQL dialect to use.
KEY_PROPERTIESIndicates the properties which identify the uniform database.
SUPPORTS_MULTIPLE_SCHEMASIndicates if multiple schemas may exist for the provider.YES, NO
SUPPORTS_MULTIPLE_CATALOGSIndicates if multiple catalogs may exist for the provider.YES, NO
DATASYNCVERSIONThe CData Data Sync version needed to access this driver.Standard, Starter, Professional, Enterprise
DATASYNCCATEGORYThe CData Data Sync category of this driver.Source, Destination, Cloud Destination
SUPPORTSENHANCEDSQLWhether enhanced SQL functionality beyond what is offered by the API is supported.TRUE, FALSE
SUPPORTS_BATCH_OPERATIONSWhether batch operations are supported.YES, NO
SQL_CAPAll supported SQL capabilities for this driver.SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX
PREFERRED_CACHE_OPTIONSA string value specifies the preferred cacheOptions.
ENABLE_EF_ADVANCED_QUERYIndicates if the driver directly supports advanced queries coming from Entity Framework. If not, queries will be handled client side.YES, NO
PSEUDO_COLUMNSA string array indicating the available pseudo columns.
MERGE_ALWAYSIf the value is true, The Merge Mode is forcibly executed in Data Sync.TRUE, FALSE
REPLICATION_MIN_DATE_QUERYA select query to return the replicate start datetime.
REPLICATION_MIN_FUNCTIONAllows a provider to specify the formula name to use for executing a server side min.
REPLICATION_START_DATEAllows a provider to specify a replicate startdate.
REPLICATION_MAX_DATE_QUERYA select query to return the replicate end datetime.
REPLICATION_MAX_FUNCTIONAllows a provider to specify the formula name to use for executing a server side max.
IGNORE_INTERVALS_ON_INITIAL_REPLICATEA list of tables which will skip dividing the replicate into chunks on the initial replicate.
CHECKCACHE_USE_PARENTIDIndicates whether the CheckCache statement should be done against the parent key column.TRUE, FALSE
CREATE_SCHEMA_PROCEDURESIndicates stored procedures that can be used for generating schema files.

The following query retrieves the operators that can be used in the WHERE clause:

SELECT * FROM sys_sqlinfo WHERE Name = 'SUPPORTED_OPERATORS'
Note that individual tables may have different limitations or requirements on the WHERE clause; refer to the Data Model section for more information.

Columns

Name Type Description
NAME String A component of SQL syntax, or a capability that can be processed on the server.
VALUE String Detail on the supported SQL or SQL syntax.

CData Python Connector for Salesforce Marketing Cloud

sys_identity

Returns information about attempted modifications.

The following query retrieves the Ids of the modified rows in a batch operation:

         SELECT * FROM sys_identity
          

Columns

Name Type Description
Id String The database-generated Id returned from a data modification operation.
Batch String An identifier for the batch. 1 for a single operation.
Operation String The result of the operation in the batch: INSERTED, UPDATED, or DELETED.
Message String SUCCESS or an error message if the update in the batch failed.

CData Python Connector for Salesforce Marketing Cloud

sys_information

Describes the available system information.

The following query retrieves all columns:

SELECT * FROM sys_information

Columns

NameTypeDescription
ProductStringThe name of the product.
VersionStringThe version number of the product.
DatasourceStringThe name of the datasource the product connects to.
NodeIdStringThe unique identifier of the machine where the product is installed.
HelpURLStringThe URL to the product's help documentation.
LicenseStringThe license information for the product. (If this information is not available, the field may be left blank or marked as 'N/A'.)
LocationStringThe file path location where the product's library is stored.
EnvironmentStringThe version of the environment or rumtine the product is currently running under.
DataSyncVersionStringThe tier of CData Sync required to use this connector.
DataSyncCategoryStringThe category of CData Sync functionality (e.g., Source, Destination).

CData Python Connector for Salesforce Marketing Cloud

Connection String Options

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.

For more information on establishing a connection, see Establishing a Connection.

Authentication


PropertyDescription
AuthSchemeSpecifies the authentication method that provider uses to connect to Salesforce Marketing Cloud.
UseLegacyAuthenticationSpecifies whether provider uses the legacy REST authentication method when connecting to Salesforce Marketing Cloud.
UserSpecifies the authenticating user's user ID.
PasswordSpecifies the authenticating user's password.
SubdomainThe subdomain of the Salesforce Marketing Cloud API.
UseAsyncBatchSpecifies whether provider uses the asynchronous SOAP API for batch insert, update, or delete operations.
WaitForBulkResultsSpecifies whether provider waits for bulk results when using the asynchronous API.

OAuth


PropertyDescription
InitiateOAuthSpecifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.
OAuthClientIdSpecifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.
OAuthClientSecretSpecifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).
OAuthAccessTokenSpecifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
OAuthSettingsLocationSpecifies the location of the settings file where OAuth values are saved.
CallbackURLIdentifies the URL users return to after authenticating to Salesforce Marketing Cloud via OAuth (Custom OAuth applications only).
ScopeSpecifies a space-separated list of OAuth scopes that provider requests for accessing data in Salesforce Marketing Cloud.
OAuthVerifierSpecifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.
OAuthRefreshTokenSpecifies the OAuth refresh token used to request a new access token after the original has expired.
OAuthExpiresInSpecifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
OAuthTokenTimestampDisplays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.

SSL


PropertyDescription
SSLServerCertSpecifies the certificate to be accepted from the server when connecting using TLS/SSL.

Firewall


PropertyDescription
FirewallTypeSpecifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.
FirewallServerIdentifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.
FirewallPortSpecifies the TCP port to be used for a proxy-based firewall.
FirewallUserIdentifies the user ID of the account authenticating to a proxy-based firewall.
FirewallPasswordSpecifies the password of the user account authenticating to a proxy-based firewall.

Proxy


PropertyDescription
ProxyAutoDetectSpecifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server.
ProxyServerIdentifies the hostname or IP address of the proxy server through which you want to route HTTP traffic.
ProxyPortIdentifies the TCP port on your specified proxy server that has been reserved for routing HTTP traffic to and from the client.
ProxyAuthSchemeSpecifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property.
ProxyUserProvides the username of a user account registered with the proxy server specified in the ProxyServer connection property.
ProxyPasswordSpecifies the password of the user specified in the ProxyUser connection property.
ProxySSLTypeSpecifies the SSL type to use when connecting to the proxy server specified in the ProxyServer connection property.
ProxyExceptionsSpecifies a semicolon-separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property.

Logging


PropertyDescription
LogfileSpecifies the file path to the log file where the provider records its activities, such as authentication, query execution, and connection details.
VerbositySpecifies the verbosity level of the log file, which controls the amount of detail logged. Supported values range from 1 to 5.
LogModulesSpecifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.
MaxLogFileSizeSpecifies the maximum size of a single log file in bytes. For example, '10 MB'. When the file reaches the limit, the provider creates a new log file with the date and time appended to the name.
MaxLogFileCountSpecifies the maximum number of log files the provider retains. When the limit is reached, the oldest log file is deleted to make space for a new one.

Schema


PropertyDescription
LocationSpecifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
BrowsableSchemasOptional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .
TablesOptional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .
ViewsOptional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .
SchemaSpecifies the API schema that provider uses to connect to Salesforce Marketing Cloud.

Caching


PropertyDescription
AutoCacheSpecifies whether the content of tables targeted by SELECT queries is automatically cached to the specified cache database.
CacheProviderThe namespace of an ADO.NET provider. The specified provider is used as the target database for all caching operations.
CacheDriverThe driver class of a JDBC driver. The specified driver is used to connect to the target database for all caching operations.
CacheConnectionSpecifies the connection string for the specified cache database.
CacheLocationSpecifies the path to the cache when caching to a file.
CacheToleranceNotes the tolerance, in seconds, for stale data in the specified cache database. Requires AutoCache to be set to True.
OfflineGets the data from the specified cache database instead of live Salesforce Marketing Cloud data.
CacheMetadataDetermines whether the provider caches table metadata to a file-based cache database.

Miscellaneous


PropertyDescription
AccountIdSpecifies the account identifier, or Member ID (MID), of the target business unit.
DisplayChildDataExtensionsSpecifies whether provider displays data extensions from child accounts.
ListDataExtensionsSpecifies whether provider lists data extensions as tables.
MaxRowsSpecifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.
OtherSpecifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.
PagesizeSpecifies the maximum number of records per page the provider returns when requesting data from Salesforce Marketing Cloud.
PseudoColumnsSpecifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.
QueryAllAccountsSpecifies whether provider queries event data across all accounts, including the parent and all child accounts.
ReadonlyToggles read-only access to Salesforce Marketing Cloud from the provider.
RTKSpecifies the runtime key for licensing the provider. If unset or invalid, the provider defaults to the standard licensing method. This property is only required in environments where the standard licensing method is unsupported or requires a runtime key.
TimeoutSpecifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.
TimeZoneSpecifies the server time zone as a UTC offset. The value must use the format +/-hh:mm, for example: +00:00.
UserDefinedViewsSpecifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.
CData Python Connector for Salesforce Marketing Cloud

Authentication

This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.


PropertyDescription
AuthSchemeSpecifies the authentication method that provider uses to connect to Salesforce Marketing Cloud.
UseLegacyAuthenticationSpecifies whether provider uses the legacy REST authentication method when connecting to Salesforce Marketing Cloud.
UserSpecifies the authenticating user's user ID.
PasswordSpecifies the authenticating user's password.
SubdomainThe subdomain of the Salesforce Marketing Cloud API.
UseAsyncBatchSpecifies whether provider uses the asynchronous SOAP API for batch insert, update, or delete operations.
WaitForBulkResultsSpecifies whether provider waits for bulk results when using the asynchronous API.
CData Python Connector for Salesforce Marketing Cloud

AuthScheme

Specifies the authentication method that provider uses to connect to Salesforce Marketing Cloud.

Possible Values

OAuth, OAuthClient, Basic

Data Type

string

Default Value

"OAuth"

Remarks

The following values are supported:

  • OAuth: Specifies user-account OAuth authentication.
  • OAuthClient: Specifies server-to-server OAuth authentication.
  • Basic: Specifies basic user name and password authentication.

CData Python Connector for Salesforce Marketing Cloud

UseLegacyAuthentication

Specifies whether provider uses the legacy REST authentication method when connecting to Salesforce Marketing Cloud.

Data Type

bool

Default Value

false

Remarks

Use this property only when connecting to a package that relies on legacy authentication.

When set to true, the connection uses the legacy REST authentication flow required by older Marketing Cloud packages.

When set to false, the connection uses the current authentication flow.

This property is useful when maintaining compatibility with older integrations that have not been updated to the latest REST authentication model.

CData Python Connector for Salesforce Marketing Cloud

User

Specifies the authenticating user's user ID.

Data Type

string

Default Value

""

Remarks

The authenticating server requires both User and Password to validate the user's identity.

CData Python Connector for Salesforce Marketing Cloud

Password

Specifies the authenticating user's password.

Data Type

string

Default Value

""

Remarks

The authenticating server requires both User and Password to validate the user's identity.

CData Python Connector for Salesforce Marketing Cloud

Subdomain

The subdomain of the Salesforce Marketing Cloud API.

Data Type

string

Default Value

""

Remarks

The subdomain identifies your specific Marketing Cloud environment and is required to construct the correct authentication and API endpoints.

You can obtain the subdomain from your Marketing Cloud package settings:

  1. Log in to Marketing Cloud.
  2. Navigate to Setup, then select Apps > Installed Packages.
  3. Select the package that contains the API integration you are using.
  4. Locate the Authentication Base URI. For example: https://SUBDOMAIN.auth.marketingcloudapis.com/
  5. Use only the SUBDOMAIN portion of the Authentication Base URI.

This property is useful for constructing the correct authentication and API endpoints for your Marketing Cloud environment.

CData Python Connector for Salesforce Marketing Cloud

UseAsyncBatch

Specifies whether provider uses the asynchronous SOAP API for batch insert, update, or delete operations.

Data Type

bool

Default Value

true

Remarks

When set to true, batch operations requests are sent using the asynchronous SOAP API. The request returns immediately, and Salesforce processes the operation in the background.

When set to false, batch operations are performed using the synchronous SOAP API, and the request waits for the operation to complete.

You can query the LastResultInfo#TEMP table to view information about the jobs and batches created during asynchronous operations.

This property is useful when you want to avoid long-running synchronous operations or need to monitor batch processing separately.

CData Python Connector for Salesforce Marketing Cloud

WaitForBulkResults

Specifies whether provider waits for bulk results when using the asynchronous API.

Data Type

bool

Default Value

false

Remarks

This property is active only when UseAsyncBatch is set to true.

When set to true, the connector waits for asynchronous bulk insert operations to finish. Full status information is returned, including row-level IDs, statuses, and error messages.

When set to false, bulk insert requests return as soon as they are submitted. This results in faster execution, but only limited status information is available.

This property is useful when you need detailed results for asynchronous bulk operations, such as row-level success and error reporting.

CData Python Connector for Salesforce Marketing Cloud

OAuth

This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.


PropertyDescription
InitiateOAuthSpecifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.
OAuthClientIdSpecifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.
OAuthClientSecretSpecifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).
OAuthAccessTokenSpecifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
OAuthSettingsLocationSpecifies the location of the settings file where OAuth values are saved.
CallbackURLIdentifies the URL users return to after authenticating to Salesforce Marketing Cloud via OAuth (Custom OAuth applications only).
ScopeSpecifies a space-separated list of OAuth scopes that provider requests for accessing data in Salesforce Marketing Cloud.
OAuthVerifierSpecifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.
OAuthRefreshTokenSpecifies the OAuth refresh token used to request a new access token after the original has expired.
OAuthExpiresInSpecifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
OAuthTokenTimestampDisplays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.
CData Python Connector for Salesforce Marketing Cloud

InitiateOAuth

Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.

Possible Values

OFF, REFRESH, GETANDREFRESH

Data Type

string

Default Value

"OFF"

Remarks

OAuth is an authorization framework that enables applications to obtain limited access to user accounts on an HTTP service. The OAuth flow defines the method to be used for:

  • Logging in users.
  • Exchanging user credentials for an OAuth access token to be used for authentication.
  • Providing limited access to applications.

The options for initiating and maintaining OAuth access are named for the parts of that flow that the connector handles:

OFF The connector provides no automatic OAuth flow initiation. The OAuth flow is handled entirely by the user.
This means that the user must refresh the token manually, and reconnect with an updated OAuthAccessToken property when the current token expires.
GETANDREFRESH The connector handles the entire OAuth flow (both GET and REFRESH). This means that if a token already exists, the connector refreshes it when necessary; if no token currently exists, the connector obtains it by prompting the user to login.
REFRESH The user obtains the OAuth Access Token and sets up the sequence for refreshing the OAuth Access Token. (The user is never prompted to log in to authenticate.) After the user logs in, the connector handles the refresh of the OAuth Access Token.

For more information on how to set up OAuth and use this property when configuring a connection, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

OAuthClientId

Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.

Data Type

string

Default Value

""

Remarks

This property is required in two cases:

  • When using a custom OAuth application, such as in web-based authentication flows, service-based authentication, or certificate-based flows that require application registration.
  • If the driver does not provide embedded OAuth credentials.

(When the driver provides embedded OAuth credentials, this value may already be provided by the connector and thus not require manual entry.)

OAuthClientId is generally used alongside other OAuth-related properties such as OAuthClientSecret and OAuthSettingsLocation when configuring an authenticated connection.

OAuthClientId is one of the key connection parameters that need to be set before users can authenticate via OAuth. You can usually find this value in your identity provider’s application registration settings. Look for a field labeled Client ID, Application ID, or Consumer Key.

While the client ID is not considered a confidential value like a client secret, it is still part of your application's identity and should be handled carefully. Avoid exposing it in public repositories or shared configuration files.

For more information on how this property is used when configuring a connection, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

OAuthClientSecret

Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).

Data Type

string

Default Value

""

Remarks

This property (sometimes called the application secret or consumer secret) is required when using a custom OAuth application in any flow that requires secure client authentication, such as web-based OAuth, service-based connections, or certificate-based authorization flows. It is not required when using an embedded OAuth application.

The client secret is used during the token exchange step of the OAuth flow, when the driver requests an access token from the authorization server. If this value is missing or incorrect, authentication fails with either an invalid_client or an unauthorized_client error.

OAuthClientSecret is one of the key connection parameters that need to be set before users can authenticate via OAuth. You can obtain this value from your identity provider when registering the OAuth application.

Notes:

  • This value should be stored securely and never exposed in public repositories, scripts, or unsecured environments.
  • Client secrets may also expire after a set period. Be sure to monitor expiration dates and rotate secrets as needed to maintain uninterrupted access.

For more information on how this property is used when configuring a connection, see Establishing a Connection

CData Python Connector for Salesforce Marketing Cloud

OAuthAccessToken

Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.

Data Type

string

Default Value

""

Remarks

OAuthAccessToken is a temporary credential that authorizes access to protected resources. It is typically returned by the identity provider after the user or client application completes an OAuth authentication flow. This property is most commonly used in automated workflows or custom OAuth implementations where you want to manage token handling outside of the driver.

The OAuth access token has a server-dependent timeout, limiting user access. The timeout is set using the OAuthExpiresIn property. However, it can be reissued between requests to keep access alive as long as the user keeps working.

If InitiateOAuth is set to REFRESH, we recommend that you also set both OAuthExpiresIn and OAuthTokenTimestamp. The connector uses these properties to determine when the token expires so it can refresh most efficiently. If OAuthExpiresIn and OAuthTokenTimestamp are not specified, the connector refreshes the token immediately.

Note: Access tokens should be treated as sensitive credentials and stored securely. Avoid exposing them in logs, scripts, or configuration files that are not access-controlled.

For more information on how this property is used when configuring a connection, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

OAuthSettingsLocation

Specifies the location of the settings file where OAuth values are saved.

Data Type

string

Default Value

"%APPDATA%\\CData\\SFMarketingCloud Data Provider\\OAuthSettings.txt"

Remarks

Storing OAuth settings in a central location avoids the need for users to enter OAuth connection properties manually each time they log in. It also enables credentials to be shared across connections or processes.

You can store OAuth values in a central file for shared access to those values, in either of the following ways:

  • Set InitiateOAuth to either GETANDREFRESH or REFRESH and specify a filepath to the OAuth settings file.
  • Use memory storage to load the credentials into static memory.

The following sections provide more detail on each of these methods.

Specifying the OAuthSettingsLocation Filepath

The default OAuth setting location is %APPDATA%\\CData\\SFMarketingCloud Data Provider\\OAuthSettings.txt, with %APPDATA% set to the user's configuration directory. Default values vary, depending on the user's operating system.

  • Windows (ODBC and Power BI): registry://%DSN%
  • Windows: %APPDATA%CDataSFMarketingCloud Data Provider\OAuthSettings.txt
  • Mac: %APPDATA%/CData/SFMarketingCloud Data Provider/OAuthSettings.txt
  • Linux: %APPDATA%/CData/SFMarketingCloud Data Provider/OAuthSettings.txt

Loading Credentials Via Memory Storage

Memory locations are specified by using a value starting with memory://, followed by a unique identifier for that set of credentials (for example, memory://user1). The identifier can be anything you choose, but it should be unique to the user.

Unlike file-based storage, where credentials persist across connections, memory storage loads the credentials into static memory and the credentials are shared between connections using the same identifier for the life of the process. To persist credentials outside the current process, you must manually store the credentials prior to closing the connection. This enables you to set them in the connection when the process is started again.

To retrieve OAuth property values, query the sys_connection_props system table. If there are multiple connections using the same credentials, the properties are read from the previously closed connection.

Supported Storage Types

  • memory://: Stores OAuth tokens in-memory (unique identifier, shared within same process, etc.)
  • registry://: Only supported in the Windows ODBC and Power BI editions. Stores OAuth tokens in the registry under the DSN settings. Must end in a DSN name like registry://CData Python Connector for Salesforce Marketing Cloud Data Source, or registry://%DSN%.
  • %DSN%: The name of the DSN you are connecting with.
  • Default (no prefix): Stores OAuth tokens within files. The value can be either an absolute path, or a path starting with %APPDATA% or %PROGRAMFILES%.

For more information on how this property is used when configuring a connection, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

CallbackURL

Identifies the URL users return to after authenticating to Salesforce Marketing Cloud via OAuth (Custom OAuth applications only).

Data Type

string

Default Value

""

Remarks

If you created a custom OAuth application, the OAuth authorization server redirects the user to this URL during the authentication process. This value must match the callback URL you specified when you configured the custom OAuth application.

CData Python Connector for Salesforce Marketing Cloud

Scope

Specifies a space-separated list of OAuth scopes that provider requests for accessing data in Salesforce Marketing Cloud.

Data Type

string

Default Value

""

Remarks

Set this property to request specific OAuth scopes during authentication. The value must be a space-separated list of supported permissions.

When this property is not set, the issued token includes the default scopes assigned to the API integration in Installed Packages.

This property is useful when you need to request additional permissions beyond those configured in the installed package or tailor the access level for specific operations.

CData Python Connector for Salesforce Marketing Cloud

OAuthVerifier

Specifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.

Data Type

string

Default Value

""

Remarks

For detailed instructions about how to obtain the OAuthVerifier value, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

OAuthRefreshToken

Specifies the OAuth refresh token used to request a new access token after the original has expired.

Data Type

string

Default Value

""

Remarks

The refresh token is used to obtain a new access token when the current one expires. It enables seamless authentication for long-running or automated workflows without requiring the user to log in again. This property is especially important in headless, CI/CD, or server-based environments where interactive authentication is not possible.

The refresh token is typically obtained during the initial OAuth exchange by calling the GetOAuthAccessToken stored procedure. After that, it can be set using this property to enable automatic token refresh, or passed to the RefreshOAuthAccessTokenproc; stored procedure if you prefer to manage the refresh manually.

When InitiateOAuth is set to REFRESH, the driver uses this token to retrieve a new access token automatically. After the first refresh, the driver saves updated tokens in the location defined by OAuthSettingsLocation, and uses those values for subsequent connections.

Note: The OAuthRefreshToken should be handled securely and stored in a trusted location. Like access tokens, refresh tokens can expire or be revoked depending on the identity provider’s policies.

For more information on how this property is used when configuring a connection, see Establishing a Connection.

CData Python Connector for Salesforce Marketing Cloud

OAuthExpiresIn

Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.

Data Type

string

Default Value

""

Remarks

The OAuth Access Token is assigned to an authenticated user, granting that user access to the network for a specified period of time. The access token is used in place of the user's login ID and password, which stay on the server.

An access token created by the server is only valid for a limited time. OAuthExpiresIn is the number of seconds the token is valid from when it was created. For example, a token generated at 2024-01-29 20:00:00 UTC that expires at 2024-01-29 21:00:00 UTC (an hour later) would have an OAuthExpiresIn value of 3600, no matter what the current time is.

To determine how long the user has before the Access Token will expire, check OAuthTokenTimestamp.

CData Python Connector for Salesforce Marketing Cloud

OAuthTokenTimestamp

Displays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.

Data Type

string

Default Value

""

Remarks

The OAuth access token is assigned to an authenticated user, granting that user access to the network for a specified period of time. The access token is used in place of the user's login ID and password, which stay on the server.

An access token created by the server is only valid for a limited time. OAuthTokenTimestamp is the Unix timestamp when the server created the token. For example, OAuthTokenTimestamp=1706558400 indicates the OAuthAccessToken was generated by the server at 2024-01-29 20:00:00 UTC.

CData Python Connector for Salesforce Marketing Cloud

SSL

This section provides a complete list of the SSL properties you can configure in the connection string for this provider.


PropertyDescription
SSLServerCertSpecifies the certificate to be accepted from the server when connecting using TLS/SSL.
CData Python Connector for Salesforce Marketing Cloud

SSLServerCert

Specifies the certificate to be accepted from the server when connecting using TLS/SSL.

Data Type

string

Default Value

""

Remarks

If you are using a TLS/SSL connection, use this property to specify the TLS/SSL certificate to be accepted from the server. If you specify a value for this property, all other certificates that are not trusted by the machine are rejected.

This property can take the following forms:

Description Example
A full PEM Certificate (example shortened for brevity) -----BEGIN CERTIFICATE-----
MIIChTCCAe4CAQAwDQYJKoZIhv......Qw==
-----END CERTIFICATE-----
A path to a local file containing the certificate C:\cert.cer
The public key (example shortened for brevity) -----BEGIN RSA PUBLIC KEY-----
MIGfMA0GCSq......AQAB
-----END RSA PUBLIC KEY-----
The MD5 Thumbprint (hex values can also be either space- or colon-separated) ecadbdda5a1529c58a1e9e09828d70e4
The SHA1 Thumbprint (hex values can also be either space- or colon-separated) 34a929226ae0819f2ec14b4a3d904f801cbb150d

Note: It is possible to use '*' to signify that all certificates should be accepted, but due to security concerns this is not recommended.

CData Python Connector for Salesforce Marketing Cloud

Firewall

This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.


PropertyDescription
FirewallTypeSpecifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.
FirewallServerIdentifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.
FirewallPortSpecifies the TCP port to be used for a proxy-based firewall.
FirewallUserIdentifies the user ID of the account authenticating to a proxy-based firewall.
FirewallPasswordSpecifies the password of the user account authenticating to a proxy-based firewall.
CData Python Connector for Salesforce Marketing Cloud

FirewallType

Specifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.

Possible Values

NONE, TUNNEL, SOCKS4, SOCKS5

Data Type

string

Default Value

"NONE"

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

Note: By default, the connector connects to the system proxy. To disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.

The following table provides port number information for each of the supported protocols.

Protocol Default Port Description
TUNNEL 80 The port where the connector opens a connection to Salesforce Marketing Cloud. Traffic flows back and forth via the proxy at this location.
SOCKS4 1080 The port where the connector opens a connection to Salesforce Marketing Cloud. SOCKS 4 then passes theFirewallUser value to the proxy, which determines whether the connection request should be granted.
SOCKS5 1080 The port where the connector sends data to Salesforce Marketing Cloud. If the SOCKS 5 proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes.

To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.

CData Python Connector for Salesforce Marketing Cloud

FirewallServer

Identifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.

Data Type

string

Default Value

""

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

CData Python Connector for Salesforce Marketing Cloud

FirewallPort

Specifies the TCP port to be used for a proxy-based firewall.

Data Type

int

Default Value

0

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

CData Python Connector for Salesforce Marketing Cloud

FirewallUser

Identifies the user ID of the account authenticating to a proxy-based firewall.

Data Type

string

Default Value

""

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

CData Python Connector for Salesforce Marketing Cloud

FirewallPassword

Specifies the password of the user account authenticating to a proxy-based firewall.

Data Type

string

Default Value

""

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

CData Python Connector for Salesforce Marketing Cloud

Proxy

This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.


PropertyDescription
ProxyAutoDetectSpecifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server.
ProxyServerIdentifies the hostname or IP address of the proxy server through which you want to route HTTP traffic.
ProxyPortIdentifies the TCP port on your specified proxy server that has been reserved for routing HTTP traffic to and from the client.
ProxyAuthSchemeSpecifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property.
ProxyUserProvides the username of a user account registered with the proxy server specified in the ProxyServer connection property.
ProxyPasswordSpecifies the password of the user specified in the ProxyUser connection property.
ProxySSLTypeSpecifies the SSL type to use when connecting to the proxy server specified in the ProxyServer connection property.
ProxyExceptionsSpecifies a semicolon-separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property.
CData Python Connector for Salesforce Marketing Cloud

ProxyAutoDetect

Specifies whether the provider checks your system proxy settings for existing proxy server configurations, rather than using a manually specified proxy server.

Data Type

bool

Default Value

true

Remarks

When this connection property is set to True, the connector checks your system proxy settings for existing proxy server configurations (no need to manually supply proxy server details).

This connection property takes precedence over other proxy settings. If you want to configure the connector to connect to a specific proxy server, set ProxyAutoDetect to False.

On Windows, the connector reads the proxy settings from the Internet Options in the registry, specifically the registry key HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\. On Windows 10 and later, this corresponds to the Proxy Settings found in the Windows Settings.

Note that these settings apply only to the current user of the machine. If you're running an application as a service, the connector does not read your own user's settings. You must instead manually supply the proxy settings in the connector's connection properties.

On Mac, the connector reads proxy settings from the system-configured CFNetwork settings.

On Linux, this property is unsupported, and is set to False by default.

To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.

CData Python Connector for Salesforce Marketing Cloud

ProxyServer

Identifies the hostname or IP address of the proxy server through which you want to route HTTP traffic.

Data Type

string

Default Value

""

Remarks

The connector only routes HTTP traffic through the proxy server specified in this connection property when ProxyAutoDetect is set to False.

If ProxyAutoDetect is set to True (the default), the connector instead routes HTTP traffic through the proxy server specified in your system proxy settings.

CData Python Connector for Salesforce Marketing Cloud

ProxyPort

Identifies the TCP port on your specified proxy server that has been reserved for routing HTTP traffic to and from the client.

Data Type

int

Default Value

80

Remarks

The connector only routes HTTP traffic through the ProxyServer port specified in this connection property when ProxyAutoDetect is set to False.

If ProxyAutoDetect is set to True (the default), the connector instead routes HTTP traffic through the proxy server port specified in your system proxy settings.

For other proxy types, see FirewallType.

CData Python Connector for Salesforce Marketing Cloud

ProxyAuthScheme

Specifies the authentication method the provider uses when authenticating to the proxy server specified in the ProxyServer connection property.

Possible Values

BASIC, DIGEST, NONE, NEGOTIATE, NTLM

Data Type

string

Default Value

"BASIC"

Remarks

Note: The connector only uses this ProxyAuthScheme when ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True (the default), the connector instead uses the authentication method specified in your system proxy settings.

Supported authentication types :

  • BASIC: The connector performs HTTP basic authentication.
  • DIGEST: The connector performs HTTP digest authentication.
  • NTLM: The connector retrieves an NTLM token.
  • NEGOTIATE: The connector retrieves an NTLM or Kerberos token based on the applicable protocol for authentication.
  • NONE: Signifies that the ProxyServer does not require authentication.

For all values other than NONE, you must also set the ProxyUser and ProxyPassword connection properties.

If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.

CData Python Connector for Salesforce Marketing Cloud

ProxyUser

Provides the username of a user account registered with the proxy server specified in the ProxyServer connection property.

Data Type

string

Default Value

""

Remarks

The ProxyUser and ProxyPassword connection properties are used to connect and authenticate against the HTTP proxy specified in ProxyServer.

After selecting one of the available authentication types in ProxyAuthScheme, set this property as follows:

ProxyAuthScheme Value Value to set for ProxyUser
BASIC The username of a user registered with the proxy server.
DIGEST The username of a user registered with the proxy server.
NEGOTIATE The username of a Windows user who is a valid user in the domain or trusted domain that the proxy server is part of, in the format user@domain or domain\user.
NTLM The username of a Windows user who is a valid user in the domain or trusted domain that the proxy server is part of, in the format user@domain or domain\user.
NONE Do not set the ProxyPassword connection property.

Note: The connector only uses this username if ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True (the default), the connector instead uses the username specified in your system proxy settings.

CData Python Connector for Salesforce Marketing Cloud

ProxyPassword

Specifies the password of the user specified in the ProxyUser connection property.

Data Type

string

Default Value

""

Remarks

The ProxyUser and ProxyPassword connection properties are used to connect and authenticate against the HTTP proxy specified in ProxyServer.

After selecting one of the available authentication types in ProxyAuthScheme, set this property as follows:

ProxyAuthScheme Value Value to set for ProxyPassword
BASIC The password associated with the proxy server user specified in ProxyUser.
DIGEST The password associated with the proxy server user specified in ProxyUser.
NEGOTIATE The password associated with the Windows user account specified in ProxyUser.
NTLM The password associated with the Windows user account specified in ProxyUser.
NONE Do not set the ProxyPassword connection property.

For SOCKS 5 authentication or tunneling, see FirewallType.

Note: The connector only uses this password if ProxyAutoDetect is set to False. If ProxyAutoDetect is set to True (the default), the connector instead uses the password specified in your system proxy settings.

CData Python Connector for Salesforce Marketing Cloud

ProxySSLType

Specifies the SSL type to use when connecting to the proxy server specified in the ProxyServer connection property.

Possible Values

AUTO, ALWAYS, NEVER, TUNNEL

Data Type

string

Default Value

"AUTO"

Remarks

This property determines when to use SSL for the connection to the HTTP proxy specified by ProxyServer. You can set this connection property to the following values :

AUTODefault setting. If ProxyServer is set to an HTTPS URL, the connector uses the TUNNEL option. If ProxyServer is set to an HTTP URL, the component uses the NEVER option.
ALWAYSThe connection is always SSL enabled.
NEVERThe connection is not SSL enabled.
TUNNELThe connection is made through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy.

CData Python Connector for Salesforce Marketing Cloud

ProxyExceptions

Specifies a semicolon-separated list of destination hostnames or IPs that are exempt from connecting through the proxy server set in the ProxyServer connection property.

Data Type

string

Default Value

""

Remarks

The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.

Note: The connector uses the system proxy settings by default, without further configuration needed. If you want to explicitly configure proxy exceptions for this connection, set ProxyAutoDetect to False.

CData Python Connector for Salesforce Marketing Cloud

Logging

This section provides a complete list of the Logging properties you can configure in the connection string for this provider.


PropertyDescription
LogfileSpecifies the file path to the log file where the provider records its activities, such as authentication, query execution, and connection details.
VerbositySpecifies the verbosity level of the log file, which controls the amount of detail logged. Supported values range from 1 to 5.
LogModulesSpecifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.
MaxLogFileSizeSpecifies the maximum size of a single log file in bytes. For example, '10 MB'. When the file reaches the limit, the provider creates a new log file with the date and time appended to the name.
MaxLogFileCountSpecifies the maximum number of log files the provider retains. When the limit is reached, the oldest log file is deleted to make space for a new one.
CData Python Connector for Salesforce Marketing Cloud

Logfile

Specifies the file path to the log file where the provider records its activities, such as authentication, query execution, and connection details.

Data Type

string

Default Value

""

Remarks

This property specifies the location and name of the log file where the connector records its operations, including authentication events, query execution, and connection details. If the specified file does not exist, the connector creates it. Ensure that the user or the service running the connector has write access to the specified path or file. Without sufficient permissions, the log file is not created.

Sensitive information from the connection string, such as passwords and tokens, is automatically masked in the logs. However, sensitive information present in the data itself may not be masked.

If you specify a relative path for Logfile, and if the Location property is set, that directory is used as the base path for the log file.

Additional properties allow you to customize logging behavior:

CData Python Connector for Salesforce Marketing Cloud

Verbosity

Specifies the verbosity level of the log file, which controls the amount of detail logged. Supported values range from 1 to 5.

Data Type

string

Default Value

"1"

Remarks

This property defines the level of detail the connector includes in the log file. Higher verbosity levels increase the detail of the logged information, but may also result in larger log files and slower performance due to the additional data being captured.

The default verbosity level is 1, which is recommended for regular operation. Higher verbosity levels are primarily intended for debugging purposes. For more information on each level, refer to Logging.

When combined with the LogModules property, Verbosity can refine logging to specific categories of information.

CData Python Connector for Salesforce Marketing Cloud

LogModules

Specifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.

Data Type

string

Default Value

""

Remarks

The connector writes details about each operation it performs into the logfile specified by the Logfile connection property.

Each of these logged operations are assigned to a themed category called a module, and each module has a corresponding short code used to labels individual connector operations as belonging to that module.

When this connection property is set to a semicolon-separated list of module codes, only operations belonging to the specified modules are written to the logfile. Note that this only affects which operations are logged moving forward and doesn't retroactively alter the existing contents of the logfile. For example: INFO;EXEC;SSL;META;

By default, logged operations from all modules are included.

You can explicitly exclude a module by prefixing it with a "-". For example: -HTTP

To apply filters to submodules, identify them with the syntax <module name>.<submodule name>. For example, the following value causes the connector to only log actions belonging to the HTTP module, and further refines it to exclude actions belonging to the Res submodule of the HTTP module: HTTP;-HTTP.Res

Note that the logfile filtering triggered by the Verbosity connection property takes precedence over the filtering imposed by this connection property. This means that operations of a higher verbosity level than the level specified in the Verbosity connection property are not printed in the logfile, even if they belong to one of the modules specified in this connection property.

The available modules and submodules are:

Module Name Module Description Submodules
INFO General Information. Includes the connection string, product version (build number), and initial connection messages.
  • Connec – Information related to creating or destroying connections.
  • Messag – Generic label for messages pertaining to connections, the connection string, and product version. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
EXEC Query Execution. Includes execution messages for user-written SQL queries, parsed SQL queries, and normalized SQL queries. Success/failure messages for queries and query pages appear here as well.
  • Messag – Messages pertaining to query execution. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • Normlz – Query normalization steps. Query normalization is when the product takes the user-submitted query and rewrites the query to get the same results with optimal performance.
  • Origin – This label applies to any messages recording a user's original query (the exact, unaltered, non-normalized query executed by the user).
  • Page – Messages related to query paging.
  • Parsed – Query parsing steps. Parsing is the process of converting the user-submitted query into a standardized format for easier processing.
HTTP HTTP protocol messages. Includes HTTP requests/responses (including POST messages), as well as Kerberos related messages.
  • KERB – HTTP requests related to Kerberos.
  • Messag – Messages pertaining to HTTP protocols. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • Unpack – This label applies to messages about zipped data being returned from the service API and unpacked by the product.
  • Res – Messages containing HTTP responses.
  • Req – Messages containing HTTP requests.
WSDL Messages pertaining to the generation of WSDL/XSD files.
SSL SSL certificate messages.
  • Certif – Messages pertaining to SSL certificates.
AUTH Authentication related failure/success messages.
  • Messag – Messages pertaining to authentication. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • OAuth – Messages related to OAuth authentication.
  • Krbros – Kerberos-related authentication messages.
SQL Includes SQL transactions, SQL bulk transfer messages, and SQL result set messages.
  • Bulk – Messages pertaining to bulk query execution.
  • Cache – Messages related to reading row data from and writing row data to the product's cache for better performance.
  • Messag – Messages pertaining to SQL transactions. These messages are typically specific to the connector, rather than being received and passed along directly from the service.
  • ResSet – Query resultsets.
  • Transc – Messages related to handling transactions, including information about the number of jobs executed and backup table handling.
META Metadata cache and schema messages.
  • Cache – Messages related to reading from and modifying column and table definitions in the product's cache for better performance.
  • Schema – Messages related to retrieving metadata from or modifying the service schema.
  • MemSto – Messages related to writing to or reading from in-memory metadata cache.
  • Storag – Messages relating to storing metadata on disk or in an external data store, rather than in memory.
FUNC Information related to executing SQL functions.
  • Errmsg – Error messages related to executing SQL functions.
TCP Incoming and outgoing raw bytes on TCP transport layer messages.
  • Send – Raw data sent via the TCP protocol.
  • Receiv – Raw data received via the TCP protocol.
FTP Messages pertaining to the File Transfer Protocol.
  • Info – Status messages related to communication in the FTP protocol.
  • Client – Messages related to actions taken by the FTP client (the product) during FTP communication.
  • Server – Messages related to actions taken by the FTP server during FTP communication.
SFTP Messages pertaining to the Secure File Transfer Protocol.
  • Info – Status messages related to communication in the SFTP protocol.
  • To_Server – Messages related to actions taken by the SFTP client (the product) during SFTP communication.
  • From_Server – Messages related to actions taken by the SFTP server during SFTP communication.
POP Messages pertaining to data transferred via the Post Office Protocol.
  • Client – Messages related to actions taken by the POP client (the product) during POP communication.
  • Server – Messages related to actions taken by the POP server during POP communication.
  • Status – Status messages related to communication in the POP protocol.
SMTP Messages pertaining to data transferred via the Simple Mail Transfer Protocol.
  • Client – Messages related to actions taken by the SMTP client (the product) during SMTP communication.
  • Server – Messages related to actions taken by the SMTP server during SMTP communication.
  • Status – Status messages related to communication in the SMTP protocol.
CORE Messages relating to various internal product operations not covered by other modules.
DEMN Messages related to SQL remoting.
CLJB Messages about bulk data uploads (cloud job).
  • Commit – Submissions for bulk data uploads.
SRCE Miscellaneous messages produced by the product that don't belong in any other module.
TRANCE Advanced messages concerning low-level product operations.

CData Python Connector for Salesforce Marketing Cloud

MaxLogFileSize

Specifies the maximum size of a single log file in bytes. For example, '10 MB'. When the file reaches the limit, the provider creates a new log file with the date and time appended to the name.

Data Type

string

Default Value

"100MB"

Remarks

For values lower than 100 KB, the connector uses 100 KB as the minimum allowable size.

To control the total number of log files retained, use the MaxLogFileCount property in conjunction with this property. Together, these properties allow you to manage the size and retention of log files effectively.

CData Python Connector for Salesforce Marketing Cloud

MaxLogFileCount

Specifies the maximum number of log files the provider retains. When the limit is reached, the oldest log file is deleted to make space for a new one.

Data Type

int

Default Value

-1

Remarks

Each log file name includes the date and time for easier identification.

This property accepts the following values:

  • A value of 2 or higher sets the maximum number of log files retained.
  • A value of 1 retains only one log file. When it reaches the maximum size, the file is deleted and replaced by a new one, leaving no history beyond the current log.
  • A value of 0 or negative indicates no limit on the number of log files, and logging continues indefinitely.

To manage log file size, use the MaxLogFileSize property. The two properties work together to control the size and retention of log files in the logging folder.

CData Python Connector for Salesforce Marketing Cloud

Schema

This section provides a complete list of the Schema properties you can configure in the connection string for this provider.


PropertyDescription
LocationSpecifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
BrowsableSchemasOptional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .
TablesOptional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .
ViewsOptional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .
SchemaSpecifies the API schema that provider uses to connect to Salesforce Marketing Cloud.
CData Python Connector for Salesforce Marketing Cloud

Location

Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.

Data Type

string

Default Value

"%APPDATA%\\CData\\SFMarketingCloud Data Provider\\Schema"

Remarks

The Location property is only needed if you want to either customize definitions (for example, change a column name, ignore a column, etc.) or extend the data model with new tables, views, or stored procedures.

Note: Since this connector supports multiple schemas, custom schema files for Salesforce Marketing Cloud should be structured such that:

  • Each schema should have its own folder, named for that schema.
  • All schema folders should be contained in a parent folder.

Location should always be set to the parent folder, and not to an individual schema's folder.

If left unspecified, the default location is %APPDATA%\\CData\\SFMarketingCloud Data Provider\\Schema, where %APPDATA% is set to the user's configuration directory:

Platform %APPDATA%
Windows The value of the APPDATA environment variable
Linux ~/.config

CData Python Connector for Salesforce Marketing Cloud

BrowsableSchemas

Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .

Data Type

string

Default Value

""

Remarks

Listing all available database schemas can take extra time, thus degrading performance. Providing a list of schemas in the connection string saves time and improves performance.

CData Python Connector for Salesforce Marketing Cloud

Tables

Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .

Data Type

string

Default Value

""

Remarks

Listing all available tables from some databases can take extra time, thus degrading performance. Providing a list of tables in the connection string saves time and improves performance.

If there are lots of tables available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those tables. To do this, specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each table you want to view by its fully qualified name. This avoids ambiguity between tables that may exist in multiple catalogs or schemas.

CData Python Connector for Salesforce Marketing Cloud

Views

Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .

Data Type

string

Default Value

""

Remarks

Listing all available views from some databases can take extra time, thus degrading performance. Providing a list of views in the connection string saves time and improves performance.

If there are lots of views available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those views. To do this, specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each view you want to examine by its fully qualified name. This avoids ambiguity between views that may exist in multiple catalogs or schemas.

CData Python Connector for Salesforce Marketing Cloud

Schema

Specifies the API schema that provider uses to connect to Salesforce Marketing Cloud.

Possible Values

SOAP, REST

Data Type

string

Default Value

"SOAP"

Remarks

Use this property when you need to choose between REST and SOAP endpoints based on the operations your integration requires.

The following values are supported:

  • REST: Uses the Salesforce Marketing Cloud 1.x REST API.
  • SOAP: Uses the Salesforce Marketing Cloud SOAP API.

CData Python Connector for Salesforce Marketing Cloud

Caching

This section provides a complete list of the Caching properties you can configure in the connection string for this provider.


PropertyDescription
AutoCacheSpecifies whether the content of tables targeted by SELECT queries is automatically cached to the specified cache database.
CacheProviderThe namespace of an ADO.NET provider. The specified provider is used as the target database for all caching operations.
CacheDriverThe driver class of a JDBC driver. The specified driver is used to connect to the target database for all caching operations.
CacheConnectionSpecifies the connection string for the specified cache database.
CacheLocationSpecifies the path to the cache when caching to a file.
CacheToleranceNotes the tolerance, in seconds, for stale data in the specified cache database. Requires AutoCache to be set to True.
OfflineGets the data from the specified cache database instead of live Salesforce Marketing Cloud data.
CacheMetadataDetermines whether the provider caches table metadata to a file-based cache database.
CData Python Connector for Salesforce Marketing Cloud

AutoCache

Specifies whether the content of tables targeted by SELECT queries is automatically cached to the specified cache database.

Data Type

bool

Default Value

false

Remarks

When this connection property is set to True, the connector automatically caches the contents of tables targeted by SELECT queries. The content of these tables is cached to the cache database specified by the CacheConnection and CacheProvider connection properties.

See Also

For additional information, see:

  • CacheMetadata: With CacheMetadata enabled, all retrieved metadata is mirrored in the cache database. This means that any subsequent attempts by the connector to discover metadata are much faster, as this metadata is then read directly from the cache database, without needing to spend time requesting metadata from Salesforce Marketing Cloud.
  • Explicitly Caching Data: This topic provides examples for using AutoCache in Offline mode.
  • CACHE Statements: You can use the CACHE statement to explicitly cache the content of any table targeted by a SELECT query.

CData Python Connector for Salesforce Marketing Cloud

CacheProvider

The namespace of an ADO.NET provider. The specified provider is used as the target database for all caching operations.

Data Type

string

Default Value

""

Remarks

You can cache to ADO.NET providers saved in your ADO.NET global assembly cache (GAC).

CData ADO.NET providers automatically register themselves with the GAC during installation, so you don't need to do so manually.

Third-party ADO.NET providers may or may not automatically register themselves with the GAC during installation. If you want to cache to a third-party ADO.NET provider, consult the documentation for that provider to determine what steps (if any) you must take to register them with the GAC. Once they have been registered, you can supply their namespace in this connection property.

You must also set the CacheConnection connection property to provide a connection string for the specified ADO.NET provider.

The following sections show connection examples and address other requirements for several popular database providers. Refer to CacheConnection for more information on typical connection properties.

SQLite

You can use the Microsoft ADO.NET Provider for SQLite to cache to SQLite databases.

CacheProvider=Microsoft.Data.Sqlite;CacheConnection='DataSource=C:\\Users\\Public\\cache.db;'User=myUser;Password=myPassword;

MySQL

To cache to MySQL, you can use the CData ADO.NET Provider for MySQL:
Cache Provider=System.Data.CData.MySQL;Cache Connection='Server=localhost;Port=3306;Database=cache;User=root;Password=123456';User=myUser;Password=myPassword;Security Token=myToken;

SQL Server

You can use the Microsoft .NET Framework Provider for SQL Server, included in the .NET Framework, to cache to SQL Server:

Cache Provider=System.Data.SqlClient;Cache Connection="Server=MyMACHINE\MyInstance;Database=SQLCACHE;User Id=root;Password=admin";User=myUser;Password=myPassword;

Oracle

To cache to Oracle, you can use the Oracle Data Provider for .NET, as shown in the following example:

Cache Provider=Oracle.DataAccess.Client;Cache Connection='User Id=scott;Password=tiger;Data Source=ORCL';User=myUser;Password=myPassword;

The Oracle Data Provider for .NET also requires the Oracle Database Client. When you download the Oracle Database Client, ensure that its bitness matches the bitness of your machine. When you install, select either the Runtime or Administrator installation type. The Instant Client is not sufficient.

PostgreSQL

To cache to PostgreSQL, you can use the CData ADO.NET Provider for PostgreSQL:
Cache Provider=System.Data.CData.PostgreSQL;Cache Connection='Server=localhost;Port=5432;Database=cache;User=postgres;Password=123456';User=myUser;Password=myPassword;Security Token=myToken;

CData Python Connector for Salesforce Marketing Cloud

CacheDriver

The driver class of a JDBC driver. The specified driver is used to connect to the target database for all caching operations.

Data Type

string

Default Value

""

Remarks

You can cache to any database for which you have a JDBC driver, including CData JDBC drivers.

Note: You must add the JAR file of the specified JDBC driver to the classpath. For CData JDBC drivers, you can find this JAR file in the "lib" subfolder of that driver's installation directory.

You must also set the CacheConnection connection property to provide a connection string for the specified JDBC driver.

For Linux systems and macOS, you need to create a config.ini file on the installation path of the driver (site-packages/cdata). The config.ini file has the following format (the driver and the path of the JDBC driver):

[salesforce.cpython-38-x86_64-linux-gnu.so]
CLASSPATH = /home/usrname/Downloads/lib/cdata.jdbc.postgresql.jar

Examples

The following examples show how to cache to several major databases. For more information on the JDBC URL syntax and typical connection properties, see CacheConnection.

Derby and Java DB

Java DB is the Oracle distribution of Derby. You must add the Derby JDBC driver's JAR file, derbytools.jar, to your classpath to cache to Java DB.

The Derby JDBC driver's JAR file is bundled in db-derby-10.17.1.0-bin.zip, which you can download from this page. You can find derbytools.jar in the "lib" subfolder of this zip file.

After adding derbytools.jar to the classpath, you can cache to a Java DB database as follows:

jdbc:sfmarketingcloud:CacheDriver=org.apache.derby.jdbc.EmbeddedDriver;CacheConnection='jdbc:derby:sample';User=myUser;Password=myPassword;
To cache to an in-memory database, use a JDBC URL like the following:
jdbc:sfmarketingcloud:CacheDriver=org.apache.derby.jdbc.EmbeddedDriver;CacheConnection='jdbc:derby:memory';User=myUser;Password=myPassword;

SQLite

The following is a JDBC URL for the SQLite JDBC driver:

jdbc:sfmarketingcloud:CacheDriver=org.sqlite.JDBC;CacheConnection='jdbc:sqlite:C:/Temp/sqlite.db';User=myUser;Password=myPassword;

MySQL

The following is a JDBC URL for the CData JDBC Driver for MySQL:

  jdbc:sfmarketingcloud:Cache Driver=cdata.jdbc.mysql.MySQLDriver;Cache Connection='jdbc:mysql:Server=localhost;Port=3306;Database=cache;User=root;Password=123456';User=myUser;Password=myPassword;
  

SQL Server

The following JDBC URL uses the Microsoft JDBC Driver for SQL Server:

jdbc:sfmarketingcloud:Cache Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Cache Connection='jdbc:sqlserver://localhost\sqlexpress:7437;user=sa;password=123456;databaseName=Cache';User=myUser;Password=myPassword;

Oracle

The following is a JDBC URL for the Oracle Thin Client:

jdbc:sfmarketingcloud:Cache Driver=oracle.jdbc.OracleDriver;CacheConnection='jdbc:oracle:thin:scott/tiger@localhost:1521:orcldb';User=myUser;Password=myPassword;
NOTE: If using a version of Oracle older than 9i, the cache driver will instead be oracle.jdbc.driver.OracleDriver .

PostgreSQL

The following JDBC URL uses the official PostgreSQL JDBC driver:

jdbc:sfmarketingcloud:CacheDriver=cdata.jdbc.postgresql.PostgreSQLDriver;CacheConnection='jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=localhost;Port=5432;';User=myUser;Password=myPassword;

CData Python Connector for Salesforce Marketing Cloud

CacheConnection

Specifies the connection string for the specified cache database.

Data Type

string

Default Value

""

Remarks

The target cache database is determined by a combination of this connection property and the CacheProvider connection property. Both properties are required to use the specified cache database.

The connection string specified in this connection property is passed directly to the specified in the CacheProvider connection property. Consult the documentation for the specified for more information on its available connection properties.

Examples of common cache database settings can be found below.

SQLite

MySQL

The following are typical connection properties:

  • Server: The IP address or domain name of the server hosting the MySQL database that you want to cache to.
  • Port: The port on the specified server where your MySQL instance is running.
  • Database: The name of the MySQL database that you want to cache to. Must match the name of a MySQL database hosted on the specified server.
  • User: The username of a user registered with the selected MySQL database.
  • Password: The password associated with the specified MySQL user.

SQL Server

The following are typical SQL Server connection properties:

  • Server: The name or network address of the computer running SQL Server. To connect to a named instance instead of the default instance, specify the host name and the instance name, separated by a backslash.
  • Port: The port on the specified server where your SQL Server instance is running.
  • Database: The name of the SQL Server database you want to cache to. Must match the name of a SQL Server database hosted on the specified server.
  • Integrated Security: To use the current Windows account for authentication, set this option to True. To authenticate with User and Password instead, set this option to False.
  • User Id: The username of a user registered with the selected SQL Server database. This property is only needed if you are not using integrated security.
  • Password: The password associated with the specified SQL Server user. This property is only needed if you are not using integrated security.

Oracle

The following are typical connection properties:

  • Data Source: The connect descriptor that identifies the Oracle database. This can be a TNS connect descriptor, an Oracle Net Services name that resolves to a connect descriptor, or, after version 11g, an Easy Connect naming (the host name of the Oracle server with an optional port and service name).

  • User Id: The username of a user registered with the selected Oracle database.
  • Password: The password associated with the specified Oracle user.

PostgreSQL

The following are typical connection properties:

  • Host: The address of the server hosting the PostgreSQL database.
  • Port: The port on the specified host server where your PostgreSQL database is hosted.
  • Database: The name of the PostgreSQL database you want to cache to. Must match the name of a PostgreSQL database hosted on the specified server.
  • User name: The username of a user registered with the selected PostgreSQL database.
  • Password: The password associated with the specified user.

CData Python Connector for Salesforce Marketing Cloud

CacheLocation

Specifies the path to the cache when caching to a file.

Data Type

string

Default Value

"%APPDATA%\\CData\\SFMarketingCloud Data Provider"

Remarks

The CacheLocation is a simple, file-based cache.

If left unspecified, the default location is %APPDATA%\\CData\\SFMarketingCloud Data Provider, where %APPDATA% is set to the user's configuration directory:

Platform %APPDATA%
Windows The value of the APPDATA environment variable
Linux ~/.config

See Also

  • AutoCache: Set to implicitly create and maintain a cache for later offline use.
  • CacheMetadata: Set to persist the Salesforce Marketing Cloud catalog in CacheLocation.

CData Python Connector for Salesforce Marketing Cloud

CacheTolerance

Notes the tolerance, in seconds, for stale data in the specified cache database. Requires AutoCache to be set to True.

Data Type

int

Default Value

600

Remarks

When you execute a query for tables in the cache, the connector checks the time elapsed since the last update to the cache.

If the last update to the cache is older than the value of this connection property (measured in seconds), the connector refreshes the cache.

Otherwise, the connector returns data directly from the cache.

CData Python Connector for Salesforce Marketing Cloud

Offline

Gets the data from the specified cache database instead of live Salesforce Marketing Cloud data.

Data Type

bool

Default Value

false

Remarks

When this connection property is set to True, all queries execute against the cache database instead of the live Salesforce Marketing Cloud data.

In this mode, some SQL operations like INSERT, UPDATE, DELETE, and CACHE are disabled.

CData Python Connector for Salesforce Marketing Cloud

CacheMetadata

Determines whether the provider caches table metadata to a file-based cache database.

Data Type

bool

Default Value

false

Remarks

When this connection property is set to True, as you execute queries, table metadata in the Salesforce Marketing Cloud catalog is cached to the cache database specified by CacheConnection and CacheProvider, or, if those connection properties are not set, to the user's home directory.

The location of your home directory varies by platform:

PlatformHome Directory
Windows %APPDATA%\\CData\\SFMarketingCloud Data Provider
Mac ~/Library/Application Support/CData/SFMarketingCloud Data Provider
Unix ~/.config/CData/SFMarketingCloud Data Provider

A table's metadata is retrieved only once, when the table is queried for the first time.

When to Use CacheMetadata

When there are a large number of Salesforce Marketing Cloud tables and columns for the connector to retrieve during metadata discovery, the connector may take a while to list all table metadata.

You may experience slow metadata retrieval when:

  • Your Salesforce Marketing Cloud instance naturally has a large table count.
  • The connector has been configured, via its connection properties, to discover more tables than it would under its default configuration.
  • You make many short-lived connections to the connector.
With CacheMetadata enabled, all retrieved metadata is mirrored in the cache database. This means that any subsequent attempts by the connector to discover metadata are much faster, as this metadata is then read directly from the cache database, without needing to spend time requesting metadata from Salesforce Marketing Cloud.

When Not to Use CacheMetadata

The connector automatically persists metadata in memory for up to an hour when you first discover the metadata for a table or view, so CacheMetadata is generally not necessary.

CacheMetadata is not ideal in scenarios where you are working with volatile metadata. The first time you query a table, the connector caches its metadata to the cache database file. This cache is not dynamically updated to reflect updates to the table schema, so you must delete and rebuild the cache database file to pick up new, changed, or deleted columns.

CData Python Connector for Salesforce Marketing Cloud

Miscellaneous

This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.


PropertyDescription
AccountIdSpecifies the account identifier, or Member ID (MID), of the target business unit.
DisplayChildDataExtensionsSpecifies whether provider displays data extensions from child accounts.
ListDataExtensionsSpecifies whether provider lists data extensions as tables.
MaxRowsSpecifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.
OtherSpecifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.
PagesizeSpecifies the maximum number of records per page the provider returns when requesting data from Salesforce Marketing Cloud.
PseudoColumnsSpecifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.
QueryAllAccountsSpecifies whether provider queries event data across all accounts, including the parent and all child accounts.
ReadonlyToggles read-only access to Salesforce Marketing Cloud from the provider.
RTKSpecifies the runtime key for licensing the provider. If unset or invalid, the provider defaults to the standard licensing method. This property is only required in environments where the standard licensing method is unsupported or requires a runtime key.
TimeoutSpecifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.
TimeZoneSpecifies the server time zone as a UTC offset. The value must use the format +/-hh:mm, for example: +00:00.
UserDefinedViewsSpecifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.
CData Python Connector for Salesforce Marketing Cloud

AccountId

Specifies the account identifier, or Member ID (MID), of the target business unit.

Data Type

string

Default Value

""

Remarks

Set this property to switch the OAuth context to a specific business unit. When a value is provided, the specified AccountId is used only during the OAuth flow.

When this property is not set, the returned access token is created in the context of the business unit that created the integration.

This property is not supported for legacy packages.

CData Python Connector for Salesforce Marketing Cloud

DisplayChildDataExtensions

Specifies whether provider displays data extensions from child accounts.

Data Type

bool

Default Value

false

Remarks

When set to true, child-account data extensions are included in the list of available objects.

When set to false, only parent and shared data extensions are displayed.

This property is useful when you need to query or browse data extensions that belong to linked child accounts.

CData Python Connector for Salesforce Marketing Cloud

ListDataExtensions

Specifies whether provider lists data extensions as tables.

Data Type

bool

Default Value

true

Remarks

When set to true, data extensions are included as tables in the available objects.

When set to false, data extensions are not listed as tables.

This property is useful when you want to control whether data extensions appear in schema browsing and metadata operations.

CData Python Connector for Salesforce Marketing Cloud

MaxRows

Specifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.

Data Type

int

Default Value

-1

Remarks

The default value for this property, -1, means that no row limit is enforced unless the query explicitly includes a LIMIT clause. (When a query includes a LIMIT clause, the value specified in the query takes precedence over the MaxRows setting.)

Setting MaxRows to a whole number greater than 0 ensures that queries do not return excessively large result sets by default.

This property is useful for optimizing performance and preventing excessive resource consumption when executing queries that could otherwise return very large datasets.

CData Python Connector for Salesforce Marketing Cloud

Other

Specifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.

Data Type

string

Default Value

""

Remarks

This property allows advanced users to configure hidden properties for specialized situations, with the advice of our Support team. These settings are not required for normal use cases but can address unique requirements or provide additional functionality. To define multiple properties, use a semicolon-separated list.

Note: It is strongly recommended to set these properties only when advised by the Support team to address specific scenarios or issues.

Caching Configuration

PropertyDescription
CachePartial=TrueCaches only a subset of columns, which you can specify in your query.
QueryPassthrough=TruePasses the specified query to the cache database instead of using the SQL parser of the connector.

Integration and Formatting

PropertyDescription
DefaultColumnSizeSets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000.
ConvertDateTimeToGMT=TrueConverts date-time values to GMT, instead of the local time of the machine. The default value is False (use local time).
RecordToFile=filenameRecords the underlying socket data transfer to the specified file.

CData Python Connector for Salesforce Marketing Cloud

Pagesize

Specifies the maximum number of records per page the provider returns when requesting data from Salesforce Marketing Cloud.

Data Type

int

Default Value

-1

Remarks

When processing a query, instead of requesting all of the queried data at once from Salesforce Marketing Cloud, the connector can request the queried data in pieces called pages.

This connection property determines the maximum number of results that the connector requests per page.

Note: Setting large page sizes may improve overall query execution time, but doing so causes the connector to use more memory when executing queries and risks triggering a timeout.

CData Python Connector for Salesforce Marketing Cloud

PseudoColumns

Specifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.

Data Type

string

Default Value

""

Remarks

This property allows you to define which pseudocolumns the connector exposes as table columns.

To specify individual pseudocolumns, use the following format:

Table1=Column1;Table1=Column2;Table2=Column3

To include all pseudocolumns for all tables use:

*=*

CData Python Connector for Salesforce Marketing Cloud

QueryAllAccounts

Specifies whether provider queries event data across all accounts, including the parent and all child accounts.

Data Type

bool

Default Value

false

Remarks

This property is available only when using the SOAP schema.

When set to true, queries return event data from the parent account and all child accounts.

When set to false, queries are limited to the current account.

This property is useful when you need a consolidated view of event data across an entire Marketing Cloud account hierarchy.

CData Python Connector for Salesforce Marketing Cloud

Readonly

Toggles read-only access to Salesforce Marketing Cloud from the provider.

Data Type

bool

Default Value

false

Remarks

When set to True, the connector allows only SELECT queries. Attempting an INSERT, UPDATE, DELETE, or stored procedure query fails with an error message.

CData Python Connector for Salesforce Marketing Cloud

RTK

Specifies the runtime key for licensing the provider. If unset or invalid, the provider defaults to the standard licensing method. This property is only required in environments where the standard licensing method is unsupported or requires a runtime key.

Data Type

string

Default Value

""

Remarks

This property is typically unnecessary, as most configurations support a standard licensing mechanism.

Warning: The value of this property takes precedence over all existing licensing information. To avoid licensing errors, ensure the provided runtime key is correct.

CData Python Connector for Salesforce Marketing Cloud

Timeout

Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.

Data Type

int

Default Value

60

Remarks

The timeout applies to each individual communication with the server rather than the entire query or operation. For example, a query could continue running beyond 60 seconds if each paging call completes within the timeout limit.

Timeout is set to 60 seconds by default. To disable timeouts, set this property to 0.

Disabling the timeout allows operations to run indefinitely until they succeed or fail due to other conditions such as server-side timeouts, network interruptions, or resource limits on the server.

Note: Use this property cautiously to avoid long-running operations that could degrade performance or result in unresponsive behavior.

CData Python Connector for Salesforce Marketing Cloud

TimeZone

Specifies the server time zone as a UTC offset. The value must use the format +/-hh:mm, for example: +00:00.

Data Type

string

Default Value

"-06:00"

Remarks

Set this property to the time zone that connector should use when interpreting or formatting date and time values.

If your Marketing Cloud representative has disabled the Incoming Date Normalization feature, set this property to the account time zone instead of the server time zone.

This property is useful when you need consistent time handling across environments or when date normalization settings differ for your account.

CData Python Connector for Salesforce Marketing Cloud

UserDefinedViews

Specifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.

Data Type

string

Default Value

""

Remarks

UserDefinedViews allows you to define and manage custom views through a JSON-formatted configuration file called UserDefinedViews.json. These views are automatically recognized by the connector and enable you to execute custom SQL queries as if they were standard database views. The JSON file defines each view as a root element with a child element called "query", which contains the SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Subscriber WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}

You can use this property to define multiple views in a single file and specify the filepath. For example:

UserDefinedViews=C:\Path\To\UserDefinedViews.json
When you specify a view in UserDefinedViews, the connector only sees that view.

For further information, see User Defined Views.

CData Python Connector for Salesforce Marketing Cloud

Third Party Copyrights

LZMA from 7Zip LZMA SDK

LZMA SDK is placed in the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original LZMA SDK code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

LZMA2 from XZ SDK

Version 1.9 and older are in the public domain.

Xamarin.Forms

Xamarin SDK

The MIT License (MIT)

Copyright (c) .NET Foundation Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

NSIS 3.10

Copyright (C) 1999-2025 Contributors THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

AdoptOpenJDK / Adoptium Temurin JRE 17.0.18_8

Copyright (c) Eclipse Foundation AISBL. All Rights Reserved.

Apache License, Version 2.0

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

Eclipse Distribution License - v 1.0

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Eclipse Public License - v 2.0

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS "Contribution" means:

  • a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
  • b) in the case of each subsequent Contributor:
    • i) changes to the Program, and
    • ii) additions to the Program;
    where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution "originates" from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
"Contributor" means any person or entity that Distributes the Program. "Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions Distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.

"Derivative Works" shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.

"Modified Works" shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.

"Distribute" means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.

"Source Code" means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Secondary License" means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.

2. GRANT OF RIGHTS

  • a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
  • b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
  • c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
  • d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
  • e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).

3. REQUIREMENTS 3.1 If a Contributor Distributes the Program in any form, then:

  • a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
  • b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
    • i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
    • ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
    • iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
    • iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
3.2 When the Program is Distributed as Source Code:
  • a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
  • b) a copy of this Agreement must be included with each copy of the Program.
3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices') contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.

4. COMMERCIAL DISTRIBUTION Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.

Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.

Exhibit A – Form of Secondary Licenses Notice "This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}."

Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.

If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.

You may add additional accurate notices of copyright ownership.

GNU Classpath

Classpath is distributed under the terms of the GNU General Public License with the following clarification and special exception.

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

As such, it can be used to run, create and distribute a large class of applications and applets. When GNU Classpath is used unmodified as the core class library for a virtual machine, compiler for the java languge, or for a program written in the java programming language it does not affect the licensing for distributing those programs directly.

OpenJDK Assembly Exception

The OpenJDK source code made available by Oracle America, Inc. (Oracle) at openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2 only ("GPL2"), with the following clarification and special exception.

Linking this OpenJDK Code statically or dynamically with other code is making a combined work based on this library. Thus, the terms and conditions of GPL2 cover the whole combination.

As a special exception, Oracle gives you permission to link this OpenJDK Code with certain code licensed by Oracle as indicated at http://openjdk.java.net/legal/exception-modules-2007-05-08.html ("Designated Exception Modules") to produce an executable, regardless of the license terms of the Designated Exception Modules, and to copy and distribute the resulting executable under GPL2, provided that the Designated Exception Modules continue to be governed by the licenses under which they were offered by Oracle.

As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code to build an executable that includes those portions of necessary code that Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 with the Classpath exception). If you modify or add to the OpenJDK code, that new GPL2 code may still be combined with Designated Exception Modules if the new code is made subject to this exception by its copyright holder.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 26.0.9655