こんにちは、俊介です!
Workato触ってますか?
今回も需要ありそうなシステムをWorkatoで実装しましたので書いていきます。
今回作ったものは?
はい、今回はZoomのレコーディングが出来たら、Boxにアップロードする動きです。
このシステムって結構需要あると思うんです。
「Zoomのレコーディングを1週間以上保管したいなあ」と。
- 手動でクラウドストレージに移動すればいいやん
- lambdaでコード書いて自動化させたらいいやん
やり方はそのほかにもあると思います。でも手動だと大変だし、コード書くのも、得意な人以外はこれも大変。
じゃあどうするか、iPaaSに任せましょう。ということでWorkatoで実装します。
動きの流れ
- Zoomにてレコーディングが出来たらトリガーが発火
- レコーディングの詳細を取得
- レコーディングをWoraktoに一時的保管
- Boxにレコーディングをアップロード
- アップロード後、Zoom側に残ってるデータは削除
動作イメージ
- カレンダーの予定
まずは、zoomを使っての打ち合わせをカレンダーに登録します。トリガー発火するための前準備ですね。

- Zoomの管理画面
ここは打ち合わせが終わって、レコーディングファイルを生成中の画面です。
ファイルが出来ると、Woraktoが動き出します。(動作イメージの1番が動きます)


- Boxの画面
これはレコーディングファイルがBoxに上がった後の画面です。動作イメージでいうと4番のところですね。

レシピの作り方
作る前に…
これ、すでにレシピ出来てるんです!!!
なので、すでに完成されてるレシピをインストールすれば8割できた状態で始めれます。
実装まで一瞬でできちゃいますね。
なぜかを簡単に説明するとWorkatoには、完成済のレシピを自由に選択してDLできるCommunity libraryなるものがあり、本件のレシピもそちらに共有されてます。Workato版Githubみたいなもんっすね。
レシピもたくさんあり、導入したらここを見てみるのもいい勉強になると思います。
注意点として使う際は、もちろん自社の環境に合わせて設定し直しててくださいね。レシピをインストールしたからと言ってそのままは使えません。
本ブログではここまでにしとき、本題にいきます。
レシピの全体像
全体はこんな感じです。

トリガー設定
Step1:レコーディングが出来たらトリガー発火するように設定する
- Action:「New event」
- Setup:
- Event category:「Cloud recording」
- Event:「Cloud recording completed」

アクション設定
Step2:レコーディングファイルをループ処理
- Step1のRecording filesを設定
- 複数ある場合を考慮して設定しています

Step3:エラーハンドリングの設定

Step4:Meeting IDからレコーディングの詳細を取得
- Acrion:Get object by ID
- Setup:
- Event:Cloud recording
- Meeting ID:Step2のループ処理してるMeeting IDを設定

Step5:レコーディングファイルをWoraktoにDL
- Action:「Download cloud recording」
- Setup:
- Download URL:Step2のループ処理してるDownload URLを設定
- Download token:Step1のDownload tokenを設定

Step6:Boxにファイルをアップロード
- Action:Upload file using file contents
- Setup:
- File contents:Step5のFile contentsを設定
- File size:Step5のFile sizeを設定
- Destination folder:どこに保管するか指定
- File name:なんでもいいので、ここではZoomのタイトルとしてStep5のTopicとMeeting IDを設定

Step7:エラーハンドリングの監視終了の場所
- Step4 – Step6までのアクションを監視します

Step8:エラーが起きた時のアクションを設定
- Action:Accumulate items to list
- Setup:
- List name:適当に名前を設定
- List item fields:
- Error:Step7のError typeを設定
- Details:Step7のError messageを設定
- Recording:Step2のIDを設定

Step9:特定のチャンネルにエラーメッセージを通知させる
- Action:Post message
- Setup:
- Reply channel:飛ばしたいチャンネルを選択
- Notification text:飛ばしたい内容を設定

Step10:Zoom内のレコーディングを削除
- Action:Delete object
- Setup:
- Event:Cloud meeting recording
- Meeting ID:Step2のループ処理してるMeeting IDを設定
- Action:trash

最後に
今回はZoomのレコーディングをBoxに保管させる動きを作ってみました。
Community libraryにもすでにありますので、実装まで1日かからないと思います!
※置いてあるレシピはこちらから飛べます。
もちろん下記の運用に変更も可能です。
- Box→Google DriveやAWS S3に変える
- アップロードしたら、Slackに通知させる
例えば弊社の環境で言うと、お客様との打ち合わせレコーディングは別の特定フォルダに保管させて、Slackにてお客さんにURLと一緒に通知させたりとかも需要ありそうですね。
ぜひ、Workatoをお持ちの方でZoomをご利用の方はやってみてください!
以上、ここまで読んでいただきありがとうございました。