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:
-
Una instancia de Connect Customer con las llamadas salientes habilitadas.
-
Una AWS KMS clave configurada para las campañas salientes. Consulte Cree un AWS KMS clave.
-
Las campañas salientes están habilitadas en tu instancia. Consulte Configuración de campañas externas.
-
Un ARN de segmento de perfiles de clientes para los destinatarios de la campaña.
-
Plantillas de mensajes creadas en la base de conocimiento de Amazon Q in Connect. Para obtener más información, consulte Crear plantillas de mensajes.
-
La versión 2 de AWS CLI instalada y configurada. Para obtener más información, consulte Instalación de la AWS CLI.
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:
-
Envía SMS o PutDialRequest: envía SendOutboundEmailla comunicación saliente.
-
Esperar: espera el recibo de entrega.
-
GetOutboundCommunicationStatus—Recupera el estado de entrega de la comunicación más reciente.
-
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).
-
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-configparámetro al crear la campaña. -
En el caso de los flujos utilizados en campañas con un tipo
MANAGEDque compruebe el estado de entrega, la secuencia de acciones necesaria es: Esperar GetOutboundCommunicationStatus→ → Comparar. LaWaitacción detiene el flujo durante un tiempo específico para dar tiempo a que llegue el recibo de entrega. LaGetOutboundCommunicationStatusacción recupera el estado de la entrega. LaCompareacción se ramifica en función del resultado. -
El
OutboundCommunicationIdsparámetroGetOutboundCommunicationStatusdebe hacer referencia$.OutboundCommunication.Latest.Id. Las referencias al recibo de entrega enComparelas acciones deben utilizar la misma clave. Por ejemplo:$.DeliveryReceipts['`$.OutboundCommunication.Latest.Id`'].Bounce. -
MANAGEDLas campañas que utilizan canales de voz requierendialCriteriaRulesen laPutDialRequestacció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.