Slackで申請→承認されると、自動で処理してくれるヤツを作った feat. Zoho
やった事
・こんなのを作りました。(下のフロー図)
シンプルに書くと、
①依頼者がSlackで申請
②承認者がSlackの「承認」or「却下」ボタンクリック
③承認されたら共有フォルダ作成
④依頼者へSlackで完了メッセージ送信
です。
目的
今回そこそこの時間を費やして作ったのですが、どういう目的でやったかというと…
・たくさん時間をかけて取り組みたい仕事がある。けども作業が多くてほとんど時間をかけられない。作業を自動化して時間を作りたい
・きっと皆同じ悩みがあるだろう
・Zohoがコスパ良くて便利なのにあまり使われてないので広めたい!
という気持ちでSlackをベースにワークフローを自動化する仕組みを作ってみました。…はい、タイトルの通り Slack feat.Zoho です!
書く事
どんな感じで実装したのか(Zoho中心)
書かない事
Slack、Google Drive APIの実装方法
(ここで書かなくても皆知ってると思うので。知りたかったら聞いてくれ)
やった事(改めて)
今回は下記フローの青字箇所の機能を主に作りました。
(iPaaSとワークフローの正体はZohoでした)
で、全部説明してると膨大な量になりそうなので、作る上で重要だったZohoの機能に焦点を絞って書こうと思います。
重要な機能
a. Webhookトリガー(Zoho Flow)
b. アプリアクション(Zoho Flow)
c. Custom Function (Zoho Flow)
d. Blueprint(Zoho Desk)
e. アプリトリガー (Zoho Flow)
解説
では、順番に見ていきましょう
a. Webhookトリガー(Zoho Flow)
Zoho FlowではWebhookを受ける環境を簡単に作る事ができます。その名の通りフローを作成するのですが、できあがりは下記のようになります。
最初にトリガーを選択するのですが、Webhook以外にもアプリ(後で解説)とスケジュールがあります。
Webhookを選択すると次に、受けるデータのフォーマットの選択と、URLが表示されます。(このURLはSlackへ設定するやつ)
テストでデータを受けてみるとフォーマットを勝手に分析してくれて、後の処理でとても楽になります。(後で解説)
b. アクション(Zoho Flow)
Zoho Flowではトリガーで受けたデータをアクションとして利用する事ができます。今回いくつかのアクションを使っていますが、Zoho Deskのチケットを作成するアクションを見てみます。
アクションを使うのは簡単でドラッグ&ドロップです。
次にアクションで使う値を設定します。
画面は下記で項目に値を入力していくのみです。(簡単!)
少し戻りますが、Webhookを解析してくれたやつがココで便利に使う事ができます。どう便利になるかというと、下のようにJSONのKeyが表示されて、クリックするとデータを項目へ入力できます。
項目へ値を入力すれば設定は完了で、あとはFlowが動けばアクション(Zoho Deskのチケット作成)が実行されます。
c. Custom Functiom
上で書いたアクションはZoho Flowで連携可能なサービスのものしかありませんが、Custom Functionはコードが書けます。Zoho独自のDelugeという言語らしい。
画面はこんな感じです。下記はGASへPOSTしてるコードです。
d. Blueprint(Zoho Desk)
今回、ワークフローの役割として、いわゆるCS向けのサービスではありますが、Zoho Deskを使いました。選んだ理由としては、ワークフローが作れる、Zoho Flowとの親和性が高い(ステータスをトリガーにできる、ほとんどの値を取得・更新できる)という事でワークフローの代わりに使ってみました。
画面はこんな感じで、チケットにビジネスプロセスを設定する事ができます。
設けたいステータスをドラッグ&ドロップで並べて行きます。
ドラッグ&ドロップでステータスを繋げてプロセスを作っていきます。もちろん分岐とかもできます。
各プロセスは、
・誰が次のステップへ進める事ができるのか。
・次のステップへ進む時にどういうアクションを実行するか(自動)
・次のステップへ進む時にどの項目を入力させるか
・次のステップへ進む時にCustom Functionを実行する
などが設定可能です。
(国内製のワークフローでもこれくらいの機能ほしい!)
e. アプリトリガー (Zoho Flow)
トリガーとしてWebhookを紹介しましたが、アプリトリガーもあります。
例えば、上で作ったようなステータスの遷移をトリガーにする事ができます。
アプリトリガーですが、対応しているサービスは多いです。
Slack、Box、GSuite、Office365などなど、メジャーなのはほぼ揃ってる。(下記は一部です)
例えばZoho Deskを選択すると20近くトリガーがあります。今回はチケットのステータスをトリガーにします。
あとはここから同じようにFlowを作っていきます。もちろんチケットのデータを引っ張ってきてSlackへPOSTする事も可能です。
という感じで、実際やった事のごくごく一部しか書いてませんが、こういった機能をベースに作りました。
改めてフロー図。
最後に…
ワークフローを自動化するというのは、とても大きな効果が得られる施策だと思うし、何よりカッコいい!国内メーカー頑張ってくれ!(ステータスUpdateでPOSTくらいしてほしい)
そして、それができてるZohoすごい!
以上