Notionでレコード登録または更新されたら、内容を別のデータベースへ追加または更新する

■事前準備
・トリガーとして使用するためのNotionデータベースを事前に用意します。
・転記先のデータベースを事前に用意します。

■実際に転記するスプレッドシート例(閲覧権限のみとなるので、使用する場合はコピーしてください)
https://docs.google.com/spreadsheets/d/19DZlna2atAIM6Liw_0Gk9fNniPPUiE7KvmlwCoJSfhg/edit#gid=471428592

■作成方法
①アプリトリガーからNotionを選択し、以下の設定を行いテスト・保存します。
・トリガーアクション:特定のデータベースのページが作成・更新されたら
・トリガー起動間隔:任意の起動時間に設定します。
・データベースID:対象のNotionデータベースのURLからデータベースIDをコピーしペーストします。
・テスト:一度Notionのデータベースにレコードを追加し、テストして正しく値が取得できるかを確認します。

②トリガー下の+マークを押し、データベースを操作するオペレーションからNotionを選択して、以下の設定を行いテスト・保存します。
・実行アクション:レコードを取得する(ID検索)
・データベースID:対象のNotionデータベースのURLからデータベースIDをコピーまたは、欄をクリックして表示された候補から対象Notionを選択します。
・取得したいレコードの条件:レコードIDが等しいとし、値に①で取得したオブジェクトIDを{{オブジェクトID}}のように埋め込みます。
※アウトプットを埋め込む設定についてはこちらをご参照ください。 https://intercom.help/yoom/ja/articles/8223528

③+マークを押し、データベースを操作するオペレーションからGoogleスプレッドシートを選択して、以下の設定を行いテスト・保存します。
・実行アクション:レコードを更新する
・スプレッドシートID:候補から事前に準備したスプレッドシートを選択します。
・スプレッドシートのタブ名:候補から対象のシート名を選択します。
・テーブル範囲:列名を含む対象の範囲を設定します。今回の事例の場合A1:Hとなります。
・更新したいレコードの条件:レコードIDに等しいとして、②で取得したレコードIDを{{レコードID}}のように埋め込みます。
・更新後のレコードの値:レコードIDを含む列名の欄に対応する値を、②で取得したアウトプットで{{〇〇}}のように埋め込みます。
・詳細設定:条件に一致するレコードが見つからない場合はオペレーションをエラーにするをOFFにしておきます。

④+マークを押し、分岐するオペレーションを選択して以下設定し、保存します。
・オペレーション:③のオペレーションを選択します。
・アウトプット:③で取得したレコードIDを選択します。
・条件:アウトプットが空になっているを選択します。
・値:空白のままとします。
※こうすることで、レコード更新の対象がないものは新しくレコードとして追加し、更新があったものはそのまま終了するというルートに進みます。

⑤アウトプットが空の方向の+マークを押し、データベースを操作するオペレーションからGoogleスプレッドシートを選択して、以下の設定を行いテスト・保存します。
・実行アクション:レコードを追加する
・スプレッドシートID:候補から事前に準備したスプレッドシートを選択します。
・スプレッドシートのタブ名:候補から対象のシート名を選択します。
・テーブル範囲:列名を含む対象の範囲を設定します。今回の事例の場合A1:Hとなります。
・追加するレコード値:表示された列名の欄に対応する値を、②で取得したアウトプットで{{〇〇}}のように埋め込みます。
※このとき更新のときだけに入れる列名については空白にしておきます。例:更新日など

プロセス詳細

アプリトリガー 特定のデータベースのページが作成・更新されたら
データベースを操作する 追加or更新されたレコード情報を取得する
データベースを操作する レコードを更新する_検索に失敗した際のフローボット停止設定をOFFにする
コマンドオペレーション 更新対象がなく、レコード更新からアウトプットが検出できなければレコードを追加するルートに進む
データベースを操作する レコードを追加する