NotionのデータベースとBigQueryを、Integromat経由で連携する

##概要
* notion上で作成したデータベースにアイテムが作成・更新された際に、BigQuery上のデータベースが連動して情報が更新されるようにする
* Integromatというツール (https://www.integromat.com/) を使用
    * Integromat使用に至った背景は、[この記事](https://awe-some.net/2016/10/integromat/)を見つけて「お、Integromat強くね？」と思ったことから。現在Zapierを使用しているが、こちらの方がコスパも良さそうで移行を検討中。

## やること
今回は以下のNotionのテスト用データベースの内容を...
![Screenshot 2021-09-08 at 14.53.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/38d8e277-dd3e-95b5-3cff-f4bd0c2b9c4b.png)

以下のようにBigQueryのテーブルに書き込みます。
![Screenshot 2021-09-08 at 14.55.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/689207be-b6f6-468f-a7ad-088233242445.png)



## Integromat側の設定
### アカウントの作成（作成済みの人は飛ばしてください）
https://www.integromat.com/ にアクセスすると以下画面のようになるので、右上のSign Upよりアカウントを作成
![Screenshot 2021-09-08 at 14.34.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/059effef-7029-6672-dc31-a02d30178e28.png)

### シナリオの作成
シナリオとは・・・ツール同士の一連の連携のこと。ZapierでいうところのZap。

ダッシュボード画面左側のメニューから、Scenariosを選択（以下画面の上から2番目）

![Screenshot 2021-09-08 at 14.36.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/0d528ffc-13ed-ec70-417c-59005f2f54f2.png)

そして、右上の「+ Create a new scenario」を選択
![Screenshot 2021-09-08 at 14.38.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/fd138e75-b2f6-728d-7d25-870ef621bd5d.png)

シナリオ作成画面に遷移します。

### Notion, BigQueryそれぞれとの連携
Notionのデータベースに更新があった時をトリガーとしたいので、まずはNotionを選択。検索に「Notion」と入れると表示されます。

![Screenshot 2021-09-08 at 14.41.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/9a4b9f54-75be-c520-631f-73ad1e0ee9a9.png)

今回は新規・更新のどちらのアイテムも連携したいので、「Watch Database Item」を選択。


まだ連携していない場合は、右側のAddからNotionアカウントを連携
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313536363635332f32356664666137652d333964372d656165652d326635382d6563636461633362363264642e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/0021f8d4-5585-5d63-271e-d11c8fe6c2bd.png)


右側に「Add another module」と出てくるので、ここをクリック。Notionと同じ要領で、BigQueryを選択します。

![Screenshot 2021-09-08 at 14.45.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/68317a56-c114-30d5-8df1-c1f375624dd4.png)

ここでも、同じようにBigQueryのアカウントと連携しておきます。
![bq.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/62626a7c-14f4-6ace-dee7-c074a91c6037.png)


ここまで終わったら、連携するツールの設定に入ります。

## Notion側の設定
### 任意のデータベースをIntegromatに共有
連携したいデータベースのページの「Share」から、Integromatを招待します。検索窓にIntegromatと入力するとアカウントが表示されるので、「Invite」を選択します。

![Screenshot 2021-09-08 at 14.48.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/1e28f41f-c624-034f-1309-6c2dae8ad9f5.png)

連携したいデータベースのページの共有アカウントリストに、以下のように入っていればOKです。
![Screenshot 2021-09-08 at 14.50.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/5348c300-1cda-702a-5284-4bcc9ce66440.png)

## BigQuery側の設定
### テーブルの作成

連携したいNotionのデータベースの項目が入るように、テーブルを作成します。例えば以下の感じ。テスト用に作ったのでとても簡素です。
![Screenshot 2021-09-08 at 14.52.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/30835b16-2932-d246-3949-10c17518a225.png)

## Integromatで詳細を設定
Notion側の設定
![Screenshot 2021-09-08 at 14.56.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/2e3321ae-6705-82a5-c332-591975944c00.png)

BigQueryの設定
![Screenshot 2021-09-08 at 14.57.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/3f6545c4-0a85-4111-7fcb-d5e70eba53f9.png)

Values of Rowは、JSON形式で選択することができます。良い！
![Screenshot 2021-09-08 at 14.58.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/6bc2acc1-59ae-aa47-cf55-e40dcdcf1d69.png)



## "Run Once"ボタンを使用して、試しに動かしてみる

ここまで設定ができたら、左下の「Run Once」から試行してみます。
![Screenshot 2021-09-08 at 14.59.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/f635505f-5b55-fcac-ed37-0cfe667051b3.png)

ちゃんと動いたら、緑のチェックマークがついて、実装完了です。
![Screenshot 2021-09-08 at 15.04.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/be6771b2-30ae-24d5-8c1d-508510bb71fd.png)

時計マークから、スケジュールが可能です。選択肢も結構存在。
![Screenshot 2021-09-08 at 15.06.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1566653/7760fa7b-2402-fd14-aec6-7e7d2f050c62.png)