クラウド型 ワークフロー

zendesk とクラウドワークフローとの連携方法

サポート業務のデファクトスタンダード zendesk support と Questetra BPM Suite の連携方法です

 

システム連携ネタでよくブログを書いている日下です。
※ちなみにこれまでのネタはこちら

 

あるお客様から zendesk と Questetra の連携についてご相談をいただき、実現方法を調べましたので紹介します。

今回のケースでは、すでに zendesk support を運用されていて、zendesk support でチケット作成した時やチケットステータスを「解決済み」に変更した時に Questetra にデータを渡して、処理時間の計測をしたり、負荷状況を見たい、というものでした。
※zendesk support でも時間計測する仕組みはあるのですが、要件にあわない部分があったとのこと。

Questetra は、http リクエスト or メール受信で業務フローが開始できます。zendesk support から Questetra の求める形で http リクエストの送付がでできるのかを調べてみました。

 

調べたところ、zendesk 側でまず「ターゲット」で URL を指定しておき、何らかのイベント発生時に「トリガ」を起動するようにして、その「ターゲット」に対してデータを送ることができる、ということでした。

その仕組みを使えば、チケット登録やチケットステータス変更時に Questetra の業務フローを開始する(「メッセージ開始イベント(http)」をたたく)といったことが実現できそうです。

まず、Questetra アプリ(「アプリA」とする)で「メッセージ開始イベント(http)」を準備し、「アプリA」をリリースして、受けるための URL とリクエストパラメータを確定させます。
※「メッセージ開始イベント(http)」についての詳細は以下ページを参照ください。
M221 自動開始 特定URIにHTTPリクエストがあった時に自動的に開始されるように設定する
※アプリがリリース済で、(開発中ではなく)リリース済のバージョンの「メッセージ開始イベント(HTTP)」のプロパティ画面内の「URL・パラメータ詳細」を開くと URL 等の情報が表示されます。
※初期設定では、外部システムから「メッセージ開始イベント(HTTP)」で http リクエストを受ける設定が不可になっていますので、それを「システム設定」から許可が必要です。ご留意ください。
※以前とは違って、key はイベントごとに異なるものとなります。ご留意ください。

次に、zendesk の「ターゲット」では以下のような設定をします。



また「トリガ」では以下のような設定をします。

これで zendesk でチケット作成すると、Questetra にデータが送付され、業務フローが開始されるようになりました。
※今回 Questetra 側ではプロセスデータ項目名に「フィールド名」を設定しています。それを設定していない場合にはパラメータ名は「data[0].input」といった書式になります。「フィールド名」については以下ページの「1. データ項目を1つ1つ追加する」「d. フィールド名 (オプション)」を参照ください。
M221 自動開始 特定URIにHTTPリクエストがあった時に自動的に開始されるように設定する
※zendesk からはチケット id 等、Questetra 側でひもづけるために必要となるデータを渡すようにします。

処理時間の計測をするとなると、以下の対応が必要となります。
まだいろいろと設定が必要となるのですが、今回は zendesk から Questetra にデータ送付する部分を主に伝えたかったテーマですので、詳細は割愛させていただき、別途とします。

  • Questetra 側で、別の Questetra アプリ(「アプリB」とする)で「メッセージ開始イベント(http)」を準備し、リリースして URL 等を確定
  • zendesk でチケット作成時と同様に、Questetra側の URL にあわせて「ターゲット」を準備、 またチケットステータスを「解決済み」に変えた場合の「トリガ」を準備、zendesk からはチケットの id を渡すようにしておく
  • Questetra「アプリA」は以下フローとしておく。
    (zendesk から受け取ったチケット id は起動時にデータ項目に保持)
    フロー開始直後の日時(日時1)を保存するよう「サービスタスク(データ設定)」を準備。
    「メッセージ受信中間イベント(http)」を準備して、チケット解決の場合に http リクエストを受けられるようにする。
    http リクエストを受けたら、その日時(日時2)を保存するよう「サービスタスク(データ設定)」を準備。
    経過時間の差分を計算するアドオンを使って、日時2と日時1の差分を求める。
  • Questetra「アプリB」は以下フローとしておく。
    zendesk のチケットの id を元に「アプリA」のデータを検索して、該当するプロセスの id を特定(具体的には「スクリプトタスク」で Questetra の「モニタリング API」をたたいて、「アプリA」のデータを特定する)
    そのプロセス id を使って「アプリA」の「メッセージ受信中間イベント(http)」に http リクエストを送付

ということで、zendesk から Questetra にデータを送って連携することが実現できました。
これまでいろいろなクラウドサービスの連携設定を見てきましたが、ここまで柔軟に http リクエストを送付する設定ができるサービスは初めてでした。
※ちなみに、Questetra もそれに匹敵するレベルで柔軟な設定が可能です!

また今回は zendesk から Questetra にデータを送るだけでしたが、zendesk 側にも API があり、以下のような連携も実現できました。詳しくは別の記事でまとめることにします。

  1. zendesk でチケット作成したら、Questetra にデータ送付して業務フロー開始
  2. Questetra で業務フローに沿って作業を進める
  3. Questetra で業務が完了したら、zendesk にデータ送付してチケットを解決済に変更

zendesk に限らずチケット管理の仕組みでは、処理の順序や途中の作業をモレなく実施するといったことを規定できません。が、Questetra と組み合わせることでそういった点をカバーできます。

 

もし、ご質問等がありましたら、お問い合わせフォームからご連絡ください。


こちらの Web フォームからお申込みいただきますと Questetra の無料アカウントが作成できます。上記の内容を含め、全ての機能が使えます。ぜひお試しください。

FreeQues

 

Kusaka Tsuyoshi の紹介

営業をやってますが、もともとエンジニアなので、プログラミングもやります。
Kusaka Tsuyoshi の投稿をすべて表示

あわせて読みたい
50.Questetra Tips の前の記事 難題!代理承認を実現してみる!
50.Questetra Tips の次の記事 中古PCを Chromebook として再生させる
Kusaka Tsuyoshi の他の記事 システム連携事例集 (2016年6月版)

アーカイブ

 RSS