営業日カウントダウンbot Zapier,slack,GoogleSpreadSheet
GASで営業日カウントダウンbotを作った。
Zapierでもできるよね、ってことで、その作成メモ。
作成手順
祝日リストの作成
Zapier連携用のスプレッドシート用意
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
Choose app & event
今回は平日の毎朝7時くらいにslack通知したい、という設定です。
Set up trigger
週末(土日)に実行するかどうか、
時間はいつやねんと聞かれるので設定します。
ここで注意なのは、注意書きにある通り、your timezone settings です。自分のお住まいの地域や、狙いの時間帯になる様に、アカウントのタイムゾーンの設定を確認しておいてください。
Test trigger
ここよく分かんなかった。テスト用の日付ってことなんかな。そのままそこにあったDayAで問題なく動いているような気がする。Learn more about test data. をクリックしてもページに飛ばないんだよね。
2. Action Lookup Spreadsheet Row in Google Sheets
Lookupの設定でちょっと悩んだ。これでいいのかなあと思いつつ、無理くりなんとした。
Choose app & event
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に通知がきます。
メッセージにメンション含めておけば、メンションもつく。
取り急ぎ、こんな感じ!
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!