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 de campanha definem a sequência de ações executadas para cada destinatário. Você cria fluxos usando a CreateContactFlow API 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 de 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, 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

  2. Aguarde — Aguarde o recibo de entrega.

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

  4. 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).

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

  • 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 de 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 CreateContactFlowVersion 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.

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

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.

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.