# Dotdigital Export Integration CLI

You can write job results export directly from Treasure Data to Dotdigital Marketing Solution service.

## Prerequisites

- Basic Knowledge of Treasure Data.
- Basic knowledge of Dotdigital Unified Contacts


## Creating Your Connection from the Command Line

You can use the CLI to configure your connection.


```
td query --database your_database --result configuration query
```

The following table identifies the configuration keys with descriptions.

| Config Key | Type | Required | Description |
|  --- | --- | --- | --- |
| type | string | Yes | Export type: dotdigital |
| region
 | string
 | Yes
 | Available regions:
- Europe: r1
- North America: r2
- Asia Pacific: r3

Site: https://{region}-api.dotdigital.com
 |
| username | string | Yes | API user |
| password | string | Yes | API password |
| mode | string | Yes | Export Mode. Supported values:- transactional_email
- bulk_contacts
- unified_contacts

 |
| unified_cts_export_operation | string | No | Supported values:- upload (default)
- delete

 |
| unified_cts_merge_option | string | No | Supported values:- overwrite (default)
- overwriteIfEmpty
- overwriteIfNotEmpty

 |
| unified_cts_add_to_list | string | No | Supported values:- false (default)
- true

 |
| unified_cts_list_identifier_mode | string | No | Supported values:- id (default)
- name

 |
| unified_cts_list_id | string | No | List id where contacts will be assigned to. Required when unified_cts_list_identifier_mode = id |
| unified_cts_list_name | string | No | List name where contacts will be assigned to. Required when unified_cts_list_identifier_mode = name |
| unified_cts_create_when_not_found | string | No | Supported values:- false (default)
- true

 |
| unified_cts_new_list_visibility | string | No | Supported values:- private (default)
- public

 |
| ignore_invalid_records | boolean | No | If set to true, this will skip invalid records and continue uploading valid ones. If set to false (default), this will terminate the job when an invalid record is encountered. |


**Example Query that Exports Unified Contacts: do not add contacts to list**


```bash
td query --database my_db \
--query 'SELECT match_identifier, contact_id, email, mobile_number, channel_properties, consent_records, firstname, lastname FROM your_table' \
--type presto \
--result '{
  "type":"dotdigital",
  "region":"r1",
  "username":"{api user}",
  "password":"{api password}",
  "mode":"unified_contacts",
  "unified_cts_export_operation":"upload",
  "unified_cts_merge_option":"overwrite",
  "unified_cts_add_to_list":false,
  "ignore_invalid_records":true
}'
```

**Example Query that Exports Unified Contacts: add contacts to list**


```bash
td query --database my_db \
--query 'SELECT match_identifier, contact_id, email, mobile_number, channel_properties, consent_records, firstname, lastname FROM your_table' \
--type presto \
--result '{
  "type":"dotdigital",
  "region":"r1",
  "username":"{api user}",
  "password":"{api password}",
  "mode":"unified_contacts",
  "unified_cts_export_operation":"upload",
  "unified_cts_merge_option":"overwrite",
  "unified_cts_add_to_list":true,
  "unified_cts_list_identifier_mode":"id",
  "unified_cts_list_id":"{list id}",
  "ignore_invalid_records":true
}'
```

**Example Query that Delete Unified Contacts**


```bash
td query -d database -w \
--query 'SELECT match_identifier, contact_id, email, mobile_number FROM your_table' \
--type presto \
--result '{
  "type":"dotdigital",
  "region":"r1",
  "username":"{api user}",
  "password":"{api password}",
  "mode":"unified_contacts",
  "unified_cts_export_operation":"delete",
  "ignore_invalid_records":true
}'
```

## See Also

- [Scheduling Data Connector Job Execution from the CLI](/int/scheduling-a-data-connector-job-execution-from-the-cli)