Stories

Detail Return Return

用 n8n 實現工作自動化後,我每天多睡 2 小時! - Stories Detail

圖片.png

n8n 是一個開源的工作流自動化平台,允許用户通過拖放節點來創建複雜的自動化流程。n8n 提供了豐富的內置節點和社區貢獻的節點,支持與各種 API、數據庫和其他服務集成。本文將詳細介紹 n8n 中節點的使用方法,包括如何添加節點、配置節點、連接節點以及調試和優化工作流。

1. n8n 基本概念

1.1 工作流(Workflow)

工作流是由多個節點組成的自動化流程,每個節點代表一個操作,如發送電子郵件、處理數據、調用 API 等。

1.2 節點(Node)

節點是工作流中的基本構建塊,每個節點執行特定的操作。節點可以分為輸入節點、處理節點和輸出節點。

1.3 輸入節點(Trigger Nodes)

輸入節點觸發工作流的執行。常見的輸入節點包括定時器、Webhook、事件觸發器等。

1.4 處理節點(Process Nodes)

處理節點對數據進行處理和轉換,如數據映射、過濾、聚合等。

1.5 輸出節點(Action Nodes)

輸出節點執行最終的操作,如發送電子郵件、保存數據到數據庫、調用外部 API 等。

1.6 連接(Connection)

連接用於將節點鏈接在一起,定義數據流動的方向。每個節點可以有多個輸入和輸出連接。

圖片.png

2. 安裝和啓動 n8n

2.1 使用 Docker 安裝

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

2.2 使用 npm 安裝

npm install -g n8n
n8n

2.3 訪問 n8n

打開瀏覽器,訪問 http://localhost:5678 即可進入 n8n 的 Web 界面。

3. 創建和編輯工作流

3.1 創建新工作流

  1. 登錄 n8n Web 界面。
  2. 點擊左側菜單中的“+ New Workflow”按鈕。
  3. 輸入工作流名稱,點擊“Create”。

3.2 添加節點

  1. 在畫布上點擊右鍵,選擇“Add Node”。
  2. 在搜索框中輸入節點名稱,如“HTTP Request”、“Set”等。
  3. 選擇所需的節點並拖放到畫布上。

3.3 配置節點

  1. 選中節點後,在右側的“Node Parameters”面板中進行配置。
  2. 根據節點類型填寫相應的參數,如 URL、HTTP 方法、請求體等。

3.4 連接節點

  1. 選中源節點的輸出端口(通常在節點底部)。
  2. 將鼠標拖動到目標節點的輸入端口(通常在節點頂部)。
  3. 放開鼠標,連接線將自動創建。

3.5 保存工作流

  1. 點擊右上角的“Save”按鈕。
  2. 輸入工作流名稱(如果尚未命名),點擊“Save”。

4. 常見節點類型和使用示例

4.1 輸入節點(Trigger Nodes)

4.1.1 HTTP Request Trigger

用於接收 HTTP 請求並觸發工作流。

  1. 搜索並添加“HTTP Request”節點。
  2. 配置節點:

    • Method: 選擇 HTTP 方法(GET、POST 等)。
    • Path: 設置請求路徑。
  3. 連接後續節點,處理請求數據。

4.1.2 Cron Trigger

用於定時觸發工作流。

  1. 搜索並添加“Cron”節點。
  2. 配置節點:

    • Mode: 選擇觸發模式(Every Minute、Every Hour 等)。
    • Timezone: 設置時區。
  3. 連接後續節點,執行定時任務。

4.2 處理節點(Process Nodes)

4.2.1 Function Node

用於執行自定義 JavaScript 代碼。

  1. 搜索並添加“Function”節點。
  2. 配置節點:

    • Function Code: 編寫 JavaScript 代碼,處理輸入數據。
  3. 示例代碼:

    return items.map(item => {
        item.json.newField = "New Value";
        return item;
    });

4.2.2 Set Node

用於設置或修改數據字段。

  1. 搜索並添加“Set”節點。
  2. 配置節點:

    • Name: 字段名稱。
    • Value: 字段值。
  3. 示例配置:

    • Name: newField
    • Value: New Value

4.3 輸出節點(Action Nodes)

4.3.1 HTTP Request Node

用於發送 HTTP 請求。

  1. 搜索並添加“HTTP Request”節點。
  2. 配置節點:

    • URL: 請求地址。
    • Method: HTTP 方法(GET、POST 等)。
    • Headers: 請求頭。
    • Body: 請求體(適用於 POST 請求)。
  3. 示例配置:

    • URL: https://api.example.com/data
    • Method: POST
    • Body: {"key": "value"}

4.3.2 Send Email Node

用於發送電子郵件。

  1. 搜索並添加“Send Email”節點。
  2. 配置節點:

    • Service: 選擇郵件服務提供商(Gmail、Outlook 等)。
    • Authentication: 配置認證信息。
    • To: 收件人郵箱。
    • Subject: 郵件主題。
    • Body: 郵件正文。
  3. 示例配置:

    • Service: Gmail
    • To: example@example.com
    • Subject: Hello
    • Body: This is a test email.

5. 調試和優化工作流

5.1 查看日誌

  1. 點擊右側的“Logs”面板。
  2. 查看工作流執行過程中的日誌信息,幫助調試問題。

5.2 測試節點

  1. 選中節點後,點擊右側的“Test”按鈕。
  2. 輸入測試數據,查看節點的輸出結果。

5.3 優化性能

  1. 批量處理:使用批處理節點減少請求次數,提高性能。
  2. 緩存數據:使用緩存節點存儲臨時數據,避免重複計算。
  3. 併發執行:使用併發節點同時執行多個操作,提高效率。

5.4 使用表達式

n8n 支持使用表達式動態生成參數值。

  1. 在參數輸入框中輸入 ={{expression}}
  2. 示例表達式:

    • ={{$node["Function"].json.newField}}
    • ={{new Date().toISOString()}}

6. 社區貢獻節點

n8n 擁有龐大的社區貢獻節點庫,可以滿足各種需求。

6.1 查找節點

  1. 點擊左側菜單中的“Nodes”選項。
  2. 使用搜索框查找所需節點。
  3. 點擊“Install”按鈕安裝節點。

6.2 常見社區貢獻節點

6.2.1 Google Sheets Node

用於操作 Google Sheets。

  1. 安裝節點:Google Sheets
  2. 配置節點:

    • Authentication: 配置 Google API 認證。
    • Operation: 選擇操作(Read、Write 等)。
    • Spreadsheet ID: 表格 ID。
    • Range: 單元格範圍。

6.2.2 Slack Node

用於與 Slack 集成。

  1. 安裝節點:Slack
  2. 配置節點:

    • Authentication: 配置 Slack API 認證。
    • Operation: 選擇操作(SendMessage、GetChannelMessages 等)。
    • Channel: 頻道 ID。
    • Message: 消息內容。

7. 示例:構建一個簡單的數據處理工作流

下面是一個使用 n8n 構建的簡單數據處理工作流示例,該工作流從 HTTP 請求接收數據,處理數據併發送電子郵件。

7.1 工作流概述

  1. HTTP Request Trigger: 接收 HTTP POST 請求。
  2. Function Node: 處理接收到的數據。
  3. Send Email Node: 發送處理後的數據作為電子郵件。

7.2 步驟詳解

7.2.1 添加 HTTP Request Trigger

  1. 搜索並添加“HTTP Request”節點。
  2. 配置節點:

    • Method: POST
    • Path: /process-data

7.2.2 添加 Function Node

  1. 搜索並添加“Function”節點。
  2. 配置節點:

    • Function Code: 處理接收到的數據。
    return items.map(item => {
        const inputData = item.json;
        inputData.processed = true;
        return item;
    });

7.2.3 添加 Send Email Node

  1. 搜索並添加“Send Email”節點。
  2. 配置節點:

    • Service: Gmail
    • Authentication: 配置 Gmail 認證。
    • To: example@example.com
    • Subject: Processed Data
    • Body: 使用表達式動態生成郵件正文。
    Processed Data: {{JSON.stringify($node["Function"].json)}}

7.2.4 連接節點

  1. 將“HTTP Request”節點的輸出連接到“Function”節點的輸入。
  2. 將“Function”節點的輸出連接到“Send Email”節點的輸入。

7.2.5 測試工作流

  1. 保存工作流。
  2. 使用 Postman 或其他工具發送 HTTP POST 請求到 http://localhost:5678/process-data
  3. 檢查收件箱,確認收到處理後的數據郵件。

7.3 示例代碼

以下是完整的示例代碼,展示如何在 n8n 中配置和連接這些節點。

7.3.1 HTTP Request Trigger

{
  "parameters": {
    "method": "POST",
    "path": "/process-data"
  },
  "type": "trigger",
  "typeVersion": 1,
  "name": "HTTP Request",
  "displayName": "HTTP Request",
  "position": [100, 100]
}

7.3.2 Function Node

{
  "parameters": {
    "functionCode": "return items.map(item => {\n    const inputData = item.json;\n    inputData.processed = true;\n    return item;\n});"
  },
  "type": "function",
  "typeVersion": 1,
  "name": "Function",
  "displayName": "Function",
  "position": [300, 100]
}

7.3.3 Send Email Node

{
  "parameters": {
    "service": "gmail",
    "authentication": "your-auth-id",
    "to": "example@example.com",
    "subject": "Processed Data",
    "body": "Processed Data: {{JSON.stringify($node[\"Function\"].json)}}"
  },
  "type": "emailSend",
  "typeVersion": 1,
  "name": "Send Email",
  "displayName": "Send Email",
  "position": [500, 100]
}

7.3.4 連接節點

  1. 將“HTTP Request”節點的輸出連接到“Function”節點的輸入。
  2. 將“Function”節點的輸出連接到“Send Email”節點的輸入。

使用公眾號自動生成草稿

圖片.png

user avatar yinzhixiaxue Avatar qingzhan Avatar huajianketang Avatar banana_god Avatar hard_heart_603dd717240e2 Avatar u_17443142 Avatar zero_dev Avatar yqyx36 Avatar bugDiDiDi Avatar DingyLand Avatar hyfhao Avatar Javaer1995 Avatar
Favorites 62 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.