# Sailthru Export Integration From The Command Line

CLIを介して(TD Toolbelt)、Treasure DataからSailthruにクエリ結果データをエクスポートします。

# 前提条件

- [TD Toolbelt](/tools/cli-and-sdks/td-toolbelt)がインストールされていること。
- Sailthruの基本知識とアカウント。


## コマンドラインを使用した接続の作成

CLIを使用して接続を設定できます。


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

次の表では、設定キーと説明を示します。

| **設定キー** | **型** | **必須** | **説明** |
|  --- | --- | --- | --- |
| `type` | string | はい | sailthru |
| `target` | string | はい | "list"または"user"のいずれか。 |
| `api_key` | string | はい | Sailthruから提供されたAPIキー。確立された認証を使用した結果エクスポート(ConsoleのクエリResult Exportまたはワークフローを使用)とは異なり、CLIのパラメータでAPIキーを明示的に指定する必要があります。 |
| `api_secret` | string | はい | Sailthruから提供されたAPIシークレット。APIキーと同様に、APIシークレットも指定する必要があります。 |
| `list_name` | string | はい(`target`: "list"の場合) | 送信先のリスト名。リストが存在しない場合は新しいリストが作成され、既存のリストが更新されます。Sailthruで[リスト名を確認](https://my.sailthru.com/lists)できます。 |
| `list_type` | string | いいえ | PrimaryまたはSecondaryのいずれかを選択します。**Primary**リストは、定期的かつ周期的に送信するメインの購読者リストです。リストの成長を追跡したい場合は、プライマリとしてマークする必要があります。**Secondary**リストは、成長レポートが不要なリストです。成長は追跡されないため、プライマリリストのレポートには表示されません。オプションが選択されている場合、既存のリストはこのタイプに更新されます。どちらも選択されていない場合、リストタイプは以前のままです。プライマリリストとセカンダリリストの[違いについては、Sailthruを参照](https://getstarted.sailthru.com/audience/managing-lists/primary-and-secondary-lists/)してください。 |
| `list_public_name` | string | いいえ | 購読者に表示される名前(オプトアウトページなど)。 |
| `user_key` | string | はい(`target`: `user`の場合) | `id`列の対応するタイプを選択します – email、SMS、sid、extid。 |
| `user_ignore_error` | boolean | いいえ | チェックすると、ユーザーを作成/更新できない場合でもエクスポートジョブは続行されます。チェックしない場合、エラーレコードが発生するとジョブは終了します。 |
| `user_keys_columns` | string | いいえ | ユーザーのキーを更新するために使用される追加の列(カンマ区切り)。列名はキータイプと正確に一致する必要があります。 |
| `user_keys_conflict_resolution` | string | いいえ | "error"は、競合が発生した場合(変更されたキーがSailthruデータベースに既に存在する別のキーと一致する場合)にジョブを終了します。"merge"は、現在の`id`を持つユーザーと競合するユーザーの解決を試みます。 |
| `user_vars_column` | string | いいえ | ユーザーの追加変数として使用される列。 |
| `user_list` | string | いいえ | ユーザーが所属するリストを更新します。値は次の構文に準拠する必要があります: `"List Name": 0 |
| `user_optout_templates` | string | いいえ | `user_list`設定と同様ですが、これはオプトアウトテンプレートからユーザーを追加/削除するためのものです。 |
| `bulk_user_key` | string | はい(`target`: `bulk_user`の場合) | `id`列の対応するタイプを選択します --email、SMS、sid、extid。 |
| `bulk_user_keys_columns` | string | いいえ | `user_keys_columns`と同様ですが、`target: bulk_user`の場合。 |
| `bulk_user_vars_column` | string | いいえ | `user_vars_columns`と同様ですが、`target: bulk_user`の場合。 |
| `bulk_user_lists` | string | いいえ | `user_lists`と同様ですが、`target: bulk_user`の場合。 |
| `bulk_user_ignore_error` | string | いいえ | `user_ignore_error`と同様ですが、`target: bulk_user`の場合。 |


## **例**: メールをリストに出力


```bash
td query --database my_db \
--result '{
           "type": "sailthru",
           "api_key": "xxx"
           "api_secret": "yyy"
           "target": "list",
           "list_name": "My List"
         }' \
'SELECT email from your_table'
```

## **例**: ユーザーの出力


```bash
td query --database my_db \
--result '{
    "type": "sailthru",
    "api_key": "xxx",
    "api_secret": "yyy",
    "target": "user",
    "user_key": "email",
    "user_keys_columns": "sms, extid",
    "user_vars_columns": "name, address",
    "user_lists": "\"My List\": 1, \"Other List\": 0",
    "user_key_conflict_resolution": "merge",
    "user_optout_templates": "\"My Template\": 1",
    "user_ignore_error": true
  }' \
'SELECT email as id, sms, extid, name, address from your_table'
```

## **例**: ユーザーの一括出力


```bash
td query --database my_db \
--result '{
    "type": "sailthru",
    "api_key": "xxx",
    "api_secret": "yyy",
    "target": "user",
    "bulk_user_key": "email",
    "bulk_user_keys_columns": "sms, extid",
    "bulk_user_vars_columns": "name, address",
    "bulk_user_lists": "\"My List\": 1, \"Other List\": 0",
    "bulk_user_ignore_error": true
  }' \
'SELECT email as id, sms, extid, name, address from your_table'
```

## スケジュール実行

詳細については、以下を参照してください。

- [CLIからのデータコネクタジョブ実行のスケジュール](/ja/int/scheduling-a-data-connector-job-execution-from-the-cli)