描述問題/錯誤/問題
我想建立一個自動化流程,可以等待客戶回覆電子郵件,如果他們在 X 天內沒有回覆,我們就會跟進。我的問題是工作流程是否會超時,以及是否有更有效的方式來進行此操作,使工作流程不會堆積並導致伺服器當機?
@Isaac_Cheang 它不會逾時或堆積,那正是 Wait 節點的用途。任何超過約 65 秒的等待都會卸載到資料庫,所以 X 天的等待在暫停期間基本上不佔用資源,它只是以一行的形式存在,並在時間到時恢復,沒有任何東西在記憶體中持續運行。對於你的後續動作,將 Wait 設定為在 webhook 上恢復,最多等待 X 天,這樣回覆會提早恢復它,否則 X 天的限制會觸發後續動作。只有在真正很高的流量情況下,我才會改用狀態表加上每日排程檢查,但對於正常流量,Wait 節點處理得很乾淨。
你好,@Isaac_Cheang。
n8n 雲端的舊限制(5 分鐘)已不再生效,目前沒有嚴格的限制。不過,對於自行託管的應用程式,你可以使用以下程式碼設定逾時時間為 3600:EXECUTIONS_TIMEOUT=3600。
Configure workflow timeout settings | n8n Docs Configure workflow timeout settings | n8n Docs
此外,等待節點不被視為並行處理,因為它只是在等待,並沒有執行任何操作。此外,等待節點不被視為並行處理,因為它只是在等待,並沒有執行任何操作。
以下是推薦的 3 個工作流程架構:
待回覆。今天 + X 天。已回覆。待回覆。狀態 等於 待回覆 且跟進日期 小於或等於 今天。跟進日期 更新為 今天 + X 天(如需要,以循環跟進)。感謝 @achamm 的幫助!我只是想知道,wait 節點要正常運作,應該考慮什麼樣的流量?而且 webhook 會在電子郵件節點之後立即回應嗎?再次感謝!
正常數量主要取決於恢復突發,而不是停滯等待。數百或幾千個停滯等待通常是沒問題的,因為它們是資料庫記錄;風險情況是許多記錄在同一分鐘內喚醒並同時觸發 Gmail/SMTP/API 限制。如果可能發生這種情況,請分散到期時間或在 pending_reply 表上執行排程批次。
對於 webhook 路徑,將其保持為回覆信號:將潛在客戶標記為已回覆並快速返回。後續電子郵件應放在超時/到期分支上,而不是在回覆 webhook 之後,這樣回覆的人就不會等待電子郵件節點。
嗨 @kjooleng,感謝你提供這個,我也設定了類似的東西,但我把工作流程 2 和 3 合併在一起,這樣它就只需要每 24 小時檢查一次電子郵件,如果他們還沒有回覆,且距離現在已經超過 2 天,就會發送後續追蹤。我們需要資料庫有什麼特別的原因嗎?
如果您的 n8n 實例當機或伺服器重新啟動,根據您的設定,待執行的「等待」執行可能無法正確繼續。
此外,與其讓工作流程等待,不如讓工作流程檢查。這是 CRM 自動化的業界標準。您可以將「等待」邏輯從工作流程移出,並放入資料庫(Airtable、Google Sheets、PostgreSQL 或 MongoDB)。這樣同時也能節省伺服器資源