Photoruction工事中!

Photoructionの開発ブログです!

Slackのスレッドに予約投稿する方法(ノーコード)

こんにちは。QAエンジニアの山本です。 この記事では、Slackのスレッドに予約投稿する方法を共有します。

概要

Slackのスレッドに予約投稿したいメッセージを、スプレッドシートに記載しておくと、Zapierが自動で予約投稿するシステムを作成します(^^)/

事前に準備して頂きたいもの

  • Googleアカウント
  • Slackアカウント
  • Zapierアカウント
  • SlackのワークスペースにZapierがインストールされていること

スプレッドシート・Zapierの作成手順

スプレッドシート

最初に、スプレッドシートを作成します。 完成イメージは、下記です。

スプレッドシートの完成イメージ
スプレッドシートの完成イメージ

作成手順

  1. 新規ファイルを作成します
  2. 完成イメージを参考に、1行目の項目名を入力します
  3. A列の予約IDの入力をします
  4. A~E列を枠線で囲みます
  5. G列に下記関数を入力します(見本は2行目の値です)
    =REGEXREPLACE(REGEXREPLACE($B2,".*archives/",""),"/.*","")
  6. H列に下記関数を入力します(見本は2行目の値です)
    =REGEXMATCH(REGEXREPLACE($B2,".*archives/",""),"/")
  7. I列に下記関数を入力します(見本は2行目の値です)
    =REGEXMATCH($B2,"thread_ts")
  8. J列に下記関数を入力します(見本は2行目の値です)
    =IF(AND($H2,$I2=FALSE),REGEXREPLACE($B2,".*archives/.*/p",""),"")
  9. K列に下記関数を入力します(見本は2行目の値です)
    =LEFT($J2,10)
  10. L列に下記関数を入力します(見本は2行目の値です)
    =RIGHT($J2,6)
  11. M列に下記関数を入力します(見本は2行目の値です)
    =IFS($I2,REGEXREPLACE(REGEXREPLACE($B2,".*thread_ts=",""),"&.*",""),$H2,CONCATENATE($K2,".",$L2),TRUE,"")
  12. O2のセルに下記関数を入力します
    =TEXT(NOW(),"YYYY-MM-DD")
  13. P2のセルに下記関数を入力します
    =TEXT(NOW(),"HH")
  14. Q2のセルに下記関数を入力します
    =COUNTIFS(D2:D100,O2,E2:E100,P2)
  15. R2のセルに下記関数を入力します
    =IFERROR(QUERY(A2:M100, "select C,G,M where D = date '"&O2&"' and E = "&P2&""),"")

スプレッドシートは、上記で完成です!

Zapier

次に、Zapierを作成します。 完成イメージは、下記です。

Zapierの完成イメージ
Zapierの完成イメージ

作成手順

最初にCreate a Zap画面で、下記のような文章を入力し、「Generate」をクリックします

Create a Zap画面
Create a Zap画面

英文の例:Once every hour, send values from Spreadsheet to the Slack thread

生成したアプリを開きます。

1. Zapの手順1に「Schedule by Zapier」を追加する

  1. App&eventで「Schedule by Zapier」を選択する
  2. Eventで「Every hour」を選択する
  3. Trigger>Trigger on weekendsで「no」を選択する
  4. Testを実行する

2. Zapの手順2に「Get Many Spreadsheet Rows 」を追加する

  1. App&eventで「Google Sheets」を選択する
  2. Eventで「Get Many Spreadsheet Rows 」を選択する
  3. Accountで自分のGoogleアカウントを選択する
  4. Action>Driveで上記のスプレッドシートが格納されているDriveを選択する
  5. Action>Spreadsheetで、上記のスプレッドシートを選択する ※スプレッドシートを検索する時は、スプレッドシートIDで検索する https://docs.google.com/spreadsheets/d/(スプレッドシートID)/edit#gid=0
  6. Action>Worksheetで、上記のスプレッドシートのシート名を選択する
  7. Action>Columnsに「Q:Q」を入力する
  8. Action>Row Countに「1」を入力する
  9. Action>First Rowに「2」を入力する
  10. Testを実行する

3. Zapの手順3に「Filter by Zapier」を追加する

  1. Appで「Filter by Zapier」を選択する
  2. Filter setup & testingで下記を選択する
    Filter by Zapier画面
    Filter by Zapier画面

4. Zapの手順4に「Get Many Spreadsheet Rows 」を追加する

  1. App&eventで「Google Sheets」を選択する
  2. Eventで「Get Many Spreadsheet Rows 」を選択する
  3. Accountで自分のGoogleアカウントを選択する
  4. Action>Driveで上記のスプレッドシートが格納されているDriveを選択する
  5. Action>Spreadsheetで、上記のスプレッドシートを選択する
  6. Action>Worksheetで、上記のスプレッドシートのシート名を選択する
  7. Action>Columnsに「R:T」を入力する
  8. Action>Row Countで下記画像の値を選択する
    Action>Row Countの値
    Action>Row Countの値
  9. Action>First Rowに「2」を入力する
  10. Testを実行する

5. Zapの手順5に「Looping by Zapier」を追加する

  1. App&eventで「Looping by Zapier」を選択する
  2. Eventで「Create Loop From Line Items」を選択する
  3. Action > Line itemsで下記画像の値を選択する
    Action > Line itemsの値
    Action > Line itemsの値
  4. Testを実行する

6. Zapの手順6に「Send Channel Message」を追加する

  1. App&eventで「Slack」を選択する
  2. Eventで「Send Channel Message」を選択する
  3. Accountで自分のSlackアカウントを選択する
  4. Action>Channel・Message Textに下記を選択する
    Action>Channel・Message Textの値
    Action>Channel・Message Textの値
  5. Threadで下記画像の値を選択する
    Threadの値
    Threadの値
  6. Testを実行する
    ※送信予定のメッセージが2個以上ある時でも、Testでは1個のメッセージしか送信されない

7. Timezoneを日本の時間に変更する

  1. サイドメニューのDetailsアイコンをクリックする
  2. Timezoneを「GMT+09:00 Asia/Tokyo」に変更する

8. 「Publish」をクリックする

完成!!

株式会社フォトラクションでは一緒に働く仲間を募集しています