用 Notion API 串接 Gmail、表單、行事曆:打造專屬你的自動化生活助手

作者: Calpa Liu
字數:1890
出版:2025 年 5 月 13 日
Notion 不只是筆記本,透過 API 輕鬆串接 Gmail、Google Forms、Calendar,快速實現個人化自動化流程。這篇用活潑溫暖的方式帶你入門,從 TypeScript 範例到 webhook 實戰,讓你的 Notion 變得貼心又聰明。

每天面對滿滿的信件、表單和行程,你是不是也想過:如果有一個數位小幫手,能自動整理資訊、還能美美呈現該有多好?以前我也試過用傳統資料庫,雖然強大,卻總讓人覺得冰冷又複雜。直到遇見 Notion API,我才發現,原來自動化也能很「有溫度」!

用 Notion,表單回覆會自己變成美美的頁面,重要信件會自動進待辦清單,行事曆也能同步到 Notion 行事曆視圖。這不僅是筆記本,更像是隨時陪伴你的數位小幫手,把資訊都整理得井井有條,還能用你喜歡的方式呈現。

Notion API 是什麼?為什麼這麼好用?

簡單說,Notion API 就像是一座橋,讓你和 Notion 之間可以互通有無。不管你想自動建立頁面、同步資料,還是查詢內容,只要透過 API,就能用程式讓 Notion 幫你打理生活瑣事。

開始之前,只需要到 Notion 的 My Integration 頁面建立一個屬於你的 Integration(就像邀請一位幫手進你的工作區),選好權限、拿到 Token,然後再把這個 Integration 加入你想操作的頁面或資料庫。這樣,Notion 就準備好聽你差遣啦!

每次和 Notion API 說話時(發送請求),記得要帶上身份證明(Token)、API 版本和資料格式。例如:

const headers = {
  Authorization: `Bearer ${process.env.NOTION_API_TOKEN}`,
  "Notion-Version": "2022-06-28",
  "Content-Type": "application/json",
};

如果忘記在請求中帶上 Token,Notion API 會回應你一個 401 Unauthorized 的錯誤,這代表你沒有通過身份驗證。記得每次呼叫 API 時都要正確加上授權標頭(Authorization header),否則 Notion 會拒絕你的請求。

Notion API TypeScript 實作全攻略

Notion 官方很貼心,直接幫忙準備好 TypeScript/JavaScript SDK,不用自己寫複雜的 HTTP 請求,只要安裝 SDK、設定 Token,就能輕鬆操作 Notion!我們馬上從環境準備到實戰範例,一步步帶你體驗 Notion API 的強大與友善。

安裝 SDK

首先安裝 SDK(在專案目錄下執行):

npm install @notionhq/client

然後在 TypeScript 專案中引入 Notion Client,並用你在 Notion Integration 拿到的 Token 初始化:

import { Client } from "@notionhq/client";

const notion = new Client({ auth: process.env.NOTION_API_TOKEN });

列出工作區所有用戶

如果你想查出目前工作區的所有用戶(方便分派任務或同步資訊),只需要:

async function listUsers() {
  try {
    const response = await notion.users.list();
    console.log("用戶列表:", response.results);
  } catch (error) {
    console.error("查詢用戶失敗:", error);
  }
}

listUsers();

查詢資料庫內容(例如:自動蒐集表單回覆)

想查 Notion 資料庫的內容,比如問卷回覆,步驟超直覺:

async function queryDatabase(databaseId: string) {
  try {
    const response = await notion.databases.query({
      database_id: databaseId,
      page_size: 100,
    });
    return response.results;
  } catch (error) {
    console.error("查詢資料庫失敗:", error);
    return [];
  }
}

你可以把這個函式串到 Google Forms webhook,讓每次有新回覆就自動匯入 Notion。

分頁取得全部資料,保證一筆不漏

Notion 資料庫內容如果超過 100 筆,API 會分批回傳,SDK 也幫你把分頁處理變得簡單。這樣就能拿齊全部資料:

async function getAllPages(databaseId: string) {
  let results: any[] = [];
  let cursor: string | undefined = undefined;
  do {
    const response = await notion.databases.query({
      database_id: databaseId,
      start_cursor: cursor,
      page_size: 100,
    });
    results = results.concat(response.results);
    cursor = response.has_more ? response.next_cursor : undefined;
  } while (cursor);
  return results;
}

這段會自動抓到「最後一頁」,不用自己處理繁瑣的游標邏輯,超級貼心。你甚至可以用這份資料直接生成報表、同步到其他系統,或自動發送郵件提醒。

延伸應用(自動建立頁面、更新內容)

除了查詢,Notion API 也能幫你自動建立新頁面、更新現有內容。例如:收到重要信件時自動建頁面:

async function createTodoFromMail(subject: string, content: string) {
  await notion.pages.create({
    parent: { database_id: process.env.NOTION_TODO_DB_ID! },
    properties: {
      Name: {
        title: [
          {
            text: { content: subject },
          },
        ],
      },
      狀態: {
        select: { name: "待處理" },
      },
    },
    children: [
      {
        object: "block",
        type: "paragraph",
        paragraph: {
          rich_text: [{ text: { content } }],
        },
      },
    ],
  });
}

這樣一來,Gmail 來信就能自動變成 Notion 待辦事項,工作流程「秒」自動化!

這些 TypeScript 範例只是起點,Notion API 讓你用程式打造各種個人化自動化情境,省時又有趣。只要多練習、善用官方文件,你也能變成數位生活的自動化達人!

生活小例子,Notion API 怎麼幫上忙?

想像一下,如果 Gmail 有新郵件,Notion 就自動幫你新增一條待辦事項,重要信件再也不怕被遺漏。這樣一來,工作和生活的大小事都能井然有序地排隊等你處理。

想像一下:你發出一份活動報名表,當有人填完,Notion 就自動幫你新增一筆報名紀錄,連報名者的訊息也整齊排好,完全不用自己複製貼上!

所有表單回應統一管理,不怕資料散落四處,整理和後續分析都變得超容易。

日常的行程管理也能更聰明。無論是工作會議、課程還是朋友聚會,只要同步 Google Calendar,所有活動都會自動顯示在 Notion 行事曆裡,一眼就能掌握行程規劃。

甚至像 Trello、Zoom 等其他協作工具,也能透過 Notion API 匯整資訊。無論團隊還是個人,所有重要內容都集中在 Notion,效率自然 Level Up!

安全、穩定才安心!開發小提醒

  • Token 安全:記得不要把 API Token 寫死在程式碼裡,最好放在環境變數或安全的金鑰管理服務。
  • 錯誤處理:遇到 API 問題時,溫柔處理一下,根據錯誤訊息做適當回應。例如:
import { APIErrorCode } from "@notionhq/client";

async function safeQuery(databaseId: string) {
  try {
    const result = await notion.databases.query({
      database_id: databaseId,
      filter: {
        property: "標題",
        rich_text: { contains: "示例" },
      },
    });
    return result;
  } catch (error: any) {
    if (error.code === APIErrorCode.ObjectNotFound) {
      console.error("找不到資料庫,確認一下 ID 吧!");
    } else {
      console.error(error.message);
    }
    throw error;
  }
}
  • 請求限流:Notion API 有速率限制,建議用如 p-limitbottleneck 工具,避免短時間發送太多請求,讓 Notion 也有喘口氣的機會。

結語:讓 Notion 成為你生活的神隊友

Notion API 讓自動化變得簡單又人性化,不只是寫筆記,更能幫你打理每天的大小事。從郵件、表單到行事曆,所有資訊都能整齊有序,自動同步到你眼前。無論是工作協作還是生活規劃,你都能把時間花在真正重要的事情上,而不是反覆搬運資料。

不只是把資訊「收集」起來,更能自動化「整理」、「提醒」、「同步」到你需要的平台。舉例來說,收到重要信件自動新增待辦、Google Forms 回覆自動進資料庫、行事曆活動秒速同步,甚至能根據不同情境自訂通知或產生報表,讓 Notion 成為你的數位秘書、任務管家、智慧資訊中心。

這些實作其實並不難,從最基本的 API 學起,逐步進階串接 webhook、整合其他雲端服務,你會發現數位生活原來可以這麼有溫度。不管是下班後自動彙整一天重點,還是假日提醒未完成任務,Notion API 都能幫你打理生活瑣事。不妨現在就試試,寫一段簡單的程式,讓你的 Gmail 來信自動變成待辦。只要第一次成功,你就會愛上這種「自己動起來」的魔法。這不是科技冷冰冰的自動化,而是為你量身打造的貼心助理。

關於 Calpa

Calpa 擅長使用 TypeScriptReact.jsVue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章

圖片管理中心
管理圖片資源
IP 查詢
快速查詢和定位 IP 地址的地理位置和相關信息
Python 運行器
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
封面圖生成器
自動創建適合各種平台的文章封面圖
原作(青山剛昌)產生器
一鍵創建原作(青山剛昌)的封面圖
日本色彩
探索和使用傳統日本色彩
部落格內容洞察儀表板
以視覺化儀表板方式追蹤文章成效、分享熱度與分類分布,協助創作者掌握內容表現。
蒙特卡羅估算 π
使用蒙特卡羅方法演示 π 值的估算過程
LLM
使用 LLM 模型進行聊天
活動圖生成器
一鍵創建活動的封面圖
Wagmi Card
一鍵創建 Wagmi 的封面圖
Facebook Quote
Facebook Quote
Music Macro Language (MML) Studio
用程式語法編寫旋律,用音符構築想像
Blurhash
一鍵創建 Blurhash
文字分類器
使用 MediaPipe TextClassifier 分類文字
前端工程師免費工具資源
前端工程師免費工具資源
後端工程師免費工具資源
後端工程師免費工具資源
全端工程師免費工具資源
全端工程師免費工具資源
Web3 工程師免費工具資源
Web3 工程師免費工具資源
紫微斗數排盤系統|結合 AI 的命盤性格與事業財務分析生成器
紫微斗數排盤工具,輸入生日與時辰,自動生成完整命盤分析提示(Prompt)。結合最專業紫微理論與 AI 助力,助你深入解析性格、事業、財務與人際課題。免費使用,適合命理師及紫微愛好者。
PixAI Prompt 組合器|快速打造可用於 AI 繪圖的語言拼圖
使用 PixAI 卻不會寫 prompt?這個工具幫你一鍵組裝角色、表情、風格語彙,輸出高品質繪圖提示語句(Prompt),可直接貼入 PixAI 使用。適合插畫師、創作者、AI 新手與 VTuber 角色開發者。