View a markdown version of this page

Crie uma campanha externa usando a API ou a CLI - Amazon Connect Customer

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

Você pode criar e gerenciar campanhas externas de forma programática usando a AWS CLI ou a API de campanhas externas do Amazon Connect. 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

Antes de criar uma campanha usando a API ou a CLI, verifique se você tem o seguinte:

Crie um fluxo de campanha

Os fluxos da campanha definem a sequência de ações que são executadas para cada destinatário. Você cria fluxos usando a CreateContactFlowAPI com o tipo de fluxo definido comoCAMPAIGN. Para obter informações detalhadas sobre cada tipo de ação, consulteDefinições de blocos de fluxo de viagem.

Fluxo simples (sem novas tentativas)

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 da entrega e novas tentativas

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, ramifica com base no resultado.

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

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

  2. Aguarde — Aguarda o recibo de entrega.

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

  4. Compare — avalia o recibo de entrega e as filiais com base no resultado (por exemplo, tente novamente no caso de devolução, termine com sucesso).

  5. 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 rejeitada:

{ "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 da entrega, a sequência de ação necessária é: EsperarGetOutboundCommunicationStatusComparar. A Wait ação pausa o fluxo por um período especificado para dar tempo para 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 do recibo de entrega nas Compare ações devem usar a mesma chave. Por exemplo: $.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce.

  • MANAGEDcampanhas 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 da campanha

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 CreateContactFlowVersionAPI 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.

Crie uma campanha externa

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 de várias etapas e vários canais — consulte. Construtor visual de viagens

nota

Você também pode especificar --communication-limits-override para controlar 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.

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.