

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie uma campanha externa usando a API ou a CLI
<a name="create-campaigns-api-cli"></a>

Você pode criar e gerenciar campanhas externas de forma programática usando a AWS CLI ou a API de campanhas externas do [ Amazon Connect. ](https://docs.aws.amazon.com/connect/latest/APIReference/API_Operations_Amazon_Connect_Outbound_Campaigns_V2.html) Este tópico explica como criar uma campanha externa do Connect Customer, definir fluxos de campanha e referenciar comandos de ciclo de vida usando a CLI.

## Pré-requisitos
<a name="create-campaigns-api-cli-prereqs"></a>

Antes de criar uma campanha usando a API ou a CLI, verifique se você tem o seguinte:
+ Uma instância Connect Customer com chamadas [ externas ativadas](enable-outbound-calls.md).
+ Uma AWS KMS chave configurada para campanhas externas. Consulte [Crie um AWS KMS key](enable-outbound-campaigns.md#create-kms-key-campaigns).
+ Campanhas externas ativadas em sua instância. Consulte [Configurar campanhas externas](enable-outbound-campaigns.md#configure-outbound-campaigns).
+ Um [ ARN do segmento de perfis de ](segmentation-admin-website.md) clientes para os destinatários da sua campanha.
+ Modelos de mensagens criados em sua base de conhecimento de assistência ao agente. Para obter mais informações, consulte [ Criar modelos de mensagens](https://docs.aws.amazon.com/connect/latest/adminguide/create-message-templates.html).
+ A AWS CLI versão 2 instalada e configurada. Para obter mais informações, consulte [ Instalando a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

## Crie um fluxo de campanha
<a name="create-campaigns-api-cli-flows"></a>

Os fluxos de campanha definem a sequência de ações executadas para cada destinatário. Você cria fluxos usando a [ CreateContactFlow ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlow.html) API com o tipo de fluxo definido como`CAMPAIGN`. Para obter informações detalhadas sobre cada tipo de ação, consulte[Definições de blocos de fluxo de viagem](journey-flow-block-definitions.md).

### Fluxo simples (sem novas tentativas)
<a name="create-campaigns-api-cli-flows-simple"></a>

Um fluxo simples envia uma única comunicação para cada destinatário sem verificar o status da entrega. Essa é a estrutura de fluxo mais simples:

```
{
  "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": {}
    }
  ]
}
```

### Fluxo com verificação do status de entrega e novas tentativas
<a name="create-campaigns-api-cli-flows-retry"></a>

Para fluxos que verificam o status da entrega e tentam novamente em caso de falha, use a estrutura a seguir. O fluxo envia uma comunicação, aguarda um recibo de entrega, recupera o status da comunicação e, em seguida, se ramifica com base no resultado.

As principais ações em um fluxo de novas tentativas são:

1. **Envia SMS ** ou ** PutDialRequest ** — Envia a comunicação de saída. ** SendOutboundEmail **

1. **Aguarde ** — Aguarde o recibo de entrega.

1. **GetOutboundCommunicationStatus**—Recupera o status de entrega da comunicação mais recente.

1. **Comparar ** — Avalia o recibo de entrega e as filiais com base no resultado (por exemplo, tentar novamente em caso de rejeição, terminar em caso de sucesso).

1. **EndFlowExecution**—Encerra o fluxo. Todos os caminhos de fluxo devem terminar com essa ação.

O exemplo a seguir mostra o fluxo de uma `MANAGED` campanha que envia um SMS, aguarda um recibo de entrega, verifica o status e tenta novamente com um e-mail se a mensagem for devolvida:

```
{
  "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": {}
    }
  ]
}
```

**Importante**  
Se seu fluxo usa vários tipos de canais (por exemplo, SMS e e-mail), inclua todos os canais no `--channel-subtype-config` parâmetro ao criar a campanha.
Para fluxos usados em campanhas com tipos `MANAGED` que verificam o status de entrega, a sequência de ação necessária é: ** Esperar ** → ** GetOutboundCommunicationStatus ** → ** Comparar**. A `Wait` ação pausa o fluxo por um período especificado para permitir que o recibo de entrega chegue. A `GetOutboundCommunicationStatus` ação recupera o status da entrega. A `Compare` ação se ramifica com base no resultado.
O `OutboundCommunicationIds` parâmetro em `GetOutboundCommunicationStatus` deve fazer referência`$.OutboundCommunication.Latest.Id`. As referências de recibos de entrega em `Compare` ações devem usar a mesma chave. Por exemplo: `$.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce`.
`MANAGED`campanhas que usam canais de voz exigem `dialCriteriaRules` na `PutDialRequest` ação:  

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

## Crie uma versão do fluxo de campanha
<a name="create-campaigns-api-cli-version"></a>

Depois de criar um fluxo de campanha, você deve criar uma versão do fluxo. O ARN do fluxo versionado é necessário ao criar uma campanha. Use a [ CreateContactFlowVersion ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlowVersion.html) API para criar uma versão.

O ARN do fluxo versionado inclui um sufixo de versão. Por exemplo: `arn:aws:connect:us-east-1:123456789012:instance/your-instance-id/contact-flow/your-flow-id:1`

Para obter mais informações, consulte a referência da CLI [ create-contact-flow-version. ](https://docs.aws.amazon.com/cli/latest/reference/connect/create-contact-flow-version.html)

## Crie uma campanha externa
<a name="create-campaigns-api-cli-create"></a>

Use o `create-campaign` comando para criar uma campanha. O exemplo a seguir cria uma campanha de SMS com o modo de saída sem agente:

```
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
```

Em caso de sucesso, o comando retorna o ID e o ARN da campanha:

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

**nota**  
O `--type` parâmetro especifica o tipo de campanha. Use `MANAGED` para campanhas externas. Use `JOURNEY` para viagens com várias etapas e vários canais — consulte. [Construtor visual de viagens](create-a-multi-step-and-multi-channel-journey.md)

**nota**  
Você também pode especificar `--communication-limits-override` o controle de quantas vezes um destinatário pode ser contatado. Para ver a lista completa de parâmetros, consulte a referência da [ CLI de criação de campanha. ](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/create-campaign.html)

Para gerenciar as operações do ciclo de vida da campanha (iniciar, interromper, pausar, retomar, excluir), consulte a referência da [AWS CLI para connectcampaignsv2. ](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/index.html)