Adición de mensajes interactivos de Amazon Lex para los clientes en el chat - Amazon Connect

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.

Adición de mensajes interactivos de Amazon Lex para los clientes en el chat

Los mensajes interactivos son mensajes enriquecidos que presentan un mensaje y opciones de visualización preconfiguradas para que el cliente elija. Estos mensajes funcionan con Amazon Lex y se configuran mediante Amazon Lex mediante una AWS Lambda función.

sugerencia

Si se ha integrado con Apple Messages for Business, consulte Tipos de mensajes interactivos en el sitio web de Apple.

Límites de validación

Se espera que los límites de los campos de cadena (por ejemplo, título, subtítulo, etc.) los aplique el cliente (es decir, una interfaz personalizada o el widget de comunicaciones alojado). La SendMessageAPI solo comprueba que el tamaño total de la cadena sea inferior a 20 KB.

  • Cuando utilice el widget de comunicaciones alojado sin personalizarlo, si la cadena excede los límites del campo, se truncará en la interfaz de usuario y se adjuntarán puntos suspensivos (...). Puede determinar cómo aplicar los límites de campo mediante la personalización del widget.

  • Si se está integrando con otras plataformas (como Apple Messages for Business), consulte los límites en este tema para Amazon Connect y los límites en la documentación de la otra plataforma. Por ejemplo, las respuestas rápidas no se admiten en versiones antiguas de iOS.

Deben respetarse todos los demás límites de los campos para que el mensaje se envíe correctamente.

Plantillas de visualización de mensajes

Amazon Connect proporciona las siguientes plantillas de visualización de mensajes. Úselas para ofrecer información a los clientes en un chat:

Estas plantillas definen cómo se representa la información y qué información aparece en la interfaz del chat. Cuando se envían mensajes interactivos a través del chat, los flujos validan que el formato del mensaje sigue una de estas plantillas.

Plantilla de selector de lista

Utilice la plantilla del selector de lista para presentar al cliente una lista de hasta seis opciones. Cada opción puede tener su propia imagen.

En las siguientes imágenes se muestran dos ejemplos de cómo la plantilla del selector de lista muestra la información en un chat.

  • Una imagen muestra tres botones, cada uno con el nombre de una fruta en el texto: manzana, naranja, plátano.

  • La segunda imagen muestra la foto de una tienda y, bajo ella, tres botones, cada uno con el nombre, la imagen y el precio de la fruta.

La plantilla del selector de lista muestra la información en un chat.

El siguiente código es la plantilla del selector de lista que puede utilizar en su Lambda. Tenga en cuenta lo siguiente:

  • El texto en negrita es un parámetro obligatorio.

  • En algunos casos, si el elemento principal no es obligatorio, pero los campos que contiene sí lo son, los campos son obligatorios. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, title es obligatorio. De lo contrario, un replyMessage completo es opcional.

{ "templateType":"ListPicker", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting!", "subtitle":"Produce selected", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg", "imageDescription":"Select a produce to buy" }, "content":{ "title":"What produce would you like to buy?", "subtitle":"Tap to select option", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg", "imageDescription":"Select a produce to buy", "elements":[ { "title":"Apple", "subtitle":"$1.00", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/apple_4.2kb.jpg" }, { "title":"Orange", "subtitle":"$1.50", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/orange_17.7kb.jpg", }, { "title":"Banana", "subtitle":"$10.00", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/banana_7.9kb.jpg", "imageDescription":"Banana" } ] }

Límites del selector de lista

En la tabla siguiente se enumeran los límites de cada uno de los elementos del selector de lista, por si decide crear su propia Lambda desde cero. Los parámetros obligatorios aparecen en negrita.

Para enviar opciones ilimitadas, implemente botones de acción en su aplicación. Para obtener más información, consulte Implementación de botones de acción en el selector de lista o panel de mensajes interactivo.

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

data

content
replyMessage No

content

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

elements

1 elemento

10 elementos

Es una matriz de elementos. Máximo de 10 elementos en la matriz. Para enviar un número ilimitado de elementos, utilice la característica de botones de acción.

subtitle No

0

5000

multiSelect No

Booleano: indica si el cliente puede hacer varias selecciones. El valor predeterminado es falso. Esta plantilla es aplicable únicamente a los flujos de Apple Messages for Business.

targetForLinks No

Debe ser uno de los siguientes valores: _blank, _parent, _top, _self.

  • _blank: comportamiento predeterminado. Abre el enlace en una nueva pestaña del navegador.

  • _parent: abre el enlace en el contexto de navegación principal. En otras palabras, si existe una relación elemento principal-elemento secundario entre varias aplicaciones contenedoras de iframes, se abrirá el enlace del iframe principal al contexto actual.

  • _top: abre el enlace en el contexto de navegación superior.

  • _self: abre el enlace en el contexto de navegación actual.

Consulte la nota que encontrará tras esta tabla.

imageType No

0

50

Debe ser “URL”

imageData No

0

200

Debe ser una URL válida de acceso público

imageDescription No

0

50

referenceId No

Cadena. Solo se requiere para la característica de botón de acción.

listId No

Cadena. Solo se requiere para la característica de botón de acción.

preIndex No

Número. Solo se requiere para la característica de botón de acción.

nextIndex No

Número. Solo se requiere para la característica de botón de acción.

templateIdentifier No

Número. Debe ser un UUID. Este campo es obligatorio si List Picker/Panel se utiliza en un carrusel.

elements

title

1

5000

subtitle No

0

5000

imageType No

0

50

Debe ser “URL”

imageData No

0

200

Debe ser una URL válida de acceso público

imageDescription No

0

50

No puede existir sin una imagen

actionDetail No

Solo se requiere para la característica de botón de acción. Debe ser “PREVIOUS_OPTIONS” o “SHOW_MORE”.

replyMessage

title

1

5000

subtitle No

0

5000

imageType No

0

50

Debe ser “URL”

imageData No

0

200

Debe ser una URL válida de acceso público

imageDescription No

0

50

No puede existir sin una imagen

nota

Si utiliza el campo targetForLinks y el widget de comunicaciones de Amazon Connect, para abrir enlaces en la misma pestaña del navegador deberá añadir el siguiente atributo al fragmento de código del widget, a fin de permitir que el iframe actual abra los enlaces en la misma pestaña y navegue por estos:

amazon_connect('updateSandboxAttributes', 'allow-scripts allow-same-origin allow-popups allow-downloads allow-top-navigation-by-user-activation')

Plantilla de selector de tiempo

La plantilla de selector de tiempo es útil para que los clientes puedan programar citas. Puede proporcionar hasta 40 intervalos de tiempo al cliente en un chat.

En las siguientes imágenes se muestran dos ejemplos de cómo la plantilla del selector de tiempo muestra la información en un chat.

  • Una imagen muestra una fecha, y bajo ella, un intervalo de tiempo.

  • La segunda imagen muestra una fecha y, bajo ella, dos intervalos de tiempo.

La plantilla del selector de tiempo muestra la información en un chat.

En la siguiente imagen se muestra el selector de tiempo con una imagen

nota

Si utiliza esta plantilla de mensajes con el canal Apple Messages for Business y no añade ninguna imagen, Amazon Connect añadirá una imagen predeterminada tanto en los mensajes de reacción como en los de respuesta.

Selector de tiempo con una imagen.

El siguiente código es la plantilla del selector de tiempo que puede utilizar en su Lambda. Tenga en cuenta lo siguiente:

  • El texto en negrita es un parámetro obligatorio.

  • En algunos casos, si el elemento principal no es obligatorio, pero los campos que contiene sí lo son, los campos son obligatorios. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, title es obligatorio. De lo contrario, un replyMessage completo es opcional.

{ "templateType":"TimePicker", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting", "subtitle":"Appointment selected", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/booked.jpg", "imageDescription":"Appointment booked" }, "content":{ "title":"Schedule appointment", "subtitle":"Tap to select option", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/calendar.jpg", "imageDescription":"Appointment booked", "timeZoneOffset":-450, "location":{ "latitude":47.616299, "longitude":-122.4311, "title":"Oscar", "radius":1, }, "timeslots":[ { "date" : "2020-10-31T17:00+00:00", "duration": 60, }, { "date" : "2020-11-15T13:00+00:00", "duration": 60, }, { "date" : "2020-11-15T16:00+00:00", "duration": 60, } ], } } } }

Límites del selector de tiempo

En la tabla siguiente se enumeran los límites de cada uno de los elementos del selector de tiempo. Utilice esta información si elige crear su propia Lambda desde cero. Los parámetros obligatorios aparecen en negrita.

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

data

replyMessage No
content

replyMessage

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

subtitle No

0

5000

imageType No

0

50

Debe ser “URL”
imageData No

0

200

Debe ser una URL válida de acceso público
imageDescription No

0

50

No puede existir sin una imagen

content

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

subtitle No

0

200

imageType No

0

50

Debe ser “URL”
imageData No

0

200

Debe ser una URL válida de acceso público
imageDescription No

0

50

No puede existir sin una imagen
timezone offset No

-720

840

Es un campo opcional cuando no está establecido. Nuestro cliente de ejemplo utiliza de forma predeterminada la zona horaria del usuario. Si se establece, se muestra según la zona horaria introducida. El campo debe ser un número entero que represente el número de minutos desde GMT, lo que especifica la zona horaria de la ubicación del evento.

ubicación No

timeslots

1

40

Se trata de una matriz de intervalos de tiempo. Máximo de 40 elementos en la matriz.

ubicación

longitude

-180

180

Debe ser doble

latitude

-90

90

Debe ser doble

title

1

5000

radius

No

0

200

timeslots

date

Debe estar en formato de hora ISO-8601 :MM+ 00:00 YYYY-MM-DDTHH

Por ejemplo:

“2020-08-14T21:21+00.00”

Duración

1

3600

Plantilla de panel

Mediante la plantilla de panel, puede presentar al cliente hasta diez opciones en una misma pregunta. No obstante, puede incluir solo una imagen, en lugar de una imagen con cada elección.

En la siguiente imagen se muestra un ejemplo de cómo la plantilla de panel muestra la información en un chat. Muestra una imagen en la parte superior del mensaje, y debajo de la imagen muestra un mensaje que pregunta ¿En qué puedo ayudarlo? Pulse para seleccionar la opción. Bajo el mensaje se muestran tres opciones al cliente: Comprobar las opciones de autoservicio, Hablar con un agente, Finalizar el chat.

La plantilla de panel muestra la información en un chat.

El siguiente código es la plantilla de panel que puede utilizar en su Lambda. Tenga en cuenta lo siguiente:

  • El texto en negrita es un parámetro obligatorio.

  • En algunos casos, si el elemento principal no es obligatorio, pero los campos que contiene sí lo son, los campos son obligatorios. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, es obligatorio usar un title. De lo contrario, un replyMessage completo es opcional.

{ "templateType":"Panel", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting!", "subtitle":"Option selected", }, "content":{ "title":"How can I help you?", "subtitle":"Tap to select option", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/company.jpg", "imageDescription":"Select an option", "elements":[ { "title":"Check self-service options", }, { "title":"Talk to an agent", }, { "title":"End chat", } ] } } }

Límites de panel

En la tabla siguiente se enumeran los límites de cada uno de los elementos del panel, por si decide crear su propia Lambda desde cero. Los parámetros obligatorios aparecen en negrita.

Para enviar opciones ilimitadas, implemente botones de acción en su aplicación. Para obtener más información, consulte Implementación de botones de acción en el selector de lista o panel de mensajes interactivo.

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

data

replyMessage No
content

content

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

subtitle No

0

5000

elements

1 elemento

10 elementos

Es una matriz de elementos. Máximo de 10 elementos en la matriz.

imageType No

0

50

Debe ser “URL”

imageData No

0

200

Debe ser una URL válida de acceso público

imageDescription No

0

50

No puede existir sin una imagen

referenceId No

Cadena. Solo se requiere para la característica de botón de acción.

listId No

Cadena. Solo se requiere para la característica de botón de acción.

preIndex No

Número. Solo se requiere para la característica de botón de acción.

nextIndex No

Número. Solo se requiere para la característica de botón de acción.

templateIdentifier No

Número. Debe ser un UUID. Este campo es obligatorio si List se utiliza en un Picker/Panel carrusel.

elements

title

1

5000

actionDetail No

Solo se requiere para la característica de botón de acción. Debe ser “PREVIOUS_OPTIONS” o “SHOW_MORE”.

replyMessage

title

1

5000

subtitle No

0

5000

Plantilla de respuesta rápida

Utilice mensajes de respuesta rápida para obtener respuestas sencillas de los clientes y para enviarles mensajes en una lista en línea. En las respuestas rápidas no se admiten imágenes.

En la siguiente imagen se muestra un ejemplo de cómo la plantilla de respuesta rápida muestra la información en un chat.

La plantilla de panel muestra la información en un chat.

El siguiente código es la plantilla de respuesta rápida que puede utilizar en su Lambda.

{ "templateType": "QuickReply", "version": "1.0", "data": { "replyMessage": { "title": "Thanks for selecting!" }, "content": { "title": "Which department would you like?", "elements": [{ "title": "Billing" }, { "title": "Cancellation" }, { "title": "New Service" } ] } } }

Límites de respuesta rápida

En la tabla siguiente se enumeran los límites de cada uno de los elementos de la respuesta rápida. Utilice esta información si elige crear su propia Lambda desde cero. Los parámetros obligatorios aparecen en negrita.

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

data

content
replyMessage No

content

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

elements

2 elementos

10 elementos para chats web

5 elementos para Apple Business Chat (límite estricto establecido por Apple)

Es una matriz de elementos. Mínimo 2 elementos y máximo 10 elementos en la matriz.

Para evitar el límite de 5 elementos establecido por Apple, puede implementar varias respuestas rápidas con la opción “Mostrar más”. O ListPicker utilízalo ya que permite almacenar hasta 10 elementos.

elements

title

1

200

replyMessage

title

1

5000

Utilice carruseles para mostrar hasta cinco selectores de lista o paneles a los clientes en un solo mensaje. Al igual que con el selector de lista y el selector de tiempo, puede agregar más opciones al carrusel mediante la característica SHOW_MORE.

En el siguiente GIF se muestra un ejemplo de cómo la plantilla de carrusel muestra la información en un chat. Los clientes se desplazan por el carrusel de imágenes con las flechas izquierda y derecha.

Un carrusel en la experiencia de chat de un cliente.

En la siguiente imagen se muestran dos hipervínculos Más información, que son ejemplos de elementos de hipervínculo del selector de carrusel.

Un selector de carrusel con hipervínculos.

El siguiente código es la plantilla de carrusel que puede utilizar en su Lambda.

{ "templateType": "Carousel", "version": "1.0", "data": { "content": { "title": "View our popular destinations", "elements": [ { "templateIdentifier": "template0", "templateType": "Panel", "version": "1.0", "data": { "content": { "title": "California", "subtitle": "Tap to select option", "elements": [ { "title": "Book flights" }, { "title": "Book hotels" }, { "title": "Talk to agent" } ] } } }, { "templateIdentifier": "template1", "templateType": "Panel", "version": "1.0", "data": { "content": { "title": "New York", "subtitle": "Tap to select option", "elements": [ { "title": "Book flights" }, { "title": "Book hotels" }, { "title": "Talk to agent" } ] } } } ] } } }

Para los usuarios de widgets de comunicaciones alojados:

  • Las selecciones en la plantilla de carrusel dan lugar a una respuesta de cadena JSON estructurada como la del ejemplo siguiente, que se devolverá a Lambda (otros tipos de mensajes interactivos devuelven una respuesta de cadena normal con solo el valor selectionText):

    { templateIdentifier: "template0", listTitle: "California", selectionText: "Book hotels" }
  • En los carruseles, puede proporcionar hipervínculos en los elementos de la lista. picker/panel Para crear un hipervínculo en lugar de un botón, incluya los siguientes campos adicionales para el elemento que debe ser un hipervínculo:

    { title: "Book flights", ... type: "hyperlink", url: "https://www.example.com/Flights" }

En la tabla siguiente se enumeran los límites de cada uno de los elementos del carrusel. Utilice esta información si elige crear su propia Lambda desde cero. Los parámetros obligatorios aparecen en negrita.

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

data

content

content

title

1

5000

Debe haber una descripción para las plantillas sin mensaje

elements

2 elementos

5 elementos

Se trata de un conjunto de selectores de lista o plantillas de panel. Solo se acepta un tipo de mensaje interactivo por carrusel. Cada elemento debe incluir el campo de nivel superior templateIdentifier. Mínimo dos plantillas y máximo cinco plantillas en la matriz.

nota

Para ofrecer la mejor experiencia al cliente, recomendamos que cada plantilla utilice los elementos de images/number forma coherente.

omitTitleFromCarouselResponse No

Booleano: si lo desea, responda con "SelectionText" en lugar del predeterminado "PickerTitle:SelectionText».

carouselIsVertical No

Booleano: opcionalmente representa elementos Carousel con desplazamiento vertical.

Plantilla de formulario de Apple

nota

Esta plantilla es aplicable únicamente a los flujos de contacto de Apple Messages for Business.

Una empresa puede enviar un formulario de mensaje interactivo a sus clientes finales mediante un único mensaje que contenga varias páginas con los datos solicitados. Cuando el mensaje se recibe en el dispositivo Apple del cliente final, este puede abrir el formulario y navegar por las páginas, proporcionando una respuesta para cada página, antes de enviar todas las respuestas al final del formulario.

Por ejemplo, las empresas pueden utilizar los formularios de Apple para diversos fines, como los flujos de clasificación, las encuestas a los clientes y la creación o registro de cuentas.

aviso

El contenido de los mensajes interactivos y las respuestas de los clientes finales se almacenan en la transcripción del registro de contactos y pueden verlos otros participantes del chat y analistas de contactos con acceso a las transcripciones. Para evitar que la información de identificación personal aparezca en la transcripción del registro de contactos una vez que el contacto haya terminado, utilice el bloque Defina el comportamiento de registro y análisis en su flujo de step-by-step guías y active y habilite Contact Lens la redacción de datos confidenciales. Para obtener más información sobre cómo habilitar la eliminación de información de identificación personal, consulte Enable redaction of sensitive data.

Los dos tipos de páginas compatibles son:

  • ListPicker: una lista de opciones que el usuario debe seleccionar con soporte para imágenes.

  • WheelPicker: similar a ListPicker , pero la selección se realiza mediante una rueda de opciones desplazable.

  • DatePicker: una vista de calendario donde el usuario puede elegir una fecha.

  • Entrada: un campo de texto que el usuario debe rellenar.

El siguiente código es un ejemplo de una plantilla de formularios de Apple que puede utilizar en su Lambda.

nota
  • El texto en negrita es un parámetro obligatorio.

  • En algunos casos, si el elemento principal existe en la solicitud y no es obligatorio o está en negrita, pero los campos que contiene sí lo son, significa que los campos son obligatorios.

Ejemplo de formulario de encuesta sencillo:

{   "templateType": "AppleForm",   "version": "1.0",   "data": {     "content": {       "title": "Survey",       "pages": [         {           "pageType": "DatePicker",           "title": "Date you visited",           "subtitle": "When did you last visit?",           "minDate": "2024-01-02"         },         {           "pageType": "ListPicker",           "title": "Rating",           "subtitle": "How do you rate the experience?",           "items": [             {               "title": "Good",               "imageType": "URL",               "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/good.jpg"             },             {               "title": "Okay",               "imageType": "URL",               "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/okay.jpg"             },             {               "title": "Poor",               "imageType": "URL",               "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/poor.jpg"             }           ]         },         {           "pageType": "ListPicker",           "title": "Dine type",           "subtitle": "Select all dine types that apply",           "multiSelect": true,           "items": [             {               "title": "Pickup"             },             {               "title": "Dine-in"             },             {               "title": "Delivery"             }           ]         },         {           "pageType": "WheelPicker",           "title": "Visits",           "subtitle": "How often do you visit?",           "items": [             {               "title": "Often"             }             {               "title": "Sometimes"             },             {               "title": "Rarely"             }           ]         },         {           "pageType": "Input",           "title": "Additional notes",           "subtitle": "Anything else you'd like to mention about your visit?",           "multiLine": true         }       ]     }   } }

Límites de formularios de Apple

InteractiveMessage

Campo Tipo Obligatorio Descripción / Notas
versión cadena Número de versión. Valor permitido: “1.0”
templateType TemplateType Tipo de plantilla de mensaje interactivo. Valores permitidos: [» ListPicker «," TimePicker «, «Panel», "QuickReply«Carousel», "ViewResource«," "AppleForm]
datos InteractiveMessageData Datos de mensajes interactivos

InteractiveMessageData

Campo Tipo Obligatorio Descripción / Notas
content InteractiveMessageContent Contenido del mensaje interactivo principal
replyMessage ReplyMessage No Configuración de la visualización de mensajes tras el envío de la respuesta al mensaje interactivo

AppleFormContent

Campo Tipo Obligatorio Descripción / Notas
título Cadena Título del formulario. Se muestra en la burbuja de mensajes de recepción de Apple y en la representación de la transcripción
subtitle Cadena No Utilizado como subtítulo en ReceivedMessage
imageType Cadena No Valores válidos: «URL» Se utiliza para la imagen en ReceivedMessage
imageData Cadena No URL de la imagen de S3 Se utiliza para la imagen en ReceivedMessage
pages AppleFormPage[] Lista de páginas de formulario
showSummary Booleano No Si se debe mostrar una página de resumen de las respuestas para revisarlas antes de enviarlas. Predeterminado: falso (sin confirmation/summary página)
splashPage AppleFormSplashPage No La página de bienvenida inicial se mostrará antes de las páginas reales Valor predeterminado: sin página de inicio

AppleFormSplashPage

Campo Tipo Obligatorio Descripción / Notas
título Cadena Título de la página de inicio
subtitle Cadena No Subtítulo / cuerpo de la página de inicio
imageType ImageType No Se muestra al visualizar la imagen en la página de inicio Valor permitido: “URL” Valor predeterminado: no se muestra ninguna imagen
imageData Cadena No Para imageType="URL", este es el valor de la URL Valor predeterminado: no se muestra ninguna imagen
buttonTitle Cadena Texto del botón Continuar. Requerido por Apple, no admite texto predeterminado localizado

AppleFormPage

  • Modelo de base para las páginas de formularios. Algunos tipos de páginas se basan en este modelo

Campo Tipo Obligatorio Descripción / Notas
pageType ApplePageType Enumeración de los tipos de página. Valores permitidos: ["Entrada», "DatePickerWheelPicker«," ListPicker «]
título Cadena Título de página
subtitle Cadena Subtítulo de la página. Se utiliza en la página de confirmación

AppleFormDatePickerPage

AppleFormDatePickerPagese extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
pageType ApplePageType Valor: "DatePicker»
labelText Cadena No El texto se muestra junto a la entrada de fecha. Consulte las capturas de pantalla de ejemplo en el Apéndice
helperText Cadena No El texto auxiliar se muestra debajo de la entrada de fecha. Consulte las capturas de pantalla de ejemplo en el Apéndice Valor predeterminado: sin texto auxiliar
dateFormat Cadena No Formato de fecha ISO 8601. Valor predeterminado: MM/dd/yyyy
startDate Cadena No Fecha seleccionada inicial / predeterminada en un formato de fecha válido Valor predeterminado: fecha actual para el usuario final cuando se envía el mensaje
minDate Cadena No La fecha mínima que se puede seleccionar en un formato de fecha válido Valor predeterminado: sin mínimo
maxDate Cadena No Fecha máxima que se puede seleccionar en un formato de fecha válido Valor predeterminado: fecha actual para el usuario final cuando se envía el mensaje

AppleFormListPickerPage

AppleFormListPickerPagese extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
pageType ApplePageType Valor: "ListPicker»
multiSelect Booleano No Permite seleccionar varios elementos Valor predeterminado: false (selección única)
artículos AppleFormListPickerPageItem[] Lista de elementos de la página de lista

AppleFormListPickerPageItem

AppleFormListPickerPageItemse extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
título Cadena Texto del artículo
imageType ImageType No Se muestra al visualizar la imagen en el artículo Valor permitido: “URL” Valor predeterminado: no se muestra ninguna imagen
imageData Cadena No Para imageType="URL", este es el valor de la URL Valor predeterminado: no se muestra ninguna imagen
nota

Modelo de imagen similar a los modelos de mensajes interactivos existentes (ListPicker), excepto que no imageDescription está incluido, que se utiliza para el texto alternativo de las imágenes en los widgets de chat o los chats web y se ignora en los mensajes interactivos de Apple.

AppleFormWheelPickerPage

AppleFormWheelPickerPagese extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
pageType ApplePageType Valor: "WheelPicker»
artículos AppleFormWheelPickerPageItem[] Lista de artículos del selector circular
labelText Cadena No El texto se muestra junto a la entrada. Consulte las capturas de pantalla de ejemplo en el Apéndice

AppleFormWheelPickerPageItem

AppleFormWheelPickerPageItemse extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
título Cadena Texto del elemento del selector

AppleFormInputPage

AppleFormInputPagese extiende AppleFormPage

Campo Tipo Obligatorio Descripción / Notas
pageType ApplePageType Valor: “Input”
labelText Cadena No El texto se muestra junto al cuadro de entrada. Consulte las capturas de pantalla de ejemplo en el Apéndice
helperText Cadena No Texto adicional que se muestra debajo del cuadro de entrada Valor predeterminado: sin texto auxiliar
placeholderText Cadena No Texto de marcador de posición que se mostrará inicialmente cuando no haya ninguna entrada Valor predeterminado: texto de marcador de posición “(Opcional)” u “(Obligatorio)”
prefixText Cadena No Prefijo que se muestra junto a la entrada. Por ejemplo: “$” cuando la entrada es un valor monetario Valor predeterminado: sin prefijo
requerido Booleano No Si se requiere que el usuario final proporcione una entrada Valor predeterminado: false
multiLine Booleano No Si se puede proporcionar una entrada con varias líneas Valor predeterminado: false (solo una línea)
maxCharCount Número No Recuento máximo de caracteres de la entrada. Impuesto en el cliente de Apple Valor predeterminado: sin límite
expresión regular Cadena No Se proporciona una cadena de expresiones regulares para imponer restricciones a la entrada. Valor predeterminado: sin restricciones de expresión regular
keyboardType Cadena No Determina el tipo de teclado que se muestra cuando el usuario final introduce el texto de entrada Valores permitidos: igual que los de Apple. Consulte los documentos. Algunos valores permitidos: numberPad, phonePad, emailAddress
textContentType Cadena No Ayuda a rellenar automáticamente las sugerencias en un dispositivo Apple.  Valores permitidos: los mismos que los de Apple. Consulte los documentos. Algunos de los valores permitidos: TelephoneNumber, FamilyName fullStreetAddress

Plantilla de Apple Pay

nota

Esta plantilla es aplicable únicamente a los flujos de contacto de Apple Messages for Business.

Utilice la plantilla de Apple Pay para ofrecer a los clientes una forma fácil y segura de comprar productos y servicios a través de Apple Messages for Business con Apple Pay.

El siguiente código es la plantilla de Apple Pay que puede utilizar en su Lambda:

nota
  • El texto en negrita es un parámetro obligatorio.

  • En algunos casos, si el elemento principal existe en la solicitud y no es obligatorio o está en negrita, pero los campos que contiene sí lo son, significa que los campos son obligatorios.

{   "templateType":"ApplePay",   "version":"1.0",   "data":{     "content":{       "title":"Halibut",       "subtitle":"$63.99 at Sam's Fish",       "imageType":"URL",       "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fish.jpg",       "payment": {         "endpoints": {           "orderTrackingUrl": "https://sams.example.com/orderTrackingUrl/",           "paymentGatewayUrl": "https://sams.example.com/paymentGateway/",           "paymentMethodUpdateUrl": "https://sams.example.com/paymentMethodUpdate/",           "shippingContactUpdateUrl": "https://sams.example.com/shippingContactUpdate/",           "shippingMethodUpdateUrl": "https://sams.example.com/shippingMethodUpdate/",           "fallbackUrl": "https://sams.example.com/paymentGateway/"         },         "merchantSession": {           "epochTimestamp": 1525730094057,           "expiresAt": 1525730094057,           "merchantSessionIdentifier": "PSH40080EF4D6.........9NOE9FD",           "nonce": "fe72cd0f",           "merchantIdentifier": "merchant.com.sams.fish",           "displayName": "Sam's Fish",           "signature": "308006092a8.......09F0W8EGH00",           "initiative": "messaging",           "initiativeContext": "https://sams.example.com/paymentGateway/",           "signedFields": [             "merchantIdentifier",             "merchantSessionIdentifier",             "initiative",             "initiativeContext",             "displayName",             "nonce"           ],         },         "paymentRequest": {           "applePay": {             "merchantCapabilities": [               "supports3DS",               "supportsDebit",               "supportsCredit"             ],             "merchantIdentifier": "merchant.com.sams.fish",             "supportedNetworks": [               "amex",               "visa",               "discover",               "masterCard"             ]           },           "countryCode": "US",           "currencyCode": "USD",           "lineItems": [             {               "amount": "59.00",               "label": "Halibut",               "type": "final"             },             {               "amount": "4.99",               "label": "Shipping",               "type": "final"             }           ],           "requiredBillingContactFields": [             "postalAddress"           ],           "requiredShippingContactFields": [             "postalAddress",             "phone",             "email",             "name"           ],           "shippingMethods": [             {               "amount": "0.00",               "detail": "Available within an hour",               "identifier": "in_store_pickup",               "label": "In-Store Pickup"             },             {               "amount": "4.99",               "detail": "5-8 Business Days",               "identifier": "flat_rate_shipping_id_2",               "label": "UPS Ground"             },             {               "amount": "29.99",               "detail": "1-3 Business Days",               "identifier": "flat_rate_shipping_id_1",               "label": "FedEx Priority Mail"             }           ],           "total": {             "amount": "63.99",             "label": "Sam's Fish",             "type": "final"           },           "supportedCountries" : [             "US",             "CA",             "UK",             "JP",             "CN"           ]         }       },       "requestIdentifier" : "6b2ca008-1388-4261-a9df-fe04cd1c23a9"     }   } }

Límites de Apple Pay

Campo principal Campo Obligatorio Mínimo de caracteres Máximo de caracteres Otro requisito
templateType Tipo de plantilla válido
datos
versión Debe ser “1.0”
datos content
content título 1 512 El título de la burbuja del mensaje recibido
subtitle No 0 512 El subtítulo se mostrará debajo del título de la burbuja del mensaje recibido
imageData No 0 200 Debe ser una URL válida de acceso público
imageType No 0 50 Debe ser “URL”
pago Un diccionario que contiene campos con los detalles de una solicitud de Apple Pay.
requestIdentifier No Cadena, un identificador de la ApplePay solicitud. Si no se especifica, se generará y se utilizará un UUID.
pago puntos finales Un diccionario que contiene los puntos de conexión para procesar pagos, las actualizaciones de los contactos y el seguimiento de los pedidos.
merchantSession Un diccionario que contiene la sesión de pago proporcionada por Apple Pay tras solicitar una nueva sesión de pago.
paymentRequest Un diccionario con información sobre la solicitud de pago
puntos finales paymentGatewayUrl Cadena. Apple Pay lo ejecuta para procesar el pago a través del proveedor de pagos. La URL debe coincidir con la URL del campo initiativeContext de la sesión del comerciante
fallbackUrl No Una URL que se abre en un navegador web para que el cliente pueda completar la compra si su dispositivo no puede realizar pagos con Apple Pay. Si se especifica, la URL de respaldo debe coincidir. paymentGatewayUrl
orderTrackingUrl No Messages for Business lo ejecuta después de completar el pedido y le ofrece la oportunidad de actualizar la información del pedido en su sistema.
paymentMethodUpdateURL No Apple Pay lo ejecuta cuando el cliente cambia el método de pago. Si no implementa este punto de conexión e incluye esta clave en el diccionario, el cliente verá un mensaje de error.
shippingContactUpdateUrl No Apple Pay lo ejecuta cuando el cliente cambia la información de su dirección de envío. Si no implementa este punto de conexión e incluye esta clave en el diccionario, el cliente verá un mensaje de error
shippingMethodUpdateUrl No Apple Pay lo ejecuta cuando el cliente cambia el método de envío. Si no implementa este punto de conexión e incluye esta clave en el diccionario, el cliente verá un mensaje de error.
merchantSession displayName 1 64 Cadena. El nombre canónico de su tienda que se puede mostrar. No localice el nombre.
initiative Cadena. Debe ser “mensajes”
initiativeContext Cadena. Indique la URL de su puerta de enlace de pago.
merchantIdentifier Cadena. Un identificador único que representa a un comerciante en Apple Pay.
merchantSessionIdentifier Cadena. Un identificador único que representa una sesión de comerciante en Apple Pay.
epochTimestamp Cadena. Representación de la hora en número de segundos transcurridos desde las 00:00:00 UTC del jueves 1 de enero de 1970.
expiresAt Cadena. Representación de la hora en número de segundos transcurridos desde las 00:00:00 UTC del jueves 1 de enero de 1970.
nonce No Binary. Cadena de un solo uso que comprueba la integridad de la interacción.
signature No Binary. Un hash de la clave pública usada para firmar las interacciones.
signedFields No Lista de cadenas que contiene las propiedades firmadas.
paymentRequest applePay Un diccionario que describe la configuración de Apple Pay.
countryCode Cadena. El código de país ISO 3166 de dos letras del comerciante.
currencyCode Cadena. El código de moneda ISO 4217 de tres letras para el pago.
lineItems No Conjunto de partidas que explican los pagos y los cargos adicionales. Las líneas de pedido no son obligatorias. Sin embargo, la matriz no puede estar vacía si la clave lineItems está presente.
total Un diccionario que contiene el total. El importe total debe ser superior a cero para pasar la validación.
requiredBillingContactCampos No La lista de la información de facturación requerida por el cliente para procesar la transacción. Para ver la lista de cadenas posibles, consulte requiredBillingContactCampos. Solicita solo los campos de contacto necesarios para procesar el pago. La solicitud de campos no necesarios añade complejidad a la transacción, lo que puede aumentar las posibilidades de que el cliente cancele la solicitud de pago.
requiredShippingContactCampos No La lista de información de envío o de contacto que el cliente debe proporcionar para tramitar el pedido. Por ejemplo, si necesita el correo electrónico o el número de teléfono del cliente, incluya esta clave. Para ver la lista de cadenas posibles, consulte requiredShippingContactCampos.
shippingMethods No Una matriz que muestra los métodos de envío disponibles. La hoja de pagos de Apple Pay muestra el primer método de envío de la matriz como método de envío predeterminado.
supportedCountries No Una lista de los países admitidos. Indique cada país con su código ISO 3166.
applePay merchantIdentifier Un identificador único que representa a un comerciante en Apple Pay.
merchantCapabilities Las diferentes opciones de pago que admite el comerciante. La matriz debe incluir supports3DS y, de forma opcional, supportsCredit, supportsDebit y supportsEMV.
supportedNetworks Las diferentes redes de pago que admite el comerciante. La matriz debe incluir uno o más de los siguientes valores: amex, discover, jcb, masterCard, privateLabel o visa
lineItem amount El importe monetario de la línea de pedido.
label Una descripción corta y traducida de la línea de pedido.
escriba No Un valor que indica si la línea de pedido es definitiva o está pendiente.
total amount El importe total del pago.
label Una descripción corta y traducida del pago.
tipo No Un valor que indica si el pago es definitivo o está pendiente.
shippingMethods amount Cadena. El costo no negativo asociado a este método de envío.
detail Cadena. Descripción adicional del método de envío.
label Cadena. Una breve descripción del método de envío.
identifier Cadena. Un valor definido por el cliente que se utiliza para identificar este método de envío.

Plantilla de la aplicación iMessage

nota

Esta plantilla es aplicable únicamente a los flujos de contacto de Apple Messages for Business.

Utilice la plantilla de iMessage para presentar al cliente la aplicación de iMessage que ha desarrollado.

El siguiente código es un ejemplo de una plantilla de la aplicación iMessage que puede utilizar en su función de Lambda. 

{    templateType: AppleCustomInteractiveMessage,    version: "1.0",    data: {        content: {            appIconUrl: "https://interactive-message-testing.s3-us-west-2.amazonaws.com/apple_4.2kb.jpg",            appId: "123456789",            appName: "Package Delivery",            title: "Bubble Title CIM",            bid: "com.apple.messages.MSMessageExtensionBalloonPlugin:{team-id}:{ext-bundle-id}",            dataUrl: "?deliveryDate=26-01-2024&destinationName=Home&street=1infiniteloop&state=CA&city=Cupertino&country=USA&postalCode=12345&latitude=37.331686&longitude=-122.030656&isMyLocation=false&isFinalDestination=true",            subtitle: "Bubble package",        },        replyMessage: {            title: "Custom reply message title",            subtitle: "Custom reply message subtitle",            imageType: "URL",            imageData: "https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg",        }    } }

Límites de la aplicación iMessage

Campo principal Campo Obligatorio Tipo Otras notas
templateType TemplateType Tipo de plantilla válido, "AppleCustomInteractiveMessage»
data InteractiveMessageData Contiene diccionarios de contenido y receivedMessage
versión cadena Debe ser “1.0”
data content InteractiveMessageContent Contenido interactivo de la aplicación iMessage
replyMessage ReplyMessage Configuración de la visualización de mensajes tras el envío de la respuesta al mensaje interactivo
content appIconUrl cadena URL de AWS S3
appId cadena ID de IMessage la aplicación empresarial
appName cadena Nombre de IMessage la aplicación empresarial
bid cadena Oferta de IMessage aplicaciones empresariales. Patrón: com.apple.messages. MSMessageExtensionBalloonPlugin: {team-id}: {} ext-bundle-id
dataUrl cadena Datos que se transfieren a la aplicación iMessage
useLiveLayout No booleano Valor predeterminado: True
title cadena título de la burbuja de la aplicación iMessage
subtitle No cadena subtítulo de la burbuja de la aplicación iMessage
replyMessage title No cadena
subtitle No cadena
imageType No cadena Debe ser una URL válida de acceso público
imageData No cadena No puede existir sin una imagen

WhatsApp lista

nota

Solo usa esta plantilla para los flujos WhatsApp de mensajería. Para obtener más información sobre la integración WhatsApp con Amazon ConnectConfigurar la mensajería WhatsApp empresarial, consulte la sección anterior de esta guía.

La plantilla de WhatsApp lista se utiliza en WhatsApp los chats para ofrecer a los clientes una lista de opciones.

En el siguiente ejemplo, se muestra una lista de opciones para un servicio bancario.

{ "templateType": "WhatsAppInteractiveList", "version": "1.0", "data": { "content": { "title": "Which account do you need help with?", "body": { "text": "Which account do you need help with?" }, "action": { "button": "Options", "sections": [ { "title": "Your accounts", "rows": [ { "id": "11111111", "title": "11111111", "description": "PERSONAL CHECKING" }, { "id": "22223333", "title": "22223333", "description": "PERSONAL SAVINGS" } ] }, { "title": "Other", "rows": [ { "id": "other", "title": "I can't find my account" } ] } ] } } } }

En la siguiente imagen, se muestra una pantalla típica antes y después de que un cliente abra una lista.

Imagen con una lista de opciones

WhatsApp límites de opciones

Campo principal Campo Obligatorio Longitud mínima Longitud máxima Otro requisito
templateType Debe ser «WhatsAppInteractiveList»
data
versión Debe ser “1.0”
data content
content title
encabezado No
body
pie de página No
action
cabecera type Debe ser “texto”
texto 1 60
body texto 1 4096
footer texto 1 60
action secciones 1 10
botón 1 20
sección title 1 24
filas 1 10 Máximo de 10 filas en todas las secciones
fila id 1 200 Debe ser único en todas las filas
title 1 24
descripción No 1 72

WhatsApp botón de respuesta

nota

Solo usa esta plantilla para los flujos WhatsApp de mensajería.

Puedes usar la plantilla del botón de WhatsApp respuesta para presentar una lista de opciones en línea para los clientes.

{ "templateType": "WhatsAppInteractiveReplyButton", "version": "1.0", "data": { "content": { "title": "What would you like to do?", "body": { "text": "What would you like to do?" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "agent", "title": "Continue to agent" } }, { "type": "reply", "reply": { "id": "end_chat", "title": "End chat" } } ] } } } }

En la siguiente imagen, se muestra una experiencia de usuario típica.

Imagen de una respuesta en una sesión de chat

WhatsApp límites del botón de respuesta

La plantilla de WhatsApp respuesta tiene los siguientes límites.

Campo principal Campo Obligatorio Longitud mínima Longitud máxima Otro requisito
templateType Debe ser "WhatsAppInteractiveReplyButton»
data
versión Debe ser “1.0”
data content
content título
cabecera No
body
footer No
action
cabecera type Valores válidos: “text”, “document”, “image”, “vídeo”
texto No 1 60
imagen No
vídeo No
documento No
imagen link Debe ser una URL multimedia de acceso público que comience por https/http
vídeo link Debe ser una URL multimedia de acceso público que comience por https/http
documento link Debe ser una URL multimedia de acceso público que comience por https/http
body texto 1 1024
footer texto 1 60
action botones 1 3
botón type Debe ser “reply”
reply.id 1 256 Debe ser único en todos los botones
reply.title 1 20

Puede agregar un formato enriquecido a los títulos y subtítulos de sus mensajes de chat. Por ejemplo, puede agregar enlaces, cursiva, negrita, listas numeradas y listas con viñetas. Puede usar markdown para dar formato al texto.

En la siguiente imagen de un cuadro de chat se muestra un ejemplo de selector de lista con formato enriquecido en el título y el subtítulo.

  • El título ¿Cómo podemos ayudarlo? aws.amazon.com está en negrita y contiene un enlace.

  • El subtítulo contiene texto en cursiva y negrita, una lista con viñetas y una lista numerada. También muestra un enlace sin formato, un enlace de texto y un código de muestra.

  • La parte inferior del cuadro de chat muestra tres elementos del selector de lista.

Un cuadro de chat, un título con un enlace, un subtítulo con listas y enlaces.

Cómo dar formato al texto con Markdown

Puede escribir cadenas de títulos y subtítulos en formato de varias líneas o en una sola línea con caracteres de salto de línea `\r\n`.

  • Formato de varias líneas: en el siguiente ejemplo de código se muestra cómo crear listas en markdown en formato de varias líneas.

    const MultiLinePickerSubtitle = `This is some *emphasized text* and some **strongly emphasized text** This is a bulleted list (multiline): * item 1 * item 2 * item 3 This is a numbered list: 1. item 1 2. item 2 3. item 3 Questions? Visit https://plainlink.com/faq [This is a link](https://aws.amazon.com) This is \`\` ` const PickerTemplate = { templateType: "ListPicker|Panel", version: "1.0", data: { content: { title: "How can we help?", subtitle: MultiLinePickerSubtitle, elements: [ /* ... */ ] } } }
  • Formato de una sola línea: en el siguiente ejemplo se muestra cómo crear un subtítulo en una sola línea mediante caracteres de salto de línea `\r\n`.

    const SingleLinePickerSubtitle = "This is some *emphasized text* and some **strongly emphasized text**\r\nThis is a bulleted list:\n* item 1\n* item 2\n* item 3\n\nThis is a numbered list:\n1. item 1\n2. item 2\n3. item 3\n\nQuestions? Visit https://plainlink.com/faq\r\n[This is a link](https://aws.amazon.com)\r\nThis is `<code/>`"; const PickerTemplate = { templateType: "ListPicker|Panel", version: "1.0", data: { content: { title: "How can we help?", subtitle: SingleLinePickerSubtitle, elements: [ /* ... */ ] } } }

En el siguiente ejemplo se muestra cómo dar formato al texto en cursiva y negrita con Markdown:

This is some *emphasized text* and some **strongly emphasized text**

En el siguiente ejemplo se muestra cómo dar formato al texto como código con Markdown:

This is `<code />`

Para crear un enlace, utilice la siguiente sintaxis:

[aws](https://aws.amazon.com)

En los siguientes ejemplos se muestran dos formas de agregar enlaces con Markdown:

Questions? Visit https://plainlink.com/faq

[This is a link](https://aws.amazon.com)

nota

En el caso de los selectores de listas, el campo targetForLinks se puede añadir como campo secundario en content si se quiere tener un control pormenorizado sobre dónde se abren los enlaces. De forma predeterminada, el widget de comunicaciones abrirá los enlaces en una nueva pestaña del navegador. Para obtener más información, consulte Plantilla de selector de lista.