> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: ZendeskのサポートチケットデータをRedshiftへロードする

> Rest APIコンポーネントを使いZendeskのSupport APIからチケットデータをIncrementalで取得し、Amazon Redshiftへロードする手順を解説します。

このブログでは、XplentyのRest APIコンポーネントを使用し、ZendeskのSupport APIにアクセスし、チケットデータをIncrementalでロードする手順について解説します。

## Zendesk側での設定

管理メニューから「API」を選択する

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-1.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=0b010e2fea9dc3faf52dd9cdda9289fe" alt="connector-part03-jp image 1" width="1234" height="932" data-path="images/japanese-knowledge-base/connector-part03-jp/image-1.webp" />
</Frame>

パスワードアクセスを有効に設定する

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-2.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=d0ba6262322e9d63fa440ff876238f9a" alt="connector-part03-jp image 2" width="2044" height="1140" data-path="images/japanese-knowledge-base/connector-part03-jp/image-2.webp" />
</Frame>

## Xplenty側の設定

### Step1: Rest API Componentの設定

Rest API コンポーネントでBasic認証を選択し、ユーザー名とパスワードを入力する

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-3.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=2a240b2d1781bb0272a08490fe970d09" alt="connector-part03-jp image 3" width="1346" height="918" data-path="images/japanese-knowledge-base/connector-part03-jp/image-3.webp" />
</Frame>

今回は、Support APIのIncremental Exportを使用するので、[ドキュメント](https://developer.zendesk.com/rest_api/docs/support/incremental_export)のルールに従い、URLを入力。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-4.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=e5644ba08b915b7eb74f60f7eb3fd030" alt="connector-part03-jp image 4" width="1806" height="1180" data-path="images/japanese-knowledge-base/connector-part03-jp/image-4.webp" />
</Frame>

**URL**: https\://**サブドメイン名**.zendesk.com/api/v2/**incremental**/tickets.json?**start\_time=1601768082**\&include=metric\_sets

**start\_time**: UnixTimeの数値を指定

ResponseでJSON Pathを入力

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-5.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=ea4435db19d8a36cb7f67dede4181c6f" alt="connector-part03-jp image 5" width="1370" height="722" data-path="images/japanese-knowledge-base/connector-part03-jp/image-5.webp" />
</Frame>

Data Previewで結果が正しく取得できるのを確認したら、必要な列を選択し、Saveボタンをクリック。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-6.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=04d4970489ae0c9e9055f4b688129d5e" alt="connector-part03-jp image 6" width="1780" height="1476" data-path="images/japanese-knowledge-base/connector-part03-jp/image-6.webp" />
</Frame>

### Step2: Selectコンポーネントで入れ子になっているJSON部分の値を取得する式をセット

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-7.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=2203f71663425e3b5e8caee7286a10e1" alt="connector-part03-jp image 7" width="1780" height="1476" data-path="images/japanese-knowledge-base/connector-part03-jp/image-7.webp" />
</Frame>

### Step3: ロード先のDBもしくはDWHを設定（今回はRedshiftへロード）

Redshiftへの接続を設定し、テーブル名の入力および差分更新の設定（Merge with existing data using delete and insert）を選択する。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-8.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=cbe14e6a98818b85fa88a9f16850c0e0" alt="connector-part03-jp image 8" width="1732" height="1476" data-path="images/japanese-knowledge-base/connector-part03-jp/image-8.webp" />
</Frame>

今回作成したデータフローは、こんな感じになります。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-9.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=a461256bdbdf2146d4302d29c9dded53" alt="connector-part03-jp image 9" width="1780" height="1476" data-path="images/japanese-knowledge-base/connector-part03-jp/image-9.webp" />
</Frame>

### Step4: 自動で差分更新を行うための変数設定

最初の設定では、URLのパラメータ「start\_time」を固定値で実装しましたが、今後自動的に前回取り込み分からの差分を取得できるよう変数を利用したリクエストURLが生成できるよう設定します。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-10.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=e7c5aebef6f50ceeedb98b35ff821359" alt="connector-part03-jp image 10" width="1686" height="932" data-path="images/japanese-knowledge-base/connector-part03-jp/image-10.webp" />
</Frame>

#### 1. 差分更新のため、前回実行時間を取得する変数をセットします。

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-11.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=424fe222629f4501876b41d230897ba6" alt="connector-part03-jp image 11" width="1746" height="1400" data-path="images/japanese-knowledge-base/connector-part03-jp/image-11.webp" />
</Frame>

* **変数名**：start\_date
* **式**：ToUnixTime(CASE WHEN **$_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP** == '' THEN ToDate('2000-01-01T00:00:00.000Z') ELSE ToDate(**$\_PACKAGE\_LAST\_SUCCESSFUL\_JOB\_SUBMISSION\_TIMESTAMP**) END)

式で使用しているシステム変数「**\$\_PACKAGE\_LAST\_SUCCESSFUL\_JOB\_SUBMISSION\_TIMESTAMP**」には、自動的に前回ジョブ実行日時がセットされる。

#### 2. URLのstart\_timeの値に変数をセットします。（太字部分は変数）

**URL**: [https://サブドメイン名.zendesk.com/api/v2/incremental/tickets.json?start\_time=\*\*\$start\_date\*\*\&include=metric\_sets](https://サブドメイン名.zendesk.com/api/v2/incremental/tickets.json?start_time=**\$start_date**\&include=metric_sets)

<Frame>
  <img src="https://mintcdn.com/integrateio/9zTXY63WpdSgW89f/images/japanese-knowledge-base/connector-part03-jp/image-12.webp?fit=max&auto=format&n=9zTXY63WpdSgW89f&q=85&s=df826b0584e401f3b3789769c0e3c6c3" alt="connector-part03-jp image 12" width="1746" height="1400" data-path="images/japanese-knowledge-base/connector-part03-jp/image-12.webp" />
</Frame>

これで簡単に差分だけを更新するDataflowパッケージの完成です。

もし、自社でお使いのSaaSサービスをクラウドに接続して取得したい場合は、[Xplenty](https://www.xplenty.com/jp/)のHPからオンラインデモをリクエストし、相談してみてはいかがでしょうか？
