iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
AI & Data

告別每天的重複性任務:AI + n8n 中小企業自動化生存術系列 第 15

Day 15:每天自動產出鐵人賽文章摘要,不用手動整理

  • 分享至 

  • xImage
  •  

昨天我們已經完成了 自動發 FB 貼文的設定。
那麼今天,我想先回到前面的一個環節:文章生成後,AI 能不能自動幫我讀完內容,再寫好一份社群貼文草稿?

對我來說,這樣的流程特別重要。因為如果 AI 能先幫我完成草稿,我只需要花一點時間審核、微調,確認沒有問題之後,就能直接交給後續的自動化流程去處理發文。
換句話說,我的角色只剩下「寫鐵人賽文章」和「最後審核」,至於改寫成 FB 貼文和發文的工作,全都交給 AI + 自動化來完成。
https://ithelp.ithome.com.tw/upload/images/20250929/20124621NUNmM6neMK.png

資料表設計說明

今天的表格設計,和昨天相比有一點不同。
新的流程是:我會先在表格裡貼上文章網址,接著讓 n8n 自動讀取這個網址的網頁內容,再把抓到的標題與內文丟進 AI Model 產出摘要,最後把 AI 生成的草稿寫回同一份表單。

這次調整後的欄位重點如下:

  • 文章網址:我手動貼上 IT 鐵人賽文章的網址,作為流程的輸入來源。
  • 摘要:自動化流程會把 AI 生成的 300 字 FB 草稿寫回這裡。
  • 已審核:我在檢查過 AI 生成的草稿後,會標記是否通過審核。只有審核完成的文章,才會進入後續的 FB 自動貼文流程。
    https://ithelp.ithome.com.tw/upload/images/20250929/20124621S9Appb51uD.png

1. Schedule Trigger

第一個 Node 我們用的是 Schedule Trigger 用來定時啟動流程(我設每天 08:00),在這邊我重新命名成「Trigger_Daily_0800」。

小提醒:就如同昨天提到的,整條 Workflow 工作流的時區要設定成 Aisa/Taipei 時間才不會跑掉。

  • Trigger Interval:Days
  • Days Between Triggers:1
  • Trigger at Hour:8am
  • Trigger at Minute:0
    https://ithelp.ithome.com.tw/upload/images/20250929/20124621zWqe35nTVc.png

2. Google Sheet > Get row(s) in sheet

接下來,我要讓流程從 Google 試算表裡抓到「今天要處理的文章網址」。
選擇 Google Sheet 中的 Get row(s) in sheet Node
Document & Sheeet 選擇剛剛設計好的「社群發文規劃表」跟分頁「工作表1」

接下來我們的重點放在 Filters,在預設情況下,這個 Node 並不會自動帶有過濾條件,你需要手動按下 Add Filter,然後自己設定:

  • Column:是否為今日
  • Value:true
    設定完成後,輸出結果就會是一筆資料,包含「發文日期、文章標題、文章網址」等欄位。
    這樣下一個節點就能接著用「文章網址」來抓取網頁內容。
    https://ithelp.ithome.com.tw/upload/images/20250929/20124621YeTxHjnv4D.png

3. HTTP Request

在抓文章內容之前,我需要透過 HTTP Request 節點,直接去讀取 Google Sheet 裡的文章網址。

設定方式

  • Method:選擇 GET,因為我們只需要讀取網頁,不需要傳資料。
  • URL:填入 {{$json["文章網址"]}}
    這個寫法的意思是:自動帶入前一個節點(Google Sheet)裡的「文章網址」欄位。
    這樣每次流程執行時,網址就會隨著表單內容變動,不需要手動修改。
  • Authentication:保持 None,因為這個網址是公開的文章,不需要登入。
  • Send Headers:這裡一定要打開,並新增一個 Header:
    • Name:User-Agent
    • Value:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36

踩坑經驗
一開始我沒有加上 User-Agent,結果請求被擋下來,回傳 403 Forbidden。
後來問了 ChatGPT,才知道有些網站會檢查「請求來源」,如果看起來不像一般瀏覽器,就會拒絕。
在 AI 的建議下,我加上 User-Agent 之後,馬上就能正確拿到完整的 HTML 原始碼。

最後結果
成功執行後,你會在 Output 裡看到整個網頁的 HTML 內容(很長一段程式碼),這就是接下來要給 HTML 節點解析的資料來源。
https://ithelp.ithome.com.tw/upload/images/20250929/20124621HochRdAJVn.png

4. HTML

前一步我們已經透過 HTTP Request 把整份網頁的 HTML 原始碼抓下來。
但 HTML 原始碼是一大坨程式碼,我們需要透過 HTML 節點 把「標題」跟「內文」抽取出來。

設定方式

  • Operation:選 Extract HTML Content
  • Source Data:選 JSON
  • JSON Property:填 data
    接著新增兩個 Extraction Values:
  • Key:title
    • CSS Selector:.qa-header__title
    • Return Value:Text
  • Key:content
    • CSS Selector:.qa-markdown
    • Return Value:Text
      這樣就能同時抽出文章的標題和內文,並輸出成兩個欄位。
      https://ithelp.ithome.com.tw/upload/images/20250929/20124621CqWy5PSc3i.png
      https://ithelp.ithome.com.tw/upload/images/20250929/20124621miZSjZqlxe.png

怎麼找到 CSS Selector?
這一步很多人一開始會卡住,其實很簡單:

  1. 打開你要抓的文章網頁。
  2. 按滑鼠右鍵 → 選「檢查 (Inspect)」。
  3. 這時會打開瀏覽器的開發者工具,點右側紅框圈起來的地方後,滑鼠移到左側網頁各文字區塊時,會出現那段文字的 HTML 標籤。
  4. 在標籤裡找到 class 屬性,例如:
    <h2 class="qa-header__title ir-article__title">...</h2>
    這裡的 qa-header__title 和 ir-article__title 就是 class 名稱,可選擇前者。
  5. 在 n8n 的 HTML 節點中,把其中一個 class 名稱前面加上 .(點號),填進 CSS Selector
    例如.qa-header__title
    https://ithelp.ithome.com.tw/upload/images/20250929/2012462133nmppCbAN.png
    https://ithelp.ithome.com.tw/upload/images/20250929/20124621f7rW9pwpAJ.png

小提醒:不同網站的 class 名稱不一樣,所以你要自己檢查並找出對應的 class,而不是直接複製我的設定。

5. Message a model

這一步,就是把前面抓到的「文章標題」和「內文」,丟給 AI Model,請它幫我寫成一則 300 字左右的 Facebook 貼文引言。
節點設定

  • Credential to connect with:這裡需要連接 OpenAI 帳號(要填 API Key)。
    因為這部分比較獨立,我會在 明天的文章專門說明怎麼去申請和設定 OpenAI API Key。
    先知道這裡一定要有 Key,流程才能跑下去。
  • Resource:選 Text
  • Operation:選 Message a Model
  • Model:選單價比較低的模型即可(例如 GPT-4.1-Nano 或 GPT-3.5),產生貼文這種需求不需要用到太貴的版本。
  • Messages → Prompt:填入提示詞,告訴 AI 你要的輸出格式。
    我的提示詞範例
請根據以下文章的標題與內容,撰寫一則 300 字左右的 Facebook 貼文引言。

輸出結構必須包含:
1. 一句吸引人的開頭標題(要有情緒或亮點)
2. 條列是重點,每一點請用清楚的特殊符號或數字開頭(例如:✅、▶️,或是編號1,2,3等)
3. 結尾根據文章主題,提出一個有思考性的問句,引導讀者留言互動
最後一行要放文章網址{{ $('Get row(s) in sheet').item.json['文章網址'] }}

文章標題:{{$json["title"]}}
文章內容:{{$json["content"]}}

執行後,AI 就會根據文章生成一則貼文草稿,直接出現在 Output 裡。
https://ithelp.ithome.com.tw/upload/images/20250929/20124621HCf4cNbtPK.png

6. Update row in sheet

最後一步,就是把 AI 生成的 Facebook 草稿寫回到 Google 試算表。這樣我每天只要打開表單,就能看到 AI 幫我準備好的內容。

設定方式

  • Document / Sheet:同樣指定「社群發文規劃表」和「工作表1」。
  • Mapping Column Mode:選 Map Each Column Manually。
  • Column to match on:選擇 row_number,確保是更新到前面抓到的那一筆資料。
    這裡的值要用動態變數:{{$('Get row(s) in sheet').item.json.row_number}}
  • Values to Update:
    • 摘要:填入 {{$json.message.content}},這就是 AI 節點輸出的文字。
    • 其他欄位(發文日期、文章標題、文章網址)保持空白,避免被覆蓋。

當流程跑完後,Google Sheet 的「摘要」欄位就會自動出現一段完整的貼文草稿。接下來我只需要檢查、審核,確認沒有問題之後,就能交給後續的自動化流程去發佈。
https://ithelp.ithome.com.tw/upload/images/20250929/20124621OCJczllJ4j.png

小結

今天我們完成了「AI 幫我讀文章 → 自動生成 Facebook 草稿 → 寫回 Google Sheet」的流程。
這樣一來,我每天只要貼上文章網址,就能自動得到一份 300 字的貼文草稿,剩下只需要人工審核,效率大幅提升。

接下來的文章,我會陸續分享:

  • 怎麼申請與設定 OpenAI API Key
  • 不同模型的選擇與費用差異
  • 如何延伸到 IG、Threads 的自動化貼文流程

一步一步,帶你把 AI + 自動化的發文工作流 建立完整。

如果你覺得今天的案例有幫助,歡迎在下方留言交流,或分享給也想做社群自動化的朋友。
別忘了追蹤這個系列,了解更多 AI + n8n 中小企業自動化工作流實戰案例


上一篇
Day 14:每天 8 點自動發文到 FB,n8n Node 設定全攻略
下一篇
Day 16:如何申請與設定 OpenAI API Key
系列文
告別每天的重複性任務:AI + n8n 中小企業自動化生存術16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言