Chapter 10: Connecting Channels
The Problem
You've built the perfect segment. Now what? The audience sitting in Treasure Data doesn't help your marketing until it reaches Salesforce, Google Ads, your email platform, or wherever you run campaigns.
The Key Idea
Core concept
Activations connect segments to external channels. Define where the audience should go, what data to include, and when to sync.
An activation is the bridge between your segment and your marketing tools.
Adding an Activation
Tell AI where you want to send the segment:
> "Send this segment to Salesforce daily"AI adds an activation to your segment YAML:
name: High-Value Recent Buyers
rule:
type: Value
attribute: lifetime_value
operator:
type: Greater
value: 1000
activations:
- name: Salesforce Sync
connection: salesforce-prod
schedule:
type: daily
timezone: America/New_YorkUnderstanding Activations
Each activation has:
| Field | Purpose |
|---|---|
name | Display name for this sync |
connection | Which destination (set up by your admin) |
enabled | Turn sync on/off without deleting |
schedule | When to sync |
Available Connections
List connections configured by your data team:
tdx connection listTYPE NAME OWNER
salesforce_marketing_cloud_v2 sfmc-prod Jane Smith
google_ads google-ads-main Marketing Team
s3_v2 s3-data-lake Data Team
snowflake snowflake-warehouse Data TeamYou reference connections by their NAME in your activation YAML. The TYPE tells you what connector_config fields are available.
For a full list of supported integrations, see the Treasure Data Integrations documentation.
Multiple Activations
A segment can activate to multiple channels:
> "Also send this to Google Ads and our email platform"activations:
- name: Salesforce Sync
connection: salesforce-prod
schedule:
type: daily
timezone: America/Los_Angeles
- name: Google Ads Audience
connection: google-ads-main
schedule:
type: daily
timezone: America/Los_Angeles
- name: Email Suppression
connection: sendgrid-marketing
schedule:
type: hourlySame segment, three destinations, possibly different schedules.
Scheduling Options
Common schedule patterns:
Daily:
schedule:
type: daily
timezone: America/New_YorkHourly:
schedule:
type: hourlyWeekly (Monday):
schedule:
type: weekly
repeat_sub_frequency: [1] # 1 = Monday
timezone: UTCCustom (cron):
schedule:
type: cron
cron: "0 6,12,18 * * *" # 6am, 12pm, 6pm daily
timezone: America/Los_AngelesChoosing What Data to Send
By default, activations send customer identifiers. You can specify additional columns:
> "Include email, first name, and lifetime value in the Salesforce sync"activations:
- name: Salesforce Sync
connection: salesforce-prod
all_columns: false
columns:
- email
- first_name
- lifetime_value
schedule:
type: daily
timezone: America/Los_AngelesEach destination has different requirements for what columns are needed or allowed.
Connector Configuration
Each connector type has specific settings. Discover available fields with:
tdx connection schema salesforce_marketing_cloud_v2Connector Schema: salesforce_marketing_cloud_v2
de_name: Data Extension Name [text] (required)
shared_data_extension: Shared Data Extension [boolean]
data_operation: Data Operation [dropdown]
Options: upsert, replace
create_new_de: Create New Data Extension [boolean]
folder_path: Folder Path [text]
Show when: create_new_de=[true]
...Salesforce Marketing Cloud Example
activations:
- name: SFMC Customer Sync
connection: sfmc-prod
columns:
- email
- first_name
- lifetime_value
connector_config:
de_name: HighValueCustomers
data_operation: upsert
shared_data_extension: false
schedule:
type: daily
timezone: America/Los_AngelesS3 Export Example
activations:
- name: S3 Data Lake Export
connection: s3-data-lake
all_columns: true
connector_config:
bucket: my-company-data
path: segments/high-value/data.csv
format: csv
compression: gz
schedule:
type: daily
timezone: UTCSnowflake Example
activations:
- name: Snowflake Sync
connection: snowflake-warehouse
all_columns: true
connector_config:
warehouse: COMPUTE_WH
database: MARKETING
schema: SEGMENTS
table: HIGH_VALUE_CUSTOMERS
mode: truncate_insert # insert | truncate_insert | merge
schedule:
type: daily
timezone: America/Los_AngelesDiscover Fields
Always run tdx connection schema <type> to see available fields for your connector. Each connector has different required and optional settings.
Enabling and Disabling
Pause an activation without removing it:
> "Disable the Google Ads activation" - name: Google Ads Audience
connection: google-ads-main
enabled: false # PausedRe-enable when ready:
> "Enable the Google Ads activation"Mental Model: Pipelines
Think of activations as water pipes from a reservoir (your segment):
Each pipe can be turned on or off. Each can flow at different rates (schedules). The water (audience data) is the same; only the destinations differ.
Notifications
Get alerted when syncs complete or fail:
> "Notify me by email when the Salesforce sync finishes"activations:
- name: Salesforce Sync
connection: salesforce-prod
notification:
on_success: true
on_failure: true
email: "marketing-team@company.com"Verifying Activations
Before pushing, validate:
> "Validate the segment with activations"✓ Segment rules are valid
✓ Connection 'salesforce-prod' exists and is authorized
✓ Schedule syntax is valid
✓ Required columns are available
Ready to push.Dry Run
See what would be synced:
> "Dry run the Salesforce activation"DRY RUN - Salesforce Sync
Would sync 3,247 customers to salesforce-prod
Columns: email, first_name, lifetime_value
Schedule: Daily at 06:00 America/New_York
No data was sent. Remove --dry-run to activate.Pitfalls
"Connection not found."
The connection might not be set up or you might have the wrong name:
tdx connection list"What connector_config fields do I need?"
Check the schema for your connector type:
tdx connection schema salesforce_marketing_cloud_v2"Missing required columns."
Some destinations require specific fields. The schema output shows which fields are required vs optional.
"Sync is failing."
Validate your activation before pushing:
tdx sg push --dry-runWhat You've Learned
- Activations send segments to external channels
tdx connection listshows available connectionstdx connection schema <type>reveals connector_config fields- Schedule syncs daily, hourly, weekly, or custom
- Specify which columns to include
- Each connector type has specific configuration options
- Validate with
tdx sg push --dry-runbefore pushing
Next Step
You can build and activate segments. Chapter 11 introduces journeys—multi-step customer experiences that go beyond one-time audience syncs.
You've connected to the outside world. Next, you'll orchestrate experiences across time.