前回はダッシュボード作成の全体像と、実際に作る上でNotionのデータを1時間ごとに出力するための1つ目のモジュールの作成までを解説しました。→過去の回はこちらを参照。
今回は2つ目以降のモジュールを作成して、Notionのデータを出力する仕組みを完成させましょう。なお、今回もこちらのデータを例に解説します。必要に応じてご自身のワークスペースに複製してお使いください。
https://tahara-demo.notion.site/2e91542dc0ec4e338767d2dfcb49804e?v=1e73dd3c761d401c8aa938c96ec052f9
手順1:Notionのデータを1時間ごとに出力する方法(つづき)
前回、モジュール1ではNotionの更新情報を取得する仕組みを作成しました。
もしNotion上で更新されたページがまだスプレッドシートに登録されていなければ新規行の追加をする、もしすでに登録済みであれば既存の行の更新を行う、という仕組みを作ります。
データ出力先のスプレッドシートを用意する
まず、Notionのデータを出力するスプレッドシートを新規作成します。
https://docs.google.com/spreadsheets/u/0/ へアクセスし、新しいスプレッドシートを作成しましょう。
タイトルを「データ出力用」とします。1行目にNotionのプロパティ名に応じた列を用意します。一番左には「ページID」という列も作っておきます。
モジュール2. スプレッドシートでページIDを検索する
2つ目のモジュールを作成します。ここでは、スプレッドシートにまだ登録されていないかすでに登録済みかを調べるために、スプレッドシートの中でページIDを検索します。
1つ目のモジュールの右側にある「+」をクリックするとモジュールを追加できます。
スプレッドシートと接続します。「Google Sheets」と入力して選択します。出てきたメニューの中で「Search Rows」を選択します。
Googleのアカウントと接続します。出てきたメニューの中で「Add」を押し、コネクション名を決めた後「Save」を押します。
接続先のGoogleアカウントを選択する画面に遷移したら、アカウントを選択して「許可」を押します。なお、表記の「Integromat」はMakeの旧サービス名です。
Googleアカウントと接続できたら、先ほど作成したスプレッドシートを選択します。
A列のページIDで検索します。Filterのところで検索対象を「ページID(A)」とし、Equal toの後のボックスをクリックすると何で検索するか聞かれるため、Notionの「Database Item ID」を選択します。
これで検索のモジュールが完成です。画面左下の「Run once」を押すと動作確認できます。
モジュール3. 分岐用のルータ作成
モジュール2のページID検索の結果によって処理を分岐させるためのルータを用意します。新たなモジュールを追加します。ルータを追加するには「Flow Control」の中にある「Router」を選択します。
ルータを追加すると、その先に2つのモジュールを選択できるようになります。分岐数を3つ以上に増やすこともできます。
モジュール4. スプレッドシートに新しい行を追加する
スプレッドシートにまだ情報が登録されていないとき用のモジュールを作成します。分岐の条件設定をします。ルータの先にあるスパナアイコンをクリックすると、「Set up a filter」から条件を指定することができます。
「モジュール2の検索結果が0件の場合」を分岐条件に設定します。
分岐先に新しい行を追加するためのモジュールを作成します。「Add a Row」を選択します。
シート情報や列に対応する情報を設定します。なお、スプレッドシートのIDはURLの「https://docs.google.com/spreadsheets/d/」と「/edit」の間の文字列です。
モジュール5. スプレッドシートの既存の行を更新する
スプレッドシートにすでに情報登録済みのとき用のモジュールも作成します。分岐の条件設定をします。先ほどと同様に、ルータの先にあるスパナアイコンをクリックすると、「Set up a filter」から条件を指定することができます。「モジュール2の検索結果が0より大きい場合」を分岐条件に設定します。
分岐先に既存の行を更新するためのモジュールを作成します。「Update a Row」選択します。
シート情報や列に対応する情報を設定します。
これで、一通りのシナリオが完成しました。
シナリオを有効にする
画面左下のSCHEDULINGの設定をしてシナリオを有効にします。まず、「Every 15 minutes.」をクリックして、実行するインターバルを60分ごとに変更します。
スイッチをONに切り替えると、このシナリオが有効となり1時間ごとに一連の処理が自動的に走るようになります。最後に「Save」ボタンを押せば一連の変更が保存されます。
これで、Notionのデータをスプレッドシートに自動的に出力する仕組みが完成です。1時間に1回自動的にNotionのデータ更新がスプレッドシートに反映されるようになりました。
次回、スプレッドシートに出力されたデータをもとにダッシュボードを作り、そのダッシュボードをNotionに埋め込む方法について解説します。