使用n8n構建自動化工作流:從數據庫查詢到郵件通知的使用指南

n8n是一款強大的開源工作流自動化工具,可以幫助你將各種服務和應用程序連接起來,創建復雜的自動化流程。下面我將詳細介紹一個實用的n8n用例:從MySQL數據庫查詢數據并發送郵件通知,包括使用場景、搭建步驟和節點部署方法。

使用場景

場景描述:假設你是一家電商公司的運營人員,需要每天上午10點檢查庫存量低于警戒值的商品,并自動發送郵件通知采購部門及時補貨。

工作流功能

  1. 定時觸發工作流(每天上午10點)

  2. 連接MySQL數據庫查詢庫存數據

  3. 篩選出庫存量低于警戒值的商品

  4. 將查詢結果格式化為易讀的HTML表格

  5. 通過SMTP服務發送郵件給采購部門

這個自動化流程可以節省每天手動查詢和發送郵件的時間,確保補貨通知及時準確。

搭建步驟

1. 部署n8n

n8n有多種部署方式,以下是兩種常見方法:

方法一:使用Docker快速部署(適合本地測試)

bash

docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n docker.n8n.io/n8nio/n8n

部署完成后,訪問?http://localhost:5678?即可進入n8n界面。

方法二:使用Railway和Supabase零成本搭建(適合生產環境)
  1. 在Supabase創建數據庫項目,記錄連接信息

  2. 在GitHub創建倉庫并添加簡單的Dockerfile

  3. 在Railway部署項目,關聯GitHub倉庫

  4. 設置環境變量(數據庫連接、加密密鑰等)

  5. 配置自定義域名(可選)

2. 創建工作流

  1. 登錄n8n后,點擊"Add workflow"創建新工作流

  2. 點擊右上角的"Workflow settings"設置工作流名稱和描述

部署節點與配置

以下是完整的工作流節點配置步驟:

節點1:Cron定時觸發器

  1. 從左側面板拖拽"Cron"節點到畫布

  2. 配置屬性:

    • Mode: Every Day

    • Hour: 10

    • Minute: 0

  3. 這個節點會在每天上午10點自動觸發工作流

節點2:MySQL數據庫查詢

  1. 添加"MySQL"節點并連接到Cron節點

  2. 點擊"Create new credential"配置數據庫連接:

    • Host: 數據庫服務器地址

    • Database: 數據庫名稱

    • User: 數據庫用戶名

    • Password: 數據庫密碼

    • Port: 3306(默認)

  3. 在Operation中選擇"Select"

  4. 在Query中填寫SQL語句:

    sql

    SELECT product_id, product_name, current_stock, alert_stock 
    FROM products 
    WHERE current_stock < alert_stock

節點3:IF條件判斷(可選)

  1. 添加"IF"節點連接到MySQL節點

  2. 配置條件判斷是否有低庫存商品:

    • 條件1:?{{$node["MySQL"].json["length"] > 0}}

    • 這樣當查詢結果為空時,工作流會終止而不發送空郵件

節點4:HTML格式化

  1. 添加"Function"節點連接到IF節點(True分支)

  2. 編寫JavaScript代碼將查詢結果格式化為HTML表格:

javascript

const items = $input.all();let html = `<h2>低庫存商品警報</h2><p>以下商品需要及時補貨:</p><table border="1" cellpadding="5" cellspacing="0"><tr><th>商品ID</th><th>商品名稱</th><th>當前庫存</th><th>警戒庫存</th></tr>
`;items.forEach(item => {html += `<tr><td>${item.product_id}</td><td>${item.product_name}</td><td>${item.current_stock}</td><td>${item.alert_stock}</td></tr>`;
});html += `</table>`;return [{ html }];

節點5:郵件發送

  1. 添加"Email (SMTP)"節點連接到Function節點

  2. 點擊"Create new credential"配置SMTP服務:

    • User: 發件郵箱

    • Password: 郵箱密碼或授權碼

    • Host: SMTP服務器地址(如smtp.gmail.com)

    • Port: 465(SSL)或587(TLS)

    • Secure: true(SSL)或false(TLS)

  3. 配置郵件內容:

    • From: 發件人郵箱

    • To: 收件人郵箱(如proxy@tiktoksim.com)

    • Subject: "每日代理IP報告 - {{$now.format('YYYY-MM-DD')}}"

    • Email Type: HTML

    • Message:?{{$node["Function"].json["html"]}}

測試與調試

  1. 點擊右上角的"Execute workflow"手動測試工作流

  2. 檢查每個節點的輸出是否符合預期:

    • MySQL節點應返回查詢結果

    • Function節點應生成正確的HTML

    • Email節點應成功發送郵件

  3. 在節點的"Options"中啟用"Always Output Data"可以查看節點處理的數據

高級優化

1. 分批處理大數據

如果查詢結果很多,可以使用"SplitInBatches"節點分批發送郵件,避免單封郵件過大:

  1. 在MySQL和Function節點之間添加"SplitInBatches"節點

  2. 設置Batch Size為10(每封郵件包含10條記錄)

  3. 將Email節點連接到SplitInBatches節點

2. 錯誤處理

  1. 添加"Error Trigger"節點捕獲工作流中的錯誤

  2. 配置錯誤通知方式(如發送到Slack或另一封郵件)

3. 數據持久化

  1. 使用Supabase作為n8n的數據庫(替代默認的SQLite)

  2. 配置環境變量:

    env

    DB_TYPE=postgresdb
    DB_POSTGRESDB_DATABASE=your_db_name
    DB_POSTGRESDB_HOST=your_supabase_host
    DB_POSTGRESDB_PORT=5432
    DB_POSTGRESDB_USER=postgres
    DB_POSTGRESDB_PASSWORD=your_password

    這樣可以確保工作流數據和憑證在重啟后不會丟失

部署到生產環境

如果使用Railway部署n8n,可以:

  1. 在Railway的項目設置中添加所有必要的環境變量

  2. 配置自定義域名(如n8n.tiktoksim.com)

  3. 設置N8N_ENCRYPTION_KEY環境變量,確保憑證加密安全

  4. 啟用EXECUTIONS_DATA_PRUNE自動清理舊數據,防止數據庫過大

擴展應用

這個基礎工作流可以進一步擴展:

  1. 多通知渠道:添加Slack、企業微信等通知方式

  2. 自動補貨:連接采購系統API,當庫存低于警戒值時自動創建采購訂單

  3. 數據分析:將查詢結果保存到Google Sheets或Notion,形成歷史記錄

  4. AI增強:使用MCP節點接入大模型,讓AI分析庫存趨勢并給出補貨建議

總結

通過這個用例,我們展示了如何使用n8n構建一個完整的自動化工作流,從數據庫查詢到郵件通知。n8n的強大之處在于:

  1. 可視化編排:無需編寫復雜代碼即可連接各種服務

  2. 豐富的節點庫:支持數百種常見應用和服務

  3. 靈活部署:可以在本地Docker運行,也可以部署到云平臺

  4. 擴展性強:可以通過社區節點或自定義代碼擴展功能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902604.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vscode已經打開的python項目,如何使用已經建立的虛擬環境

在 VS Code 中使用已創建的 Conda/Mamba 虛擬環境 pe100&#xff0c;只需以下幾步&#xff1a; 步驟 1&#xff1a;確保虛擬環境已存在 在終端運行以下命令&#xff0c;檢查 pe100 環境是否已正確創建&#xff1a; conda activate pe100 python --version # 應顯示 Python 3…

Volatility工具學習

背景 VMware虛擬機系統hang死&#xff0c;手動重啟無法觸發系統panic&#xff0c;從而不能觸發kdump產生vmcore文件進行原因分析&#xff1b;此種情況下需要手動生成虛擬機內存快照&#xff0c;進而利用Volatility工具分析系統hang死的具體原因。 配置 使用VMware創建虛擬機…

學習筆記(C++篇)--- Day 4

目錄 1.賦值運算符重載 1.1 運算符重載 1.2 賦值運算符重載 1.3 日期類實現 1.賦值運算符重載 1.1 運算符重載 ①當運算符被用于類類型的對象時&#xff0c;C語言允許我們通過通過運算符重載的形式指定新的含義。C規定類類型對象使用運算符時&#xff0c;必須轉換成調用對…

Docker 快速入門教程

1. Docker 基本概念 鏡像(Image): 只讀模板&#xff0c;包含創建容器的指令 容器(Container): 鏡像的運行實例 Dockerfile: 用于構建鏡像的文本文件 倉庫(Repository): 存放鏡像的地方&#xff08;如Docker Hub&#xff09; 2. 安裝Docker 根據你的操作系統選擇安裝方式:…

vue項目中使用tinymce富文本編輯器

vue使用tinymce 文章目錄 vue使用tinymcetinymce富文本編輯器在這里插入圖片描述 一、本文要實現二、使用步驟1.安裝tinymce2.tinymce組件新建3. 在store添加商品詳情的狀態管理4. tinymce組件的引入 tinymce富文本編輯器 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下…

簡單適配torch_npu不支持的ATen算子

簡單適配torch_npu不支持的ATen算子 一、背景說明1.1 PyTorch擴展機制1.2 核心概念二、實現步驟詳解2.1 實現前向、反向傳播算子2.2 編譯生成動態庫2.3 測試驗證程序三、關鍵點解析3.1 設計注意事項3.2 性能優化方向四、驗證結果一、背景說明 1.1 PyTorch擴展機制 PrivateUse1…

同樣的html標記,不同語言的文本,顯示的字體和粗細會不一樣嗎

同樣的 HTML 標記&#xff0c;在不同語言的文本下&#xff0c;顯示出來的字體和粗細確實可能會不一樣&#xff0c;原因如下&#xff1a; &#x1f30d; 不同語言默認字體不同 瀏覽器字體回退機制 CSS 里寫的字體如果當前系統不支持&#xff0c;就會回退到下一個&#xff0c;比如…

基于 Spring Boot 瑞吉外賣系統開發(六)

基于 Spring Boot 瑞吉外賣系統開發&#xff08;六&#xff09; 菜品列表 在系統管理端首頁&#xff0c;單擊左側菜單欄中的“菜品管理”&#xff0c;會在右側打開菜品管理頁面。 請求URL/dish/page&#xff0c;請求方法GET,請求參數page&#xff0c;pageSize。 該菜品列表…

計算機視覺與深度學習 | TensorFlow基本概念與應用場景:MNIST 手寫數字識別(附代碼)

TensorFlow 基本概念 TensorFlow 是一個開源的機器學習框架,由 Google 開發,核心概念包括: 張量(Tensor):多維數組,是數據的基本單位。計算圖(Graph):早期版本中用于描述數據流和計算過程,2.x 默認啟用即時執行(Eager Execution),兼顧靈活性和性能。層(Layers)…

vue+django+LSTM微博輿情分析系統 | 深度學習 | 食品安全分析

文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站&#xff0c;有好處&#xff01; 編號&#xff1a; D031 LSTM 架構&#xff1a;vuedjangoLSTMMySQL 功能&#xff1a; 微博信息爬取、情感分析、基于負面消極內容輿情分析…

RHCE第三次作業 搭建dns的正向解析服務器

server為服務器 client為客戶端 設置主配置文件 在server下&#xff1a; [rootServer ~]#vim /etc/named.conf #進入到配置頁面&#xff0c;并修改 設置區域文件 [rootServer ~]# vim /etc/named.rfc1912.zones 設置域名解析文件 [rootServer named]# cd /var/named…

Windows 同步技術-一次性初始化

組件通常設計為在首次調用時執行初始化任務&#xff0c;而不是加載它們時。 一次性初始化函數可確保此初始化僅發生一次&#xff0c;即使多個線程可能嘗試初始化也是如此。 Windows Server 2003 和 Windows XP&#xff1a; 應用程序必須使用 互鎖函數 或其他同步機制提供自己的…

OpenCV 中的角點檢測方法詳解

文章目錄 引言1. Harris角點檢測原理1.1 什么是角點&#xff1f;1.2 Harris算法的核心思想1.3 角點、邊緣和平坦區域的區分 2. OpenCV實現Harris角點檢測3. 總結 引言 在計算機視覺和圖像處理中&#xff0c;特征點檢測&#xff08;Feature Detection&#xff09;是一個關鍵任務…

全面介紹AVFilter 的添加和使用

author: hjjdebug date: 2025年 04月 22日 星期二 13:48:19 CST description: 全面介紹AVFilter 的添加和使用 文章目錄 1.兩個重要的編碼思想1. 寫代碼不再是我們調用別人&#xff0c;而是別人調用我們!2. 面向對象的編程方法. 2. AVFilter 開發流程2.1 編寫AVFilter 文件2.1.…

生物計算安全攻防戰:從DNA存儲破譯到碳基芯片防御體系重構

隨著碳基生物芯片突破馮諾依曼架構限制&#xff0c;DNA數據存儲密度達到1EB/克量級&#xff0c;合成生物學與信息技術的融合正引發新一輪安全革命。本文深入解析碳基芯片逆向工程路徑&#xff0c;揭示酶驅動DNA數據解碼的技術突破&#xff0c;預警合成生物回路潛在的數據泄露風…

Spring Boot 集成 Ollama API 使用總結

Spring Boot 中集成 Ollama API 的完整指南&#xff0c;涵蓋基礎配置、API 調用、性能優化及常見問題解決。 一、環境準備 1. 依賴配置 在 pom.xml 中添加必要的依賴&#xff1a; <!-- Spring Web (用于 REST 請求) --> <dependency><groupId>org.springf…

SimVG論文精讀

1. 數據集和任務部分 SimVG用的六個數據集&#xff1a;RefCOCO//g, ReferIt, Flickr30K, and GRefCOCO 數據集名稱圖像數量參照表達式數量參照對象實例數語言特性主要任務RefCOCO19,994142,20950,000?基于 MS COCO 圖像&#xff0c;采用 ReferItGame 收集的指代表達數據集。…

VS中回顯109:對‘pthread_create’未定義的引用

VS中解決 用VS2022寫多線性程時需要使用pthread_create()用于創建線程,即使項目里加了所需要的頭文件#include <pthread.h>但編譯卻報對pthread_create未定義的引用的錯誤,這是因為沒有包含所需要的庫 項目右擊屬性 在庫依賴項中添加 pthread Ubuntu中解決 在Ubuntu中…

kotlin與MVVM結合使用總結(一)

一、Kotlin 與 MVVM 結合的核心優勢 代碼簡潔性 數據類&#xff08;data class&#xff09;簡化 Model 層定義&#xff0c;自動生成equals/hashCode/toString擴展函數簡化 View 層邏輯&#xff08;如點擊事件擴展&#xff09;lateinit/by lazy優化 ViewModel 屬性初始化 異步處…

視頻分析設備平臺EasyCVR安防視頻小知識:安防監控常見故障精準排查方法

隨著安防監控技術的飛速發展&#xff0c;監控系統已經成為現代安防體系中不可或缺的核心組成部分&#xff0c;廣泛應用于安防監控、交通管理、工業自動化等多個領域。然而&#xff0c;監控系統的穩定運行高度依賴于設備的正確配置、線路的可靠連接以及電源的穩定供電。在實際應…