

**Aviso de fin de soporte:** el 30 de octubre de 2026, AWS finalizará el soporte para Amazon Pinpoint. Después del 30 de octubre de 2026, ya no podrá acceder a la consola de Amazon Pinpoint ni a los recursos de Amazon Pinpoint (puntos de conexión, segmentos, campañas, recorridos y análisis). Para obtener más información, consulte [Fin de soporte de Amazon Pinpoint](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Nota: en** lo APIs que respecta a los SMS, este cambio no afecta a los mensajes de voz, a las notificaciones push móviles, a las OTP y a la validación de números de teléfono, y son compatibles con la mensajería para el usuario AWS final.

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.

# Tutoriales
<a name="tutorials"></a>

Los tutoriales de esta sección están diseñados para mostrar a los nuevos usuarios de Amazon Pinpoint cómo llevar a cabo varias tareas importantes. Si es la primera vez que utiliza Amazon Pinpoint, o si no está familiarizado con determinadas características, estos tutoriales son el mejor lugar para empezar.

Los tutoriales de esta guía incluyen tareas que están orientadas a los administradores de sistemas o desarrolladores. Estos tutoriales muestran cómo realizar tareas mediante la API de Amazon Pinpoint, los AWS SDK y la AWS CLI. 

**Topics**
+ [Uso de Postman con Amazon Pinpoint](tutorials-using-postman.md)
+ [Configurar un sistema de registro de SMS](tutorials-two-way-sms.md)

# Tutorial: Uso de Postman con la API de Amazon Pinpoint
<a name="tutorials-using-postman"></a>

Postman es una herramienta popular para realizar pruebas APIs en un entorno easy-to-use gráfico. Puede utilizar Postman para enviar solicitudes de la API a cualquier API de REST, y para recibir respuestas a sus solicitudes. El uso de Postman es una forma cómoda de probar las llamadas que se realizan a la API de Amazon Pinpoint y solucionar sus problemas. Este tutorial incluye procedimientos para la configuración y el uso de Postman con Amazon Pinpoint.

**nota**  
Postman se ha desarrollado por un tercero. No se ha desarrollado ni es compatible con Amazon Web Services (AWS). Para obtener más información sobre Postman, o para obtener ayuda en relación con problemas relacionados con Postman, consulte el [Centro de soporte](https://support.postman.com/hc/en-us) en el sitio web de Postman.

## Acerca de este tutorial
<a name="tutorials-using-postman-about"></a>

Esta sección contiene información general sobre este tutorial.

**Destinatarios previstos**  
Este tutorial está dirigido a los desarrolladores e implementadores de sistemas. No tiene que estar familiarizado con Amazon Pinpoint o Postman para completar los pasos de este tutorial. Debe estar familiarizado con la administración de políticas de IAM y la modificación de ejemplos de código JSON.

Los procedimientos de este tutorial se han diseñado para evitar que los nuevos usuarios utilicen operaciones de la API que eliminen de forma permanente los recursos de Amazon Pinpoint. Los usuarios avanzados pueden eliminar esta restricción modificando la política asociada a los usuarios de .

**Características utilizadas**  
Este tutorial incluye ejemplos de uso para la siguiente característica de Amazon Pinpoint:
+ Interacción con la API de Amazon Pinpoint mediante Postman

**Tiempo necesario**  
Debe tardar aproximadamente 15 minutos en completar este tutorial.

**Restricciones regionales**  
No hay restricciones regionales asociadas al uso de esta solución.

**Costos de uso de recursos**  
La creación de una AWS cuenta es gratuita. Sin embargo, al implementar esta solución, es posible que incurra en costos de AWS uso si utiliza Postman para realizar alguna de las siguientes acciones:
+ Enviar mensajes de voz, de inserción de móvil, SMS o correo electrónico
+ Crear y enviar campañas
+ Utilizar la característica de validación de número de teléfono

Para obtener más información sobre los gastos asociados con el uso de Amazon Pinpoint, consulte [Precios de Amazon Pinpoint](https://aws.amazon.com/pinpoint/pricing/).

# Requisitos previos para utilizar Postman con Amazon Pinpoint
<a name="tutorials-using-postman-prerequisites"></a>

Antes de comenzar este tutorial, complete los siguientes requisitos previos:
+ Debe tener una cuenta de AWS. Para crear una cuenta de AWS, vaya a [https://console.aws.amazon.com/](https://console.aws.amazon.com/) y elija **Crear una cuenta nueva de AWS**.
+ Asegúrese de que la cuenta que utiliza para iniciar sesión en la Consola de administración de AWS puede crear nuevas políticas y roles de IAM.
+ Asegúrate de haber creado al menos un proyecto de ejemplo que tenga el correo electrónico activado y una identidad de correo electrónico verificada. Consulte [Creación de un proyecto de Amazon Pinpoint con compatibilidad con correo electrónico](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) en la *Guía del usuario de Amazon Pinpoint*.
+ Asegúrese de tener un ID de cuenta de AWS. El ID de cuenta de AWS se puede encontrar en la esquina superior derecha de la consola o puede utilizar la interfaz de la línea de comandos (CLI). Consulte [Buscar el ID de cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Debe descargar e instalar Postman en el equipo. Puede descargar Postman desde el [sitio web de Postman](https://www.getpostman.com).
+ Después de instalar Postman en el equipo, cree una cuenta de Postman. La primera vez que inicie la aplicación Postman, se le solicitará que inicie sesión o cree una cuenta nueva. Siga las instrucciones de Postman para iniciar sesión en la cuenta o para crear una si todavía no tiene una.

**Siguiente**: [Crear políticas y roles de IAM](tutorials-using-postman-iam-user.md)

# Crear políticas y roles de IAM para utilizarlos con Amazon Pinpoint
<a name="tutorials-using-postman-iam-user"></a>

Cuando usa Postman para probar la API de Amazon Pinpoint, el primer paso es crear un usuario. En esta sección, se crea una política que permite a los usuarios interactuar con todos los recursos de Amazon Pinpoint. A continuación, se crea un usuario y se asocia la política directamente al usuario.

## Creación de una política de IAM
<a name="tutorials-using-postman-iam-user-create-policy"></a>

Obtenga información sobre cómo crear una política de IAM. Los usuarios y roles que utilizan esta política pueden interactuar con todos los recursos de la API de Amazon Pinpoint. También proporciona acceso a los recursos asociados a la API de correo electrónico de Amazon Pinpoint, así como a la API de SMS y voz de Amazon Pinpoint.

**Para crear la política de**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**.

1. En **Editor de políticas**, seleccione **JSON**. Elimine cualquier JSON que esté en ese momento en **Editor de políticas** para dejarlo vacío. Copie y pegue el siguiente JSON en el **editor de políticas** y, a continuación, en el **editor de políticas**, sustituya todas las instancias de *123456789012* por su Cuenta de AWS ID.

   Puedes encontrar tu Cuenta de AWS ID en la esquina superior derecha de la consola, o puedes usar la CLI (consulta [Cómo encontrar el ID de tu AWS cuenta)](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
**nota**  
Para proteger los datos de la cuenta de Amazon Pinpoint, esta política solo incluye permisos que le permiten leer, crear y modificar recursos. No se incluyen permisos que permitan eliminar recursos. Puede modificar esta política mediante el editor visual en la consola de IAM. Para obtener información, consulte [Administrar políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la Guía del usuario de IAM. También puedes usar la [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)operación de la API de IAM para actualizar esta política.  
Además, esta política incluye los permisos que le permiten interactuar con los servicios de `ses` y `sms-voice`, además del servicio de `mobiletargeting`. Los permisos `ses` y `sms-voice` le permiten interactuar con la API de correo electrónico de Amazon Pinpoint y la API de SMS y voz de Amazon Pinpoint, respectivamente. Los permisos de `mobiletargeting` le permiten interactuar con la API de Amazon Pinpoint.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:Update*",
                   "mobiletargeting:Get*",
                   "mobiletargeting:Send*",
                   "mobiletargeting:Put*",
                   "mobiletargeting:Create*"
               ],
               "Resource": [
                   "arn:aws:mobiletargeting:*:123456789012:apps/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/campaigns/*",
                   "arn:aws:mobiletargeting:*:123456789012:apps/*/segments/*"
               ]
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:TagResource",
                   "mobiletargeting:PhoneNumberValidate",
                   "mobiletargeting:ListTagsForResource",
                   "mobiletargeting:CreateApp"
               ],
               "Resource": "arn:aws:mobiletargeting:*:123456789012:*"
           },
           {
               "Sid": "VisualEditor2",
               "Effect": "Allow",
               "Action": [
                   "ses:TagResource",
                   "ses:Send*",
                   "ses:Create*",
                   "ses:Get*",
                   "ses:List*",
                   "ses:Put*",
                   "ses:Update*",
                   "sms-voice:SendVoiceMessage",
                   "sms-voice:List*",
                   "sms-voice:Create*",
                   "sms-voice:Get*",
                   "sms-voice:Update*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   Elija **Siguiente**.

1. En **Nombre de la política**, especifique un nombre para la política; por ejemplo **PostmanAccessPolicy**. Elija **Crear política**.

1. (Opcional) Puede agregar etiquetas a la política al seleccionar **Agregar etiqueta**.

1. Elija **Siguiente: Revisar**.

## Creación de un usuario de IAM
<a name="tutorials-using-postman-iam-user-create-user"></a>

**aviso**  
Los usuarios de IAM tienen credenciales de larga duración, lo que supone un riesgo de seguridad. Para ayudar a mitigar este riesgo, le recomendamos que brinde a estos usuarios únicamente los permisos que necesitan para realizar la tarea y que los elimine cuando ya no los necesiten.

Después de crear la política, puede crear un usuario y asociar la política a él. Al crear el usuario, IAM proporciona un conjunto de credenciales que puede usar para permitir que Postman lleve a cabo operaciones de la API de Amazon Pinpoint.

**Para crear el usuario**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En la consola de IAM, seleccione **Usuarios** en el panel de navegación y, a continuación, elija **Crear usuarios**.

1. En **Detalles de usuario**, para **Nombre de usuario**, escriba un nombre que identifique al usuario, como **PostmanUser**. A continuación, elija **Siguiente**.

1. En **Establecer permisos**, para **Opciones de permisos**, elija **Adjuntar políticas directamente**. 

1. En **Políticas de permisos**, elija la política (**PostmanAccessPolicy**) que creó en [Crear una política de IAM](#tutorials-using-postman-iam-user-create-policy). A continuación, elija **Siguiente**.

1. En la página **Revisar y crear**, agregue opcionalmente etiquetas que le ayuden a identificar al usuario. Para obtener más información sobre el uso de etiquetas en IAM, consulte [Etiquetado de recursos de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*. 

1. Cuando esté listo para crear el usuario, elija **Create user** (Crear usuario).

## Crear claves de acceso
<a name="tutorials-using-postman-iam-user-create-key"></a>

**aviso**  
En este escenario, se requieren usuarios de IAM con acceso programático y credenciales de larga duración, lo que supone un riesgo de seguridad. Para ayudar a mitigar este riesgo, le recomendamos que brinde a estos usuarios únicamente los permisos que necesitan para realizar la tarea y que los elimine cuando ya no los necesiten. Las claves de acceso se pueden actualizar si es necesario. Para más información consulte [Actualización de las claves de acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html) en la *Guía de usuario de IAM*.

 IAM proporciona un conjunto de credenciales que puede usar para permitir que Postman lleve a cabo operaciones de la API de Amazon Pinpoint.

**Para crear el usuario**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En la consola de IAM, en el panel de navegación, elija **Usuarios**. Seleccione el usuario (**PostmanUser**) que creó en [Crear un usuario de IAM](#tutorials-using-postman-iam-user-create-user) y, a continuación, seleccione la pestaña **Credenciales de seguridad**.

1. En la sección **Claves de acceso**, haga clic en **Crear clave de acceso**.

1. En la página **Prácticas recomendadas y alternativas para la clave de acceso**, seleccione **Aplicación ejecutada fuera de AWS**. 

   A continuación, elija **Siguiente**.

1. (Opcional) Puede agregar una etiqueta descriptiva a la política.

1. Elija **Create access key (Crear clave de acceso)**.

1. En la página **Recuperar claves de acceso**, copie las credenciales que se muestran en las columnas de **Clave de acceso** y **clave de acceso secreta**.
**nota**  
Debe proporcionar el ID de clave de acceso y la clave de acceso secreta posteriormente en este tutorial. Esta es la única vez que puede ver la clave de acceso secreta. Le recomendamos que la copie y la guarde en un lugar seguro.

1. Una vez guardadas ambas claves, elija **Listo**.

**Siguiente**: [Configurar Postman](tutorials-using-postman-configuration.md)

# Configurar Postman para su uso con Amazon Pinpoint
<a name="tutorials-using-postman-configuration"></a>

Ahora que ha creado un usuario que puede acceder a la API de Amazon Pinpoint, puede configurar Postman. En esta sección, cree uno o más entornos en Postman. A continuación, importe una colección que contenga una plantilla de solicitud para cada una de las operaciones en la API de Amazon Pinpoint.

## Crear un espacio de trabajo de Postman
<a name="tutorials-using-postman-configuration-create-workspace"></a>

En Postman, un *espacio de trabajo* es un contenedor organizativo para proyectos y entornos. En esta sección, debe crear al menos un espacio de trabajo para usarlo con Amazon Pinpoint.

**Creación de un espacio de trabajo**

En Postman, elija entre más acciones, elija **Archivo** y, a continuación, elija **Nuevo**.

1. En la ventana **Crear nuevo**, elija **Espacio de trabajo**.

1. Ingrese un nombre, un resumen y establezca la visibilidad como personal. A continuación, elija **Crear espacio de trabajo**.

## Crear entornos de Postman
<a name="tutorials-using-postman-configuration-create-environments"></a>

En Postman, un *entorno* es un conjunto de variables que se almacenan como pares clave-valor. Puede utilizar entornos para cambiar la configuración de las solicitudes que realice a través de Postman sin tener que cambiar las propias solicitudes de la API.

En esta sección, debe crear al menos un entorno que utilizar con Amazon Pinpoint. Cada entorno que cree contendrá un conjunto de variables específicas de la cuenta de una única Región de AWS. Si utiliza los procedimientos de esta sección para crear más de un entorno, puede cambiar entre regiones eligiendo un entorno distinto al menú **Entorno** en Postman.

**Para crear un entorno**

1. En Postman, elija en el menú de más acciones, elija **Archivo** y, a continuación, elija **Nuevo**.

1. En la ventana **Create New** (Crear nuevo), elija **Environment** (Entorno).

1. En la ventana **MANAGE ENVIRONMENTS** (GESTIONAR ENTORNOS) para **Environment Name** (Nombre de entorno), especifique **Amazon Pinpoint - *Region Name***. *Region Name*Sustitúyalo por uno de los siguientes valores:
   + Este de EE. UU. (Norte de Virginia)
   + Oeste de EE. UU. (Oregón)
   + Asia-Pacífico (Mumbai)
   + Asia-Pacífico (Sídney)
   + Europa (Fráncfort)
   + Europa (Irlanda)
**nota**  
Como mínimo, solo necesita crear un entorno para cada uno y Región de AWS debe contener un proyecto. Región de AWS Si no ha creado un proyecto en uno de los listados anteriormente Regiones de AWS, consulte [Creación de un proyecto de Amazon Pinpoint con soporte por correo electrónico](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-create.html) en la Guía del usuario de *Amazon Pinpoint*.

1. Cree seis nuevas variables: `endpoint`, `region`, `serviceName`, `accountId`, `accessKey` y `secretAccessKey`. Utilice la siguiente tabla para determinar qué valor ingresar en las columnas **Valor inicial** y **Valor actual** para cada variable.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/tutorials-using-postman-configuration.html)

   Después de crear estas variables, la ventana **MANAGE ENVIRONMENTS** (GESTIONAR ENTORNOS) será similar al ejemplo que se muestra en la siguiente imagen.  
![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Postman_Tutorial_2.1_4.png)

   Cuando termine, elija **Guardar**.
**importante**  
Las claves de acceso que se muestran en la imagen anterior son ficticias. No comparta las claves de acceso de IAM con otras personas.  
Postman incluye características que le permiten compartir y exportar los entornos. Si utiliza estas características, asegúrese de no compartir el ID de clave de acceso y la clave de acceso secreta con cualquier persona que no debería tener acceso a estas credenciales.  
Para obtener más información, consulte [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

1. (Opcional) Repita los pasos 1 a 4 para cada entorno adicional que desea crear.
**sugerencia**  
En Postman, puede crear todos los entornos que necesite. Puede utilizar entornos de las siguientes maneras:  
Cree un entorno independiente para cada región en la que deba probar la API de Amazon Pinpoint.
Cree entornos asociados a diferentes Cuentas de AWS.
Cree entornos que utilicen credenciales asociadas a otro usuario.

1. Cuando termine de crear entornos, vaya a la siguiente sección.

## Crear una colección de Amazon Pinpoint en Postman
<a name="tutorials-using-postman-configuration-create-pinpoint-collection"></a>

En Postman, una *recopilación* es un grupo de solicitudes de la API. Las solicitudes de una colección suelen estar unidas por un objetivo común. En esta sección, debe crear una nueva colección que contenga una plantilla de solicitud para cada operación en la API de Amazon Pinpoint.

**Para crear la colección de Amazon Pinpoint**

1. En Postman, elija en el menú de más acciones, elija **Archivo** y, a continuación, elija **Importar**.

1. En la ventana **Importar, selecciona Importar** **desde un enlace** y, a continuación, introduce la siguiente URL: [https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon](https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon%20Pinpoint.postman_collection.json) %20PinPoint.postman\$1Collection.json. 

   Seleccione **Importar**. Postman importa la colección de Amazon Pinpoint, que contiene 120 solicitudes de ejemplo.

## Probar la configuración de Postman
<a name="tutorials-using-postman-configuration-test-operation"></a>

Después de importar la colección de Amazon Pinpoint, recomendamos realizar una prueba rápida para verificar que todos los componentes se han configurado correctamente. Puede probar la configuración mediante el envío de una solicitud de `GetApps`. Esta solicitud devuelve una lista de todos los proyectos existentes en la cuenta de Amazon Pinpoint en la región de Región de AWS actual. Esta solicitud no requiere ninguna configuración adicional, por lo que es una buena forma de probar la configuración.

**Para probar la configuración de la colección de Amazon Pinpoint**

1. En el panel de navegación izquierdo, seleccione **Colecciones**, amplíe la colección de **Amazon Pinpoint** y, a continuación, amplíe la carpeta **Aplicaciones**.

1. En la lista **GetApps**de solicitudes, selecciona.

1. Utilice el selector de **Entorno** para elegir el entorno que creó en [Crear entornos de Postman](#tutorials-using-postman-configuration-create-environments).

1. Seleccione **Enviar**. Si la solicitud se envía correctamente, el panel de respuesta muestra un estado de `200 OK`. Verá una respuesta con un aspecto similar al del ejemplo en la siguiente imagen.  
![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Postman_Tutorial_2.3_3.png)
**nota**  
Si no ha creado ningún proyecto en las devoluciones Región de AWS de Amazon Pinpoint. `{ "Item": [] }`

   Esta respuesta muestra una lista de todos los proyectos de Amazon Pinpoint que existen en la cuenta en la región que eligió en el paso 3.

### Resolución de problemas
<a name="tutorials-using-postman-configuration-test-operation-troubleshooting"></a>

Cuando envíe la solicitud, es posible que vea un error. Consulte la siguiente lista para ver los distintos errores comunes que podría detectar y los pasos que podría seguir para resolverlos.


| Mensaje de error | Problema | Resolución | 
| --- | --- | --- | 
|  Could not get any response Se ha producido un error al conectarse a https://%7B%7Bendpoint%7D%7D/v1/apps.  |  No se aplica ningún valor actual para la variable `{{endpoint}}`, que se establece cuando elige un entorno.  | Utilice el selector de entorno para elegir un entorno. | 
|  El token de seguridad incluido en la solicitud no es válido.  |  Postman no ha podido encontrar el valor actual de su ID de clave de acceso o la clave de acceso secreta.  |  Elija el icono del engranaje cerca del selector de entorno y, a continuación, seleccione el entorno actual. Verifique que los valores `accessKey` y `secretAccessKey` aparezcan en las columnas **VALOR INICIAL** y **VALOR ACTUAL** y de que ha especificado las credenciales correctamente.  | 
|  «Mensaje»: «El usuario: arn:aws:iam: :123456789012:user/ no PinpointPostmanUser está autorizado a realizar: mobiletargeting: on resource: arn:aws:mobiletargeting:us-west- 2:123456789012: \$1» GetApps   |  La política de IAM asociada al usuario no incluye los permisos pertinentes.  |  Verifique que el usuario tenga los permisos que se describen en [Crear una política de IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy) y que ha proporcionado las credenciales correctas al crear el entorno en el [Crear espacio de trabajo de Postman](#tutorials-using-postman-configuration-create-environments).  | 

**Siguiente**: [Enviar solicitudes adicionales](tutorials-using-postman-sample-requests.md)

# Enviar solicitudes a la API de Amazon Pinpoint
<a name="tutorials-using-postman-sample-requests"></a>

Cuando termine de configurar y probar Postman, podrá empezar a enviar solicitudes adicionales a la API de Amazon Pinpoint. En esta sección se incluye información que debe conocer antes de empezar a enviar solicitudes. También incluye dos solicitudes de ejemplo que describen cómo utilizar la colección de Amazon Pinpoint.

**importante**  
Cuando haya completado los procedimientos de esta sección, enviará solicitudes a la API de Amazon Pinpoint. Estas solicitudes crean nuevos recursos en la cuenta de Amazon Pinpoint, modifique los recursos existentes, envían mensajes, cambian la configuración de los proyectos de Amazon Pinpoint y usan otras características de Amazon Pinpoint. Actúe con precaución al llevar a cabo estas solicitudes.

## Ejemplos de la colección de Postman de Amazon Pinpoint
<a name="tutorials-using-postman-sample-requests-about"></a>

Debe configurar la mayoría de las operaciones en la colección de Postman de Amazon Pinpoint antes de poder usarlas. Para las operaciones `GET` y `DELETE`, normalmente solo debe modificar las variables que se establecen en la pestaña **Pre-request Script (Script previo a la solicitud)**.

**nota**  
Al usar la política de IAM que se muestra en [Crear una política de IAM](tutorials-using-postman-iam-user.md#tutorials-using-postman-iam-user-create-policy), no puede llevar a cabo ninguna de las solicitudes `DELETE` que se incluyen en esta colección.

Por ejemplo, la operación `GetCampaign` requiere que especifique un `projectId` y un `campaignId`. En la pestaña **Pre-request Script (Script previo a la solicitud)**, ambas variables están presentes y se rellenan con valores de ejemplo. Elimine los valores de ejemplo y sustitúyalos por los valores adecuados para la campaña y el proyecto de Amazon Pinpoint.

De estas variables, la más utilizada es la variable `projectId`. El valor de esta variable debe ser el identificador único del proyecto al que se aplica su solicitud. Para obtener una lista de estos identificadores para los proyectos, haga referencia a la respuesta a la solicitud `GetApps` que ha enviado en el paso anterior de este tutorial. En esa respuesta, el campo de `Id` proporciona el identificador único para un proyecto. Para obtener más información sobre la operación `GetApps` y el significado de cada campo en la respuesta, consulte [Aplicaciones](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps.html) en la *Referencia de la API de Amazon Pinpoint*.

**nota**  
En Amazon Pinpoint, un “proyecto” es lo mismo que una “aplicación”.

Para las operaciones `POST` y `PUT`, también debe modificar el cuerpo de la solicitud para incluir los valores que desea enviar a la API. Por ejemplo, al enviar una solicitud `CreateApp`, que es una solicitud `POST`, debe especificar un nombre para el proyecto que cree. Puede modificar la solicitud en la pestaña **Body (Cuerpo)**. En este ejemplo, reemplace el valor situado junto a `"Name"` por el nombre del proyecto. Si desea añadir etiquetas al proyecto, puede especificarlas en el objeto `tags`. O bien, si no desea añadir etiquetas, puede eliminar todo el objeto `tags`.

**nota**  
La operación `UntagResource` también requiere que especifique los parámetros de la URL. Puede especificar estos parámetros en la pestaña **Params (Parámetros)**. Reemplace los valores de la columna **VALUE (VALOR)** por las etiquetas que desea quitar para el recurso especificado.

## Ejemplo de solicitud: Crear un proyecto mediante la operación `CreateApp`
<a name="tutorials-using-postman-sample-requests-createapp"></a>

Antes de crear segmentos y campañas en Amazon Pinpoint, primero debe crear un proyecto. En Amazon Pinpoint, un *proyecto* consta de segmentos, campañas, configuraciones y datos unidos por un objetivo común. Por ejemplo, podría usar un proyecto para incluir todo el contenido relacionado con una aplicación concreta o con una iniciativa de marketing o una marca específica. Al agregar información del cliente a Amazon Pinpoint, dicha información se asocia a un proyecto.

**Para crear un proyecto mediante el envío de una solicitud CreateApp de API**

1. En el menú **Entornos**, selecciona el lugar en el Región de AWS que deseas crear el proyecto.  
![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Postman_Tutorial_Environments.png)

    En este ejemplo, Postman se ha configurado para que el menú **Environments** (Entornos) muestre las siguientes cuatro opciones:
   + Este de EE. UU. (Norte de Virginia)
   + Oeste de EE. UU. (Oregón)
   + Europa (Fráncfort)
   + Europa (Irlanda)

1. En la carpeta **Aplicaciones**, elija la **CreateApp**operación>.  
![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Postman_Tutorial_3.2_2.png)

   La carpeta **Aplicaciones** de la colección de Postman de Amazon Pinpoint está ampliada y muestra las siguientes solicitudes:
   + `GetApp`
   + `GetApps`
   + `CreateApp`
   + `DeleteApp`

1. En la pestaña **Body (Cuerpo)**, situada junto a `"Name"`, reemplace el valor de marcador de posición (`"string"`) por un nombre para la campaña, como **"MySampleProject"**.

1. Elimine la coma después del nombre de la campaña y, a continuación, elimine todo el objeto `tags` entre las líneas 3 y 5. Cuando haya terminado, la solicitud debe tener un aspecto similar al del ejemplo que se muestra en el siguiente fragmento de código.

   ```
   {
       "Name": "MySampleProject"
   }
   ```

   Postman está configurado para enviar la solicitud como una carga JSON sin procesar.

1. Seleccione **Enviar**. Si la campaña se crea correctamente, el panel de respuesta muestra un estado `201 Created`.

   ```
   {
       "Name": "MySampleProject"
       "Id": "12345678901234567890123456789012",
       "Arn": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/12345678901234567890123456789012",
       "tags": {}
   }
   ```

## Ejemplo: Enviar un correo electrónico mediante la operación `SendMessages`
<a name="tutorials-using-postman-sample-requests-sendmessages"></a>

Es muy habitual usar la API de Amazon Pinpoint de `SendMessages` para enviar mensajes transaccionales. Una ventaja de enviar mensajes mediante la API `SendMessages`, en oposición a la creación de campañas, es que puede enviar mensajes a cualquier dirección, como una dirección de correo electrónico, un número de teléfono o un token de dispositivo. La dirección a la que envía mensajes no debe existir en la cuenta de Amazon Pinpoint. Vamos a comparar este método con el envío de mensajes mediante la creación de campañas. Antes de enviar una campaña en Amazon Pinpoint, debe agregar puntos de conexión a la cuenta de Amazon Pinpoint, crear segmentos, crear la campaña y llevar a cabo la campaña.

En el ejemplo de esta sección se le muestra cómo enviar un mensaje de correo electrónico de transacciones directamente a una dirección de correo electrónico específica. Puede modificar esta solicitud para enviar mensajes a través de otros canales, como SMS, inserción en móvil o voz.

**Para enviar un mensaje de correo electrónico mediante el envío de una SendMessages solicitud**

1. Compruebe que el canal de correo electrónico esté habilitado para el proyecto y que la dirección de correo electrónico o el dominio que desee utilizar para enviar y recibir el mensaje estén configurados. Para obtener más información, consulte [Habilitación y desactivación del canal de correo electrónico](pinpoint/latest/userguide/channels-email-setup.html) y [Verificación de las identidades de correo electrónico](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html) en la *Guía del usuario de Amazon Pinpoint*.
**nota**  
Para completar el procedimiento de esta sección, debe verificar una dirección de correo electrónico

1. En el menú **Entornos**, selecciona el lugar desde el Región de AWS que deseas enviar el mensaje.

   En este ejemplo, Postman se ha configurado para que el menú **Environments** (Entornos) muestre las siguientes cuatro opciones:
   + Este de EE. UU. (Norte de Virginia)
   + Oeste de EE. UU. (Oregón)
   + Europa (Fráncfort)
   + Europa (Irlanda)

1. En la carpeta **Mensajes**, elija la **SendMessages**operación.  
![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Postman_Tutorial_3.3_3.png)

1. En la pestaña **Pre-request Script (Script previo a la solicitud)**, reemplace el valor de la variable `projectId` por el ID de un proyecto que ya exista en la región que seleccionó en el paso 2 de esta sección.

1. En la pestaña **Body (Cuerpo)**, elimine la solicitud de ejemplo que se muestra en el editor de solicitudes. Pegue el siguiente código:

   ```
   {
       "MessageConfiguration":{
           "EmailMessage":{
               "FromAddress":"sender@example.com",
               "SimpleEmail":{
                   "Subject":{
                       "Data":"Sample Amazon Pinpoint message"
                   },
                   "HtmlPart":{
                       "Data":"<h1>Test message</h1><p>This is a sample message sent from <a href=\"https://aws.amazon.com/pinpoint\">Amazon Pinpoint</a> using the SendMessages API.</p>"
                   },
                   "TextPart":{
                       "Data":"This is a sample message sent from Amazon Pinpoint using the SendMessages API."
                   }
               }
           }
       },
       "Addresses":{
           "recipient@example.com": {
               "ChannelType": "EMAIL"
           }
       }
   }
   ```

1. En el código anterior, *sender@example.com* sustitúyalo por tu dirección de correo electrónico verificada. *recipient@example.com*Sustitúyala por la dirección de correo electrónico verificada a la que deseas enviar el mensaje.
**nota**  
Si la cuenta sigue en el entorno aislado de correo electrónico de Amazon Pinpoint, solo podrá enviar correos electrónicos a direcciones o dominios que se verifiquen en la cuenta de Amazon Pinpoint. Para obtener más información acerca de cómo quitar la cuenta del entorno aislado, consulte [Solicitud de acceso de producción para el correo electrónico](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-setup-production-access.html) en la *Guía del usuario de Amazon Pinpoint*.

1. Seleccione **Enviar**. Si el mensaje se envía correctamente, el panel de respuesta mostrará un estado `200 OK`.

   ```
   {
       "ApplicationId": "12345678901234567890123456789012",
       "RequestId": "<sampleValue>",
       "Result": {
           "recipient@example.com": {
               "DeliveryStatus": "SUCCESSFUL",
               "StatusCode": 200,
               "StatusMessage": "<sampleValue>",
               "MessageId": "<sampleValue>"
           }
       }
   }
   ```

# Configurar un sistema de registro de SMS en Amazon Pinpoint
<a name="tutorials-two-way-sms"></a>

Los mensajes SMS (mensajes de texto) son una manera excelente de enviar mensajes de extrema importancia a sus clientes mediante Amazon Pinpoint. Muchas personas tienen cerca el teléfono en todo momento y los mensajes SMS suelen llamar más la atención de las personas que las notificaciones push, los correos electrónicos o las llamadas telefónicas.

Una forma habitual de capturar los números de teléfonos móviles de los clientes es utilizar un formulario basado en web. Tras comprobar que el número de teléfono del cliente y confirmar su suscripción, podrá comenzar a enviar mensajes SMS promocionales, transaccionales e informativos a ese cliente.

Este tutorial le enseña cómo configurar un formulario web para capturar la información de contacto de los clientes. El formulario web envía esta información a Amazon Pinpoint. A continuación, Amazon Pinpoint verifica que el número de teléfono sea válido y captura otros metadatos relacionados con el número de teléfono. Después de eso, Amazon Pinpoint envía al cliente un mensaje solicitándole que confirme la suscripción. Una vez que el cliente confirma la suscripción, Amazon Pinpoint los confirma para la recepción de los mensajes.

El siguiente diagrama de arquitectura muestra el flujo de datos en esta solución.

![\[\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Architecture.png)


## Acerca de la confirmación doble
<a name="tutorials-two-way-sms-double-opt-in"></a>

En este tutorial se muestra cómo configurar un sistema de suscripción doble en Amazon Pinpoint que utiliza la mensajería de SMS bidireccionales.

En un sistema de confirmación doble de SMS, un cliente le ofrece su número de teléfono enviándolo en un formulario web o dentro de su aplicación. Cuando reciba la solicitud del cliente, deberá crear un nuevo punto de conexión en Amazon Pinpoint. El nuevo punto de enlace debe excluirse de las comunicaciones. A continuación, envíe un mensaje a ese número de teléfono. En el mensaje, solicita que el destinatario confirme su suscripción contestando con una frase o palabra específicas (como "Sí" o "Confirmar"). Si el cliente responde al mensaje con la palabra o frase que ha especificado, cambie el estado del punto de enlace a confirmado. De lo contrario, si el cliente no responde o responde con otra palabra o frase, puede dejar el punto de enlace con el estado cancelado.

## Acerca de esta solución
<a name="tutorials-two-way-sms-about"></a>

Esta sección contiene información sobre la solución que va a crear en este tutorial.

**Destinatarios previstos**  
Este tutorial está destinado a las audiencias de implementadores de sistemas y desarrolladores. No tiene que estar familiarizado con Amazon Pinpoint para completar los pasos de este tutorial. Sin embargo, debe sentirse cómodo administrando políticas de IAM, creando funciones de Lambda en Node.js e implementando contenido web.

**Características utilizadas**  
Este tutorial incluye ejemplos de uso para las siguientes características de Amazon Pinpoint:
+ Envío de mensajes SMS transaccionales
+ Obtención de información sobre los números de teléfono mediante la validación del número de teléfono
+ Recepción de mensajes SMS entrantes mediante la mensajería de SMS bidireccionales
+ Creación de segmentos dinámicos
+ Creación de campañas
+ Interactuar con la API Amazon Pinpoint mediante AWS Lambda

**Tiempo necesario**  
Debe tardar aproximadamente una hora en completar este tutorial. Después de implementar esta solución, existen pasos adicionales que puede realizar para ajustar la solución y adaptarla mejor a su caso de uso exclusivo.

**Restricciones regionales**  
En este tutorial se requiere que asigne un código largo mediante la consola de Amazon Pinpoint. Puede utilizar la consola de Amazon Pinpoint para asignar códigos largos dedicados de varios países. Sin embargo, solo los códigos largos de Canadá pueden utilizarse para enviar mensajes SMS. (Puede utilizar códigos largos de otros países y regiones para enviar mensajes de voz).

Hemos creado los ejemplos de código de este tutorial teniendo en cuenta esta restricción. Por ejemplo, en los ejemplos de código se presupone que el número de teléfono del destinatario siempre tiene 10 dígitos y que tiene el código de país 1. Si implementa esta solución en países o regiones que no sean los Estados Unidos o Canadá, tendrá que modificar los ejemplos de código de forma adecuada.

**Costos de uso de recursos**  
La creación de una AWS cuenta es gratuita. Sin embargo, si se implementa esta solución, es posible que se generen los siguientes gastos:
+ **Costos de arrendamiento de código largo**: para completar este tutorial, debe arrendar un código largo. Los códigos largos de Canadá cuestan 1 USD al mes.
+ **Uso de la validación de números de teléfono**: la solución de este tutorial utiliza la característica de validación de números de teléfono de Amazon Pinpoint para comprobar que cada número que recibe es válido y tiene el formato correcto y para obtener información adicional sobre el número de teléfono. El costo de cada solicitud de validación de número de teléfono es de 0,006 USD.
+ **Costos de envío de mensajes**: la solución de este tutorial envía los mensajes SMS salientes. Paga por cada mensaje que envía mediante Amazon Pinpoint. El precio que paga por cada mensaje depende del país o la región del destinatario. Si envía mensajes a destinatarios en Estados Unidos (excluidos los Territorios de los Estados Unidos), pagará 0,00645 USD por mensaje. Si envía mensajes a destinatarios en Canadá, paga entre 0,00109 USD y 0,02 USD, según el operador y la ubicación del destinatario.
+ **Costos de recepción de mensajes**: esta solución también recibe y procesa los mensajes SMS entrantes. Pagará por cada mensaje entrante enviado a los números de teléfono asociados a la cuenta de Amazon Pinpoint. El precio que paga depende del lugar en el que se encuentre el número de teléfono de recepción. Si el número de recepción está en Estados Unidos (excluidos los Territorios de los Estados Unidos), pagará 0,0075 USD por mensaje entrante. Si su número se encuentra en Canadá, pagará 0,00155 USD por mensaje entrante.
+ **Uso de Lambda**: esta solución utiliza dos funciones de Lambda que interactúan con la API de Amazon Pinpoint. Cuando llame a una función de Lambda, se le cobrará según el número de solicitudes de las funciones, por el tiempo que tardará en ejecutarse el código y la cantidad de memoria que utilice las funciones. Las funciones de este tutorial utilizan muy poca memoria y, por lo general, se ejecutan entre durante 1 y 3 segundos. El uso total o parcial de esta solución puede ser inferior al nivel de uso gratuito de Lambda. Para obtener más información, consulte los [precios de Lambda](https://aws.amazon.com/lambda/pricing/).
+ **Uso de API Gateway**: el formulario web de esta solución llama a una API administrada por API Gateway. Por cada millón de llamadas a API Gateway, paga entre 3,50 y 3,70 USD, según la región en la que AWS utilice Amazon Pinpoint. Para obtener más información, consulte [Precio de API Gateway](https://aws.amazon.com/api-gateway/pricing/).
+ **Costos de alojamiento web**: esta solución incluye un formulario basado en la web que debe alojar en el sitio web. El precio que paga por alojar este contenido depende de su proveedor de servicios de alojamiento web.

**nota**  
Todos los precios que se muestran en esta lista se encuentran en dólares estadounidenses (USD).

**Siguiente**: [Requisitos previos](tutorials-two-way-sms-prereqs.md)

# Requisitos previos para configurar SMS en Amazon Pinpoint
<a name="tutorials-two-way-sms-prereqs"></a>

Antes de comenzar este tutorial, tiene que completar los siguientes requisitos previos:
+ Tiene que disponer de una cuenta de AWS. Para crear una cuenta de AWS, vaya a [https://console.aws.amazon.com/](https://console.aws.amazon.com/) y elija **Crear una cuenta nueva de AWS**.
+ La cuenta que utiliza para iniciar sesión en la cuenta de Consola de administración de AWS tiene que poder realizar las tareas siguientes:
  + Crear nuevas políticas y roles de IAM
  + Crear nuevos proyectos de Amazon Pinpoint
  + Crear nuevas funciones de Lambda
  + Crear nuevas API en API Gateway
+ Debe tener un método para alojar y publicar páginas web. Aunque puede usar servicios de AWS para alojar sus sitios web, no es necesario. 
**sugerencia**  
Para obtener más información sobre el alojamiento de páginas web mediante servicios de AWS, consulte [Alojar una página web estática](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

**Siguiente**: [Configurar Amazon Pinpoint](tutorials-two-way-sms-part-1.md)

# Configuración de SMS en Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1"></a>

Para poder configurar mensajes SMS, debe tener un proyecto de Amazon Pinpoint. En esta sección, hará lo siguiente:
+ Crear un proyecto de Amazon Pinpoint
+ Habilitar el canal de SMS y alquilar un número de teléfono
+ Configurar la mensajería de SMS bidireccional

Antes de comenzar, asegúrese de revisar los [requisitos previos](tutorials-two-way-sms-prereqs.md).

## Crear un proyecto de Amazon Pinpoint
<a name="tutorials-two-way-sms-part-1-create-project"></a>

Para comenzar, tiene que crear un proyecto de Amazon Pinpoint. En Amazon Pinpoint, un *proyecto* consta de segmentos, campañas, configuraciones y datos unidos por un objetivo común. Por ejemplo, podría usar un proyecto para incluir todo el contenido relacionado con una aplicación concreta o con una iniciativa de marketing o una marca específica. Al agregar información del cliente a Amazon Pinpoint, dicha información se asocia a un proyecto.

Los pasos para crear un nuevo proyecto varía en función de si ha creado un proyecto en Amazon Pinpoint anteriormente.

### Creación de un proyecto (nuevos usuarios de Amazon Pinpoint)
<a name="tutorials-two-way-sms-part-1-create-project-opt-1"></a>

Estos pasos describen el proceso de creación de un nuevo proyecto de Amazon Pinpoint si nunca ha creado un proyecto en la región actual AWS .

**Para crear un proyecto**

1. Inicie sesión en la consola de Amazon Pinpoint Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Utilice el selector de regiones para elegir la AWS región que desee utilizar, como se muestra en la siguiente imagen. Si no está seguro, elija la región más próxima a usted.  
![\[El menú desplegable Región con la opción Este de EE. UU. (Norte de Virginia) seleccionada.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Region_Selector.png)

1. En **Get started** (Introducción), en **Name** (Nombre), especifique un nombre para la campaña (como **SMSRegistration**) y, a continuación, elija **Create project** (Crear proyecto).

1. En la página **Configure features** (Configurar características), elija **Skip this step** (Omitir este paso).

1. En el panel de navegación, elija **All projects** (Todos los proyectos).

1. En la página **All projects** (Todos los proyectos), junto al proyecto que acaba de crear, copie el valor que aparece en la columna **Project ID** (ID de proyecto).
**sugerencia**  
Debe utilizar este ID en distintos lugares de este tutorial. Mantenga el ID de proyecto en un lugar que le resulta práctico para poder copiarlo después.

### Creación de un proyecto (usuarios de Amazon Pinpoint existentes)
<a name="tutorials-two-way-sms-part-1-create-project-opt-2"></a>

Estos pasos describen el proceso de creación de un nuevo proyecto de Amazon Pinpoint si ya ha creado proyectos en la región actual AWS .

**Para crear un proyecto**

1. Inicie sesión en la consola de Amazon Pinpoint Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. Utilice el selector de regiones para elegir la AWS región que desee utilizar, como se muestra en la siguiente imagen. Si no está seguro, elija la región más próxima a usted.  
![\[El menú desplegable de regiones que muestra la opción Este de EE. UU. (Norte de Virginia) seleccionada.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/Region_Selector.png)

1. En la página **All projects (Todos los proyectos)**, elija **Create a project (Crear un proyecto)**.

1. En la ventana **Create project** (Crear proyecto), en **Project name** (Nombre del proyecto), escriba un nombre para el proyecto (como **SMSRegistration**). Seleccione **Crear**.

1. En la página **Configure features** (Configurar características), elija **Skip this step** (Omitir este paso).

1. En el panel de navegación, elija **All projects** (Todos los proyectos).

1. En la página **All projects** (Todos los proyectos), junto al proyecto que acaba de crear, copie el valor que aparece en la columna **Project ID** (ID de proyecto).
**sugerencia**  
Debe utilizar este ID en distintos lugares de este tutorial. Mantenga el ID de proyecto en un lugar que le resulta práctico para poder copiarlo después.

## Obtener un número de teléfono dedicado
<a name="tutorials-two-way-sms-part-1-set-up-channel"></a>

**nota**  
Amazon Pinpoint ha actualizado la documentación de su guía del usuario. Para obtener la información más reciente sobre cómo crear, configurar y administrar recursos de mensajes SMS y de voz, consulte la nueva [Guía del usuario de Mensajes SMS para usuarios finales de AWS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html). 

Una vez que cree un proyecto, podrá comenzar a configurar características dentro de ese proyecto. En esta sección, se habilita el canal de SMS y se obtendrá un número de teléfono dedicado que utilizar al enviar mensajes SMS.

**nota**  
En esta sección se presupone que alquila un número de teléfono 10DLC en Estados Unidos después de registrar la marca y la campaña, un número gratuito de Estados Unidos o un código largo de Canadá. Si sigue los procedimientos de esta sección, pero elige un país que no es Estados Unidos o Canadá, no podrá utilizar ese número para enviar mensajes SMS. Para obtener más información sobre el alquiler de códigos largos compatibles con SMS en países distintos de Estados Unidos o Canadá, consulte los [países y regiones admitidos (canal de SMS)](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) en la *Guía del usuario de Mensajes SMS para usuarios finales de AWS *.

Para habilitar el canal de SMS mediante la consola de Amazon Pinpoint, siga estos pasos:

**Habilitar el canal de SMS**

1. Inicie sesión en la consola de Amazon Pinpoint Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. En el panel de navegación, en **Settings (Configuración)**, seleccione **SMS and voice (SMS y voz)**.

1. Junto a **SMS settings** (Configuración de SMS), elija **Edit** (Editar).

1. En **General settings** (Configuración general), elija **Enable the SMS channel for this project** (Habilitar el canal de SMS para este proyecto) y, a continuación, elija **Save changes** (Guardar cambios).

Para solicitar un número de teléfono mediante la consola SMS de mensajería para el usuario AWS final, siga estos pasos:

**Solicite un número de teléfono (consola)**

1. Abra la consola de SMS de mensajería para el usuario AWS final en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).
**nota**  
Asegúrese de solicitar un número de teléfono igual al número en el Región de AWS que creó su proyecto de Amazon Pinpoint.

1. En el panel de navegación, en **Configuraciones**, elija **Números de teléfono** y, a continuación, **Solicitar originador**.

1. En la página **Seleccionar país**, en **País de destino del mensaje**, elija Estados Unidos o Canadá. Elija **Siguiente**.

1. En la sección **Caso de uso de mensajería**, introduzca lo siguiente:
   + En **Capacidades numéricas**, seleccione **SMS**
**importante**  
Las funciones de SMS y voz no se pueden cambiar una vez adquirido el número de teléfono.
   + Para **Mensajería bidireccional**, seleccione **Sí**.

1. Elija **Siguiente**.

1. En **Seleccionar tipo de originador**, seleccione **Código largo** o **10DLC**.

   Si elige 10DLC y ya tiene una campaña registrada, puede elegir la campaña en **Asociar a campaña registrada**.

1. Elija **Siguiente**.

1. En **Revisar y solicitar**, puede verificar y editar la solicitud antes de enviarla. Seleccione **Solicitar**.

1. En función del tipo de número de teléfono que haya solicitado, puede aparecer una ventana **Registro necesario**. Su número de teléfono está asociado a este registro y no puede enviar mensajes hasta que se apruebe el registro. Para obtener más información sobre requisitos de registro, consulte [Registros](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

   1. Para **Nombre del formulario de registro**, introduzca un nombre descriptivo.

   1. Seleccione **Comenzar registro** para finalizar el registro del número de teléfono o **Registrarse después**.
**importante**  
Su número de teléfono no puede enviar mensajes hasta que se apruebe el registro.  
 Se le seguirá facturando la cuota de arrendamiento periódica mensual del número de teléfono, independientemente del estado de registro. Para obtener más información sobre requisitos de registro, consulte [Registros](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html).

## Habilitación de SMS bidireccionales
<a name="tutorials-two-way-sms-part-1-enable-two-way"></a>

Ahora que dispone de un número de teléfono dedicado, puede configurar SMS bidireccionales. La habilitación de SMS bidireccionales permite que los clientes puedan responder a los mensajes SMS que les envía. En esta solución, utilice SMS bidireccionales para proporcionar a sus clientes una forma de confirmar que desean suscribirse a su programa de SMS.

Para habilitar los SMS bidireccionales mediante la consola de SMS de mensajería para el usuario AWS final, siga estos pasos:

**Habilitación de SMS bidireccionales**

1. Abra la consola de SMS de mensajería para el usuario AWS final en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. En el panel de navegación, en **Configuraciones**, elija **Números de teléfono**.

1. En la página **Números de teléfono**, elija un número de teléfono.

1. En la pestaña **SMS bidireccional**, seleccione el botón **Editar configuración**.

1. En la página **Editar configuración**, seleccione **Habilitar mensaje bidireccional**.

1. En **Tipo de destino**, elija **Amazon SNS**.
   + **Nuevo tema de Amazon SNS**: los mensajes SMS para usuarios AWS finales crean un tema en su cuenta. El tema se crea automáticamente con todos los permisos necesarios. Para obtener más información sobre el tema de Amazon SNS, consulte [Configuración de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-configuring.html) en la *Guía para desarrolladores de Amazon SNS*. 
   + Para **Destino del mensaje entrante**, introduzca un nombre de tema, por ejemplo **SMSRegistrationFormTopic**.

1. Para **Rol de canal bidireccional**, seleccione **Usar políticas de temas de SNS**.

1. Seleccione **Save changes (Guardar cambios)**.

Utilice la consola de mensajería SMS para usuarios AWS finales para añadir palabras clave a su número de teléfono que los clientes le envíen para confirmar sus suscripciones (por ejemplo, **Yes** o**Confirm**).

**Agregar una palabra clave**

1. Abra la consola de SMS de mensajería para usuarios AWS finales en [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. En el panel de navegación, en **Configuraciones**, elija **Número de teléfono**.

1. En la página **Número de teléfono**, elija un número de teléfono al que desea agregar una palabra clave.

1. En la pestaña **Palabras clave**, seleccione el botón **Agregar palabra clave**.

1. En el panel de **Palabra clave personalizada**, agregue lo siguiente:
   + **Palabra clave**: la nueva palabra clave que desea agregar (por ejemplo, **Yes** o**Confirm**).
   + **Mensaje de respuesta**: el mensaje que desea devolver al destinatario.
   + **Acción de palabra clave**: la acción que se realizará cuando se reciba la palabra clave. Seleccione **Respuesta automática**.

1. Elija **Agregar palabra clave**.

**Siguiente**: [Crear políticas y roles de IAM](tutorials-two-way-sms-part-2.md)

# Crear políticas y roles de IAM para utilizarlos con SMS en Amazon Pinpoint
<a name="tutorials-two-way-sms-part-2"></a>

El siguiente paso para implementar la solución de registro por SMS en Amazon Pinpoint es configurar una política y una función en AWS Identity and Access Management (IAM). Para esta solución, debe crear una política que proporcione acceso a determinados recursos relacionados con Amazon Pinpoint. A continuación, cree un rol y asóciele la política. Más adelante en este tutorial, creará una AWS Lambda función que utilice esta función para llamar a determinadas operaciones de la API Amazon Pinpoint.

## Creación de una política de IAM
<a name="tutorials-two-way-sms-part-2-create-policy"></a>

En esta sección se muestra cómo crear una política de IAM. Los usuarios y roles que utilizan esta política pueden realizar el siguiente procedimiento:
+ Utilizar la característica de validación de número de teléfono
+ Consulte, cree y actualice puntos de conexión de Amazon Pinpoint
+ Envío de mensajes a puntos de conexión de Amazon Pinpoint

En este tutorial, desea proporcionar a Lambda la capacidad de realizar estas tareas. Sin embargo, para mayor seguridad, esta política utiliza la entidad principal de concesión de *privilegios mínimos*. Es decir, solo concede permisos necesarios para completar esta solución, no más. Esta política está restringida de las siguientes formas:
+ Solo puede utilizarla para llamar a la API de validación de número de teléfono en una región específica.
+ Solo puede utilizarla para ver, crear o actualizar los puntos de conexión que están asociados con un proyecto de Amazon Pinpoint específico.
+ Solo puede utilizarla para enviar los puntos de conexión que están asociados con un proyecto de Amazon Pinpoint específico.

**Para crear la política de**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**.

1. En la pestaña **JSON**, pegue el siguiente código.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:CreateLogGroup"
               ],
               "Resource": "arn:aws:logs:*:*:*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:SendMessages",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "mobiletargeting:GetEndpoint",
                   "mobiletargeting:UpdateEndpoint",
                   "mobiletargeting:PutEvents"
               ],
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:apps/projectId/endpoints/*"
           },
           {
               "Effect": "Allow",
               "Action": "mobiletargeting:PhoneNumberValidate",
               "Resource": "arn:aws:mobiletargeting:us-east-1:111122223333:phone/number/validate"
           }
       ]
   }
   ```

------

   En el ejemplo anterior, realice el siguiente procedimiento:
   + *region*Sustitúyalo por la AWS región en la que utiliza Amazon Pinpoint, como `us-east-1` o. `eu-central-1`
**sugerencia**  
Para obtener una lista completa de AWS las regiones en las que Amazon Pinpoint está disponible, consulte [AWS las regiones y puntos de enlace](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) en. *Referencia general de AWS*
   + *accountId*Sustitúyalo por el identificador único de su cuenta. AWS 
   + *projectId*Sustitúyalo por el identificador único del proyecto que creó en [Crear un proyecto de Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) de este tutorial.
**nota**  
Las `logs` acciones permiten a Lambda registrar sus resultados en CloudWatch registros.

1. Elija **Siguiente**.

1. En **Nombre de la política**, especifique un nombre para la política; por ejemplo **RegistrationFormPolicy**. Elija **Crear política**.

## Creación de un rol de IAM
<a name="tutorials-two-way-sms-part-2-create-role"></a>

**Para crear el rol**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En la consola de IAM, en el panel de navegación, seleccione **Roles** y **Crear rol**.

1. En **Tipo de entidad de confianza**, elija **Servicio de AWS ** y, a continuación, en **Servicio o caso de usuario**, elija **Lambda** en la lista desplegable.

1. Elija **Siguiente**.

1. En **Políticas de permisos**, elija o busque la política que creó en la sección anterior y, a continuación, seleccione **Siguiente**.

1. En **Detalles del rol**, en **Nombre del rol**, ingrese un nombre para su rol, por ejemplo, **SMSRegistrationForm**. Elija **Crear rol**.

**Siguiente**: [Crear funciones de Lambda](tutorials-two-way-sms-part-3.md)

# Crear funciones de Lambda para usarlas con la mensajería SMS de Amazon Pinpoint
<a name="tutorials-two-way-sms-part-3"></a>

En esta sección, se muestra cómo crear y configurar dos funciones de Lambda para utilizarlas con la mensajería SMS de Amazon Pinpoint. Posteriormente, deberá configurar API Gateway y Amazon Pinpoint para invocar estas funciones cuando se produzcan determinados eventos. Estas funciones crean y actualizan los puntos de conexión en el proyecto de Amazon Pinpoint que especifique. La primera función también utiliza la característica de validación de número de teléfono.

## Crear la función que valida la información del cliente y crea puntos de enlace
<a name="tutorials-two-way-sms-part-3-create-register-function"></a>

La primera función recibe información de su formulario de registro, el cual recibe de Amazon API Gateway. Utiliza esta información para obtener información sobre el número de teléfono del cliente mediante la característica de [validación de número de teléfono](https://docs.aws.amazon.com/pinpoint/latest/developerguide/validate-phone-numbers.html) de Amazon Pinpoint. A continuación, la función utiliza los datos validados para crear un nuevo punto de conexión en el proyecto de Amazon Pinpoint que especifique. De forma predeterminada, el punto de enlace que crea la función se desactiva para sus futuras comunicaciones, pero el estado se puede cambiar mediante la segunda función. Por último, esta función envía al cliente un mensaje en el que se le solicita que verifique que quiere recibir comunicaciones SMS de su parte.

**Para crear la función de Lambda**

1. Abra la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Seleccione **Creación de función**.

1. En **Crear una función**, elija **Usar un esquema**.

1. En el campo de búsqueda, escriba **hello** y, a continuación, pulse Intro. En la lista de resultados, elija la función de Node.js `hello-world`, tal y como se muestra en la siguiente imagen.   
![\[La página Crear función con la opción Usar un esquema seleccionada.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.5.png)

1. Bajo **Información básica**, haga lo siguiente:
   + En **Name** (Nombre), especifique un nombre para la función, como **RegistrationForm**.
   + En **Rol**, seleccione **Elegir un rol existente**.
   + En **Función existente**, elija la función de **SMSRegistrationformulario** que creó en [Crear una función de IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Cuando haya terminado, elija **Create function** (Crear función).

1. En **Código fuente** elimine la función de ejemplo del editor de código y, a continuación, pegue el siguiente código:

   ```
   import { PinpointClient, PhoneNumberValidateCommand, UpdateEndpointCommand, SendMessagesCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   const pinClient = new PinpointClient({region: process.env.region});  
   
   // Make sure the SMS channel is enabled for the projectId that you specify.
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-setup.html
   var projectId = process.env.projectId;
   
   // You need a dedicated long code in order to use two-way SMS. 
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-voice-manage.html#channels-voice-manage-request-phone-numbers
   var originationNumber = process.env.originationNumber;
   
   // This message is spread across multiple lines for improved readability.
   var message = "ExampleCorp: Reply YES to confirm your subscription. 2 msgs per "
               + "month. No purchase req'd. Msg&data rates may apply. Terms: "
               + "example.com/terms-sms";
               
   var messageType = "TRANSACTIONAL";
   
   export const handler = async (event, context) => {
     console.log('Received event:', event);
     await validateNumber(event);
   };
   
   async function validateNumber (event) {
     var destinationNumber = event.destinationNumber;
     if (destinationNumber.length == 10) {
       destinationNumber = "+1" + destinationNumber;
     }
     var params = {
       NumberValidateRequest: {
         IsoCountryCode: 'US',
         PhoneNumber: destinationNumber
       }
     };
     try{
       const PhoneNumberValidateresponse = await pinClient.send( new  PhoneNumberValidateCommand(params));
       console.log(PhoneNumberValidateresponse);
        if (PhoneNumberValidateresponse['NumberValidateResponse']['PhoneTypeCode'] == 0) {
           await createEndpoint(PhoneNumberValidateresponse, event.firstName, event.lastName, event.source);
           
         } else {
           console.log("Received a phone number that isn't capable of receiving "
                      +"SMS messages. No endpoint created.");
         }
     }catch(err){
       console.log(err);
     }
   }
   
   async function createEndpoint(data, firstName, lastName, source) {
     var destinationNumber = data['NumberValidateResponse']['CleansedPhoneNumberE164'];
     var endpointId = data['NumberValidateResponse']['CleansedPhoneNumberE164'].substring(1);
     
     var params = {
       ApplicationId: projectId,
       // The Endpoint ID is equal to the cleansed phone number minus the leading
       // plus sign. This makes it easier to easily update the endpoint later.
       EndpointId: endpointId,
       EndpointRequest: {
         ChannelType: 'SMS',
         Address: destinationNumber,
         // OptOut is set to ALL (that is, endpoint is opted out of all messages)
         // because the recipient hasn't confirmed their subscription at this
         // point. When they confirm, a different Lambda function changes this 
         // value to NONE (not opted out).
         OptOut: 'ALL',
         Location: {
           PostalCode:data['NumberValidateResponse']['ZipCode'],
           City:data['NumberValidateResponse']['City'],
           Country:data['NumberValidateResponse']['CountryCodeIso2'],
         },
         Demographic: {
           Timezone:data['NumberValidateResponse']['Timezone']
         },
         Attributes: {
           Source: [
             source
           ]
         },
         User: {
           UserAttributes: {
             FirstName: [
               firstName
             ],
             LastName: [
               lastName
             ]
           }
         }
       }
     };
     try{
       const UpdateEndpointresponse = await pinClient.send(new UpdateEndpointCommand(params));
       console.log(UpdateEndpointresponse);
       await sendConfirmation(destinationNumber);
     }catch(err){
       console.log(err);
     }  
   }
   
   async function sendConfirmation(destinationNumber) {
     var params = {
       ApplicationId: projectId,
       MessageRequest: {
         Addresses: {
           [destinationNumber]: {
             ChannelType: 'SMS'
           }
         },
         MessageConfiguration: {
           SMSMessage: {
             Body: message,
             MessageType: messageType,
             OriginationNumber: originationNumber
           }
         }
       }
     };
     try{
       const SendMessagesCommandresponse = await pinClient.send(new SendMessagesCommand(params));
       console.log("Message sent! " 
             + SendMessagesCommandresponse['MessageResponse']['Result'][destinationNumber]['StatusMessage']);
     }catch(err){
       console.log(err);
     }
   }
   ```

1. En la pestaña **Configuración** de **Variables de entorno**, seleccione **Editar** y en **Agregar variable de entorno**, realice lo siguiente:
   + En la primera fila, cree una variable con una clave de **originationNumber**. A continuación, establezca el valor en el número de teléfono del código largo dedicado que recibió en el [paso 1.2](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**nota**  
Asegúrese de incluir el signo más (\$1) y el código de país para el número de teléfono. No incluya ningún otro carácter especial, como, por ejemplo, guiones (-), puntos (.) o paréntesis.
   + En la segunda fila, crear una variable con una clave de **projectId**. A continuación, establezca el valor en el ID único del proyecto que ha creado en el [paso 1.1](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + En la tercera fila, cree una variable con una clave de **region**. A continuación, establezca el valor en la región en la que usa Amazon Pinpoint, como **us-east-1** o **us-west-2**.

   Cuando termine, la sección **Environment Variables** (Variables de entorno) debe tener el aspecto del ejemplo que se muestra en la siguiente imagen.  
![\[Las variables de entorno de originationNumber, projectId y region.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.7.png)

1. En la parte superior de la página, elija **Save**.

### Prueba de la función
<a name="tutorials-two-way-sms-part-3-create-register-function-test"></a>

Después de crear la función, debe probarla para asegurarse de que se ha configurado correctamente. Además, debe asegurarse de que el rol de IAM que ha creado cuenta con los permisos apropiados.

**Para probar la función**

1. Elija la pestaña **Prueba**.

1. Elija **Crear un grupo** y haga lo siguiente:
   + En **Event Name** (Nombre del evento), escriba un nombre para el evento de prueba, como **MyPhoneNumber**.
   + Borre el código de ejemplo en el editor de código. Pegue el siguiente código:

     ```
     {
       "destinationNumber": "+12065550142",
       "firstName": "Carlos",
       "lastName": "Salazar",
       "source": "Registration form test"
     }
     ```
   + En el ejemplo de código anterior, reemplace los valores de los atributos `destinationNumber`, `firstName` y `lastName` por los valores que desea utilizar para realizar pruebas, como, por ejemplo, sus datos de contacto personales. Cuando pruebe esta función, se envía un mensaje SMS al número de teléfono que especifique en el atributo de `destinationNumber`. Asegúrese de que el número de teléfono que especifique pueda recibir mensajes SMS.
   + Seleccione **Crear**.

1. Seleccione **Probar**

1. En **Execution result: succeeded** (Resultado de ejecución: correcto), elija **Details** (Detalles). En la sección **Log output** (Salida de registro), revise la salida de la función. Asegúrese de que la función se ejecuta sin errores.

   Compruebe el dispositivo asociado a `destinationNumber` que especificó para asegurarse de que recibió el mensaje de prueba.

1. Abra la consola Amazon Pinpoint en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. En la página **Todos los proyectos**, elija el proyecto que creó en [Crear un proyecto de Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. En el panel de navegación, seleccione **Segments (Segmentos)**. En la página **Segments** (Segmentos), elija **Create a segment** (Crear un segmento).

1. En **Segment group 1** (Grupo de segmento 1), en **Add filters to refine your segment** (Añadir filtros para acotar el segmento), elija **Filter by user** (Filtrar por usuario).

1. En **Elija un atributo de usuario**, elija **FirstName**. A continuación, en **Choose values** (Elegir valores), elija el nombre que especificó en el evento de prueba.

   La sección **Segment estimate** (Estimación de segmento) debe mostrar que no hay puntos de enlace aptos y un punto de enlace total, como se muestra en la siguiente imagen. Este resultado es el previsto. Cuando la función crea un nuevo punto de enlace, se cancela la suscripción de este. Los segmentos de Amazon Pinpoint excluyen automáticamente los puntos de conexión excluidos.  
![\[El grupo de segmentos que no muestra ningún punto de conexión.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

## Crear la función que permite que los clientes se suscriban a sus comunicaciones
<a name="tutorials-two-way-sms-part-3-create-optin-function"></a>

La segunda función solo se ejecuta cuando un cliente responde al mensaje enviado por la primera función. Si la respuesta del cliente incluye la palabra clave que especificó en [Habilitar SMS bidireccionales](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel), la función actualiza su registro de punto de conexión para que se suscriba a comunicaciones futuras. Amazon Pinpoint también responde automáticamente con el mensaje que especificó en [Habilitar SMS bidireccionales](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).

Si el cliente no responde, o responde con un elemento que no sea la palabra clave designada, no ocurre nada. El punto de conexión del cliente continúa en Amazon Pinpoint, pero no se puede dirigir por segmentos.

**Para crear la función de Lambda**

1. Abra la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Seleccione **Creación de función**.

1. En **Create function** (Crear función), elija **Blueprints** (Proyectos).

1. En el campo de búsqueda, escriba **hello** y, a continuación, pulse Intro. En la lista de resultados, elija la función de Node.js `hello-world`, tal y como se muestra en la siguiente imagen. Elija **Configurar**.

1. Bajo **Información básica**, haga lo siguiente:
   + En **Name** (Nombre), especifique un nombre para la función, como **RegistrationForm\$1OptIn**.
   + En **Rol**, seleccione **Elegir un rol existente**.
   + En **Función existente**, elija la función de SMSRegistration formulario que creó en [Crear una función de IAM](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role).

   Cuando haya terminado, elija **Create function** (Crear función).

1. Elimine la función de ejemplo del editor de código y, a continuación, pegue el siguiente código:

   ```
   import { PinpointClient, UpdateEndpointCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   
   // Create a new Pinpoint client instance with the region specified in the environment variables
   const pinClient = new PinpointClient({ region: process.env.region });
   
   // Get the Pinpoint project ID and the confirm keyword from environment variables
   const projectId = process.env.projectId;
   const confirmKeyword = process.env.confirmKeyword.toLowerCase();
   
   // This is the main handler function that is invoked when the Lambda function is triggered
   export const handler = async (event, context) => {
       console.log('Received event:', event);
   
       try {
           // Extract the timestamp, message, and origination number from the SNS event
           const timestamp = event.Records[0].Sns.Timestamp;
           const message = JSON.parse(event.Records[0].Sns.Message);
           const originationNumber = message.originationNumber;
           const response = message.messageBody.toLowerCase();
   
           // Check if the response message contains the confirm keyword
           if (response.includes(confirmKeyword)) {
               // If the confirm keyword is found, update the endpoint's opt-in status
               await updateEndpointOptIn(originationNumber, timestamp);
           }
       }catch (error) {
           console.error('An error occurred:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   };
   
   // This function updates the opt-in status of a Pinpoint endpoint
   async function updateEndpointOptIn(originationNumber, timestamp) {
       // Extract the endpoint ID from the origination number
       const endpointId = originationNumber.substring(1);
   
        // Prepare the parameters for the UpdateEndpointCommand
       const params = {
           ApplicationId: projectId,
           EndpointId: endpointId,
           EndpointRequest: {
               Address: originationNumber,
               ChannelType: 'SMS',
               OptOut: 'NONE',
               Attributes: {
                   OptInTimestamp: [timestamp]
               },
           }
       };
   
       try {
           // Send the UpdateEndpointCommand to update the endpoint's opt-in status
           const updateEndpointResponse = await pinClient.send(new UpdateEndpointCommand(params));
           console.log(updateEndpointResponse);
           console.log(`Successfully changed the opt status of endpoint ID ${endpointId}`);
       } catch (error) {
           console.error('An error occurred while updating endpoint:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   }
   ```

1. En **Environment variables** (Variables de entorno), realice el siguiente procedimiento:
   + En la primera fila, cree una variable con una clave de **projectId**. A continuación, establezca el valor en el identificador único del proyecto que creó en [Crear un proyecto de Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).
   + En la segunda fila, crear una variable con una clave de **region**. A continuación, establezca el valor en la región en la que usa Amazon Pinpoint, como **us-east-1** o **us-west-2**.
   + En la tercera fila, cree una variable con una clave de **confirmKeyword**. A continuación, establezca el valor en la palabra clave de confirmación que creó en [Habilitar SMS bidireccionales](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel).
**nota**  
La palabra clave no distingue entre mayúsculas y minúsculas. Esta función convierte el mensaje entrante a minúsculas.

   Cuando termine, la sección **Environment Variables** (Variables de entorno) debe tener el aspecto del ejemplo que se muestra en la siguiente imagen.  
![\[Las variables de entorno de projectId, region y confirmKeyword.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step2.7.png)

1. En la parte superior de la página, elija **Save**.

### Prueba de la función
<a name="tutorials-two-way-sms-part-3-create-optin-function-test"></a>

Después de crear la función, debe probarla para asegurarse de que se ha configurado correctamente. Además, debe asegurarse de que el rol de IAM que ha creado cuenta con los permisos apropiados.

**Para probar la función**

1. Seleccione **Probar**

1. En la ventana **Configure test event** (Configurar evento de prueba), haga lo siguiente:

   1. Elija **Crear nuevo evento de prueba**.

   1. En **Event Name** (Nombre del evento), escriba un nombre para el evento de prueba, como **MyResponse**.

   1. Borre el código de ejemplo en el editor de código. Pegue el siguiente código:

      ```
      {
        "Records":[
          {
            "Sns":{
              "Message":"{\"originationNumber\":\"+12065550142\",\"messageBody\":\"Yes\"}",
              "Timestamp":"2019-02-20T17:47:44.147Z"
            }
          }
        ]
      }
      ```

      En el ejemplo de código anterior, sustituya los valores del atributo de `originationNumber` por el número de teléfono que utilizó cuando probó la función de Lambda anterior. Reemplace el valor de `messageBody` con la palabra clave de SMS bidireccional que especificó en [Habilitar SMS bidireccionales](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). Si lo prefiere, puede reemplazar el valor de `Timestamp` por la hora y fecha actuales.

   1. Seleccione **Crear**.

1. Elija **Test** (Probar) de nuevo.

1. En **Execution result: succeeded** (Resultado de ejecución: correcto), elija **Details** (Detalles). En la sección **Log output** (Salida de registro), revise la salida de la función. Asegúrese de que la función se ejecuta sin errores.

1. Abra la consola Amazon Pinpoint en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. En la página **Todos los proyectos**, elija el proyecto que creó en [Crear un proyecto de Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. En el panel de navegación, seleccione **Segments (Segmentos)**. En la página **Segments** (Segmentos), elija **Create a segment** (Crear un segmento).

1. En **Segment group 1** (Grupo de segmento 1), en **Add filters to refine your segment** (Añadir filtros para acotar el segmento), elija **Filter by user** (Filtrar por usuario).

1. En **Elija un atributo de usuario**, elija **FirstName**. A continuación, en **Choose values** (Elegir valores), elija el nombre que especificó en el evento de prueba.

   La sección **Segment estimate** (Estimación de segmento) debe mostrar que hay un punto de enlace apto y un punto de enlace total.

**Siguiente**: [Configurar Amazon API Gateway](tutorials-two-way-sms-part-4.md)

# Configurar Amazon API Gateway para mensajería SMS en Amazon Pinpoint
<a name="tutorials-two-way-sms-part-4"></a>

En esta sección, va a crear una nueva API mediante Amazon API Gateway como parte del registro de SMS de Amazon Pinpoint. El formulario de registro que se implementa en esta solución llama a esta API. A continuación, API Gateway transfiere la información capturada en el formulario de registro a la función de Lambda que creó en [Creación de funciones de Lambda](tutorials-two-way-sms-part-3.md).

## Cree la API de
<a name="tutorials-two-way-sms-part-4-create-api"></a>

En primer lugar, tiene que crear una nueva API en API Gateway. Los procedimientos que se describen a continuación muestran cómo crear una nueva API de REST.

**Para crear una nueva API, realice el siguiente procedimiento:**

1. Abra la consola de API Gateway en [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Seleccione **Crear API**. Seleccione las siguientes opciones:
   + En **Choose the protocol (Elegir el protocolo)**, elija **REST**.
   + En **Create new API (Crear nueva API)**, elija **New API (Nueva API)**.
   + En **Settings** (Configuración), en **Name** (Nombre), especifique un nombre, como **RegistrationForm**. En **Description** (Descripción), especifique opcionalmente texto que describa el objetivo de la API. En **Endpoint Type**, (Tipo de punto de enlace), elija **Regional**. A continuación, elija **Create API** (Crear API). 

   En la siguiente imagen se muestra un ejemplo de esta configuración.  
![\[El protocolo está establecido en REST, Crear nueva API se establece en Nueva API, el nombre de la API se establece en y el tipo de punto final se establece en Regional. RegistrationForm\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step2.png)

## Creación de un recurso
<a name="tutorials-two-way-sms-part-4-create-resource"></a>

Ahora que ha creado una API, puede comenzar a añadir recursos a ella. Después, se agrega un método POST al recurso y se indica a API Gateway que transmita los datos que recibe a partir de este método a la función de Lambda.

1. En el menú **Actions** (Acciones), elija **Create Resource** (Crear recurso). En el panel **New Child Resource** (Nuevo recurso secundario), en **Resource Name** (Nombre de recurso), especifique **register**, como se muestra en la siguiente imagen. Elija **Create Resource (Crear recurso)**.  
![\[El nuevo panel de recursos secundarios con el nombre del recurso configurado para registrarse.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step3.png)

1. En el menú **Actions** (Acciones), elija **Create method** (Crear método). En el menú que aparece, elija **POST**, tal y como se muestra en la siguiente imagen. A continuación, elija el botón de **marca de verificación**.  
![\[El panel de creación de métodos con la marca de verificación seleccionada.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step4.png)

1. En el panel **/register - POST - Setup** (/register - POST- Configuración), seleccione las siguientes opciones:
   + En **Integration type (Tipo de integración)**, elija **Lambda Function (Función de Lambda)**.
   + Elija **Usar integración de proxy de Lambda**.
   + Para **Región de Lambda**, elija la región en la que creó la función de Lambda.
   + En **Función Lambda**, elija la RegisterEndpoint función que creó en Crear funciones [Lambda](tutorials-two-way-sms-part-3.md).

   En la siguiente imagen se muestra un ejemplo de esta configuración.  
![\[El panel /register - POST - Configuración con la función de Lambda seleccionada.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step5.png)

   Seleccione **Save**. En la ventana que aparece, elija **Aceptar** para proporcionar a la API Gateway permiso para ejecutar la función de Lambda.

## Implemente la API.
<a name="tutorials-two-way-sms-part-4-deploy-api"></a>

La API ya está lista para su uso. En este momento, tiene que implementarla para crear un punto de enlace de acceso público.

1. En el menú **Actions** (Acciones), elija **Deploy** (Implementar). En la ventana **Deploy API** (Implementar API), realice las siguientes selecciones:
   + En **Deployment stage** (Etapa de implementación), elija **[new stage]** ([nueva etapa]).
   + En **Stage name (Nombre de etapa)**, escriba **v1**.
   + Elija **Deploy (Implementar)**.

   En la siguiente imagen se muestra un ejemplo de estas selecciones.  
![\[Las ventanas de la API de despliegue con el nombre de la etapa establecido en v1\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step6.png)

1. En el panel **v1 Stage Editor** (Editor de etapas v1), elija el recurso **/register** y, a continuación, seleccione el método **POST**. Copie la dirección que se muestra junto a **Invoke URL** (Invocar URL), tal y como se muestra en la siguiente imagen.  
![\[El panel Editor de etapas v1 que muestra la URL de invocación para copiar\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step7.png)

1. En el panel de navegación, elija **Recursos**. En la lista de recursos, elija el recurso **/register**. Por último, en el menú **Actions** (Acciones), elija **Enable CORS** (Habilitar CORS), como se muestra en la siguiente imagen.  
![\[El menú desplegable de Acciones, que muestra la opción Habilitar CORS seleccionada\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_APIGW_Step8.png)

1. En el panel **Enable CORS** (Habilitar CORS), elija **Enable CORS and replace existing CORS headers** (Habiltar CORS y reemplazar los encabezados CORS existentes).

**Siguiente**: [Crear e implementar el formulario web](tutorials-two-way-sms-part-5.md)

# Crear e implementar el formulario web para usar la mensajería SMS de Amazon Pinpoint
<a name="tutorials-two-way-sms-part-5"></a>

Todos los componentes que utilizan los AWS servicios de mensajería SMS mediante Amazon Pinpoint ya están instalados. El último paso es crear e implementar el formulario web que captura los datos del cliente.

## Cree el controlador de JavaScript formularios
<a name="tutorials-two-way-sms-part-5-create-form-handler"></a>

En esta sección, se crea una JavaScript función que analiza el contenido del formulario web que se crea en la siguiente sección. Después de analizar el contenido, esta función envía los datos a la API que ha creado en [Configurar Amazon API Gateway](tutorials-two-way-sms-part-4.md).

**Para crear el gestor de formularios, realice el siguiente procedimiento:**

1. En un editor de texto, cree un nuevo archivo.

1. En el editor, pegue el siguiente código.

   ```
   $(document).ready(function() {
   
     // Handle form submission.
     $("#submit").click(function(e) {
   
       var firstName = $("#firstName").val(),
           lastName = $("#lastName").val(),
           source = window.location.pathname,
           optTimestamp = undefined,
           utcSeconds = Date.now() / 1000,
           timestamp = new Date(0),
           phone = $("#areaCode").val()
                 + $("#phone1").val()
                 + $("#phone2").val();
   
       e.preventDefault();
   
       if (firstName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your first name.</div>');
       } else if (lastName == "") {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your last name.</div>');
       } else if (phone.match(/[^0-9]/gi)) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains invalid characters. Please check the phone number that you supplied.</div>');
       } else if (phone.length < 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your phone number.</div>');
       } else if (phone.length > 10) {
         $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains too many digits. Please check the phone number that you supplied.</div>');
       } else {
         $('#submit').prop('disabled', true);
         $('#submit').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');
   
         timestamp.setUTCSeconds(utcSeconds);
   
         var data = JSON.stringify({
           'destinationNumber': phone,
           'firstName': firstName,
           'lastName': lastName,
           'source': source,
           'optTimestamp': timestamp.toString()
         });
   
         $.ajax({
           type: 'POST',
           url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/register',
           contentType: 'application/json',
           data: data,
           success: function(res) {
             $('#form-response').html('<div class="mt-3 alert alert-success" role="alert"><p>Congratulations! You&apos;ve successfully registered for SMS Alerts from ExampleCorp.</p><p>We just sent you a message. Follow the instructions in the message to confirm your subscription. We won&apos;t send any additional messages until we receive your confirmation.</p><p>If you decide you don&apos;t want to receive any additional messages from us, just reply to one of our messages with the keyword STOP.</p></div>');
             $('#submit').prop('hidden', true);
             $('#unsubAll').prop('hidden', true);
             $('#submit').text('Preferences saved!');
           },
           error: function(jqxhr, status, exception) {
             $('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>');
             $('#submit').text('Save preferences');
             $('#submit').prop('disabled', false);
           }
         });
       }
     });
   });
   ```

1. En el ejemplo anterior, *https://example.execute-api.us-east-1.amazonaws.com/v1/register* sustitúyala por la URL de invocación que obtuviste en [Deploy the API](tutorials-two-way-sms-part-4.md#tutorials-two-way-sms-part-4-deploy-api).

1. Guarde el archivo.

## Crear el archivo de formulario
<a name="tutorials-two-way-sms-part-5-create-form"></a>

En esta sección, debe crear un archivo HTML que contenga el formulario que los clientes utilizan para registrar su programa de SMS. Este archivo utiliza el controlador de JavaScript formulario que creó en la sección anterior para transmitir los datos del formulario a la función Lambda.

**importante**  
Cuando un usuario envía este formulario, se desencadena una función de Lambda que llama a varias operaciones de la API de Amazon Pinpoint. Los usuarios maliciosos podrían lanzar un ataque en su formulario que podría hacer que se generara un gran número de solicitudes. Si tiene previsto utilizar esta solución para un caso de uso de producción, debe protegerla mediante un sistema como [Google reCAPTCHA](https://www.google.com/recaptcha/about/).

**Para crear el formulario, realice el siguiente procedimiento:**

1. En un editor de texto, cree un nuevo archivo.

1. En el editor, pegue el siguiente código.

   ```
   <!doctype html>
   <html lang="en">
   
   <head>
     <!-- Meta tags required by Bootstrap -->
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
     <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   
     <script type="text/javascript" src="SMSFormHandler.js"></script>
     <title>SMS Registration Form</title>
   </head>
   
   <body>
     <div class="container">
       <div class="row justify-content-center mt-3">
         <div class="col-md-6">
           <h1>Register for SMS Alerts</h1>
           <p>Enter your phone number below to sign up for PromotionName messages from ExampleCorp.</p>
           <p>We don't share your contact information with anyone else. For more information, see our <a href="http://example.com/privacy">Privacy Policy</a>.</p>
           <p>ExampleCorp alerts are only available to recipients in the United States.</p>
         </div>
       </div>
       <div class="row justify-content-center">
         <div class="col-md-6">
           <form>
             <div class="form-group">
               <label for="firstName" class="font-weight-bold">First name</label>
               <input type="text" class="form-control" id="firstName" placeholder="Your first name" required>
             </div>
             <div class="form-group">
               <label for="lastName" class="font-weight-bold">Last name</label>
               <input type="text" class="form-control" id="lastName" placeholder="Your last name" required>
             </div>
             <label for="areaCode" class="font-weight-bold">Phone number</label>
             <div class="input-group">
               <span class="h3">(&nbsp;</span>
               <input type="tel" class="form-control" id="areaCode" placeholder="Area code" required>
               <span class="h3">&nbsp;)&nbsp;</span>
               <input type="tel" class="form-control" id="phone1" placeholder="555" required>
               <span class="h3">&nbsp;-&nbsp;</span>
               <input type="tel" class="form-control" id="phone2" placeholder="0199" required>
             </div>
             <div id="form-response"></div>
             <button id="submit" type="submit" class="btn btn-primary btn-block mt-3">Submit</button>
           </form>
         </div>
       </div>
       <div class="row mt-3">
         <div class="col-md-12 text-center">
           <small class="text-muted">Copyright © 2019, ExampleCorp or its affiliates.</small>
         </div>
       </div>
     </div>
   </body>
   
   </html>
   ```

1. En el ejemplo anterior, *SMSFormHandler.js* sustitúyalo por la ruta completa al JavaScript archivo del controlador de formularios que creó en la sección anterior.

1. Guarde el archivo.

## Cargar los archivos del formulario
<a name="tutorials-two-way-sms-part-5-upload-form"></a>

Ahora que ha creado el formulario HTML y el controlador del JavaScript formulario, el último paso es publicar estos archivos en Internet. En esta sección se da por hecho que dispone de un proveedor de host web existente. Si no tienes un proveedor de alojamiento existente, puedes lanzar un sitio web con Amazon Route 53, Amazon Simple Storage Service (Amazon S3) y Amazon. CloudFront Para obtener más información, consulte [Alojamiento de un sitio web estático](https://aws.amazon.com/getting-started/hands-on/host-static-website/).

Si utiliza otro proveedor de alojamiento web, consulte la documentación del proveedor para obtener más información sobre la publicación de páginas web.

## Probar el formulario
<a name="tutorials-two-way-sms-part-5-test-form"></a>

Después de publicar el formulario, debe enviar algunos eventos de prueba para asegurarse de que funciona según lo previsto.

**Para probar el formulario de registro, realice el siguiente procedimiento:**

1. En un navegador web, diríjase a la ubicación en la que cargó el formulario de registro. Si usó el ejemplo de código de [Create the JavaScript form handler](#tutorials-two-way-sms-part-5-create-form), verá un formulario parecido al ejemplo de la imagen siguiente.  
![\[El formulario de solicitud del cliente creado en el paso 5.1.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_Form_Step5.3.1.png)

1. Escriba su información de contacto en los campos **First name** (Nombre), **Last name** (Apellidos) y **Phone number** (Número de teléfono).
**nota**  
Cuando envíe el formulario, Amazon Pinpoint intentará enviar un mensaje al número de teléfono especificado. Debido a esta funcionalidad, debe utilizar un número de teléfono real para probar la solución al completo.  
Si ha probado la función de Lambda en [Creación de funciones de Lambda](tutorials-two-way-sms-part-3.md), el proyecto de Amazon Pinpoint ya contiene al menos un punto de conexión. Al probar este formulario, debe enviar un número de teléfono diferente en el formulario o eliminar el punto final existente mediante la operación de [DeleteEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#DeleteEndpoint)API.

1. Compruebe el dispositivo asociado al número de teléfono que especificó para asegurarse de que recibió el mensaje.

1. Abra la consola Amazon Pinpoint en. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. En la página **Todos los proyectos**, elija el proyecto que creó en [Crear un proyecto de Amazon Pinpoint](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project).

1. En el panel de navegación, seleccione **Segments (Segmentos)**. En la página **Segments** (Segmentos), elija **Create a segment** (Crear un segmento).

1. En **Segment group 1** (Grupo de segmento 1), en **Add filters to refine your segment** (Añadir filtros para acotar el segmento), elija **Filter by user** (Filtrar por usuario).

1. En **Elija un atributo de usuario**, elija **FirstName**. A continuación, en **Choose values** (Elegir valores), seleccione el nombre que especificó cuando envió el formulario.

   La sección **Segment estimate** (Estimación de segmento) debe mostrar que no hay puntos de enlace aptos y un punto de enlace (en Total endpoints [Puntos de enlaces totales]), como se muestra en el siguiente ejemplo. Este resultado es el previsto. Cuando la función de Lambda crea un nuevo punto de conexión, se cancela la suscripción de este de forma predeterminada.  
![\[Un segmento en el que no hay ningún punto de conexión suscrito.\]](http://docs.aws.amazon.com/es_es/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

1. En el dispositivo que recibió el mensaje, conteste al mensaje con la palabra clave de SMS bidireccional que especificó en [Habilitar SMS bidireccionales](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way). Amazon Pinpoint envía un mensaje de respuesta inmediatamente.

1. En la consola de Amazon Pinpoint, repita los pasos del 4 al 8. Esta vez, cuando cree el segmento, verá un punto de enlace apto y un punto de enlace total. El resultado es el esperado, ya que ahora se ha realizado la suscripción al punto de enlace.

# Siguientes pasos
<a name="tutorials-two-way-sms-next-steps"></a>

Al completar este tutorial, ha realizado lo siguiente:
+ Se ha creado un proyecto de Amazon Pinpoint, se ha configurado el canal de SMS y se ha obtenido un código largo dedicado.
+ Se ha creado una política de IAM que utiliza la entidad principal de privilegios mínimos para conceder derechos de acceso y se ha asociado esa política a un rol.
+ Creó dos funciones de Lambda que utilizan las SendMessages operaciones PhoneNumberValidate UpdateEndpoint, y en la API Amazon Pinpoint.
+ Se ha creado una API de REST mediante API Gateway.
+ Se ha creado e implementado un formulario basado en web que recopila la información de contacto de los clientes.
+ Se realizaron pruebas en la solución para garantizar que funciona.

En esta sección se explican algunas maneras en las que puede utilizar la información del cliente que recopila mediante esta solución. También incluye algunas sugerencias de formas en las que puede personalizar esta solución para adaptarla a su caso de uso exclusivo.

## Crear segmentos de clientes
<a name="tutorials-two-way-sms-next-steps-create-segments"></a>

Todos los detalles del cliente que recopile a través de este formulario se almacenarán como puntos de enlace. Esta solución crea puntos de enlace que contienen varios atributos que puede utilizar para fines de segmentación.

Por ejemplo, esta solución captura un atributo de punto de enlace denominado `Source`. Este atributo contiene la ruta completa a la ubicación en la que se hospedaba el formulario. Cuando cree un segmento, puede filtrar el segmento por punto de enlace y, a continuación, acotar aún más el filtro eligiendo un atributo de `Source`.

La creación de segmentos basada en el atributo de `Source` puede resultar útil de varias maneras. En primer lugar, le permite crear rápidamente un segmento de clientes que se han registrado para recibir mensajes SMS de su parte. Además, la herramienta de segmentación de Amazon Pinpoint excluye automáticamente los puntos de conexión para los que no se ha realizado la suscripción para recibir mensajes.

El atributo de `Source` resulta útil si decide alojar el formulario de registro en diferentes ubicaciones. Por ejemplo, el material de marketing podría hacer referencia a un formulario alojado en una ubicación, mientras que los clientes que detecten el formulario cuando naveguen por su sitio web podrían ver una versión que está alojada en otra parte. Cuando realiza este procedimiento, los atributos de origen para los clientes que completan el formulario después de ver sus materiales de marketing son diferentes de los que lo hacen después de buscarlo en su sitio web. Puede utilizar esta diferencia para crear segmentos diferentes y, a continuación, enviar las comunicaciones personalizadas para cada una de esas audiencias.

## Enviar mensajes de campaña personalizados
<a name="tutorials-two-way-sms-next-steps-send-campaigns"></a>

Después de crear los segmentos, puede comenzar a enviar campañas a esos segmentos. Cuando cree mensajes de campaña, podrá personalizarlos mediante la especificación de los atributos de punto de enlace que desee incluir en el mensaje. Por ejemplo, el formulario web utilizado en esta solución requiere que el cliente especifique su nombre y apellidos. Estos valores se almacenan en el registro de usuario que está asociado al punto de enlace.

Por ejemplo, si utiliza la operación de la API de `GetEndpoint` para recuperar información sobre un punto de enlace que se creó con esta solución, verá una sección con un aspecto similar al siguiente ejemplo:

```
  ...
  "User": {
    "UserAttributes": {
      "FirstName": [
        "Carlos"
      ],
      "LastName": [
        "Salazar"
      ]
    }
  }
  ...
```

Si desea incluir los valores de estos atributos en su mensaje de campaña, puede utilizar la notación de puntos para hacer referencia al atributo. A continuación, incluya toda la referencia en llaves dobles. Por ejemplo, para incluir el nombre de cada destinatario de un mensaje de campaña, incluya la siguiente cadena en el mensaje: `{{User.UserAttributes.FirstName}}`. Cuando Amazon Pinpoint envía el mensaje, sustituye la cadena por el valor del atributo `FirstName`.

## Utilizar el formulario para recopilar información adicional
<a name="tutorials-two-way-sms-next-steps-collect-additional"></a>

Puede modificar esta solución para recopilar información adicional sobre el formulario de registro. Por ejemplo, puede pedir al cliente que proporcione su dirección y, a continuación, utilizar los datos de la dirección para completar los campos `Location.City`, `Location.Country`, `Location.Region` y `Location.PostalCode` en el recurso `Endpoint`. La recopilación de información de la dirección en el formulario de registro puede provocar que el punto de enlace contenga información más precisa. Para realizar este cambio, debe añadir los campos correspondientes al formulario web. También debe modificar el JavaScript código del formulario para pasar los nuevos valores. Por último, tendrá que modificar la función de Lambda que crea el punto de conexión para gestionar la nueva información entrante.

También puede modificar el formulario de manera que recopile información de contacto en otros canales. Por ejemplo, puede utilizar el formulario para recopilar la dirección de correo electrónico del cliente además de su número de teléfono. Para realizar este cambio, debe modificar el HTML y JavaScript el formulario web. También tiene que modificar la función de Lambda que crea el punto de conexión de forma que se generen dos puntos de conexión distintos (uno para el punto de conexión de correo electrónico, y otro para el punto de conexión de SMS). También debe modificar la función de Lambda de forma que genere un valor exclusivo para el atributo de `User.UserId` y, a continuación, asocie ese valor a ambos puntos de conexión.

## Registrar atributos adicionales para fines de auditoría
<a name="tutorials-two-way-sms-next-steps-auditing"></a>

Esta solución registra dos valores valiosos cuando crea y actualiza puntos de enlace. En primer lugar, cuando la primera función de Lambda crea inicialmente el punto de conexión, registra la URL del propio formulario en el atributo de `Attributes.Source`. Si el cliente responde al mensaje, la segunda función de Lambda crea un atributo de `Attributes.OptInTimestamp`. Este atributo contiene la fecha y la hora exactas en las que el cliente proporcionó su consentimiento para recibir sus mensajes.

Estos campos pueden ser útiles si un proveedor móvil o una agencia reguladora le ha solicitado que proporcione una evidencia del consentimiento de un cliente. Puede recuperar esta información en cualquier momento mediante la operación de [GetEndpoint](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#GetEndpoint)API.

También puede modificar las funciones de Lambda para registrar datos adicionales que puedan ser útiles para fines de auditoría, como la dirección IP desde la que se envió la solicitud de registro.