見出し画像

GASを使わずにBigQueryの集計結果をSlackへ定期投稿する方法

最近ポケモンユナイトでマスターランクになったプロダクトマネージャーのむくどりんです。わーい!

プロダクトマネージャーは様々なKPIを追いますよね。クエリを書いて個々に出したり、重要な指標はDashboardをつくったりもすると思います。
・毎回クエリを書きたくない!
・Slackでbotのように毎朝教えてほしい!
・でもGASとかプログラミングはいやじゃ!
そんなあなたにおすすめな方法を紹介します。
僕は前職がメーカーの企画だったので、クエリを書き出したのもここ2年ほど…大丈夫!誰でもできる!

この記事でできること

こんな感じで、指定した時刻にSlackへBigQueryの結果を投稿してくれます。
PMの代わりに!!!素敵!

全体像

BigQueryの内容をデータコネクタでスプレッドシートへ
スプレッドシートの内容をSlackがワークフローを使って自動投稿しています

1.BigQueryとスプレッドシートの連携

まずは、BigQueryで出したい情報を書きましょう。今回は「REALITYで1日にいいねは何回送られたか?」を出してみます。

「いいね」とは配信の視聴中に配信者に送れるもの。誰でもいくつでも送れます。

欲しいスプレッドシートはこんなイメージ

まず、日別のいいね数を計測するクエリを書きます。

続いて、スプレッドシートを用意しましょう
最終的に必要なのは、特定のカラムに「昨日のいいね数」が表示されているシートです。作成したシートで、「データ」>「データコネクタ」>「BigQueryに接続」を選択

カスタムクエリを作成、を押すとクエリを書き込める箇所が出るので先程書いたクエリを入れます。

接続ボタンを押すと集計してくれます。すごそう。

このままだとスプレッドシートとして読み込みが出来ないので「抽出」を押します。(2020年くらいの時は不要でした…ぐぬぬ)

続いて、このシートが自動でクエリを回せるように設定します。
更新オプションから、このクエリの更新頻度を決めることが出来ます。

最後に「抽出データ」の数値を引用する形で「シート1」へデータを整えます。今回は「昨日のいいねの数」を知りたいのでtoday関数とvlookup関数を使いました。

これで、C2セルに「昨日のいいね数」が表示される状態になりました。(最初からクエリで指定してもいいのですが…直近の数字も知りたい事が多いのでクエリは日別にすることが多いです)

2.スプレッドシートとSlackの連携

後半戦!今度は、スプレッドシートの内容をSlackが取得する方法です。
1.繰り返し設定
2.指定したスプレッドシートを読み込む
3.指定したチャンネルに投稿する
というワークフローを組みます。

くまさんは何でも教えてくれる。知ってることだけ。

まずSlackのテキスト入力面にあるカミナリマークから「ワークフロービルダーを開く」を選択

スケジュールされた日付と時刻を選択し、メッセージを送信する時刻や頻度を決めます。

次に「Select a spreadsheet row」を追加
1.Select a spreadsheet で 使うスプレッドシート、今回は「世界にあふれるいいねを調べるシート」を選択
2.Sheet で 使うシート、今回は「シート1」を選択
ここからがとてつもなく分かりにくいのですが…
3.Choose a column to search : どの列で探すか?
4.Define a cell value to find : その中のどのセルの行を使うか?
例えば、「指定」と「数値」で選択すると「指定」列の「数値」の行を使用する。となります。

最後に、「メッセージを送信」の設定をします。

この「変数」で「昨日のいいね」を選ぶと
「数値」の行における「昨日のいいね」のセルが指定されます。

今回で言うとC2にあたる場所

3.自動で投稿される!

あとは指定の時刻を待つのみ
まいにち、世界にあふれるいいねの数を教えてくれるくまさんが生まれました。

4.小ネタ

後半で説明したワークフローは結構便利で、コーディングなしで色々botをつくれます。
新卒にリマインドしたり

スプレッドシートで管理している何かがあれば簡単に引用できます。
ランチの場所を決める。今週のtodoをリマインドする。とかにも使えますね。

5.採用情報

KPIをしっかり決めて、何を狙い結果はどうだったのか?を進めていきたい!そんなプロダクトマネージャーもREALITYでは募集中です!

まずはカジュアルにお話してみたい!データ分析って心折れるよね!みたいな方はこちらへどうぞ!

なるほどわからん!でもポケモンユナイトなら!という方はこちら!