Google Apps Script|Notionデータベースを自動更新!

みなさん、こんにちは!
Notionで日々タスクや情報を管理していると、こんな風に感じたことはありませんか?「このデータ、Notionに自動で入ればもっと楽なのに…」「スプレッドシートの情報を、Notionのデータベースにも自動で反映させたい!」手作業でのデータ入力や更新は、時間がかかるだけでなく人為的なミスの原因にもなりがちです。
しかし、Google Apps Script (※略:GAS)でNotion APIを扱うことで、GoogleスプレッドシートなどのGoogleサービスとNotionの連携を効率的に行うことができ、手間なくデータベースを更新することができます。
今回は、Notion APIを使ってデータベースを自動更新する方法を、初心者の方でも分かりやすく解説します。ぜひ、日常業務にご活用ください!
目次
Notionとは
Notionは、メモ・タスク管理・データベース・共有機能がひとつにまとまった「オールインワンの仕事ツール」 です。個人のメモ帳から企業のナレッジベースまで、様々な用途で利用できます。Notionには下記のような特徴があります。
・メモやドキュメント作成
・Wordのように文章を書いたり、画像や動画を貼り付けられます。
・議事録や日記、読書メモなどに便利。
・タスク管理
・ToDoリストを作って「完了」「未完了」を整理できます。
・カレンダー形式にして予定管理も可能。
・データベース管理
・表を作って、顧客リストや読書記録を整理できます。
・表をカンバンボード、カレンダー、ギャラリーなどいろんな見方に切り替え可能。
・チームでの情報共有
・複数人で同時に編集できるので、プロジェクトの進捗管理や社内Wikiとして使えます。
Notion APIでできること
Notion APIは、Notionのページやデータベースを外部のツールやサービスと連携させ、強力なワークフローを構築するためのインターフェースです。APIを活用することで、Notionの機能をさらに拡張し、業務効率化や生産性向上を実現できます。
データベース
Notionのデータベースは、情報を構造的に整理・管理する中核的な機能であり、Excelやスプレッドシートに似た形式で情報の分類・蓄積・検索が可能です。
データベースの新規作成、データのクエリ(検索)、ページの追加・更新などが可能になります。例えば、外部ツールと連携して収集データをリアルタイムでNotionに反映できます。
対応する表示形式は、テーブル、ボード、タイムライン、カレンダー、リスト、ギャラリーの6種類です。
ページ
Notionにおける「ページ」とは、文書やタスク情報などを格納する単位で、テキストや画像、チェックリストなど多様なコンテンツを自由に配置できます。ページ内に子ページを作成することで階層的なフォルダ構造も構築可能です。
APIを活用すれば、ページの新規作成、取得、更新、削除、ページプロパティ項目の取得、プロパティの更新といった一連の操作を自動化できます。例えば、Googleカレンダーの予定に基づいてページを自動生成する、といった使い方ができます。
ブロック
ブロックとは、Notionのページ内にある最も小さなコンテンツ単位のことで、テキスト、画像、動画、表などが該当します。
APIを活用することで、ブロックの取得や追加、別ページへの移動を自動化できます。定型報告書の自動生成や外部サービスからのデータ取得・反映にも応用可能です。
ワークスペースのユーザーの情報取得
ワークスペースはNotionを利用するための作業領域であり、ユーザーには管理者、メンバー、ゲストといった役割が設定されています。
APIを使えば、ユーザー一覧の取得やユーザーIDの検索、botユーザー情報の取得といった操作が自動化できます。
その他
• コメントに関するAPI: ページや既存のディスカッションスレッドへのコメント作成、コメントの取得が可能です。
• 検索に関するAPI: タイトルでの検索(統合によって共有されている全ての親ページ・子ページとデータベースを検索)が可能です。
• 認証に関するAPI: アクセストークンの作成、トークンのアクティブステータスやスコープ、発行時刻の取得、アクセストークンの取り消しが可能です。
データベースを自動更新しよう
Notion APIを使いこなせば、Notion内のデータを自由に操作できるようになります。
しかし「特定の条件を満たした時に自動でデータを更新したい」「GoogleスプレッドシートにあるデータをNotionにも反映させたい」といったより高度な自動化を実現するには、Notion APIを外部のツールと連携させる必要があります。
そこで今回はGASを使い、Notion APIと組み合わせることで、手間なくデータベースを自動更新できるようにします。
Notion APIの事前準備
まずはNotion APIを使うための事前準備が必要です。事前準備は、主に以下の3つのステップで行います。
1. インテグレーションの作成
2. データベースIDとページIDの取得
3. インテグレーションの追加(コネクト設定)
これらの手順を完了することで、API経由でNotionのデータにアクセスできるようになります。
1. Notionインテグレーションの作成
手順①
Notionの右上の3点リーダーから、①接続>②インテグレーションを開発をクリック。
手順②
インテグレーション設定画面で、「新しいインテグレーション」をクリック。
(もしくは https://www.notion.so/profile/integrations
から「新しいインテグレーション」をクリック。)
手順③
インテグレーションに名前を付け、連携するワークスペースを選択。
手順④
でてきたポップアップの「インテグレーション設定」をクリック。
手順⑤ トークンの取得
読み取りや更新、挿入、削除などのAPIに必要な権限を選択。必要に応じてアイコンを設定することも可能です。
また、「内部インテグレーションシークレット」が表示されます。このトークンの値がAPI接続に必要な文字列となるため、必ず取得して安全な場所に保管してください。
手順⑥ データベースIDの取得
Notionの左サイドバーから対象のデータベースを選択します。そのページのURLからデータベースIDを取得します。
https://www.notion.so/<データベースID>?v=<ビューID>
また、データベースの右上にある「・・・」ボタンをクリックし、選択肢の中から「ビューのリンクをコピー」をクリックでもOKです。
取得したIDは安全な場所に保存しておいてください。
手順⑦ インテグレーションの追加(コネクト設定)
作成したインテグレーションを特定のNotionのページやデータベースと連携させることで、APIからそのページやデータベースの情報のみにアクセスできるようになります。
1. 連携したいNotionのページ、またはNotionデータベースページの右上にある「・・・」ボタンをクリック
2. ドロップダウンメニューから「接続」をクリック
3. 作成したインテグレーションの名前を検索して選択
4. 連携を承認
GASのスクリプト作成
GASでNotion APIを操作し、新しいページをデータベースに追加するツールを作成します。
①Notion APIの情報を設定
// Notion APIの情報を設定
const NOTION_TOKEN = "〇〇〇〇〇〇";
const DATABASE_ID = "〇〇〇〇〇〇";
新規のスクリプトを作成し、先ほど事前準備で取得したトークンとデータベースIDをGASで定義します。
②データをJSON形式で送信
<サンプルコード>
// Notionデータベースに新しいページを追加する関数
function addPageToNotion() {
const url = 'https://api.notion.com/v1/pages'; // 新しいページを追加するAPIエンドポイント
// 送信するデータ(JSON形式)
const payload = {
parent: { database_id: DATABASE_ID },
properties: {
名前: { title: [{ text: { content: 'テスト項目' } }] },
ステータス: { select: { name: '未着手' } }
}
};
// APIリクエストのオプション
const options = {
method: 'post',
headers: {
'Authorization': 'Bearer ' + NOTION_TOKEN, // 認証トークンの設定
'Content-Type': 'application/json', // コンテンツタイプをJSONに設定
'Notion-Version': '2022-06-28' // 使用するAPIのバージョン
},
payload: JSON.stringify(payload)
};
// APIリクエストの実行
const response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText()); // 実行結果をログに出力
}
このコードは、GASからNotion APIを呼び出して、データベースに新しいページを追加する処理です。実行すると名前が「テスト項目 」、ステータスが 「未着手」のページがNotionに反映されます。(コードの properties: { 名前: ..., ステータス: ... }
は、Notionデータベースの列名に合わせる必要があります。)
データベースの詳しい操作方法については、公式ページをご覧ください。
③実行
GASのメニューバーの実行ボタンをクリック。関数を実行すると、Notionデータベースにページが追加されます。
活用事例
弊社では、Notion APIを使ってデータベースの自動更新をしたり、取得したデータを他ツールと組み合わせて使ったりなど、さまざまな場面で社内の業務効率化を図っています。
・Googleスプレッドシートのデータを元に、Notionの社員名簿のデータベースを更新
・週一で特定のNotionページの内容を取得し、Geminiと組み合わせながらスライドを作成
・Notionのチェックボックスにチェックが入ったらSlackに通知
その他のNotion API連携
カレンダーアプリ(Googleカレンダーなど)
Notion APIと外部ツール(GASやZapier、Makeなど)を活用することで、GoogleカレンダーとNotionのデータを自動で同期させることが可能です。これにより、手動でのスケジュール管理の手間や更新漏れを防ぎ、Notion上でも最新の予定を確認できるようになります。
ビジネスチャットツール(Slackなど)
Notionのデータベースやページが更新された際に、Slackなどのビジネスチャットツールへ自動で通知を送信するよう設定できます。これにより、情報共有の手間が大幅に削減され、業務効率の向上につながります。
ExcelやBIツール(Looker Studioなど)
NotionのデータベースとExcelやBIツールを連携させることで、常に最新の情報をもとにした分析やレポート作成が可能になります。外部ツールやスクリプトを活用することで、手動のデータ転記を省き、業務効率とデータの正確性を向上させることが期待できます。
まとめ
本記事では、Google Apps Script (GAS) とNotion APIを連携させ、Notionデータベースを自動更新する方法を解説しました。
Notion APIの事前準備から、実際にデータベースを検索・更新するGASのコードまで、具体的な手順を追うことで、手作業によるデータ入力から解放され、業務効率を向上させることができます。
今回ご紹介した社員名簿の更新システムや更新方法はあくまで一例ですが、この方法を応用すれば、様々な外部サービスとNotionを連携させ、よりスマートなワークフローを構築できます。ぜひ、ご自身の業務に合った自動化に挑戦してみてください。
もし設定に不安があったり、時間をかけずに導入したいとお考えでしたら、こちらよりお気軽にご相談ください。

編集者
エンジニアチーム
編集者
エンジニアチーム
GASやLooker Studio、TROCCOなどのツールを活用した、業務効率化やデータ活用のノウハウをわかりやすく発信しています!