串接 Gmail:AI 郵件助手
前面三十章,AI 都在 Dify 裡「說話」。這一章讓它真的動手做事——把工作流接上你的 Gmail:填幾個要點,AI 擴寫成一封得體的信,然後直接從你的信箱寄出去。這是「串接外部服務」的第一課,重點有兩個:怎麼完成 Google OAuth 授權,以及怎麼在工作流裡用 Gmail 工具。
職場每天都在寫重複性的信:會議確認、報價跟進、通知提醒、客服回覆。內容八成是套路,卻還是要一封封親手打、找收件人、寄出。更麻煩的是——AI 就算幫你寫好了,你還是得複製貼上到信箱再寄。如果能讓工作流「寫完直接寄」,把整條龍打通,就能把大量的郵件雜務自動化,人只需要在需要判斷時介入。
本章目標
- 解決什麼
- 填收件人與要點,AI 擴寫成完整信件並直接透過你的 Gmail 寄出
- 用到的技術
- Gmail 外掛(OAuth 授權)+工作流的 Gmail 工具節點;開始 → LLM → Gmail → 輸出
- 難度
- ★★★★☆ 第一次讓 Dify 連上你自己的外部帳號、真的執行對外動作
先看做完長什麼樣——填三格、按執行,一封 AI 寫好的信就從你的 Gmail 寄出去了:
收件人:someone@example.com
主旨:關於下週會議時間確認
內容要點:想跟對方確認下週三下午2點的會議是否方便,地點在公司會議室,議題是專案進度,請對方回覆確認。
AI 依「要點」擴寫、並透過 Gmail 寄出的信:
您好:
冒昧來信打擾,希望您一切順利。
想與您確認下週三(__月__日)下午 2 點的會議時間是否方便,地點預計安排在公司會議室,主要議題為專案進度討論,屆時將與您一同檢視目前的執行狀況並討論後續規劃。
若上述時間與地點皆無問題,麻煩您回覆確認;若有任何時間衝突或需要調整之處,也請不吝告知,我會盡快協調安排。
感謝您撥冗確認,期待與您於會議中討論。
祝順心
使用者只填「收件人/主旨/要點」三格,AI 就擴寫成完整信件並直接從你的 Gmail 寄出(回傳 Email sent successfully!)。
👇 在 Dify 裡實際執行、長這樣
Email sent successfully!——信已經真的寄出,對方的收件匣就會收到。下載本章 DSL,到你的 Dify「匯入 DSL 檔案」即可複製這個範例。注意:匯入後要在你自己的工作區完成 Gmail 授權(見下方 31.1),Gmail 節點才能寄信。
31.1前置:完成 Gmail 的 Google OAuth 授權
要讓 Dify 用「你的」Gmail 帳號寄信,得先完成 Google 的 OAuth 授權。自架的 Dify 沒有內建可用的 Google 用戶端,所以你要自己建一組 Google Cloud OAuth 用戶端填進 Dify。一次設定,之後所有 Gmail 節點都能用。
31.1.1在 Google Cloud Console 建 OAuth 用戶端
- 啟用 Gmail API到
console.cloud.google.com建立(或選)一個專案 → 在「API 和服務 → 程式庫」搜尋並啟用 Gmail API。(這步常被漏掉,漏了會授權成功卻收不到權限。) - 設定 OAuth 同意畫面User Type 選「外部」,填應用名稱與支援信箱;在「測試使用者」加入你要用來寄信的 Google 帳號——這一步是關鍵,未驗證的應用只有測試使用者能授權,否則會被 Google 擋下(Access blocked)。
- 建立 OAuth 用戶端 ID「憑證 → 建立憑證 → OAuth 用戶端 ID」,類型選「網頁應用程式」。
・已授權的 JavaScript 來源:http://localhost
・已授權的重新導向 URI(一字不差):http://localhost/console/api/oauth/plugin/langgenius/dify-gmail/dify-gmail/tool/callback - 複製憑證建立後把 Client ID 與 Client Secret 複製下來。
重新導向 URI 必須是上面那條完整路徑(不是
http://localhost/)。另外你的 Dify 需設定 CONSOLE_API_URL(如 http://localhost),OAuth 才組得出正確的絕對回呼網址;若是用官方 docker-compose,記得在 .env 設好並重啟。31.1.2在 Dify 填入用戶端並授權
- 填自訂 OAuth 用戶端Dify →「Integrations(整合)→ Tools」→ 點 Gmail → 在「自訂 OAuth 用戶端」貼上剛剛的 Client ID 與 Client Secret → 儲存。這一步讓 Dify 改用你的用戶端。
- 授權點「授權 / Authorize」→ 用你設為測試使用者的 Google 帳號登入 → 若跳「未驗證」畫面就點「繼續(前往,不安全)」→ 完成。
31.2逐節點:四個節點怎麼設
授權完成後,建一個「工作流」應用,串四個節點:開始 → 撰寫郵件內文(LLM)→ Gmail 寄送 → 輸出。
31.2.1節點①「開始」:收件人、主旨、要點
開始節點設三個輸入欄位:to(收件人信箱,短文字)、subject(郵件主旨,短文字)、points(內容要點,段落——使用者只要條列幾句,AI 會擴寫)。
31.2.2節點②「撰寫郵件內文」LLM:把要點擴寫成信
LLM 節點的提示詞用 {{#開始.subject#}} 與 {{#開始.points#}} 帶入主旨與要點,要求它寫出得體、完整的繁體中文信件內文(開頭稱呼、正文有禮、結尾署名留空),並下規則「只輸出內文、不要冗長」。
text 就是信件內文。31.2.3節點③「Gmail 寄送」:真的把信寄出去
新增一個 Gmail 工具節點,選 Send Gmail Message。三個必填參數對應變數:To ← {{#開始.to#}}、Subject ← {{#開始.subject#}}、Email Body ← {{#撰寫郵件內文.text#}}(CC/BCC/Reply-To 選填)。右上的授權選「工作區默認」用剛授權好的帳號。設定面板見上方圖 31-1。
31.3執行:一封信真的寄出
發布後執行,填收件人、主旨、要點(例如「跟對方確認下週三下午 2 點的會議」)。工作流跑完,Gmail 節點回傳 Email sent successfully!,對方的收件匣立刻收到這封 AI 寫的信(見章首圖)。從輸入到寄達,全程幾秒、零複製貼上。
AI 從「幫你寫好、你自己去寄」升級成「寫完直接寄」;例行郵件(會議確認、跟進、通知)真正自動化。再往前一步:把這個工作流接上第 9 章的 API,讓你的系統在特定事件時自動呼叫它寄信;或接上排程觸發,定時寄出報表通知。
寄信是真的對外送出的動作,測試時建議先寄給自己,確認內容與收件人無誤再對外使用。正式流程可加一個「人工確認」關卡(例如先產草稿
draft_message、由人看過再 send_draft 寄出),避免自動寄錯。Gmail 授權綁的是你個人帳號,寄件者就是你,請留意用途與頻率。31.4延伸:其他外部服務也是同套路
- Google Drive同樣走 Google OAuth(記得也啟用 Drive API),可讓工作流把產出的檔案存進雲端硬碟。
- Slack最簡單——只要一個 Incoming Webhook 網址(不用 OAuth),適合做「工作流結果自動通知」。
- Facebook/Instagram沒有現成外掛,可用第 30 章的 HTTP Request 節點打 Meta Graph API(需要你的 Meta 應用程式 access token)。
- 你的內部系統凡是有 API 的,都能用 HTTP 節點串接——Dify 因此能成為串起你既有工具的中樞。
輸出、發布與使用:把成果交付出去
做好的應用要能發布、分享給別人用才有價值。以下是這個應用的輸出設定與發布/使用畫面:
31.5本章回顧
- 串接外部帳號的門檻在授權:自架 Dify 要自己建 Google OAuth 用戶端、把自己設為測試使用者、填對回呼 URI。
- 授權完成後,Gmail 工具節點就像一般節點一樣用——把 To/Subject/Body 對應到流程變數即可。
- 寄信是真實對外動作;正式用建議加人工確認關卡、先寄給自己測試。
- 同一套路可延伸到 Drive、Slack、Meta 與任何有 API 的系統——Dify 成為串起你工具的中樞。