![見出し画像](https://assets.st-note.com/production/uploads/images/77496173/rectangle_large_type_2_3f8617eec97bc1526dc9ae2c7702043f.png?width=1200)
営業日カウントダウンbot Zapier,slack,GoogleSpreadSheet
GASで営業日カウントダウンbotを作った。
Zapierでもできるよね、ってことで、その作成メモ。
作成手順
祝日リストの作成
Zapier連携用のスプレッドシート用意
Zapierで設定
1.祝日リストの作成
![](https://assets.st-note.com/img/1651286491618-MsxJEvpg7Q.png)
営業日を計算するために、スプレッドシート に祝日リストを用意する。
簡単に作るなら、内閣府のサイトからデータ持ってきてコピペすれば良い。内閣府のサイトにはCSVもある。
毎年コピペが面倒なら、GAS組んで自動更新しても良い。
内閣府
GASで祝日の参考
2.Zapier連携用のスプレッドシート用意
祝日リストを利用して、残り営業日計算して、slack通知用の文章もここで作った。E列はZapierで設定の際に使う用。後述するが、この辺よくわかんなかったんだよな。
![](https://assets.st-note.com/img/1651232488639-MuYJF7DEhk.png?width=1200)
=NETWORKDAYS(TODAY(),B2,'祝日リスト'!B2:B)
![](https://assets.st-note.com/img/1651286632895-fTGUVKmWbT.png?width=1200)
="今日は"&TEXT(A2,"yyyy/MM/DD(aaa)")&"です。"&CHAR(10)&TEXT(B2,"yyyy/MM/DD(aaa)")&"まで、"&CHAR(10)&"残りの営業日は"&CHAR(10)&"あと"&C2&"日です!"
3.Zapierで設定
こんな流れになる。
![](https://assets.st-note.com/img/1651232422615-rBcLgopXcS.png?width=1200)
Zapierのスケジュールをトリガーとして、
指定の日時に、
スプレッドシートの値を取得して、
slackに通知する、
って感じ。
それぞれの設定例は下記のとおりです。
1. Trigger Every Day in Schedule by Zapier
![](https://assets.st-note.com/img/1651232810306-zTwDra7xPt.png?width=1200)
Choose app & event
今回は平日の毎朝7時くらいにslack通知したい、という設定です。
![](https://assets.st-note.com/img/1651287055235-qCqCFB7Hwg.png?width=1200)
Set up trigger
週末(土日)に実行するかどうか、
時間はいつやねんと聞かれるので設定します。
![](https://assets.st-note.com/img/1651287164448-YdxCTiXvmx.png?width=1200)
ここで注意なのは、注意書きにある通り、your timezone settings です。自分のお住まいの地域や、狙いの時間帯になる様に、アカウントのタイムゾーンの設定を確認しておいてください。
![](https://assets.st-note.com/img/1651287410117-9IHwaNUvHx.png?width=1200)
Test trigger
ここよく分かんなかった。テスト用の日付ってことなんかな。そのままそこにあったDayAで問題なく動いているような気がする。Learn more about test data. をクリックしてもページに飛ばないんだよね。
![](https://assets.st-note.com/img/1651287479432-RrbPk969Gq.png?width=1200)
2. Action Lookup Spreadsheet Row in Google Sheets
Lookupの設定でちょっと悩んだ。これでいいのかなあと思いつつ、無理くりなんとした。
Choose app & event
![](https://assets.st-note.com/img/1651287761874-GkUQYcxdKO.png?width=1200)
Choose account
ご自身のアカウントで設定してください。
![](https://assets.st-note.com/img/1651287954200-KmCDDojEC2.png?width=1200)
Set up action
ここのLookup Column と Lookup Value が最初うまくいかなくて、うーんとなってた。
![](https://assets.st-note.com/img/1651288082701-tqRSGxl1Tl.png?width=1200)
スプレッドシートではこうなってる。
![](https://assets.st-note.com/img/1651288128879-GTYHbsWclY.png?width=1200)
A列とD列は毎日値が変わるし、B列も変わることありそうだし、一行目はヘッダとしてValueとして見てないっぽいし、うーん、しょうがねえ、E列に適当な値入れとくか…っていう対応。なんか他にいい方法あったら教えてください。
下の方の任意設定は特にいじらんかった。でも、下から検索(Bottom-Up)は何かの時に使えるかも。
![](https://assets.st-note.com/img/1651288284708-dsft4wkYUG.png?width=1200)
設定がうまくいってれば、Test Actionもこんな感じでスプレッドシートのデータをうまく読み込んでくれる。
![](https://assets.st-note.com/img/1651288374156-OF0mEvI3N3.png?width=1200)
3. Action Send Channel Message in Slack
これはあんま難しいとこはないですね。メッセージをカスタムするくらいかな。
Choose app & event
![](https://assets.st-note.com/img/1651288448809-r3xgSajBry.png?width=1200)
Choose account
ご自身のアカウントとワークスペース選んでください。
![](https://assets.st-note.com/img/1651288537343-QVzViZSVho.png?width=1200)
Set up action
投稿したいchannelを選んで、
Message Text で投稿するメッセージを編集する。
先に連携しているスプレッドシートから、Insert Dataできる。
![](https://assets.st-note.com/img/1651288589927-YWR1wsgxka.png?width=1200)
botの名前とかアイコン変えたい人は、この辺りの設定をゴニョゴニョしてください。
![](https://assets.st-note.com/img/1651288721046-R1qVOMvzPN.png?width=1200)
あといろいろ設定あるので、その辺もお好みで。
で、こんな感じでslackに通知がきます。
![](https://assets.st-note.com/img/1651288801906-XdQHNcdvo7.png)
メッセージにメンション含めておけば、メンションもつく。
![](https://assets.st-note.com/img/1651288895936-oWCV63IPry.png)
![](https://assets.st-note.com/img/1651288876246-LGYIKuaBRo.png)
取り急ぎ、こんな感じ!
いいなと思ったら応援しよう!
![good-sun(a03)](https://assets.st-note.com/production/uploads/images/74915135/profile_e6435615735e2ec66a673a40d90bb4a5.png?width=600&crop=1:1,smart)