Skip to content

JavaScript 節點 ​

概述 ​

JavaScript 節點(JS Node)允許在 IVR 流程中執行自定義 JavaScript 代碼,實現複雜的業務邏輯。通過此節點,開發者可以存取流程變數、進行複雜計算、調用自定義函數和操作 followData 對象。

功能說明 ​

支援在 IVR 流程中直接編寫 JavaScript 函數,可訪問和修改流程變數、進行數據運算和邏輯控制。所有 JavaScript 代碼執行在沙盒環境中,確保安全性。

設定參數 ​

參數說明
節點名稱(Node Name)JavaScript 節點的識別名稱
JS 函數(JS Functions)輸入自定義的 JavaScript 代碼

操作步驟 ​

  1. 拖拉「JavaScript 節點」到 IVR 編輯區
  2. 雙擊打開配置面板
  3. 輸入 節點名稱,如「數據處理」
  4. 在 JS 函數 編輯區輸入 JavaScript 代碼
  5. 代碼模板示例:
    javascript
    function call(callInfo) {
      // 訪問流程變數
      const array = [0, 1, 2, 3];
      // 進行循環和運算
      for (let i = array.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [array[i], array[j]] = [array[j], array[i]];
      }
      // 存儲結果到 followData
      for (let i = 0; i < array.length; i++) {
        var times = 'times' + '_' + i;
        callInfo.followData.put(times, array[i]);
      }
    }
  6. 點擊 確認 保存配置

使用範例 ​

洗牌演算法實現隨機分配:

javascript
function call(callInfo) {
  // 初始化座席列表
  const agents = [1001, 1002, 1003, 1004];
  // 費舍爾-耶茨洗牌演算法
  for (let i = agents.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [agents[i], agents[j]] = [agents[j], agents[i]];
  }
  // 將隨機排列的座席存儲到 followData
  for (let i = 0; i < agents.length; i++) {
    callInfo.followData.put('agent_' + i, agents[i]);
  }
}

根據客戶屬性計算優先級:

javascript
function call(callInfo) {
  const customerType = callInfo.followData.get('customerType');
  const transactionAmount = callInfo.followData.get('amount');

  let priority = 5;  // 默認優先級

  if (customerType === 'VIP') {
    priority = 1;
  } else if (transactionAmount > 10000) {
    priority = 2;
  } else if (customerType === 'Regular') {
    priority = 3;
  }

  callInfo.followData.put('priority', priority);
}

注意事項 ​

重要提醒

  • JavaScript 代碼執行在安全沙盒中,僅支援標準 JavaScript API
  • 避免無限迴圈或過於複雜的計算,以免影響 IVR 性能
  • 代碼執行超時會導致流程中斷,應設定合理的時間限制
  • 確保代碼中訪問的變數已在流程中定義

最佳實踐

  • 使用有意義的函數名稱和註解提升代碼可讀性
  • 在生產環境前充分測試複雜的 JavaScript 邏輯
  • 使用 callInfo.followData 物件進行資料傳遞,確保資料在流程中可用
  • 定期監控 JavaScript 節點的執行性能,優化低效代碼
  • 避免在 JavaScript 中存儲大量資料,以防內存溢出

操作畫面參考 ​

Js - 操作畫面 1

Copyright © 2026 承暉版權所有|Design by InfoTrends