TROCCOで標準提供されているコネクタではないサービスでも、REST APIが提供されていればカスタムコネクタでデータの抽出、転送が可能です。
APIの仕様により接続できない場合があるため、検証することを推奨しています。
今回は、標準で用意されていない『転送先Zendesk』をカスタムコネクタで構築します。
事前準備
Zendeskの認証方法はいくつかあり、トークン認証とOAuth2.0認証(クライアントクレデンシャル)での設定方法をそれぞれ解説します。
トークン認証
Zendeskでの作業
- Zendeskの「管理センター」から アプリおよびインテグレーション > API > API設定 を開く
- 「APIトークンアクセスを許可」にチェックをつけて保存する
- アプリおよびインテグレーション > API > APIトークン で「APIトークンを追加」する
- 作成されたトークンをコピーして、APIトークン一覧ページでステータスがアクティブになっていることを確認する
APIトークンの詳細はこちらを確認してください。
TROCCOでの作業
- カスタムコネクタの新規作成から転送先を選択して作成する
- ベースURLに「https://{subdomain}.zendesk.com」を入力する
- subdomain には、利用しているZendeskのコアサブドメインを指定
- 認証情報にはそれぞれ以下を指定する
- 認証種別:APIキー
- 認証ヘッダ名:Authorization
- 認証スキーム:Basic
- 設定を保存して、接続情報の新規作成からカスタムコネクタを選択して作成する
- 先ほど作成したカスタムコネクタを指定する
-
接続情報にトークンを発行したユーザーのメールアドレスと
Zendeskで発行されたAPIトークンを組み合わせた値({email_address}/token:{api_token})をBase64エンコードしたものを記載する
OAuth2.0認証
Zendeskでの作業
- Zendeskの「管理センター」から アプリおよびインテグレーション > API > OAuthクライアント で「OAuthクライアントを追加」する
- 名前 / 説明 / 識別子 を適当に設定する
- 識別子はTROCCOの「クライアントID」に設定する値
- クライアントの種類は「Confidential」を選択する
- リダイレクトURLには「https://trocco.io/connections/http/callback」を設定する
- 作成されたシークレットをコピーして、OAuthクライアント一覧ページでステータスがアクティブになっていることを確認する
OAuth2.0の詳細はこちらを確認してください。
TROCCOでの作業
- カスタムコネクタの新規作成から転送先を選択して作成する
- ベースURLに「https://{subdomain}.zendesk.com」を入力する
- subdomain には、利用しているZendeskのコアサブドメインを指定
- 認証情報にはそれぞれ以下を指定する
- 認証種別:OAuth2
- グラントタイプ:クライアントクレデンシャル
- アクセストークンURL:https://{subdomain}.zendesk.com/oauth/tokens
- 設定を保存して、接続情報の新規作成からカスタムコネクタを選択して作成する
- 先ほど作成したカスタムコネクタを指定する
- 接続情報にはそれぞれ以下を指定する
- クライアントID:Zendeskで作成したOAuthクライアントの識別子
- クライアントシークレット:Zendeskで発行されたシークレット
- スコープ:read と write
- 認証に成功したら保存する
エンドポイント追加
3種類のAPIエンドポイントを登録し実行できる環境を作成します。
- Create User
- Update User
- Create Or Update Many Users
Create User - ユーザー作成
利用するAPIエンドポイント:Create User - Zendesk
ユーザーの新規追加を1件ずつ実行することができます。
- カスタムコネクタの編集ページの一番下にある「エンドポイント追加」から、実行したいAPIのエンドポイントを追加する
- APIの仕様書に合わせて設定を行う
- 操作種別:作成API
- リクエストタイプ:単一リクエスト
- パス:
/api/v2/users - HTTPメソッド:POST
-
リクエストテンプレートには、APIのリクエストボディの内容に合わせて設定する
{ "user": { "name": "{{ row.name }}", "email": "{{ row.email }}" } } - プレビューを実行して、想定通りの内容でプレビューできることを確認する
- HTTPヘッダに以下の内容を設定する
- ヘッダー名:Content-Type
- 表示名:Content-Type
- デフォルト値:application/json
- 必須にのみチェック
- 接続確認で実際にデータ転送が実行できることを確認する
※ 実際にAPIリクエストを実行するのでデータが転送されます。- 接続確認に利用する接続情報に作成した接続情報を選択する
- 接続情報に利用するサンプルデータに適当な値を入れる
- 「接続を確認」を実行して「エンドポイントへのリクエストに成功しました。」となったらOK
(実際にユーザーが作成されるので注意が必要)
Update User - ユーザー更新
利用するAPIエンドポイント:Update User - Zendesk
ユーザーの更新を1件ずつ実行することができます。
- カスタムコネクタの編集ページの一番下にある「エンドポイント追加」から、実行したいAPIのエンドポイントを追加する
- APIの仕様書に合わせて設定を行う
- 操作種別:更新API
- リクエストタイプ:単一リクエスト
- パス:
/api/v2/users/{{ row.id }}- パラメータにユーザーIDを埋め込む必要があるのでLiquid形式で埋め込む
- HTTPメソッド:PUT
-
リクエストテンプレートには、APIのリクエストボディの内容に合わせて設定する
-- 登録済みのユーザー名を更新するリクエスト { "user": { "name": "{{ row.name }}" } } - HTTPヘッダに以下の内容を設定する
- ヘッダー名:Content-Type
- 表示名:Content-Type
- デフォルト値:application/json
- 必須にのみチェック
- 接続確認で実際にデータ転送が実行できることを確認する
※ 実際にAPIリクエストを実行するのでデータが転送されます。- 接続確認に利用する接続情報に作成した接続情報を選択する
- 接続情報に利用するサンプルデータに適当な値を入れる
- 「接続を確認」を実行して「エンドポイントへのリクエストに成功しました。」となったらOK
(実際にユーザーが更新されるので注意が必要)
Create Or Update Many Users - ユーザー一括更新・追加
利用するAPIエンドポイント:Create Or Update Many Users - Zendesk
ユーザーの新規追加・更新を一括で実行することができます。
- カスタムコネクタの編集ページの一番下にある「エンドポイント追加」から、実行したいAPIのエンドポイントを追加する
- APIの仕様書に合わせて設定を行う
- 操作種別:作成API
- リクエストタイプ:一括リクエスト
- バッチサイズ:100
- パス:
/api/v2/users/create_or_update_many - HTTPメソッド:POST
-
リクエストテンプレートには、APIのリクエストボディの内容に合わせて設定する
{ "users": [ {% for row in rows %} { "name": "{{ row.name }}", "email": "{{ row.email }}" }{% unless forloop.last %},{% endunless %} {% endfor %} ] } - HTTPヘッダに以下の内容を設定する
- ヘッダー名:Content-Type
- 表示名:Content-Type
- デフォルト値:application/json
- 必須にのみチェック
- 接続確認で実際にデータ転送が実行できることを確認する
※ 実際にAPIリクエストを実行するのでデータが転送されます。- 接続確認に利用する接続情報に作成した接続情報を選択する
- 接続情報に利用するサンプルデータに適当な値を入れる
- 「行を追加」から複数レコードを指定できる
- 「行を追加」から複数レコードを指定できる
- 「接続を確認」を実行して「エンドポイントへのリクエストに成功しました。」となったらOK
(実際にユーザーが作成されるので注意が必要)
転送設定の作成
準備は整ったので、実際に転送設定を作成していきます。
作成する転送設定
- 一例として転送元にGoogle Spreadsheetsを選択する
- 上記で作成したエンドポイント「Create Or Update Many Users」を使って、ユーザーの追加と更新を一括で実行する
設定手順
-
スプレッドシートにZendeskに追加、または更新したいユーザーのレコードを準備する
※ Zendeskの場合、emailまたはexternal_idを利用して既存ユーザーを特定します。name email 説明 test_edit@example.com test@example.com nameを修正 test2_edit@example.com test2@example.com nameを修正 test3@example.com test3@example.com 変更なし test4@example.com test4@example.com 新規ユーザー追加 - 転送設定STEP1の転送先カスタムコネクタの設定で、上記で作成した接続情報とカスタムコネクタを選択する
- モードは「追加(INSERT)」を選択する
- 作成エンドポイントに「Create Or Update Many Users」を選択する
- STEP2に進むとプレビューが表示されるので「リクエストテンプレート展開結果」を確認してレスポンス形式に問題ないことを確認する
- 設定を保存して実際に転送を実行し、Zendesk側のユーザーに追加・更新ができていることを確認する
※ 最終更新の日時が違うところから分かるのですが、test3@example.comのユーザーは更新が発生していないので、スプレッドシートにレコードはありましたが、更新対象からは外れます。
今回はZendesk APIを利用しましたが、他にもREST APIの提供があり、TROCCOのカスタムコネクタの仕様に合うサービスの場合は、転送が可能ですのでお手元で検証してみてください。
設定方法で疑問点等ありましたら、お気軽にサポート窓口までお問い合わせください。
コメント
0件のコメント
記事コメントは受け付けていません。