n8n 發票自動化|AI 發票整理機器人完整教學

更新於 2026年2月11日

n8n 發票自動化

📥 工作流 JSON 下載GitHub 範例庫 | 💬 社群討論Skool 雲端方程式 Cloud F1

專業導讀

你有沒有遇過這種情況?月底一堆發票堆在信箱裡面,光是整理歸檔就花掉半天時間。我自己以前也是這樣,每個月花好幾個小時在做這種重複性超高的工作。後來我用 n8n 搭配 ChatGPT 打造了一套發票自動化系統,現在整個流程從收到 Email 到整理進試算表,全部自動跑完。

我在影片裡面直接 Demo 給大家看:「我們直接來 Demo,發票都會寄送到你的 Gmail 裡面,我們利用這一張 AWS 的 Invoice 發票來做一個示範。」整個流程跑完,從下載發票 PDF、用 ChatGPT 擷取內容、到寫入 Google 試算表,全部自動完成。就像我說的:「其實蠻方便的。」

這篇文章會帶你完整走過我的發票自動化方案,讓你也能省下大量人工處理時間。

你將學到

  • Gmail 篩選器與標籤的前處理設定方法
  • n8n Gmail Trigger 的觸發頻率與篩選條件設定
  • 附件自動下載到 Google Drive 的完整步驟
  • ChatGPT 解析發票內容並輸出標準 JSON 的 Prompt 設計
  • Google Sheets 發票清單的自動化記錄與管理
  • 我自己實測的結果和踩過的坑

什麼是 n8n 發票自動化?

n8n 發票自動化是透過 n8n 工作流引擎,結合 Gmail Trigger 自動偵測新發票郵件,將發票附件下載到 Google Drive 備份,再用 ChatGPT 解析發票內容並自動寫入 Google Sheets 試算表的完整自動化解決方案。 你只需要在 Gmail 設好篩選規則,系統就會自動幫你處理好一切。

很多人問我,為什麼不直接用現成的記帳軟體?重點來了,大部分記帳軟體的自動化功能其實很有限,而且每個月要付月費。用 n8n 自建的好處是:你可以完全客製化流程、串接任何你想要的服務,而且 n8n 社群版是免費的。

我在影片中用 AWS 的電子發票做示範,整個系統的核心流程很簡單:

  1. Gmail 觸發 — Gmail Trigger 偵測到新的電子發票郵件
  2. 確認資料 — 檢查郵件有沒有 ID,確認可以往下執行
  3. 下載備份 — 把發票 PDF 附件自動下載到 Google Drive
  4. 標記已讀 — 打上 n8n-done 標籤,避免重複處理
  5. AI 解析 — ChatGPT 擷取發票內容,輸出標準 JSON
  6. 寫入試算表 — 自動填入 Google Sheets 發票清單

就像我在影片裡面說的:「找發票的效率會提升好幾倍,以前找半天,現在只要幾分鐘就幫你完成了。」


為什麼需要發票自動化?

讓我帶你看一下手動處理跟自動化的差距有多大。我自己實測的結果是,光是省下來的時間就值得你花一個下午來建這套系統。

效率對比

指標手動處理n8n 自動化後改善幅度
每月處理時間4-6 小時幾分鐘省 95%+
資料輸入錯誤率3-5%AI 自動提取大幅降低
發票歸檔管理散落各處集中 Google Drive統一管理
清單整理手動輸入試算表自動寫入即時更新
重複處理風險容易遺漏或重複標籤防呆每張只處理一次

這個很重要:我在流程中設計了兩道防呆機制。第一是把處理過的郵件標成已讀,第二是加上 n8n-done 標籤。就像我在影片裡說的:「n8n-done 是說我用 n8n 做完了,已讀是方便我看。這時候我們在檢視 Gmail 的時候,就會更有效率。」

三大自動化場景

場景一:個人工作室 / 自由接案者 每月發票量 20-50 張,主要是各種雲端服務的電子發票(像是 AWS、Google、各種 SaaS 工具)。用最基本的 Gmail Trigger + Google Drive + ChatGPT + Google Sheets 就能搞定。

場景二:中小企業財務部門 每月 100-500 張發票,來自不同供應商。我在影片裡有提到:「你也可以建立很多組的篩選器的條件,確保你的發票都歸類到 Invoice 正確的位置。」針對不同供應商設定不同的 Gmail 篩選器,全部統一管理。

場景三:跨國業務 如果你有來自不同國家的發票,ChatGPT 的 Prompt 可以設定不同的區域格式。我在影片中提到可以設定 UTF-8、繁體中文、年月日格式:「你要改成你要的地區,因為它會跟時區有關。」


Alex 的實戰觀察

我在建這套系統的時候,發現幾個很重要的眉角,這邊跟大家分享。

Gmail 篩選器的設定比你想像中重要。 我一開始在 Gmail 設篩選條件的時候,用了太寬鬆的關鍵字,結果抓到一堆不相關的郵件。後來我在影片裡示範了怎麼解決:「你會發現你的搜尋條件結果不夠精確,這樣的郵件也被包含進來,所以這時候我們要去細化你的篩選條件。」我的做法是在郵件主旨裡面加上 Invoice ID 這個關鍵字,這樣篩選出來的結果就精準多了。

Mime Type 的坑一定會踩到。 這是我在影片裡特別講的一個重點:「有時候 Gmail 會把他的 Mime Type 文件的格式標錯了,所以我們要進行檢查跟調整。」我在流程中加了一個 Change Mime Type 的步驟,確保下載的附件一定是 PDF 格式。如果你跳過這個步驟,後面 Extract From File 可能會讀不到正確的內容。

ChatGPT 的 Prompt Engineering 是整個系統的靈魂。 我在影片裡面說:「最重要最重要的是設定 ChatGPT 的提示,Prompt Engineering。」我的做法是告訴 ChatGPT「你是一個專業的電子發票整理助手」,然後明確定義輸出的 JSON 格式範本,包含發票編號、類型、日期、應付金額等欄位。加上這些條件限制之後,ChatGPT 輸出的結果就非常穩定。

老實說,這套系統的設計重點不是追求多複雜,而是確保每一步都穩穩的。 我用了兩個標籤(Invoice 和 n8n-done)加上已讀標記,就是為了避免重複處理。整個流程走完你在 Gmail 裡看一眼就知道哪些發票已經處理完、哪些還在排隊。


完整建置步驟

好,接下來我帶你一步一步把這套系統建起來。我會按照影片中的示範順序來講,你跟著抄就對了。

前置作業:Gmail 標籤與篩選器設定

在使用 n8n 之前,我們有前處理要做。就像我在影片裡說的:「需要先在 Gmail 裡面分類你的標籤跟一些自動化的設定。」

第一步:建立兩個 Gmail 標籤

  1. 001-invoice(電子發票)— 用來標記所有發票類的郵件
  2. n8n-done — 用來標示 n8n 已經處理完成的郵件

第二步:設定 Gmail 篩選器

這一步很關鍵。我在影片裡用 AWS 發票做示範,搜尋條件是 Invoice ID

  1. 在 Gmail 搜尋欄輸入你的篩選關鍵字(例如 Invoice ID
  2. 確認搜尋結果只包含你要的發票郵件
  3. 如果結果不夠精確,就「去細化你的篩選條件」
  4. 點選「建立篩選器」
  5. 勾選「套用標籤」→ 選擇「001-invoice 電子發票」
  6. 勾選「也套用到符合條件的現有郵件」

我在影片裡面有個重要提醒:「不同來源的電子發票,比如說你的發票來自於不同的供應商或平台,比如說 Google、YouTube,你也可以建立很多組的篩選器的條件。」

第三步:確認篩選結果

到 Gmail 的設定 → 篩選器管理頁面,確認你的篩選器有正確套用。我自己就設了 AWS 發票過濾器、Google 收據過濾器等好幾組,根據需求來新增。

Step 0:Gmail Trigger — 自動觸發

當 Gmail 收到電子發票以後,我們用 n8n 的 Gmail Trigger 來自動觸發整個流程。

在 n8n 中設定 Gmail Trigger 節點,有三個關鍵設定:

  1. 觸發頻率:我設定每一個小時整點觸發。當然你也可以設定每分鐘,看你的需求。
  2. 篩選條件 — 郵件標籤:選擇「001-invoice 電子發票」這個 Label,確保只抓到發票類的郵件。
  3. 篩選條件 — 郵件狀態:必須是「未讀」的郵件,利用這個來辨別哪些還沒處理過。

設定好之後,觸發器會自動偵測符合條件的新郵件。我在影片裡也有提到:「它如果今天有附件,你就下載對應的電子發票 PDF。所以當你 Gmail 收到新的電子發票,符合這些條件的時候,n8n 就會開始自動處理。」

觸發之後,你可以在 n8n 的 Schema 面板看到郵件的 ID、標題、發送時間、寄件人等資訊,確認資料都正確讀取了。

記得設定好 Google OAuth 認證,不然 Gmail 節點會連不上。

Step 0.5:If Data Output — 確認有資料

這一步是安全檢查。我在影片裡解釋了這個節點的用途:「這個是確認如果他有郵件的 ID,這個 JSON ID,那他就往下走,代表我確認成功,可以執行。」

用一個 If 節點判斷 Gmail Trigger 有沒有回傳資料,有的話才繼續往下執行。這個小小的步驟可以避免空跑的情況。

Step 1:下載電子發票到 Google Drive

確認有資料之後,下一步就是把發票附件下載到 Google Drive。我在影片裡說:「方便統一管理電子的發票,不用每一次手動都要去整理你的郵件。」

1.1 確認附件類型(Change Mime Type)

這一步很多人會跳過,但我建議不要省略。我在影片裡特別提到:「有時候 Gmail 會把 Mime Type 文件的格式標錯了,所以我們要進行檢查跟調整。」

用一個 Code 節點做以下處理:

  • 檢查 File Extension 是不是 .pdf
  • 如果是 PDF,強制設定 Mime Type 為 application/pdf
  • 確保檔案類型一致,避免系統錯誤的讀取

1.2 上傳到 Google Drive

Google Drive 節點把發票上傳到指定資料夾。我在影片裡設定了三個參數:

  1. Input Binary Field:設定 attachment_0,對應到郵件的第一個附件
  2. File Name:使用電子郵件的標題作為檔案名稱(例如 AWS Web Services Invoice Available
  3. Parent Folder:用 URL 指定 Google Drive 的存放位置(例如 n8n-Invoice 資料夾)

上傳完成後,記得到 Google Drive 刷新一下,確認檔案名稱和上傳時間跟發票郵件是對應的。像我在影片裡說的:「確保每一封的發票郵件都可以完整的下載跟備份,未來查詢的時候我們就來 Google Drive 查就比較方便。」

Step 1.5:標記已處理的郵件

發票上傳完之後,我們要做兩件事來避免重複處理:

第一件事:新增 n8n-done 標籤

Gmail 節點,利用郵件的 ID,把 n8n-done 標籤加上去。我在影片裡解釋:「n8n-done 是說我用 n8n 做完了。」

第二件事:把郵件標成已讀

一樣用 Gmail 節點,把郵件的狀態改成已讀。我說:「已讀是方便我看,每一個發票都只處理一次。」

這樣做的好處是,你在 Gmail 裡面一眼就能看出來:「都是灰的已讀,哪些是 n8n 有執行的,標的出來。」檢視郵件的時候就可以清楚哪些發票已經存檔、哪些還在處理。

Step 2:ChatGPT 解析發票內容

這一步是用 ChatGPT 來整理發票的內容,並且匯出資訊變成發票的清單。

2.1 Extract From File — 擷取 PDF 內容

先用 n8n 的 Extract From File 節點,把 PDF 轉成文字資料:

  • 選擇附件類型:From PDF
  • Input Binary Field:attachment_0
  • 輸出 JSON 格式的文字內容

我在影片裡說明:「我們會使用 Extract From File 的功能來處理 Gmail 下載的電子發票附件,把初步的發票號碼、金額、日期等關鍵訊息整理成系統可以讀的格式,再往 ChatGPT 送。」

2.2 ChatGPT 解析與格式化

接下來是整個系統最重要的環節。我在影片裡特別強調:「最重要最重要的是設定 ChatGPT 的提示,Prompt Engineering。」

OpenAI 節點的設定:

  • Operation: Message a Model
  • Model: GPT-4o-Mini(CP 值最高的選擇)
  • Role: System(系統角色)
  • Output: JSON 格式

我的 Prompt 設計重點:

你是一個專業的電子發票的整理助手,請協助我將任意的發票資訊轉換成統一的格式和標準的 JSON 檔案。

按照下面的範本來生成結果:
- invoice_id:發票編號
- invoice_type:發票類型
- invoice_date:發票日期
- amount_due:應付金額
- account_number:帳戶號碼

條件:
- 符合 JSON 標準
- UTF-8 編碼
- 繁體中文
- 日期格式:年/月/日

就像我在影片裡說的:「你就照著抄,抄功課就對了。」然後你要改成你需要的地區和格式,因為跟時區有關。

2.3 整理數據

ChatGPT 解析完成後,用一個 Code 節點把 JSON 資料整理乾淨,準備寫入 Google Sheets。我在影片裡說:「這裡其實就很簡單,是把剛剛 JSON 檔裡面的資料直接放進來,然後回傳這一整串資料比較清楚。」

Step 3:寫入 Google Sheets 發票清單

最後一步,把整理好的發票資料自動寫入 Google Sheets。

Google Sheets 試算表欄位結構:

欄位說明範例
電子發票編號唯一識別碼2035799125
發票類型服務類型AWS Web Services
日期發票日期2026/02/02
應付金額含稅總金額$3.10 USD
帳戶號碼帳號資訊XXXX-XXXX

Google Sheets 節點設定:

  • Operation: Append or Update Row(要嘛增加、要嘛更新)
  • Document URL: 用 URL 指定試算表位置
  • Sheet: 選擇「發票清單」分頁
  • Mapping Column Mode: 手動設定,把 JSON 欄位對應到試算表欄位
  • Matching Column: 用電子發票編號作為唯一的代碼

我在影片裡特別說明:「我們都認這個電子發票的編號作為唯一的代碼。」這樣每次有新的電子發票進來,系統都可以即時更新發票清單,不會重複新增同一張發票。


各方案比較

方案成本自動化程度客製化程度學習曲線適合對象
n8n + ChatGPT免費(社群版)+ API 費用全自動非常高中等想自建的技術愛好者
Zapier + OCR$20-50/月半自動中等不想折騰的一般使用者
專業記帳軟體$30-100/月部分自動有預算的企業
純手動處理$0完全手動N/AN/A發票量很少的人
Python 自建$0 + API 費用全自動最高工程師

我的觀察是,n8n 的優勢在於你可以完全按照自己的需求來客製化。就像我在影片裡示範的,你可以針對不同供應商(AWS、Google、YouTube)建立不同的篩選器,然後統一匯入同一個試算表。這是大部分現成軟體做不到的彈性。


重點整理

  1. 前置作業很重要:在 Gmail 建立正確的標籤(Invoice、n8n-done)和精確的篩選器,是整個自動化能穩定運行的基礎
  2. Gmail Trigger 的三個關鍵設定是觸發頻率、郵件標籤篩選、郵件未讀狀態,三者搭配才能精準抓到新發票
  3. Mime Type 一定要檢查,Gmail 有時候會把文件格式標錯,加一個 Change Mime Type 步驟可以避免後續出錯
  4. Google Drive 統一備份讓你未來查詢發票時有一個集中管理的地方,不用再翻 Email
  5. 雙重標記防呆:n8n-done 標籤加上已讀標記,確保每張發票只處理一次,不會重複
  6. ChatGPT Prompt Engineering 是靈魂:明確定義輸出的 JSON 格式和欄位範本,AI 輸出的結果才會穩定
  7. Google Sheets 用發票編號做唯一代碼,搭配 Append or Update Row 操作,實現自動新增和更新
  8. 免費模板直接用:下載 JSON 檔匯入 n8n 就可以跑,不用從零開始建

常見問題 FAQ

n8n 發票自動化的整個流程需要多少時間建置?

如果你跟著我的影片和這篇教學一步一步做,大概 1-2 小時就能完成基本版。 最花時間的部分其實是前置作業:設定 Gmail 標籤和篩選器。我在影片裡花了不少時間示範怎麼細化篩選條件,因為如果篩選不精確,後面所有步驟都會出問題。n8n 的工作流本身設定很直覺,照著抄就對了。建議先用一張發票測試整個流程,確認每一步都正常之後再開啟自動觸發。

ChatGPT 解析發票的費用大概多少?

使用 GPT-4o-Mini 模型,每張發票的 API 費用非常低,大約台幣 0.5-1 元。 我在影片裡選擇的就是 4o-Mini,因為對於發票這種結構化的文件,不需要用到最貴的模型就能有很好的效果。每月處理 100 張發票,API 費用大概在台幣 50-100 元之間,比起你花的人工時間真的便宜太多了。如果你想要更高的準確率,也可以換成 GPT-4o,費用會稍微高一點。

如果發票附件不是 PDF 格式怎麼辦?

我在影片裡特別處理了 Mime Type 的問題,因為 Gmail 有時候會把文件格式標錯。 如果你收到的是圖片格式(JPG/PNG)的發票掃描檔,需要額外加一個 OCR 辨識步驟。但對於大部分的電子發票來說,都是 PDF 格式,用 Extract From File 節點就能擷取內容。如果遇到 HTML 格式的 Email 內嵌發票,可以直接從郵件內文擷取,不需要額外處理附件。

怎麼處理來自不同供應商的發票?

重點在於 Gmail 篩選器的設定。 我在影片裡有示範:「不同來源的電子發票,比如說來自不同的供應商或平台,你也可以建立很多組的篩選器的條件,確保你的發票都歸類到 Invoice 正確的位置。」所以你可以同時設定 AWS 發票過濾器、Google 收據過濾器等好幾組,全部統一貼上 Invoice 標籤,n8n 就會一視同仁地處理。ChatGPT 的強項就是不管哪家的發票格式,它都能抓出關鍵資訊。

n8n 社群版免費嗎?功能夠用嗎?

社群版完全免費,而且對於發票自動化來說功能綽綽有餘。 Gmail Trigger、Google Drive、OpenAI、Google Sheets 這些節點在社群版全部都有,不需要付費版。唯一的限制是社群版需要自己部署(用 Docker 最方便),但這反而是優點,因為你的發票資料完全留在自己的伺服器上。如果你還沒安裝 n8n,可以參考我的 n8n 本地部署教學

這套系統可以擴展嗎?

當然可以,這也是用 n8n 自建的最大優勢。 我在影片裡展示的是最基本的版本,你可以根據自己的需求加功能。比如說加上 Slack 通知(每次處理完發票就推播通知)、加上月度報表自動產生、或是串接你的會計系統。甚至可以加上異常金額警示,超過某個金額就自動提醒。先把基本版跑穩,再一步一步加功能,這是我最推薦的方式。


下一步行動

🎓 想更有系統地學會這些技巧?AI 職場工作術(雲端方程式 Cloud F1 旗艦課程) 看看完整的實作路徑。

如果你看完這篇想動手試試,我建議你按這個順序來:

  1. 先用 Docker 把 n8n 裝起來
  2. 設定好 Gmail OAuth 認證(參考 Google OAuth 教學
  3. 在 Gmail 建立 Invoice 和 n8n-done 兩個標籤
  4. 針對你最常收到的發票類型設定 Gmail 篩選器
  5. 按照本文的步驟建立 n8n 工作流
  6. 用一張發票測試整個流程,確認每一步都正常

就像我在影片最後說的:「免費的模板就直接提供在下面連結,你只要下載這個 JSON 檔匯入以後就可以用。」

先求大概懂,再開始用,最後才能做成功!

想學更多 n8n 自動化技巧? 加入我們的 Skool 社群,和其他自動化愛好者一起學習交流!


相關資源


✍️ 關於作者:Alex 是一位專注於 n8n 自動化和 AI 應用的技術教育者,透過 YouTube 頻道和 Skool 社群幫助超過數千位學員掌握自動化技能。

想把這篇學到的用進日常工作?

「AI 職場工作術」課程把這類實戰經驗整理成一步步的教學,帶你系統化練出跟 AI 協作的產能。

看 AI 職場工作術課程 →

本文作者:Alex Hsieh,SRE / DevOps 背景出身,現為企業 AI 導入顧問,也是「AI 相談室」課程講師。專注把 AI 自動化真正落地到企業日常流程,而不是停留在 Demo。

目錄
  1. 專業導讀
  2. 你將學到
  3. 什麼是 n8n 發票自動化?
  4. 為什麼需要發票自動化?
  5. 效率對比
  6. 三大自動化場景
  7. Alex 的實戰觀察
  8. 完整建置步驟
  9. 前置作業:Gmail 標籤與篩選器設定
  10. Step 0:Gmail Trigger — 自動觸發
  11. Step 0.5:If Data Output — 確認有資料
  12. Step 1:下載電子發票到 Google Drive
  13. Step 1.5:標記已處理的郵件
  14. Step 2:ChatGPT 解析發票內容
  15. Step 3:寫入 Google Sheets 發票清單
  16. 各方案比較
  17. 重點整理
  18. 常見問題 FAQ
  19. n8n 發票自動化的整個流程需要多少時間建置?
  20. ChatGPT 解析發票的費用大概多少?
  21. 如果發票附件不是 PDF 格式怎麼辦?
  22. 怎麼處理來自不同供應商的發票?
  23. n8n 社群版免費嗎?功能夠用嗎?
  24. 這套系統可以擴展嗎?
  25. 下一步行動
  26. 相關資源