

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立基礎架構
<a name="create-architecture"></a>

在您定義組織的目標並概述客戶聯絡旅程之後，您可以使用該資訊來定義 IVR 系統的基礎架構。這些資料點對於建立模組化和可擴展的 IVR 架構至關重要。建立良好基礎架構的關鍵原則如下：
+ 消除靜態設計
+ 識別可重複的程序

## 消除靜態設計
<a name="static-design"></a>

開發人員在設計 IVR 系統時常犯的錯誤是引入流程中的靜態資訊或硬式編碼邏輯。此靜態資訊包括提示訊息、要叫用的下一個呼叫流程的值，或要路由呼叫的技能群組。它也可以是從 IVR 呼叫的 API 端點地址或傳回的變數，然後用於在 IVR 系統中分支邏輯。

在 IVR 系統中使用靜態值可讓您難以即時追蹤和變更這些值，並在流程中引入備援。最佳實務是盡可能擁有動態設計。讓我們來看看如何設計多語言 IVR 系統以更清楚這一點的範例。

**靜態方法：**

一般而言，在設計多語言 IVR 系統時，開發人員會識別客戶偏好的語言，然後建立相同流程的兩個版本。第一個版本具有以語言 A 硬式編碼的提示訊息，第二個版本可能具有以語言 B 硬式編碼的訊息，如下圖所示。

 這種方法很難擴展，因為開發人員必須維護相同流程的不同版本。他們也必須在每次新增語言時建立新的流程版本。

![設計 IVR 系統的靜態方法](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/ivr-design-on-connect/images/static.png)


此外，他們對一個流程中的商業邏輯所做的任何變更都必須手動複寫到其他版本。這使得 IVR 設計雜亂和非模組化，並增加創新上市時間。

**動態方法：**

解決此問題的建議方法是將提示訊息指派給變數，而不是在 IVR 設計工具的提示區塊中使用靜態值。根據客戶的語言選擇，從外部資料庫叫用提示值，並填入變數以播放這些訊息，如下表所示。當您使用此方法時，您可以維持單一 IVR 流程，並輕鬆擴展至 *n* 種語言。身為開發人員，您可以將語言提示新增至外部資料庫，並根據 IVR 系統中的客戶選擇或 CRM 查詢傳回的資料來叫用 （使用 API)。這也可以保護 IVR 系統免於業務邏輯的任何變更。當您使用此模型時，請確定您有一個預設分支，其中包含一組可在資料庫或查詢失敗時使用的最小靜態訊息。



![設計 IVR 系統的動態方法](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/ivr-design-on-connect/images/dynamic.png)


## 識別可重複的程序
<a name="repeatable-processes"></a>

識別客戶體驗中的可重複模式有助於消除 IVR 系統中的備援元件。您可以為重複使用案例建立可重複使用的邏輯或模組，並視需要在各種呼叫流程中叫用它們。例如，如果銷售和支援團隊都需要在 IVR 系統中傳送簡訊通知，您可以建立單一、可重複使用的*傳送簡訊*模組，可用於這兩行業務。透過使用此方法，您可以維護單一流程，該模組的任何更新都會以簡化的方式反映在所有 LOBs 中。可重複程序的一些其他常見範例包括：
+ 根據客戶輸入，將語言選擇指派給 IVR 流程。
+ 在 IVR 系統中實作付款處理。
+ 來電者身分驗證邏輯。
+ 使用 CRM 查詢來識別客戶。透過在 CRM 中模組化客戶查詢模組，您可以將通常使用專屬語言的專用連線轉換為簡單的 IVR 區塊。然後，開發客戶體驗的任何人都可以存取和使用這些 IVR 區塊。
+ 執行緊急訊息路由。