# Notion 推出 Notion as code 測試版功能，讓使用者能用 TypeScript 定義整個工作區並透過 API 進行部署

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 原作者：Notion (@NotionHQ) · 策展與摘要：EasyVibeCoding · 平台：X (Twitter) · 熱度：🔥🔥 · 日期：2026-07-24

> 原始來源：https://x.com/notionhq/status/2080331924732850687

## 中文摘要

Notion 推出 Notion as code 測試版功能，讓使用者能用 TypeScript 定義整個工作區並透過 API 進行部署。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/177597d265083d84.png)
> 標題顯示「How to use Notion as Code」字樣，並帶有程式碼與 Notion 相關的視覺圖示與浮水印。

Notion 官方近日宣佈推出 Notion as code 的 beta 測試版，這項新功能讓開發者與使用者能夠完全透過 TypeScript 來定義整個工作區的架構，包含 teamspace、資料庫與 custom agents，並直接透過 API 進行部署。官方表示，使用者可以利用 git 對 Notion 設定進行版本控制，藉此檢視每次的異動紀錄，並在不同的開發、測試或正式環境中重複使用相同的腳本，或是將測試好的設定複製到其他工作區中。

**運作方式與核心架構**
根據官方釋出的技術文件，Notion as code 允許使用者透過程式批量建立與更新 Notion 內容，不必再手動發送個別的公開 API 請求。其核心運作模式如下：
- 使用 TypeScript SDK 或由 coding agent 來描述 Notion 工作區的期望狀態。
- 透過公開 API 端點將描述內容部署至工作區。
- 腳本本身不綁定單一工作區，而是利用如 `resourceId` 的資源識別碼來代替實際 ID。
- 初次部署後，系統會回傳 resource ID 對應到實際 Notion 記錄的對應表：

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/0edbbfe393ff39d1.jpg)
> 左側的瀏覽器視窗顯示 Notion 原始碼檔案的編輯畫面，右側視窗則呈現透過該程式碼產生的介面與側邊欄結構，中間以黑色箭頭指示兩者之間的對應關係。

```json
{
	"my-space": { "id": "123", "table": "space" },
	"hub-page": { "id": "456", "table": "block" },
	"getting-started": { "id": "789", "table": "block" }
}
```

利用這項對應表，使用者後續修改腳本並重新部署時，就能精準更新實際的 Notion 記錄。

**API 呼叫與非同步流程**
Notion as code 採用非同步 API 架構，並需要使用 personal access tokens 進行身份驗證，其操作流程包含：
1. 發送公開 API 請求至 `POST /v1/infra_as_code`，請求中帶有將 TypeScript 腳本序列化後的 `intents` 陣列，系統會回傳一個 `taskId`。
2. 輪詢 `GET /v1/async_tasks/{taskId}` 來等待任務完成，直到狀態回傳成功。

API 請求格式範例：
```json
POST /v1/infra_as_code
{
	"intents": [{ "type": "teamspace", "name": "My amazing team", ... }],
	"existingResources": { "my-space": { "id": "123", "table": "space" } }
}
```

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/3e4c331445d22cd2.jpg)
> 終端機視窗透過命令列執行將 Workspace 指令一次部署至五個 Notion 工作區，並以黑色箭頭指向周圍五個同步更新的介面預覽。

**參與測試與現階段限制**
目前該產品仍在開發階段且處於 alpha 測試，官方建議使用者在新的工作區中進行測試，以免影響主要工作區。想要參與的使用者必須先填寫報名表單（[Notion as code 報名表單](https://ntn.so/NotionAsCode)）。在等待審核的同時，開發者可以透過 `notion-sdk-js` 倉庫的 `EXPERIMENTAL__notion-as-code` 分支來開始建立腳本。

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1784873823126-hxse9xli.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/ec99cec0392b1568.jpg" controls playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>
> 影片展示 Notion as code 的功能，讓使用者透過 TypeScript 定義與部署工作區。

現階段的限制包含：
- 僅能在現有空間內建立或更新內容，暫時無法直接用此工具建立新空間。
- 並非 Notion 的所有實體都已支援，高階原語會率先支援。
- 由於此 API 並非「1 個請求對應 1 個實體建立或更新」，目前的速率限制暫定為每分鐘 5 個請求。

## 媒體內容

**影片展示 Notion as code 的功能，讓使用者透過 TypeScript 定義與部署工作區。**

**影片中的 Prompt 與操作**

Prompt（00:04）：

```
使用 TypeScript 建立一個 Notion 工作區，包含 HQ、Marketing、Product Design、Engineering 與 Finance 的 teamspace。
建立中心化的 Docs 和 Meetings 資料庫，並在每個 teamspace hub/wiki 頂端放置依 team 過濾的檢視。包含產品回饋與公司福利 Q&A 自訂代理程式。
在部署前提供 TypeScript 大綱供審閱。
```

原文：Build a Notion workspace in TypeScript with teamspaces for HQ, Marketing, Product Design, Engineering, and Finance
Create central Docs and Meetings databases, with team filtered views at the top of each teamspace hub/wiki. Include product feedback and company benefits Q&A custom agents.
provide the TypeScript outline for review before deployment.

操作步驟：

1. （00:35）執行部署指令

## 標籤

功能更新, SDK, Web, Notion
