content-governance · git:20260609.fb3d951 · 2026-06-09 · sha256 0e007e55b9ffb15b
content-governance git:20260609.fb3d951A
Immutable. This exact content never changes and is served at /api/v1/blob/0e007e55b9ffb15b.
---
name: content-governance
sheetId: "1.12"
description: Sync a newsletter article from Google Docs to the Notion Content DB. Use this skill whenever the user shares a Google Doc URL and wants to create a Notion page, sync to Notion, add to Content DB, or archive a newsletter. Trigger on phrases like "幫我放上 Notion", "sync to Notion", "add this to Notion", "同步到 Notion", or any message combining a Google Doc link with Notion/archive intent.
category: brand-marketing
project: content-governance
platform: claude
status: Done
author: Peter Tu
input: "Google Doc URL for a newsletter article"
process: "Fetch doc content, classify Subject tags, confirm with user, create Notion page in Content DB"
output: "Notion page URL in the Content DB"
synergy: []
---
# Newsletter → Notion Sync
Syncs a newsletter from Google Docs to Peter's Notion Content DB with auto-classified Subject metadata.
## Hardcoded context
- **Google account**: `<your-google-workspace-account>`
- **Notion Content DB data source**: `collection://64bd3535-0cb3-4f96-946c-c2240294307c`
- **Subject taxonomy file**: `<your-subject-taxonomy-csv>`
## Steps
### 1. Fetch Google Doc content
Use `mcp__google-workspace__get_doc_content` with:
- `user_google_email`: `<your-google-workspace-account>`
- `document_id`: extracted from the URL the user provided
Extract:
- **Doc title** → use as `Article name` in Notion
- **Full body text** → used for subject classification
### 2. Read the subject taxonomy
Read the CSV at `<your-subject-taxonomy-csv>`.
Columns: `subject`, `description_zh`, `keywords_zh`, `keywords_en`
Match the article body against `keywords_zh` and `keywords_en` for each row. Select the **3–5 most relevant** Subject tags. `Newsletter` should always be included for newsletter content.
### 3. Confirm Subject tags with user
Before creating the page, show the selected tags and a one-line reason for each. Example:
> 建議 Subject:Newsletter、Gen AI、Automation、Content Writing
> - **Newsletter** — 電子報本身
> - **Gen AI** — 文章核心是 Claude Code 使用心得
> - **Automation** — 討論到 pipeline 與 Agent 流程
> - **Content Writing** — 分析 Threads 貼文曝光表現
Let the user approve or adjust before proceeding.
### 4. Create the Notion page
Use `mcp__claude_ai_Notion__notion-create-pages` with:
- `parent`: `{ "type": "data_source_id", "data_source_id": "64bd3535-0cb3-4f96-946c-c2240294307c" }`
Properties:
| Field | Value |
|-------|-------|
| `Article name` | Doc title (string) |
| `Content type` | `["Article"]` |
| `Subject` | JSON array of confirmed tags, e.g. `["Newsletter", "Gen AI"]` |
| `Published channel` | `["Newsletter"]` |
| `Google Doc` | Full Google Doc URL as provided by the user |
| `Status` | `Draft` |
### 5. Confirm success
Return the Notion page URL to the user.