在前幾天的文章中,我們已經分享了如何使用 n8n 自動化社群平台的發文流程,從圖文發文到影音上傳都逐步實作完成。今天,我們要把這個工作流再往前推一步,讓它能與 Google Sheet 結合,打造一個小型的「自動化內容管理控制台」。
透過 Google Sheet,我們可以預先規劃每一則貼文的內容、風格,並且在發文完成後紀錄更新發文狀態,n8n 會定時讀取這些指令,生成文案、發佈到各大平台,並將結果回寫到 Sheet。這樣一來,你就擁有一個 閉環式的自動化流程:從任務下達、文案生成、發文,到成果紀錄,全都在同一個工作流中完成。
⚠️ 提醒:Google Sheet 在這裡主要作為教學用途,方便我們示範 Google Sheet 讀取與寫入的使用方法以及控制流程的概念。在實務操作中,Google Sheet 並非最佳後端/資料庫方案。如果你的內容量大或頻率高,建議還是使用專業資料庫或 CMS 來承載任務與紀錄,以避免效能瓶頸與資料安全問題。
其他擁有類似表格 / Table 的平台包括 supabase、AirTable…等等,n8n 也有提供相關的節點。
今天的文章,你會學到:
透過這篇文章,你不僅能學會如何整合 Google Sheet 與 n8n,還能理解「自動化流程如何讀取指令、執行任務、回報結果」的完整思路。這是你打造自動化內容引擎的第一步,也是後續進一步加入錯誤處理、通知功能的基礎。
在今天的範例工作流中,Google Sheet 不僅是資料儲存的位置,更像是一個「指令面板」:先填寫每一則對照的影音素材檔名、風格、狀態等資訊,使得 n8n 定時讀取這些指令,自動生成文案並發文。
操作步驟:
建立 Google Sheet Credentials
建立一個 Google Sheet,我這邊的範例包含以下欄位:
file_name
:素材檔名,讓我們可以搜尋到指定檔案而非隨機抓取style
:文案風格,這邊我用wenChing(文青)、pro(專業)、humor(幽默)、crazy(瘋狂)這四種status
:任務狀態(ready:準備發文/ posted:已發文,預設都是 ready)priority
:貼文發文的優先順序,為數字,我這邊設定越大優先權越高。如此一來,可以在 sheet 中指定貼文的優先權,讓我們指定那一則貼文要先發URL
:發文後回寫的貼文連結,讓我們方便追蹤Likes
、Comments
:發文後取得的互動數(這個今天的文章不會完整實作,但取得方式是呼叫官方 API)complete_time
:完成發文的時間,更快速地查看發文的狀態這邊建議欄位、檔名都使用英文來命名,比較不容易出錯。像是 supabase 如果檔案名稱包含中文或空格,就有很大的機率出錯。
以前的範例工作流中,我們是直接從指定的 Google Drive 中「隨機」讀取一個素材來發,現在我們可以透過 Google Sheet 來讀取高優先權的素材來發文
概述: 從 Sheet 讀取一則「準備發布(Ready)」且優先順序最高的素材。
整體節點長相:
操作節點:
Google Sheet Read Row(s): 讀取所有準備發布的貼文素材
Status = Ready
Code 節點:挑出優先權最高的素材
Google 雲端硬碟節點:依照檔名取得檔案資料並下載
Google Drive 的 Search Query 為
'Your Google Drive File ID' in parents and name = '{{ $json.file_name }}' and mimeType != 'application/vnd.google-apps.folder' and trashed = false
,與 Day 10 中的類似。
在之前的範例裡,我們直接用單一 AI 節點來生成文案,因為風格需求比較單純。
但如果今天你想要同時測試「活潑風格」、「正式風格」、「幽默風格」等等,就會遇到一個問題:到底要怎麼讓工作流自動判斷,該走到哪一個 AI 節點?
當然,我們可以用 If 節點來做判斷,例如「如果風格 = 活潑 → 走 A 節點;否則 → 走下一個 If 節點」,但是當選項變多(例如 5 種、10 種風格),工作流就會被一堆 If 節點「拉得很長」,變得不直觀、難以維護。
(圖片來源:連結)
在今天的範例裡,我們要來學習使用 Switch 節點。Switch 可以根據某個欄位的值(例如 Google Sheet 裡的「style」),一次建立多個分支,每個分支對應一種風格。這樣就不需要寫一連串的 If,而是像「分流器」一樣,把資料送到對應的 AI 節點去生成不同風格的文案。
Switch vs If 的差別簡單整理如下:
- If 節點:適合處理「二選一」的情境(是/否、成立/不成立)。
- Switch 節點:適合處理「多選一」的情境(例如風格可能是 A/B/C/D,直接分流)。
概述: 根據 Sheet 中的 Style
欄位,決定文案生成方式。
操作節點:
style = wenChing → 文青風格提示詞 AI 節點
style = pro → 專業風格提示詞 AI 節點
這樣子設計,只要在 Google Sheet 「style」欄位填入指定的值(例如 pro、humor、crazy),n8n 就能自動走到對應的風格的 AI 節點,生成該風格的文案。
其他上傳檔案、取得素材 URL、傳遞 binary data 的流程和之前的都一樣
概述: 將生成的文案和圖片發佈到多平台,並取得貼文在平台的網址
設計:
操作節點:
FB:Edit Fields 節點
https://www.facebook.com/photo/?fbid={貼文id}
圖片的話是 photo、影片的話將 photo 改為 reel 即可(不用 +s )
IG:HTTP Request 節點
Method: GET
URL: https://graph.facebook.com/v23.0/{貼文ID}?fields=permalink
Authentication: Facebook (同一組 IG / FB Page Token Credential)
Threads:HTTP Request 節點
Method: GET
URL: https://graph.threads.net/v1.0/{貼文ID}?fields=permalink
Authentication: Threads Bearer Credential
概述: 將任務結果回寫到 Sheet,形成完整紀錄。
操作節點:
Google Sheet → Update Row
file_name
欄位來定位我要更新哪一列Status
為 posted
complete_time
為完成的 timestamp重新整理後,會發現 Google Sheet 上更新資料了
注意
這種檔名、名稱、各種變數大小寫一定要弄清楚,否則很容易出錯。
今天,我們完成了簡易的發文「自動化儀表板」的設計:
這樣的設計不僅讓你的內容流程自動化,也建立了一個「指令 → 執行 → 回報」的閉環概念。
👉 明天,我們將進一步了解 n8n 中的錯誤處理,並以前的所學打造一個錯誤紀錄儀表板以及通知系統,讓你的工作流不僅能跑,還能在失敗時自動紀錄或提醒,打造更專業的自動化內容管理系統。