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 de campañas salientes de Amazon Connect. 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 disponer de 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 CreateContactFlow API con el tipo de flujo establecido enCAMPAIGN. Para obtener información detallada sobre cada tipo de acción, consulteDefiniciones de bloques de Journey Flow.

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 entrega y reintentos

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

Las acciones clave de un flujo de reintentos son:

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

  2. Espere: espera el acuse de recibo de entrega.

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

  4. Comparar: evalúa el albarán de entrega y las sucursales en función del resultado (por ejemplo, volver a intentarlo en caso de rebote y finalizar en caso de éxito).

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

En el siguiente ejemplo, se muestra el flujo de una MANAGED campaña que envía un SMS, espera un acuse de recibo, 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 usa 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 MANAGED que se utilizan en campañas cuyo tipo comprueba el estado de entrega, la secuencia de acción requerida es: Esperar GetOutboundCommunicationStatus → → Comparar. La Wait acción detiene el flujo durante un tiempo específico para que llegue el recibo de entrega. La GetOutboundCommunicationStatus acción recupera el estado de la entrega. La Compare acción se bifurca en función del resultado.

  • El OutboundCommunicationIds parámetro en GetOutboundCommunicationStatus debe hacer referencia$.OutboundCommunication.Latest.Id. Las referencias a los recibos 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 del flujo versionado es obligatorio al crear una campaña. Usa la CreateContactFlowVersion API para crear una versión.

El ARN del 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, consulte la referencia de la CLI create-contact-flow-version.

Creación de una campaña externa

Usa el comando para crear una campañacreate-campaign. En el siguiente ejemplo, se 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. Se usa MANAGED para campañas salientes. JOURNEYUtilízalo para viajes multicanal y de varios pasos; consulta. Constructor de viajes visuales

nota

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

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