

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

# 使用 API 或 CLI 创建出站活动
<a name="create-campaigns-api-cli"></a>

您可以使用 AWS CLI 或 [ Amazon Connect 出站活动 API ](https://docs.aws.amazon.com/connect/latest/APIReference/API_Operations_Amazon_Connect_Outbound_Campaigns_V2.html) 以编程方式创建和管理出站活动。本主题介绍如何使用 CLI 创建 Connect Customer 对外营销活动、定义活动流程和参考生命周期命令。

## 先决条件
<a name="create-campaigns-api-cli-prereqs"></a>

在使用 API 或 CLI 创建活动之前，请确保您具备以下条件：
+ 启用了[出站呼叫的 Connect 客户实例](enable-outbound-calls.md)。
+ 为出站活动配置的 AWS KMS 密钥。请参阅[创建一个 AWS KMS 键](enable-outbound-campaigns.md#create-kms-key-campaigns)。
+ 在您的实例上启用了出站广告活动。请参阅[配置出站活动](enable-outbound-campaigns.md#configure-outbound-campaigns)。
+ [客户档案细分广告收件人的 ](segmentation-admin-website.md) ARN。
+ 在您的代理协助知识库中创建的消息模板。有关更多信息，请参阅[创建消息模板](https://docs.aws.amazon.com/connect/latest/adminguide/create-message-templates.html)。
+ C AWS LI 版本 2 已安装并配置。有关更多信息，请参阅[安装 AWS CLI ](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

## 创建活动流程
<a name="create-campaigns-api-cli-flows"></a>

活动流程定义了为每个收件人运行的操作顺序。您可以使用 [ CreateContactFlow ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlow.html) API 创建流程，并将流类型设置为`CAMPAIGN`。有关每种操作类型的详细信息，请参阅[旅程流程区块定义](journey-flow-block-definitions.md)。

### 流程简单（无需重试）
<a name="create-campaigns-api-cli-flows-simple"></a>

一个简单的流程无需检查交付状态即可向每个收件人发送一条通信。这是最简单的流程结构：

```
{
  "Version": "2019-10-30",
  "StartAction": "SendSMS",
  "Actions": [
    {
      "Identifier": "SendSMS",
      "Type": "SendSMS",
      "Parameters": {
        "Message": {
          "MessageSourceType": "TEMPLATE",
          "TemplatedMessage": {
            "WisdomKnowledgeBaseArn": "arn:aws:wisdom:us-east-1:123456789012:knowledge-base/your-kb-id",
            "WisdomMessageTemplateArn": "arn:aws:wisdom:us-east-1:123456789012:message-template/your-kb-id/your-template-id"
          }
        },
        "SourceEndpoint": {
          "Address": "arn:aws:connect:us-east-1:123456789012:phone-number/your-phone-number-id",
          "Type": "CONNECT_PHONENUMBER_ARN"
        }
      },
      "Transitions": {
        "NextAction": "EndFlow",
        "Conditions": [],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingError"
          }
        ]
      }
    },
    {
      "Identifier": "EndFlow",
      "Type": "EndFlowExecution",
      "Parameters": {}
    }
  ]
}
```

### 流程包括交付状态检查和重试
<a name="create-campaigns-api-cli-flows-retry"></a>

对于检查交付状态并在失败时重试的流程，请使用以下结构。该流程发送通信，等待交货收据，检索通信状态，然后根据结果进行分支。

重试流程中的关键操作是：

1. **sendSMS ** ** SendOutboundEmail **、或 ** PutDialRequest ** —发送出站通信。

1. **等待 ** —等待送货收据。

1. **GetOutboundCommunicationStatus**—检索最新通信的传送状态。

1. **比较 ** —根据结果评估送达收据和分支机构（例如，退回时重试，成功时结束）。

1. **EndFlowExecution**—终止流程。所有流路径都必须以此操作结束。

以下示例显示了发送短信、等待送达收据、检查状态以及在消息退回时重试电子邮件的`MANAGED`活动流程：

```
{
  "Version": "2019-10-30",
  "StartAction": "SendSMS",
  "Actions": [
    {
      "Identifier": "SendSMS",
      "Type": "SendSMS",
      "Parameters": {
        "Message": {
          "MessageSourceType": "TEMPLATE",
          "TemplatedMessage": {
            "WisdomKnowledgeBaseArn": "arn:aws:wisdom:us-east-1:123456789012:knowledge-base/your-kb-id",
            "WisdomMessageTemplateArn": "arn:aws:wisdom:us-east-1:123456789012:message-template/your-kb-id/your-sms-template-id"
          }
        },
        "SourceEndpoint": {
          "Address": "arn:aws:connect:us-east-1:123456789012:phone-number/your-phone-number-id",
          "Type": "CONNECT_PHONENUMBER_ARN"
        }
      },
      "Transitions": {
        "NextAction": "Wait",
        "Conditions": [],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingError"
          }
        ]
      }
    },
    {
      "Identifier": "Wait",
      "Type": "Wait",
      "Parameters": {
        "TimeLimitSeconds": "900"
      },
      "Transitions": {
        "NextAction": "GetOutboundCommunicationStatus",
        "Conditions": [
          {
            "NextAction": "GetOutboundCommunicationStatus",
            "Condition": {
              "Operator": "Equals",
              "Operands": ["WaitCompleted"]
            }
          }
        ],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingError"
          }
        ]
      }
    },
    {
      "Identifier": "GetOutboundCommunicationStatus",
      "Type": "GetOutboundCommunicationStatus",
      "Parameters": {
        "OutboundCommunicationIds": ["$.OutboundCommunication.Latest.Id"]
      },
      "Transitions": {
        "NextAction": "Compare",
        "Conditions": [],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingError"
          }
        ]
      }
    },
    {
      "Identifier": "Compare",
      "Type": "Compare",
      "Parameters": {
        "ComparisonValue": "$.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce"
      },
      "Transitions": {
        "NextAction": "EndFlow",
        "Conditions": [
          {
            "NextAction": "SendEmail",
            "Condition": {
              "Operator": "Exists",
              "Operands": []
            }
          }
        ],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingCondition"
          }
        ]
      }
    },
    {
      "Identifier": "SendEmail",
      "Type": "SendOutboundEmail",
      "Parameters": {
        "EmailMessage": {
          "MessageSourceType": "TEMPLATE",
          "TemplatedMessage": {
            "WisdomKnowledgeBaseArn": "arn:aws:wisdom:us-east-1:123456789012:knowledge-base/your-kb-id",
            "WisdomMessageTemplateArn": "arn:aws:wisdom:us-east-1:123456789012:message-template/your-kb-id/your-email-template-id"
          }
        },
        "FromEmailAddress": {
          "EmailAddress": "noreply@example.com"
        }
      },
      "Transitions": {
        "NextAction": "EndFlow",
        "Conditions": [],
        "Errors": [
          {
            "NextAction": "EndFlow",
            "ErrorType": "NoMatchingError"
          }
        ]
      }
    },
    {
      "Identifier": "EndFlow",
      "Type": "EndFlowExecution",
      "Parameters": {}
    }
  ]
}
```

**重要**  
如果您的流量使用多种渠道类型（例如短信和电子邮件），请在创建活动时将所有渠道包括在`--channel-subtype-config`参数中。
对于在类型`MANAGED`为检查交付状态的广告活动中使用的流程，所需的操作顺序为：**等待 ** → ** GetOutboundCommunicationStatus ** → ** 比较**。该`Wait`操作将在指定的时间段内暂停流程，以便有时间收到交货收据。该`GetOutboundCommunicationStatus`操作会检索配送状态。`Compare`操作根据结果进行分支。
中的`OutboundCommunicationIds`参数`GetOutboundCommunicationStatus`必须引用`$.OutboundCommunication.Latest.Id`。`Compare`操作中的配送收据参考必须使用相同的密钥。例如：`$.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce`。
`MANAGED`使用语音渠道的广告活动`dialCriteriaRules`在`PutDialRequest`行动中需要：  

  ```
  {
    "Identifier": "PutDialRequest",
    "Type": "PutDialRequest",
    "Parameters": {
      "dialCriteriaRules": [
        {
          "type": "CheckSegmentMembershipForCustomerProfile",
          "segmentArn": "arn:aws:profile:us-east-1:123456789012:domains/your-domain/segments/your-segment"
        }
      ]
    },
    ...
  }
  ```

## 创建活动流程版本
<a name="create-campaigns-api-cli-version"></a>

创建活动流程后，必须创建该流程的版本。创建活动时需要版本化流程 ARN。使用 [ CreateContactFlowVersion ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlowVersion.html) API 创建版本。

版本化流程 ARN 包含版本后缀。例如：`arn:aws:connect:us-east-1:123456789012:instance/your-instance-id/contact-flow/your-flow-id:1`

有关更多信息，请参阅 [ create-contact-flow 版本 CLI 参考文档。](https://docs.aws.amazon.com/cli/latest/reference/connect/create-contact-flow-version.html)

## 创建出站活动
<a name="create-campaigns-api-cli-create"></a>

使用该`create-campaign`命令创建战役。以下示例使用无代理出站模式创建了短信活动：

```
aws connectcampaignsv2 create-campaign \
  --name "My SMS Campaign" \
  --connect-instance-id "your-instance-id" \
  --type MANAGED \
  --connect-campaign-flow-arn "arn:aws:connect:us-east-1:123456789012:instance/your-instance-id/contact-flow/your-flow-id:1" \
  --source '{"customerProfilesSegmentArn": "arn:aws:profile:us-east-1:123456789012:domains/your-domain/segments/your-segment"}' \
  --channel-subtype-config '{
    "sms": {
      "outboundMode": {"agentless": {}},
      "defaultOutboundConfig": {
        "connectSourcePhoneNumberArn": "arn:aws:connect:us-east-1:123456789012:phone-number/your-phone-number-id",
        "wisdomTemplateArn": "arn:aws:wisdom:us-east-1:123456789012:message-template/your-kb-id/your-template-id"
      }
    }
  }' \
  --schedule '{"startTime": "2026-07-01T09:00:00", "endTime": "2026-07-01T17:00:00", "refreshFrequency": "PT30M"}' \
  --communication-time-config '{
    "localTimeZoneConfig": {"defaultTimeZone": "America/New_York"},
    "sms": {
      "openHours": {
        "dailyHours": {
          "MONDAY": [{"startTime": "T09:00", "endTime": "T17:00"}],
          "TUESDAY": [{"startTime": "T09:00", "endTime": "T17:00"}],
          "WEDNESDAY": [{"startTime": "T09:00", "endTime": "T17:00"}],
          "THURSDAY": [{"startTime": "T09:00", "endTime": "T17:00"}],
          "FRIDAY": [{"startTime": "T09:00", "endTime": "T17:00"}]
        }
      }
    }
  }' \
  --region us-east-1
```

成功后，该命令将返回战役 ID 和 ARN：

```
{
  "id": "campaign-id",
  "arn": "arn:aws:connect-campaigns:us-east-1:123456789012:campaign/campaign-id"
}
```

**注意**  
该`--type`参数指定活动类型。`MANAGED`用于出站广告活动。`JOURNEY`用于多步骤、多渠道的旅程 [视觉旅程生成器](create-a-multi-step-and-multi-channel-journey.md) ——请参阅。

**注意**  
您还可以指定`--communication-limits-override`控制可以联系收件人的次数。有关参数的完整列表，请参阅[创建活动 CLI 参考文档。](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/create-campaign.html)

要管理活动生命周期运营（开始、停止、暂停、恢复、删除），请参阅 connect [ campaignsv2 的 ](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/index.html)AWS CLI 参考文档。