

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# “连接客户：外部工具” 中的流程块
<a name="external-tool"></a>

本主题定义了用于直接从流程中调用外部应用程序中的工具的流程块。

**注意**  
**外部工具**块仅在 [ Amazon Connect 客户](https://docs.aws.amazon.com/connect/latest/adminguide/enable-nextgeneration-amazonconnect.html)实例中可用，并且仅在某些地区可用。有关区域列表，请参阅[外部工具](regions.md#externaltool_region)。

## 说明
<a name="external-tool-description"></a>
+ 从外部应用程序（例如 Salesforce 或 ServiceNow）中调用通过亚马逊 Bedrock 网关与您的 Connect Customer 实例集成的工具。 AgentCore 您的流程可以向第三方应用程序发送数据和从第三方应用程序读取数据，而无需维护自定义 Lambda 函数。
+ 同步运行工具，流程暂停直到工具返回，或者异步运行，流程继续运行。对于异步调用，添加另一个设置为 “**加载工具结果” 的 Ex ** ternal Tool ** 模块**以检索结果。
+ 将结果存储在`$.ExternalTool`命名空间中。

## 支持的渠道
<a name="external-tool-channels"></a>

下表列出了此数据块如何路由正在使用指定渠道的联系人。


| 频道 | 是否支持？ | 
| --- | --- | 
| 语音 | 是 | 
| Chat | 是 | 
| 任务 | 是 | 
| 电子邮件 | 是 | 

## 流类型
<a name="external-tool-types"></a>

您可以在以下[流类型](create-contact-flow.md#contact-flow-types)中使用此数据块：
+ 所有流

## 先决条件和依赖关系
<a name="external-tool-prerequisites"></a>

在使用此区块之前，必须[将外部应用程序作为 MCP 服务器](https://docs.aws.amazon.com/connect/latest/adminguide/3p-apps-mcp-server.html#3p-apps-mcp-server-how-to-integrate)与 Connect Customer 实例集成。要设置集成，请执行以下操作：

1. 打开 “连接客户” 控制台。

1. 添加新的集成并选择 ** MCP 服务器**作为集成类型。

1. 选择 Bedrock AgentCore 网关来连接您的实例。如果不存在网关，请 AgentCore[先在 Bedrock 中](https://docs.aws.amazon.com/connect/latest/adminguide/3p-apps-mcp-server.html#3p-apps-mcp-server-how-to-integrate)创建一个网关。

1. 在网关的入站身份配置中，将网关 ID 添加到 “**允许的受众**” 字段。要成功调用工具，需要网关 ID。

1. 通过选择使用网关发现 URL 配置的实例，将您的 Connect Customer 实例与集成关联起来。

集成完成后，应用程序将显示在 Ex ** ternal Tool ** 块中，可以按名称进行选择。

## Properties
<a name="external-tool-properties"></a>

该区块支持以下操作。使用 “选择动作**” 选择动作**。默认为 “**调用工具” **。

### 调用工具
<a name="external-tool-invoke-tool"></a>

下图显示了 “外部工具” 模块属性中的 “调用” 工具操作配置。

![外部工具块显示调用工具操作以及应用程序名称和工具名称字段。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/external-tool-invoke.png)


![外部工具块显示调用工具操作的执行模式和超时设置。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/external-tool-invoke-2.png)

+ **应用程序名称**（必填）：要调用的外部应用程序。您可以手动或动态进行设置。仅显示与您的实例关联的应用程序。
+ **工具名称**（必填）：要在应用程序中调用的工具。您可以手动或动态进行设置；手动列表按应用程序更新。输入字段由工具架构生成，工具输入可以手动、动态或以原始 JSON 形式提供。
+ **执行模式**：
  + **同步**：只有在外部工具调用完成后，联系人才会路由到下一个区块。
  + **异步**：无需等待外部工具调用完成即可将联系人路由到下一个区块。您可以将[Wait](wait.md)模块配置为等待在异步执行模式下调用的外部工具。
+ **超时**：外部工具调用超时之前要等待多长时间。**同步**模式的最大值为 8 秒，**异步**模式的最大值为 60 秒。
  + 如果外部工具调用受到限制，或者发生一般服务故障（500 错误），则会重试该请求。
  + 当外部工具调用返回错误时，Connect Customer 最多可重试三次，直至指定的超时时间。此时，联系人将路由到**错误**分支。
+ 分支：**成功**与**错误**。

### 加载工具结果
<a name="external-tool-load-tool-result"></a>

下图显示了 “外部工具” 模块属性中的 “加载工具结果” 操作配置。

![为加载工具结果操作配置的外部工具模块。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/external-tool-load.png)

+ **外部工具调用 ID**：在**异步**模式下运行的外部工具的调用 ID。`$.ExternalTool.InvocationId`包含最近异步运行的外部工具的调用 ID。
+ 对于**加载工具结果**操作，设置**命名空间 ** = `ExternalTool` 和**密钥 ** = ** 调用 ID **。
+ 分支：**成功****、进行**中和**错误**。

## 命名空间
<a name="external-tool-namespace"></a>

**外部工具**块将结果写入以下命名空间路径：
+ `$.ExternalTool.InvocationId`— 当前调用 ID。
+ `$.ExternalTool.ResultData`— 工具结果（最大 32 KB）。

每次新调用都会覆盖先前的`$.ExternalTool`结果。要保留结果，请在调用其他工具之前将其复制到联系人属性 (`$.Attributes.*``$.FlowAttribute.*`) 或流量属性 ()。

## 配置提示
<a name="external-tool-tips"></a>
+ **应用程序名称**和**工具名称**可以动态设置，也可以手动设置。
+ 同步结果上限为 32 KB。较大的响应采用 ** Error ** 分支。

## 示例
<a name="external-tool-example"></a>

对外营销活动会根据每位客户的支出等级量身定制信息。在集成了 Amazon Bedrock AgentCore 和公开每个账户支出等级的第三方集成之后，该流程使用**外部工具**块从第三方应用程序读取该等级，然后分支到匹配的消息。

## 已配置
<a name="external-tool-configured"></a>

配置区块后，它会显示 “**成功” ** 和 “**错误” ** 分支。对于**加载工具结果**操作，它还会显示 “进行**中” ** 分支。

![将外部工具模块添加到流程后配置为成功和错误分支。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/external-tool-configured.png)
