Generate core ID unification configuration files (unify.yml and id_unification.dig)
Generates core ID unification configuration files with dynamic schema validation and regional endpoint support.
/plugin marketplace add treasure-data/aps_claude_tools/plugin install treasure-data-cdp-unification-plugins-cdp-unification@treasure-data/aps_claude_toolsI'll generate core ID unification configuration files using the id-unification-creator specialized agent.
This command creates TD-COMPLIANT unification files:
REQUIRED: Prep table configuration must exist:
unification/config/environment.yml - Client configurationunification/config/src_prep_params.yml - Prep table mappingsIf you haven't created these yet, run:
/cdp-unification:unify-create-prep first, OR/cdp-unification:unify-setup for complete end-to-end setupChoose ONE method:
Option A: persistent_id (RECOMMENDED)
td_claude_id, stable_customer_id)Option B: canonical_id
master_customer_id)full_refresh: true)full_refresh: false)Choose your Treasure Data region:
claude, customer_360)I'll check that these files exist:
unification/config/environment.ymlunification/config/src_prep_params.ymlAnd extract:
I'll parse src_prep_params.yml to identify:
alias_as column namesmerge_by_keysI'll create:
name: {unif_name}
keys:
- name: email
invalid_texts: ['']
- name: td_client_id
invalid_texts: ['']
- name: phone
invalid_texts: ['']
# ... ALL detected key types
tables:
- database: ${client_short_name}_${stg}
table: ${globals.unif_input_tbl}
incremental_columns: [time]
key_columns:
- {column: email, key: email}
- {column: td_client_id, key: td_client_id}
- {column: phone, key: phone}
# ... ALL alias_as columns mapped
# ONLY ONE of these sections (based on your selection):
persistent_ids:
- name: {persistent_id_name}
merge_by_keys: [email, td_client_id, phone, ...]
merge_iterations: 15
# OR
canonical_ids:
- name: {canonical_id_name}
merge_by_keys: [email, td_client_id, phone, ...]
merge_iterations: 15
I'll prevent first-run failures by:
unify.yml to extract merge_by_keys listqueries/create_schema.sql to check existing columnscreate_schema.sql if missing columns:
merge_by_keys as varcharI'll create:
timezone: UTC
_export:
!include : config/environment.yml
!include : config/src_prep_params.yml
+call_unification:
http_call>: {REGIONAL_ENDPOINT_URL}
headers:
- authorization: ${secret:td.apikey}
- content-type: application/json
method: POST
retry: true
content_format: json
content:
run_persistent_ids: {true/false} # ONLY if persistent_id
run_canonical_ids: {true/false} # ONLY if canonical_id
run_enrichments: true
run_master_tables: true
full_refresh: {true/false}
keep_debug_tables: true
unification:
!include : config/unify.yml
unification/
├── config/
│ └── unify.yml ✓ Dynamic configuration
├── queries/
│ └── create_schema.sql ✓ Updated with all columns
└── id_unification.dig ✓ Core unification workflow
name: customer_360
keys:
- name: email
invalid_texts: ['']
- name: td_client_id
invalid_texts: ['']
valid_regexp: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$'
tables:
- database: ${client_short_name}_${stg}
table: ${globals.unif_input_tbl}
incremental_columns: [time]
key_columns:
- {column: email, key: email}
- {column: td_client_id, key: td_client_id}
persistent_ids:
- name: td_claude_id
merge_by_keys: [email, td_client_id]
merge_iterations: 15
timezone: UTC
_export:
!include : config/environment.yml
!include : config/src_prep_params.yml
+call_unification:
http_call>: https://api-cdp.treasuredata.com/unifications/workflow_call
headers:
- authorization: ${secret:td.apikey}
- content-type: application/json
method: POST
retry: true
content_format: json
content:
run_persistent_ids: true
run_enrichments: true
run_master_tables: true
full_refresh: false
keep_debug_tables: true
unification:
!include : config/unify.yml
src_prep_params.ymlcreate_schema.sql MUST contain ALL columns from merge_by_keysid_unification.dig MUST include BOTH config files in _export:
environment.yml - For ${client_short_name}_${stg}src_prep_params.yml - For ${globals.unif_input_tbl}Before completing, I'll verify:
All generated files will:
After creating core config, you can:
dig run unification/id_unification.dig/cdp-unification:unify-setup to add staging enrichmentReady to create core unification config? Please provide:
ID Method:
persistent_id or canonical_idtd_claude_idUpdate Strategy:
incremental or full_refreshRegional Endpoint:
US, EU, Asia Pacific, or JapanUnification Name:
customer_360, claudeExample:
ID Method: persistent_id
ID Name: td_claude_id
Update Strategy: incremental
Region: US
Unification Name: customer_360
I'll call the id-unification-creator agent to generate all core unification files.
Let's create your unification configuration!