

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
<a name="create-campaigns-api-cli"></a>

Puede crear y gestionar campañas salientes mediante programación mediante la AWS CLI o la API de campañas salientes de [ Amazon Connect. ](https://docs.aws.amazon.com/connect/latest/APIReference/API_Operations_Amazon_Connect_Outbound_Campaigns_V2.html) 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
<a name="create-campaigns-api-cli-prereqs"></a>

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](enable-outbound-calls.md).
+ Una AWS KMS clave configurada para las campañas salientes. Consulte [Crea un AWS KMS clave](enable-outbound-campaigns.md#create-kms-key-campaigns).
+ Las campañas salientes están habilitadas en tu instancia. Consulte [Configuración de campañas externas](enable-outbound-campaigns.md#configure-outbound-campaigns).
+ Un [ ARN segmentado por perfiles de ](segmentation-admin-website.md) 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](https://docs.aws.amazon.com/connect/latest/adminguide/create-message-templates.html).
+ La versión 2 de la AWS CLI instalada y configurada. Para obtener más información, consulte [ Instalación de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

## Cree un flujo de campaña
<a name="create-campaigns-api-cli-flows"></a>

Los flujos de campaña definen la secuencia de acciones que se ejecutan para cada destinatario. Los flujos se crean mediante la [ CreateContactFlow ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlow.html) API con el tipo de flujo establecido en`CAMPAIGN`. Para obtener información detallada sobre cada tipo de acción, consulte[Definiciones de bloques de Journey Flow](journey-flow-block-definitions.md).

### Flujo simple (sin reintentos)
<a name="create-campaigns-api-cli-flows-simple"></a>

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
<a name="create-campaigns-api-cli-flows-retry"></a>

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.

1. **Espere**: espera el acuse de recibo de entrega.

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

1. **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).

1. **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`.
`MANAGED`Las 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
<a name="create-campaigns-api-cli-version"></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 ](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateContactFlowVersion.html) 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. ](https://docs.aws.amazon.com/cli/latest/reference/connect/create-contact-flow-version.html)

## Creación de una campaña externa
<a name="create-campaigns-api-cli-create"></a>

Usa el comando para crear una campaña`create-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. `JOURNEY`Utilízalo para viajes multicanal y de varios pasos; consulta. [Constructor de viajes visuales](create-a-multi-step-and-multi-channel-journey.md)

**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. ](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/create-campaign.html)

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. ](https://docs.aws.amazon.com/cli/latest/reference/connectcampaignsv2/index.html)