Agregar mensajes interactivos al 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.

Agregar mensajes interactivos al chat

Los mensajes interactivos son mensajes enriquecidos que presentan un mensaje y opciones de visualización preconfiguradas para que el cliente elija. Estos mensajes utilizan tecnología de Amazon Lex y se configuran a través de Amazon Lex mediante una Lambda.

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). Solo SendMessageAPIcomprueba 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 a fin de que pueda utilizarlas para ofrecer información a los clientes en un chat:

Estas plantillas definen cómo se va a representar 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 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. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, el título es obligatorio. De lo contrario, completar replyMessage 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 Obligatoria 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

400

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

400

imageType No

0

50

Debe ser "URL»

imageData No

0

200

Debe ser un documento válido y accesible al público URL

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. Debería ser unUUID. Este campo es obligatorio si se utiliza el selector de listas o el panel en un carrusel.

elements

title

1

400

subtitle No

0

400

imageType No

0

50

Debe ser «URL»

imageData No

0

200

Debe ser un documento válido y accesible al público URL

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

400

subtitle No

0

400

imageType No

0

50

Debe ser "URL»

imageData No

0

200

Debe ser un documento válido y accesible al público URL

imageDescription No

0

50

No puede existir sin una imagen

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.

La siguiente imagen muestra el selector de tiempo con una imagen

nota

Si utilizas esta plantilla de mensajes con el canal Apple Messages for Business y no añades ninguna imagen, Amazon Connect añadirá una imagen predeterminada tanto en el mensaje de respuesta como en el de respuesta.

El 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 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. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, el título es obligatorio. De lo contrario, completar replyMessage 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 Obligatoria 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

400

Debe haber una descripción para las plantillas sin mensaje

subtitle No

0

400

imageType No

0

50

Debe ser «» URL
imageData No

0

200

Debe ser un documento válido y accesible al público URL
imageDescription No

0

50

No puede existir sin una imagen

content

title

1

400

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 un documento válido y accesible al público URL
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 GMT transcurridos desde la ubicación del evento y especifique la zona horaria.

location No

timeslots

1

40

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

location

longitude

-180

180

Debe ser doble

latitude

-90

90

Debe ser doble

title

1

400

radius

No

0

200

timeslots

date

Debe estar en formato de hora ISO -8601: YYYY -MM- .MM+00,00 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 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. Por ejemplo, consulte la estructura de data.replyMessage en la siguiente plantilla. Si la estructura existe, el título es obligatorio. De lo contrario, completar replyMessage 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 Obligatoria 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

400

Debe haber una descripción para las plantillas sin mensaje

subtitle No

0

400

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 un documento válido y accesible al público URL

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. Debería ser unUUID. Este campo es obligatorio si se utiliza el selector de listas o el panel en un carrusel.

elements

title

1

400

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

400

subtitle No

0

400

Plantilla de respuesta rápida

Utilice mensajes de respuesta rápida para obtener respuestas sencillas de los clientes y de ellos a los clientes en una lista en línea. Puede presentar a los clientes hasta cinco opciones en un mensaje de respuesta rápida. 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 Obligatoria Mínimo de caracteres Máximo de caracteres Otro requisito

templateType

Tipo de plantilla válido

data

versión

Debe ser “1.0”

content

title

1

400

Debe haber una descripción para las plantillas sin mensaje

elements

2 elementos

10 elementos

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

title

1

200

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 listas y el selector de tiempo, puede añadir más opciones al carrusel mediante la función _. SHOW MORE

A continuación, se GIF muestra un ejemplo de cómo la plantilla de carrusel representa 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 de la plantilla de carrusel dan como resultado una respuesta de JSON cadena estructurada como en el siguiente ejemplo, que se devolverá a Lambda (otros tipos de mensajes interactivos devuelven una respuesta de cadena normal con solo un valor): selectionText

    { templateIdentifier: "template0", listTitle: "California", selectionText: "Book hotels" }
  • En los carruseles, puede proporcionar hipervínculos en los elementos del selector de lista o del 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 Obligatoria 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

400

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, le recomendamos que cada plantilla utilice de forma coherente las imágenes y el número de elementos.

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 solo se aplica 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 de un 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 PII evitar que aparezca en la transcripción de su 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 contactos step-by-step guía, active Contact Lens y active la redacción de datos confidenciales. Para obtener más información sobre cómo habilitar la PII redacción, consulta Habilitar la redacción de datos confidenciales.

Los 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 Obligatoria Descripción y 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 Obligatoria Descripción/Notas
content InteractiveMessageContent Contenido principal del mensaje interactivo
replyMessage ReplyMessage No Configuración de visualización de mensajes para después de enviar la respuesta al mensaje interactivo

AppleFormContent

Campo Tipo Obligatoria Descripción/Notas
title Cadena Título de nivel superior del formulario. Se muestra en Apple, en la burbuja de recepción de mensajes y en la representación de las transcripciones.
subtitle Cadena No Se utiliza 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 del formulario
showSummary Booleano No Si se debe mostrar una página de resumen de las respuestas para revisarlas antes de enviarlas. Predeterminado: Falso (sin página de confirmación/resumen)
splashPage AppleFormSplashPage No La página de inicio inicial se mostrará antes de las páginas reales. Predeterminado: no hay página de inicio

AppleFormSplashPage

Campo Tipo Obligatoria Descripción y notas
title Cadena Título de la página de bienvenida
subtitle Cadena No Subtítulo/cuerpo de la página de bienvenida
imageType ImageType No Está presente al mostrar la imagen en la página de inicio Valor permitido: "URL" Predeterminado: no se muestra ninguna imagen
imageData Cadena No Para imageType =» URL «, este es el URL valor predeterminado: no se muestra ninguna imagen
buttonTitle Cadena Texto del botón Continuar. Requerido por Apple, no se admite el texto predeterminado con localización

AppleFormPage

  • Modelo base para páginas de formularios. Los tipos de página específicos se extienden a partir de este modelo

Campo Tipo Obligatoria Descripción y notas
pageType ApplePageType Enum para el tipo de página. Valores permitidos: ["Entrada», "DatePickerWheelPicker«," ListPicker «]
title Cadena Título de página
subtitle Cadena Subtítulo de página. Se utiliza en la página de confirmación

AppleFormDatePickerPage

AppleFormDatePickerPagese extiende AppleFormPage

Campo Tipo Obligatoria 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. Predeterminado: Sin texto auxiliar
dateFormat Cadena No ISOFormato de fecha 8601. Predeterminado: aaaa-MM-dd
startDate Cadena No Fecha seleccionada inicial/predeterminada en formato de fecha válido Predeterminado: fecha actual para el usuario final cuando se envía el mensaje
minDate Cadena No Se puede seleccionar la fecha mínima en un formato de fecha válido Predeterminado: Sin mínimo
maxDate Cadena No Fecha máxima que se puede seleccionar en un formato de fecha válido Predeterminado: fecha actual para el usuario final cuando se envía el mensaje

AppleFormListPickerPage

AppleFormListPickerPagese extiende AppleFormPage

Campo Tipo Obligatoria Descripción/Notas
pageType ApplePageType Valor: "ListPicker»
multiSelect Booleano No Permite seleccionar varios elementos. Predeterminado: falso (selección única)
items AppleFormListPickerPageItem[] Lista de elementos de la página de lista

AppleFormListPickerPageItem

AppleFormListPickerPageItemse extiende AppleFormPage

Campo Tipo Obligatoria Descripción/Notas
title Cadena Mostrar el texto del artículo
imageType ImageType No Está presente al mostrar la imagen dentro del elemento Valor permitido: "URL" Predeterminado: no se muestra ninguna imagen
imageData Cadena No Para imageType =» URL «, este es el 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 Obligatoria Descripción/Notas
pageType ApplePageType Valor: "WheelPicker»
items AppleFormWheelPickerPageItem[] Lista de artículos del recogedor de ruedas
labelText Cadena No El texto se muestra junto a la entrada. Consulte los ejemplos de capturas de pantalla en el Apéndice

AppleFormWheelPickerPageItem

AppleFormWheelPickerPageItemse extiende AppleFormPage

Campo Tipo Obligatoria Descripción/Notas
title Cadena Mostrar el texto del elemento selector

AppleFormInputPage

AppleFormInputPagese extiende AppleFormPage

Campo Tipo Obligatoria Descripción/Notas
pageType ApplePageType Valor: «Entrada»
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 Se muestra texto adicional debajo del cuadro de entrada Predeterminado: Sin texto auxiliar
placeholderText Cadena No Texto de marcador de posición que se mostrará inicialmente cuando no haya ninguna entrada Predeterminado: texto de marcador de posición «(opcional)» u «(obligatorio)»
prefixText Cadena No Prefijo el texto que se mostrará junto a la entrada. Por ejemplo: '$' cuando la entrada es un valor monetario Predeterminado: sin texto de prefijo
obligatorio Booleano No Si se requiere que el usuario final proporcione una entrada Predeterminado: falso
multiLine Booleano No Si se puede proporcionar una entrada multilínea Predeterminado: falso (línea única)
maxCharCount Número No Recuento máximo de caracteres de entrada. Impuesto en el cliente de Apple. Predeterminado: sin límite
regex Cadena No Se proporciona una cadena de expresiones regulares para establecer restricciones en la entrada. Predeterminado: sin restricciones de expresión regular
keyboardType Cadena No Determina el tipo de teclado que se muestra cuando el usuario final introduce los valores permitidos: igual que los de Apple. Consulte los documentos. Algunos de los 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. Consulta los documentos. Algunos de los valores permitidos:telephoneNumber, fullStreetAddress, familyName

Plantilla de Apple Pay

nota

Esta plantilla solo se aplica a los flujos de contacto de Apple Messages for Business.

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

El siguiente código es la plantilla de Apple Pay que puedes usar en tu 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 Obligatoria 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 title 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 un documento válido y accesible al público URL
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 UUID generará y utilizará una.
pago puntos de conexión Un diccionario que contiene los puntos finales para el procesamiento de pagos, las actualizaciones de 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 de conexión paymentGatewayUrl Cadena. Apple Pay lo llama para procesar el pago a través del proveedor de pagos. URLDebe coincidir con URL el initiativeContext campo de la sesión del comerciante
fallbackUrl No A 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, fallbackUrl debe coincidir paymentGatewayUrl.
orderTrackingUrl No Messages for Business lo llama después de completar el pedido y te da la oportunidad de actualizar la información del pedido en tu sistema.
paymentMethodUpdateURL No Apple Pay lo llama cuando el cliente cambia el método de pago. Si no implementas este punto final e incluyes esta clave en el diccionario, el cliente verá un mensaje de error.
shippingContactUpdateURL No Apple Pay lo llama cuando el cliente cambia la información de su dirección de envío. Si no implementas este punto final e incluyes esta clave en el diccionario, el cliente verá un mensaje de error
shippingMethodUpdateURL No Apple Pay lo llama cuando el cliente cambia el método de envío. Si no implementas este punto final e incluyes esta clave en el diccionario, el cliente verá un mensaje de error.
merchantSession displayName 1 64 Cadena. El nombre canónico de tu tienda, adecuado para mostrarlo. No localice el nombre.
iniciativa Cadena. Debe ser «mensajería»
initiativeContext Cadena. Pase su pasarela de pagoURL.
merchantIdentifier Cadena. Un identificador único que representa a un vendedor de Apple Pay.
merchantSessionIdentifier Cadena. Un identificador único que representa la sesión de un vendedor en Apple Pay.
epochTimestamp Cadena. La representación del tiempo en el número de segundos transcurridos desde las 00:00:00 del jueves 1 de enero de UTC 1970.
expiresAt Cadena. La representación del tiempo de caducidad en el número de segundos transcurridos desde las 00:00:00 del jueves 1 de enero de 1970. UTC
nonce No Binario. Cadena de un solo uso que comprueba la integridad de la interacción.
firma No Binario. Un hash de la clave pública utilizada para firmar las interacciones.
signedFields No La lista de cadenas 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 vendedor.
currencyCode Cadena. El código de divisa 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 lineItems clave 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, consulta requiredBillingContactCampos. Solicita solo los campos de contacto necesarios para procesar el pago. La solicitud de campos innecesarios 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 contacto requerida por el cliente para tramitar el pedido. Por ejemplo, si necesitas el correo electrónico o el número de teléfono del cliente, incluye esta clave. Para ver la lista de cadenas posibles, consulta requiredShippingContactCampos.
shippingMethods No 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 variedad de países a los que prestar asistencia. Enumere cada país con su código de país ISO 3166.
applePay merchantIdentifier Un identificador único que representa a un vendedor de Apple Pay.
merchantCapabilities Un conjunto de funciones de pago que admite el vendedor. La matriz debe incluir soporte 3DS y, opcionalmentesupportsCredit, supportsDebit puede incluir y admite. EMV
supportedNetworks Un conjunto de redes de pago compatibles con el vendedor. La matriz debe incluir uno o más de los siguientes valores: amex, discover, jcb o privateLabel visa masterCard
lineItem importe El importe monetario de la línea de pedido.
etiqueta Una descripción breve y localizada de la línea de pedido.
type No Un valor que indica si la línea de pedido es definitiva o pendiente.
total importe El importe total del pago.
etiqueta Una descripción breve y localizada del pago.
type No Un valor que indica si el pago es definitivo o pendiente.
shippingMethods importe Cadena. El coste no negativo asociado a este método de envío.
detail Cadena. Descripción adicional del método de envío.
etiqueta Cadena. 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.

iMessage Plantilla de aplicación

nota

Esta plantilla solo se aplica a los flujos de contacto de Apple Messages for Business.

Usa la plantilla de iMessage aplicaciones para presentarle al cliente tu iMessage aplicación personalizada.

El siguiente código es un ejemplo de plantilla de iMessage aplicación que puede utilizar en su 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",        }    } }

iMessage Límites de aplicaciones

Campo principal Campo Obligatorio Tipo Otras notas
templateType TemplateType Tipo de plantilla válido, "AppleCustomInteractiveMessage»
data InteractiveMessageData Contiene contenido y receivedMessage diccionarios
versión cadena Debe ser “1.0”
data content InteractiveMessageContent Contenido interactivo de la iMessage aplicación
replyMessage ReplyMessage Configuración de visualización de mensajes para después del envío de la respuesta a un mensaje interactivo
content appIconUrl cadena AWSS3 URL
appId cadena ID de IMessage aplicación empresarial
appName cadena Nombre de IMessage la aplicación empresarial
oferta 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 boolean Verdadero predeterminado
title cadena título de la burbuja de la aplicación de iMessage
subtítulo No cadena subtítulo de la burbuja de la aplicación iMessage
replyMessage title No cadena
subtítulo No cadena
imageType No cadena Debe ser un documento válido y accesible al público URL
imageData No cadena No puede existir sin una imagen

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 />`

Cómo dar formato a los enlaces con Markdown

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)