Secret Ninja Blog

Support Engineering Manager してます

Zendesk: TriggerでCCに任意のEmailアドレスを自動で追加する

Zendeskでは、Triggerを使うことで、チケットのステータス変更時の特定の条件に対して様々なオペレーションを行うことができます。

しかし、ZendeskのCCにEnd-userを追加するということが残念ながらサポートされておらず、コミュニティページでも長らく機能追加についてはアップデートがされていません。 下図の機能が、Agentを追加することしかできません。

f:id:toru-takahashi:20190524193352p:plain

一方で、コメントの中で、HTTP TargetのExtensionとZendesk APIを使ったワークアラウンドが書かれていたので、この記事ではそのやり方を説明します。

Add end-user as CC via Trigger or Automation – Aide Zendesk

ベストな方法

Triggerを使った方法の場合、現状は個別でのCCリストの管理などが必要になります。これは組織規模が大きくなるにつれて管理の煩雑化などが発生します。 そのため、個人的にはサポートフォームにCCを追加し、毎回必要なCCを入力させるのが良いとは思います。 僕自身では、ZendeskのユーザフィールドにSFDCの各種必要情報を同期させる仕組みを作っており、それを元にZapierで必要な人に転送したりしています。将来的にはZendesk Sunshine(Custom Object)とかで柔軟にユーザ情報を管理できるようになるといいですね。

とはいえ、、、のワークアラウンド方法の説明が下記になります。

HTTP Target Extensionの作成

AdminのExtensionページに行き、新しいExtensionを追加します。

f:id:toru-takahashi:20190524193234p:plain

HTTP Targetを選択します。

f:id:toru-takahashi:20190524193308p:plain

下記の項目を設定します。

  • Title: 任意の名前
  • URL: https://<自社のZendesk名>.zendesk.com/api/v2/requests/{{ticket.id}}.json
  • Method: PUT
  • Content Type: JSON
  • Basic Authentication: Enableにし、Adminのユーザ名・パスワード

{{ticket.id}}などの変数を使うことができ、これによりTrigger実行時の対象のチケットIDが自動で埋め込まれます。

f:id:toru-takahashi:20190524193821p:plain

Triggerの作成

上記で作成したExtensionを使うためのTriggerを設定します。 例えば、チケットがNewで作られた時に、アクションをNotify Targetとして選択し、先ほど作成したExtensionを指定します。

f:id:toru-takahashi:20190524194100p:plain

JSON Bodyには下記をコピペし、CCに追加したいEmailを設定します。

  • 複数入れたいとき:
{
  "request": {
        "email_ccs": [
          { "user_email": "cc@hello.com","action": "put"},
          { "user_email": "cc@gmail.com","action": "put"}
      ]
    }
}
  • 1個のだけのとき
{
  "request": {
        "email_ccs": [
          { "user_email": "cc@hello.com","action": "put"}
      ]
    }
}

テスト

テスト的にNewチケットを作ると、追加されることが確認できます。

f:id:toru-takahashi:20190524194341p:plain