AlteryxでZendeskのユーザーを一時停止に変更する

2022.02.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、スズです。

今回はAlteryxを使ってZendeskのユーザーを一時停止に変更する方法を検討してみました。

環境と事前準備

本記事の執筆に使用した環境は以下の通りです。

  • Alteryx Designer 2021.4
  • Windows 10 Pro

また、Zendeskにアクセスしてユーザー情報を更新するため、Zendeskの認証情報が必要となります。作成方法については以前執筆した以下の記事に記載しています。

AlteryxでZendeskのユーザーを一時停止に変更する

ワークフロー全体

今回作成したワークフローの全体図はこちらです。

Zendeskからユーザー情報の取得

今回のワークフローでは、テスト用に作成したこのユーザーを一時停止に変更してみます。

以下のワークフローの赤枠部分で、Zendeskからユーザー情報の取得します。

テキスト入力ツールで取得するURLを用意します。今回はユーザー情報のページが1ページのみですので、https://<サブドメイン>.zendesk.com/api/v2/users.json?page=1というようにpage=1から取得しています。もしページが複数にまたがる場合は、反復マクロを使ってページ番号を更新しながらデータを取得することもできます。

ダウンロードツールを使ってユーザー情報を取得します。ダウンロードツールには、ダウンロードツールの基本設定にはテキスト入力ツールで用意したURLを指定し、ペイロードのHTTPアクションにはGETを設定します。また、ヘッダーに以下の定数値を追加します。

名前
Authorization Basic <Base64でエンコードされた認証情報>

ダウンロードしたデータはJSONパースツールを使って展開すると、JSON_NameとJSON_ValueStringという列が作成されます。

取得したデータのオブジェクトの意味は、Zendeskの以下のサイトにて確認できます。

データの整形

以下のワークフローの赤枠部分で、データを扱いやすいように整形していきます。

JSON_Nameの列にはusers.0.nameというような値が入っています。JSON_Nameの列の値を正規表現ツールを使ってグループIDと新しい列名を作成していきます。users.0.nameの場合、0をグループID、nameは新しい列名として使用します。

クロスタブツールを使って、グループIDごとにグループ化、新しい列名を列名としてJSON_ValueStringを値として出力します。これで、各ユーザーのデータが同じレコードに出力されている状態になりました。なお、このデータにあるurlの列は、各ユーザーの情報を更新する際に使用するアクセス先になります。

フィルターツールを使って、一時停止に変更するユーザーのレコードのみ残します。

ユーザーを一時停止に変更

一時停止にするユーザーのデータを作成できましたので、ここからはZendeskのユーザー情報を更新するための処理になります。

テキスト入力ツールで以下の値を用意します。ユーザーを一時停止(suspendedがtrue)に設定します。

{
  "user": {
    "suspended": true
  }
}

JSONフォーマットの書き方やオブジェクトの更新内容は、Zendeskの以下のサイトを参考にしています。

フィールド付加ツールを使ってZendeskから取得してきたユーザーのデータにテキスト入力ツールで用意した値を付加してから、ダウンロードツールに接続します。

ダウンロードツールの基本設定のURLには、Zendeskのユーザー情報にあるurlの列を指定します。

ダウンロードツールのヘッダーの設定は以下の通りです。

名前
Authorization Basic <Base64でエンコードされた認証情報>
Content-Type application/json

ダウンロードツールのペイロードのHTTPアクションはカスタムを指定し、PUTを入力します。フィールドからクエリ文字列/本文を取得するには、テキスト入力ツールで用意した列を指定します。

なお、ダウンロードツールのHTTPアクションにはPUTがありますが、Download Tool | Alteryx Helpに「This option only allows you to take the query body from a blob field via the Blob Input Tool.」と記載されており、Blobで使用できるようです。以下のコミュニティの記事に「Using the option "Custom..." for the HTTP action in the Download tool worked for us.」との情報があったため、HTTPアクションにカスタムを指定する方法で対応しました。

ワークフローを実行します。成功すると、200のステータスコードが帰ってきます。

Zendeskのユーザーを確認すると、一時停止に変更されていることが確認できました。

さいごに

Alteryxを使ってZendeskのユーザーを一時停止に変更してみました。AlteryxはAlteryx Serverなどを使って自動的にワークフローを実行することもできますので、別途有効期限のフィールドを用意し、期限が切れたユーザを自動的に一時停止に変更するといった使い方にも利用できるかと思います。

参考サイト