使用 n8n 建立報價單的 O2C 流程

我是 n8n 的新手,我試著建立一個報價生成工作流程。

我的目標是:

  1. 接收客戶詳細資訊(姓名、電子郵件、服務、數量、價格)

  2. 自動計算總額

  3. 生成報價單號

  4. 建立 PDF 報價單

  5. 透過電子郵件將報價單傳送給客戶

目前,我對於如何設定 Set 節點和在節點之間傳遞資料感到困惑。我不確定應該在哪裡新增客戶資訊,以及如何正確對應欄位。

有人可以指導我:

  • 每個步驟應該使用哪些節點?

  • 我應該如何構建工作流程?

  • 我如何從報價單資料生成 PDF?

@Sifrabasayar_12

你可以用這個討論串作為起點

生成的工作流程應該能滿足你的大部分需求

從資料形狀開始,而不是 PDF 節點。建立一個測試項目,包含你需要的確切欄位:customer_namecustomer_emailservicequantityunit_pricetotalquote_number

一旦該項目存在,下一個節點只需將這些欄位名稱對應到 PDF/電子郵件步驟中。第一個客戶詳細資訊將在何處進入 n8n:表單、webhook、試算表還是手動測試項目?

歡迎 @Sifrabasayar_12!補充 @oimrqs_ops 說的 - 特別是針對 PDF 步驟,在 n8n 中最簡單的方法是使用 HTML Template 節點來建立報價單版面,並對應你的欄位,然後將該 HTML 傳輸到 HTTP Request 節點,呼叫免費的 PDF API(例如 html2pdf.it)或自行託管的 Gotenberg 實例。HTML 範本方法讓你可以完全控制報價單設計,而不需要額外的授權成本。對於報價單編號,可以在 Code 節點中使用類似 'Q-' + Date.now() 的方式產生,或使用儲存在靜態工作流變數中的循序計數器。一旦你取得 PDF 作為二進位資料,就可以直接使用 {{ $binary.data }} 將其附加到 Gmail 節點的附件欄位中。

@Sifrabasayar_12,用清晰的結構把所有東西整合在一起:
觸發 → 表單觸發或 Webhook(擷取客戶名稱、電郵、服務、數量、價格)
計算總計 → Set 節點:新增欄位 total = {{ $json.quantity * $json.unit_price }}
生成報價號 → Code 節點:return [{ json: { …$input.first().json, quote_number: ‘Q-’ + Date.now() } }]
製作 PDF → HTML 節點設計報價版面,使用 {{ $json.customer_name }} 等,然後 HTTP Request 節點 → html2pdf.it(免費、無需註冊)將其轉換為 PDF 二進制
傳送電郵 → Gmail 節點,收件人:{{ $json.customer_email }},附加上一個節點的 PDF 二進制檔案
在節點之間傳遞資料的關鍵:每個節點都會接收來自前一個節點的 $json。使用 Set 節點新增或重新命名欄位,這些欄位就能在下游的每個節點中使用。一旦你的測試項目在第 1 步設定了所有欄位,其餘的就只需透過這些相同的欄位名稱進行對應。

歡迎 @Sifrabasayar_12

以下是一個簡潔的節點結構:

  1. n8n 表單觸發器以收集客戶名稱、電子郵件、服務、數量、價格
  2. 程式碼節點以計算總額並生成報價單號:"Q-" + Date.now()
  3. 對於 PDF - 最簡單的初級友好路徑是 Google Docs:創建一個範本文檔,使用佔位符如 {{customer_name}}、{{total}},使用 Google Docs 節點(替換文字操作)填充它們,然後通過 Google Drive 節點(下載操作,將輸出格式設定為 PDF)匯出為 PDF
  4. Gmail 節點以發送帶有匯出 PDF 作為附件的電子郵件

首先只測試步驟 1 和 2,以確保你的欄位形狀正確,再加入 PDF 步驟。