View a markdown version of this page

Cree una campaña saliente mediante la API o la CLI - Amazon Connect Customer

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree una campaña saliente mediante la API o la CLI

Puede crear y gestionar campañas salientes mediante programación mediante la AWS CLI o la API Amazon Connect Outbound Campaigns. En este tema se explica cómo crear una campaña saliente de Connect Customer, definir los flujos de campaña y hacer referencia a los comandos del ciclo de vida mediante la CLI.

Requisitos previos

Antes de crear una campaña mediante la API o la CLI, asegúrate de tener lo siguiente:

Cree un flujo de campaña

Los flujos de campaña definen la secuencia de acciones que se ejecutan para cada destinatario. Los flujos se crean mediante la CreateContactFlowAPI con el tipo de flujo establecido enCAMPAIGN. Para obtener información detallada sobre cada tipo de acción, consulteDefiniciones de bloques de flujo de viaje.

Flujo simple (sin reintentos)

Un flujo simple envía una única comunicación a cada destinatario sin comprobar el estado de la entrega. Esta es la estructura de flujo más simple:

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

Flujo con verificación del estado de la entrega y reintentos

Para los flujos que comprueban el estado de la entrega y se vuelven a intentar en caso de error, utilice la siguiente estructura. El flujo envía una comunicación, espera el recibo de entrega, recupera el estado de la comunicación y, a continuación, se ramifica en función del resultado.

Las acciones clave de un flujo de reintentos son:

  1. Envía SMS o PutDialRequest: envía SendOutboundEmailla comunicación saliente.

  2. Esperar: espera el recibo de entrega.

  3. GetOutboundCommunicationStatus—Recupera el estado de entrega de la comunicación más reciente.

  4. Comparar: evalúa el recibo de entrega y las sucursales en función del resultado (por ejemplo, si se vuelve a intentar en caso de rebote y finaliza si se realiza correctamente).

  5. EndFlowExecution—Finaliza el flujo. Todas las rutas de flujo deben terminar con esta acción.

El siguiente ejemplo muestra el flujo de una MANAGED campaña que envía un SMS, espera el recibo de entrega, comprueba el estado y vuelve a intentarlo con un correo electrónico si el mensaje ha sido rechazado:

{ "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
  • Si tu flujo utiliza varios tipos de canales (por ejemplo, SMS y correo electrónico), incluye todos los canales en el --channel-subtype-config parámetro al crear la campaña.

  • En el caso de los flujos utilizados en campañas con un tipo MANAGED que compruebe el estado de entrega, la secuencia de acciones necesaria es: Esperar GetOutboundCommunicationStatus→ → Comparar. La Wait acción detiene el flujo durante un tiempo específico para dar tiempo a que llegue el recibo de entrega. La GetOutboundCommunicationStatus acción recupera el estado de la entrega. La Compare acción se ramifica en función del resultado.

  • El OutboundCommunicationIds parámetro GetOutboundCommunicationStatus debe hacer referencia$.OutboundCommunication.Latest.Id. Las referencias al recibo de entrega en Compare las acciones deben utilizar la misma clave. Por ejemplo: $.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce.

  • MANAGEDLas campañas que utilizan canales de voz requieren dialCriteriaRules en la PutDialRequest acción:

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

Crea una versión de flujo de campaña

Después de crear un flujo de campaña, debes crear una versión del flujo. El ARN de flujo versionado es obligatorio al crear una campaña. Usa la CreateContactFlowVersionAPI para crear una versión.

El ARN de flujo versionado incluye un sufijo de versión. Por ejemplo: arn:aws:connect:us-east-1:123456789012:instance/your-instance-id/contact-flow/your-flow-id:1

Para obtener más información, consulta la referencia CLI create-contact-flow-version.

Creación de una campaña externa

Usa el comando para crear una campañacreate-campaign. El siguiente ejemplo crea una campaña de SMS con el modo saliente sin 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

En caso de éxito, el comando devuelve el ID y el ARN de la campaña:

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

El --type parámetro especifica el tipo de campaña. Úselo MANAGED para campañas salientes. Úselo JOURNEY para viajes multicanal y de varios pasos (consulte. Visual Journey Builder

nota

También puede especificar el número de veces --communication-limits-override que se puede contactar con un destinatario. Para ver la lista completa de parámetros, consulta la referencia de la CLI create-campaign.

Para gestionar las operaciones del ciclo de vida de la campaña (iniciar, detener, pausar, reanudar, eliminar), consulta la referencia de AWS CLI para connectcampaignsv2.