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:
-
Una instancia de Connect Customer con las llamadas salientes habilitadas.
-
Una AWS KMS clave configurada para las campañas salientes. Consulte Crea un AWS KMS clave.
-
Las campañas salientes están habilitadas en tu instancia. Consulte Configuración de campañas externas.
-
Un ARN segmentado por perfiles de clientes para los destinatarios de tu campaña.
-
Las plantillas de mensajes creadas en su base de conocimientos para agentes ayudan a los agentes. Para obtener más información, consulte Crear plantillas de mensajes.
-
La versión 2 de la 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 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:
-
Envía SMS o PutDialRequest: envía SendOutboundEmail la comunicación saliente.
-
Espere: espera el acuse de recibo de entrega.
-
GetOutboundCommunicationStatus—Recupera el estado de entrega de la comunicación más reciente.
-
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).
-
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-configparámetro al crear la campaña. -
En el caso de los flujos
MANAGEDque se utilizan en campañas cuyo tipo comprueba el estado de entrega, la secuencia de acción requerida es: Esperar GetOutboundCommunicationStatus → → Comparar. LaWaitacción detiene el flujo durante un tiempo específico para que llegue el recibo de entrega. LaGetOutboundCommunicationStatusacción recupera el estado de la entrega. LaCompareacción se bifurca en función del resultado. -
El
OutboundCommunicationIdsparámetro enGetOutboundCommunicationStatusdebe hacer referencia$.OutboundCommunication.Latest.Id. Las referencias a los recibos 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 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.