新入社員、zapierに出会う

#はじめに

こんにちは、サービスデザイン部の玉置です。
最近ノーコードツールのzapierに出会い、めちゃくちゃ便利で誰でも簡単にアプリを作れる！と感じたので、zapier知らない人・知ってるけどまだ使ったことない人向けの事例共有記事を書きます。zapierには無料枠と有料枠があり、今回は無料枠でできることを中心に紹介します。ぜひ最後まで読んでいただけると嬉しいです！

#きっかけ
そもそものきっかけを少し。入社して早半年経ち、コロナ禍でリモートワークしつつぶちあたったもっともでかい課題とは何かを振り返ってみました。タイトルにもありますが、すばり時間管理です。夢中で調べ物してふと時計をみると会議開始前時間ギリギリ！だったり、やばいもう会議開始時間だ！となることがしばしば...
![sick_panic_woman.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/80320f16-7d96-ebb1-5b9c-0e0a32068513.png)

もう少し直前になって気が付くことができればいいな...会議前にslackに通知してくれるリマインドアプリを作りたいれけどプログラミングに慣れていないので時間がかかるしなあ...と思っていたところ、チーム内でノーコードツールが話題に上がりました。GUIでものの数分で簡単にアプリ作れるとのこと。これはもう使うしかない。

#会議直前リマインドslack bot作ってみた
そんなわけで、会議直前に会議タイトルとリンクを通知してくれるBotをサクッと作ってみました。
###1.作りたいもの
会議は全てTeamsなので、Teamasの会議開始10分前にslackで通知する仕組みを作ります。ノーコードツールはインプットとアウトプットを設定する仕様です。ここではTeamsで会議が開始される10分前にslackに通知したいので、インプットをTeamsでの会議開始10分前、アウトプットをslackでメッセージ送信と設定します。
![Qiita構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/4a7926e6-7e3a-483d-9c03-d8a5ab03b138.png)

###2.IFTTTなどと他ノーコードツールと比較してみた結果..
ひとことにノーコードツールといってもIFTTTやintegromat がありますが、ぱっと見のUIの好みさ・トリガーにできる会議ツールの豊富さ(ZoomやWebexなど)の観点からでzapier作ってみました。

###3.いざ作らん
アカウントを用意できたらあとは簡単。画面左のCreate Zapから作っていきます。そこからTrigger(インプット)とAction(アウトプット)を選びます。zapierの完成イメージがこちら。
![スクリーンショット 2021-11-19 19.52.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/d5c2a5e6-86e3-d280-c515-2d6111080300.png)

###Triggerの設定
まずはTriggerの設定です。App EventからMicrosoft Outlookで検索します(ここでTeamsと検索しても出てこないので要注意)。

![スクリーンショット 2021-11-19 19.54.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/f1b367f9-62da-0221-8efd-4ea82a37b429.png)

Choose app& eventで続いてCalendar Event Startを選択。これがTeamsのカレンダーで会議開始Triggerになります(New Calender Eventではないのでご注意)。左上のName your zapに名前を自由に変更できます。

![スクリーンショット 2021-11-26 10.00.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/30b60f83-110e-fb31-23b9-d1d586993427.png)


Choose accountでは自分のアカウントを連携させます。

Set up trigger では会議開始何分前をTriggerにするかを選択できます。
自由に設定することができ、数週間前から数分前まで設定できます。

![スクリーンショット 2021-11-22 17.38.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/cd34b907-31a1-f92c-cef6-d9544114bf94.png)

次のTest triggerではzapierがAPIを叩いて取得した情報一覧を見せてくれます。ここでは、実際にzapierがoutlookから取得できた情報一覧を確認できます。Teamsの情報が表示されていますね！(※情報は一部消しています)
![スクリーンショット 2021-11-26 9.53.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/9890c374-48fc-bf6a-9d9d-d57c4402ae07.png)

これでTriggerの設定は完了！

###Actionの設定
続いてActionの設定です。トリガーに対して何をしたいか？を自由に設定できます。slack投稿をアクションとしたいので、ここではslackを設定します。

![スクリーンショット 2021-11-19 20.11.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/6e41b3fb-7177-fd96-1d2b-2ba6cc0b4030.png)

Choose app& eventではSend Channel Messageを選択します。

![スクリーンショット 2021-11-19 20.11.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/60f22e3c-2b10-068e-dedf-cfa233d6d49e.png)

Set up actionで具体的な設定をします。
![スクリーンショット 2021-11-19 20.12.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/883b8018-a383-fbb7-677b-3df165e47ce8.png)

Message Textでは投稿したい内容を入力します。Triggerから設定を引用できます。自分はTeamsのSubjectやURLを組み込んでみました。SubjectやURLはTriggerのtestでの内容が反映されます。
![スクリーンショット 2021-11-22 18.13.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/5daad1f2-74ce-144c-8a23-37d3a43047ca.png)

Message Text以外には、botとして投稿するか、zapierのリンクを貼るか、などなど項目があるので自身の要望に合わせて変更します。

右上のshareボタンの隣のスイッチをonにしたら完成！

![スクリーンショット 2021-11-19 19.52.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/d7754a69-ca32-4f49-c050-04b35b44df66.png)

###完成画面
実際のslack通知画面がこちら
![スクリーンショット 2021-11-19 20.26.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/ba604b92-4de6-3264-00aa-64284e2a2f7b.png)


###4.使ってみた感想

MTGが連続しない時に特に役立ちました。作業に没頭しているとやはり時間を忘れてしまうので、10分前に通知が来てくれることで非常に助かってます。

#Zapier無料版でできること
無料版でもできる範囲はめちゃくちゃ広いです。zoomやWebexのような会議ツールだけでなく、あらゆるサービスをTriggerに設定できます。例えば、Twitterから特定の単語を抽出し、slackに通知することができます。ただし、無料版では今回紹介したように、1つのTriggerに対し1つのActionまでしか設定できないので要注意です。複数のActionを設定する場合、有料アカウントの発行が必要になります。

#Zapier有料版でできること
無料版はAction数が制限されていましたが、有料版では無数にActionを設定できます。
また、AWSのサービスをActionに設定できます。TriggerにできるAWSサービスはS3、SQS、DynamoDBやLambdaなどもりだくさん。

##業務で活用してみた
大変ありがたいことに課長に有料アカウント発行していただけたので業務活用してみました！活用事例をご紹介します！

###やりたいこと
ざっくりいうとフロントエンドまるっとzapierで設計しちゃおう！といった事例です。ユーザがslackにファイルをアップロードすると、そのファイルが自動的にS3のバケットにため込まれる仕組みを作ります。バケット上に複数のフォルダ(キー)を作成し、ある条件を満たすファイルのみAのキーへ、それ以外はBへ。この制御はzapierではできないのでLambdaでやります。Lambda呼び出しもなんとzapierでできちゃいます。構成がこちら。


![ツール構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/ed75dcdb-f578-1c93-1c72-35fd8b320a61.png)

###zapierで実現
zapierでの設計画面がこちら。4STEPで簡単に設計できます。slackへのファイル投稿(New File in Slack)をTriggerにし(ファイル投稿を設定できるのしゅごい)、S3やLambdaをActionにしました。Step2のActionでフィルタリング機能を挟みます。ここでは、S3にアップしたいファイルをファイル名でフィルタリングします。
例)hogeから始まるファイルのみS3にためたい。hoge_hoge.csv, hoge_1.csvなど。
また、Step4のLambdaでは、lambda_handlerのeventに受け渡したい項目を設定しました。

![スクリーンショット 2021-11-25 11.30.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/78a6aefb-fec9-4928-2c09-814a75b8b2c2.png)

###Lambdaでやったこと
slack上で受け渡されるファイルはcsvだけなので、ファイルの中身がcsv形式を満たした場合はキーAへ移動させ、それ以外はキーBなどのプログラムをPythonでコーディングしました。

###注意事項
Lambdaのリージョンが3つしか選べない(2021年11月現在)...ので新しくLambdaを作るときは東京リージョンに設定しないでください。
![スクリーンショット 2021-11-25 11.38.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286842/2f3d683f-e675-da09-2866-4b277d035d90.png)

#最後に
今回は、新入社員のzapierの活用事例をご紹介しました。ちょっとしたタスクマネジメントに役立てるツールづくりとしてもかなり有効なのではないでしょうか?
そもそもzapierの日本語での活用事例記事が少ないので、日本語記事をお探しの方のお役に立てれば嬉しいです☆