こちらは Livesense Advent Calendar 2025 DAY 5 の記事です。
はじめに
リブセンスの転職ドラフト事業部で、PdM見習いをしている740🍐と言います。 最近、姫様を連れ回しとある世界を平和にしたばかりなのですが、数百年後に邪教がはびこり出したので、再び旅に出ています。
本題に入る前にお伝えしておきたいのが、私はコードが書けません。 そのため、この記事に技術的なコードの話は出てきません。その点をご了承の上、ゆるりと読んでいただけると幸いです。
数値を「みんなで」意識するために
私が所属するチームは、エンジニア数名、デザイナー1名、そしてPdM見習いの私という構成で、日々サービスの課題に向き合っています。
チームではプロダクトにおける明確な数値目標を持っていますが、以下の理由から「日々変動する数値を全員で追いかけ、即座にアクションへ繋げること」が非常に重要となっています。
- 開発期間が短い:転職ドラフトはイベント形式のリクルーティングサービスであり、イベント開催中はユーザーの混乱を避けるべくリリースを控えているため、改善施策の実装に充てられる期間が限られている
- 振り返りのスピード感:イベント終了後にまとめて振り返るのでは、次の開催までの改善に間に合わない
はじめはダッシュボードを各自で見ていましたが、「個別に確認する」だけでは共通認識を持ちにくく、議論に発展しづらいという課題がありました。
数値を見ることはあくまで手段であり、重要なのはその後のアクションです。 「気軽に数字を見て、みんなで話し合える環境」を作りたい。 そこで今回は、Zapierを利用してSlackに数値を自動通知する仕組みを作った話 をします。
やったこと
Zapierを用いてGoogleスプレッドシートと連携し、Slackにメッセージを自動投稿するようにしました。
流れはシンプルです。
- Spreadsheetに流したいデータを用意
- ZapierでSpreadsheetの情報を取得し、Slackに流す
用意するもの
- 自動連携ツール(今回はZapier)
- Google Spreadsheet
- 流したいデータ(今回はRedash等で抽出したデータを想定)
Zapierとは
プログラミング知識なしで、様々なWebサービスやアプリを連携・自動化できるノーコードツールです。 リブセンスでは有償ライセンスを契約しているため、社内の誰でも利用しやすい環境が整っています。
なぜSlackなのか
リブセンスでは全社員がSlackを日常的に使っています。 全員が必ず目にし、その場でスレッドを立てて気軽に議論を始められる場所として最適でした。(あとカスタム絵文字が多くてワイワイしやすいのも理由です)
設定の流れ
実際の設定内容を、仮の「果物出荷データ」を元にご説明します。
1. Spreadsheetに通知データを準備する
まずは元となるデータです。今回はRedash等からデータが出力されている前提で進めます。

さらに「特定の条件(文字列)に一致した時だけ通知したい」ので、その判定もシート上で行います。 今回「土日祝以外」の日に通知するため、祝日リストのシートも用意しました。

C列の曜日は =TEXT(A2, "ddd") で出しています。
2. データを文章に置換する
通知用の文章をSpreadsheet上で作成します。 見てご覧、このとても気持ち悪いA:B列を。

このシートでやっていることは以下の3点です。
- 土日祝の判定:
TODAY()と祝日リストを照合し、通知対象外ならFALSEを返す - 埋め込みデータの用意: SQL等で取得した数値を参照する
- テキストの生成: テンプレートの
[りんご]などを実際の数値に置換する
テキスト置換の工夫
B5セルには以下のようなテンプレートを用意しています。
こんにちは! 📦 *出荷数報告:[昨日の日付]* *📅 昨日の出荷数* • 🍎 りんご: [りんご] • 🍊 みかん: [みかん] • 🍇 ぶどう: [ぶどう] • 🍑 もも : [もも] ...
この [] 部分を一気に数値へ置換するために、以下のような対応表(A7:B28)を用意し、REDUCE関数を使いました。

J1セルに入れた関数はこちら。
=REDUCE(
B5,
A7:A28,
LAMBDA(
text_so_far,
current_tag,
IF(
current_tag = "",
text_so_far,
SUBSTITUTE(
text_so_far,
current_tag,
INDIRECT("B" & ROW(current_tag))
)
)
)
)
この関数は 「対応表の上から順に、タグを数値へひたすら置換していく」 という処理をしています。text_so_far, current_tagなどは任意でつけれます。
これを使えば、今後項目が増えても対応表に行を追加するだけで済むので、メンテナンスが楽になります。(関数についてはAIにやりたいことを伝えて書いてもらうこともしています)
これで、J1セルにSlackへ投稿する完成文が出来上がりました。
3. Zapierで連携設定をする
ここからがZapierの出番です。 全体像はこんな感じ。ブロックを積むように設定していきます。

Step 1: 毎日決まった時間に動かす
今回は日々の数値を追いたいので、トリガーは Schedule by Zapier の Every Day を選びます。

時間はチームのデイリーに合わせて 10:30 AM に。
土日はゆっくり休みたいので Trigger on weekends? は no に設定します。
※TimeZoneが Asia/Tokyo になっているか要確認です!
Step 2: Spreadsheetのデータを読み込む
Actionに Google Sheets > Get Many Spreadsheet Rows を選び、先ほど作成したシートを読み込ませます。
行列の範囲もSpreadsheetのデータが取得できるようにしておきます。

Step 3: 条件に合うかチェックする (Filter)
ここがポイントです。
ただ流すのではなく、 「通知が必要な時だけ」 Slackに飛ばすため、Filter by Zapier を使います。
- Field: 通知判定用のカラム(例:IsNotify)
- Condition:
(Boolean) Is True - Value:
TRUE
Step1で週末は流さないという設定をしているのに、何故わざわざFilterを挟んでいるかというと、Step1では「祝日」の判定はしていないためです。日本の祝日を知ってもらう必要があります。 Spreadsheet側で「土日祝ならFALSE」になるように式を組んであるので、このFilterを通すことで「平日のみ通知する」気の利いたBotになります。
Step 4: Slackへの通知設定
最後に Slack > Send Channel Message を設定します。
通知したいチャンネルに連携しているSlackアカウントを招待しておいて下さい。
- Message Text: Spreadsheetから取得した 「完成済みのテキスト(J1セル)」 を埋め込みます。 ※ 他の項目は任意です。

Step 5: いざSlack通知!
テストで流してみましょう。

アイコンは本番運用しているものと一緒です。
朝なので☀️のアイコンを使いたかったのですが、リブセンスではカスタム絵文字の「sun」で「すん」が登録されており、私はそれに気づかずZapierのBot Iconを:sun:で登録したため、「すん」で流してしまいました。
おもろいからもうこのままでいいや!と設定を変えず運用したところ、グループでは「今日のすん」「すんのアラート」などで愛されています。
通知をきっかけに話を始めることも多くなり、良い試みだったと思います!
ちなみに、今回は手動でポチポチ設定しましたが、Zapier上のCopilotにやりたいことを伝えると自動で設定してくれます。

おわりに
昨今様々な方法で、ノーコードで自動化できるようになってきました。 私自身、今までは自分で書いていたようなSQLや企画のWBSを生成AIに書いてもらうことも増えており、生産性はどんどん向上していっていると感じています。
しかし、その後の管理体制や属人化しないようにするにはどうしたらいいかなど、それでも人がその時の状況にあわせて考えることはまだまだ多いです。 今後も世の中便利なものがたくさん生まれていく中で、その時にあった方法を選べるようたくさんの手段を知り、「できるのかな?」とチャレンジしていくことはこの先もずっと大事なのではないかと思います。
これから自分で何かを書くという機会は減るかも知れません。 ですが、私がSQLを書けるように学んだこと、時間をかけていろんな結果を出した喜びは、この先もどこかで糧になると信じています。
これから色々なことが変わっても、チームでワイワイできることを一番大事にしたいと思います。
それでは、良い週末を!🥂
-------
オマケ:参考までに転職ドラフトスカウトの開催スケジュールです。
11月と12月は開催回が多いのと年末ということもあり、実装期間が短いです。
毎月「あれ、リリースできる日少ないね?」となりながらもみんなで切磋琢磨しています。
このカレンダーはGeminiにPythonコードを書いてもらい、Google Colabで出力しました。

-------