見出し画像

営業日カウントダウンbot Zapier,slack,GoogleSpreadSheet 


GASで営業日カウントダウンbotを作った。
Zapierでもできるよね、ってことで、その作成メモ。

作成手順

  1. 祝日リストの作成

  2. Zapier連携用のスプレッドシート用意

  3. Zapierで設定

1.祝日リストの作成

冬季休暇も追加しました。

営業日を計算するために、スプレッドシート に祝日リストを用意する。
簡単に作るなら、内閣府のサイトからデータ持ってきてコピペすれば良い。内閣府のサイトにはCSVもある。
毎年コピペが面倒なら、GAS組んで自動更新しても良い。

内閣府

GASで祝日の参考


2.Zapier連携用のスプレッドシート用意

祝日リストを利用して、残り営業日計算して、slack通知用の文章もここで作った。E列はZapierで設定の際に使う用。後述するが、この辺よくわかんなかったんだよな。



=NETWORKDAYS(TODAY(),B2,'祝日リスト'!B2:B)
="今日は"&TEXT(A2,"yyyy/MM/DD(aaa)")&"です。"&CHAR(10)&TEXT(B2,"yyyy/MM/DD(aaa)")&"まで、"&CHAR(10)&"残りの営業日は"&CHAR(10)&"あと"&C2&"日です!"



3.Zapierで設定

こんな流れになる。

Zapierのスケジュールをトリガーとして、
指定の日時に、
スプレッドシートの値を取得して、
slackに通知する、
って感じ。

それぞれの設定例は下記のとおりです。

1. Trigger Every Day in Schedule by Zapier

view

Choose app & event
今回は平日の毎朝7時くらいにslack通知したい、という設定です。

Every Day, Hour, Month, Week と選べる。


Set up trigger

週末(土日)に実行するかどうか、
時間はいつやねんと聞かれるので設定します。

ここで注意なのは、注意書きにある通り、your timezone settings です。自分のお住まいの地域や、狙いの時間帯になる様に、アカウントのタイムゾーンの設定を確認しておいてください。

My Profile の下の方にある。

Test trigger

ここよく分かんなかった。テスト用の日付ってことなんかな。そのままそこにあったDayAで問題なく動いているような気がする。Learn more about test data. をクリックしてもページに飛ばないんだよね。

2. Action Lookup Spreadsheet Row in Google Sheets

Lookupの設定でちょっと悩んだ。これでいいのかなあと思いつつ、無理くりなんとした。

Choose app & event

SEARCH 三つあって、どれにしようかと思った。今回は一つのセルの値だけ取ってきたいからシンプルなやつにした。

Choose account
ご自身のアカウントで設定してください。

Set up action
ここのLookup Column  Lookup Value が最初うまくいかなくて、うーんとなってた。

スプレッドシートではこうなってる。

A列とD列は毎日値が変わるし、B列も変わることありそうだし、一行目はヘッダとしてValueとして見てないっぽいし、うーん、しょうがねえ、E列に適当な値入れとくか…っていう対応。なんか他にいい方法あったら教えてください。

下の方の任意設定は特にいじらんかった。でも、下から検索(Bottom-Up)は何かの時に使えるかも。

設定がうまくいってれば、Test Actionもこんな感じでスプレッドシートのデータをうまく読み込んでくれる。


3. Action Send Channel Message in Slack

これはあんま難しいとこはないですね。メッセージをカスタムするくらいかな。

Choose app & event

Choose account

ご自身のアカウントとワークスペース選んでください。

Set up action

投稿したいchannelを選んで、
Message Text で投稿するメッセージを編集する。

先に連携しているスプレッドシートから、Insert Dataできる。

botの名前とかアイコン変えたい人は、この辺りの設定をゴニョゴニョしてください。

あといろいろ設定あるので、その辺もお好みで。

で、こんな感じでslackに通知がきます。

メッセージにメンション含めておけば、メンションもつく。



取り急ぎ、こんな感じ!

#zapier
#slack
#スプレッドシート
#GoogleSheets

いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!