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
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.
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, completarreplyMessage
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 |
Sí |
Tipo de plantilla válido |
|||
data |
Sí |
||||
versión |
Sí |
Debe ser “1.0” |
|||
data |
content | Sí | |||
replyMessage | No | ||||
content |
title | Sí | 1 |
400 |
Debe haber una descripción para las plantillas sin mensaje |
elements | Sí | 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 | Sí | 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 | Sí | 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 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 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, completarreplyMessage
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 |
Sí |
Tipo de plantilla válido |
|||
data |
Sí |
||||
versión |
Sí |
Debe ser “1.0” |
|||
data |
replyMessage | No | |||
content | Sí | ||||
replyMessage |
title |
Sí | 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 |
Sí | 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 | Sí | 1 |
40 |
Se trata de una matriz de intervalos de tiempo. Máximo de 40 elementos en la matriz. |
|
location |
longitude | Sí | -180 |
180 |
Debe ser doble |
latitude | Sí | -90 |
90 |
Debe ser doble |
|
title | Sí | 1 |
400 |
||
radius |
No | 0 |
200 |
||
timeslots |
date | Sí |
|
Debe estar en formato de hora ISO -8601: YYYY -MM- .MM+00,00 DDTHH Por ejemplo: “2020-08-14T21:21+00.00” |
|
Duración | Sí | 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.
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, completarreplyMessage
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 |
Sí |
Tipo de plantilla válido |
|||
data |
Sí |
||||
versión |
Sí |
Debe ser “1.0” |
|||
data |
replyMessage | No | |||
content | Sí | ||||
content |
title | Sí | 1 |
400 |
Debe haber una descripción para las plantillas sin mensaje |
subtitle | No | 0 |
400 |
||
elements | Sí | 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 | Sí | 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 | Sí | 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.
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 |
Sí |
|||
versión |
Sí |
Debe ser “1.0” |
||
content |
Sí | |||
title | Sí | 1 |
400 |
Debe haber una descripción para las plantillas sin mensaje |
elements | Sí | 2 elementos |
10 elementos |
Es una matriz de elementos. Mínimo 2 elementos y máximo 10 elementos en la matriz. |
title | Sí | 1 |
200 |
Plantilla de carrusel
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.
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.
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" }
Límites de carrusel
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 |
Sí |
Tipo de plantilla válido |
|||
data |
Sí |
||||
versión |
Sí |
Debe ser “1.0” |
|||
data |
content | Sí | |||
content |
title | Sí | 1 |
400 |
Debe haber una descripción para las plantillas sin mensaje |
elements | Sí | 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. notaPara 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» |
|||
carouselIsVertical | No |
Booleano: opcionalmente representa elementos |
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 | Sí | Número de versión. Valor permitido: «1.0" |
templateType | TemplateType | Sí | Tipo de plantilla de mensaje interactivo. Valores permitidos: [» ListPicker «," TimePicker «, «Panel», "QuickReply«, «Carousel», "ViewResource«," AppleForm] |
datos | InteractiveMessageData | Sí | Datos de mensajes interactivos |
InteractiveMessageData
Campo | Tipo | Obligatoria | Descripción/Notas |
---|---|---|---|
content | InteractiveMessageContent | Sí | 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 | Sí | 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[] | Sí | 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 | Sí | 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 | Sí | 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 | Sí | Enum para el tipo de página. Valores permitidos: ["Entrada», "DatePickerWheelPicker«," ListPicker «] |
title | Cadena | Sí | Título de página |
subtitle | Cadena | Sí | 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 | Sí | 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 | Sí | Valor: "ListPicker» |
multiSelect | Booleano | No | Permite seleccionar varios elementos. Predeterminado: falso (selección única) |
items | AppleFormListPickerPageItem[] | Sí | Lista de elementos de la página de lista |
AppleFormListPickerPageItem
AppleFormListPickerPageItemse extiende AppleFormPage
Campo | Tipo | Obligatoria | Descripción/Notas |
---|---|---|---|
title | Cadena | Sí | 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 | Sí | Valor: "WheelPicker» |
items | AppleFormWheelPickerPageItem[] | Sí | 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 | Sí | Mostrar el texto del elemento selector |
AppleFormInputPage
AppleFormInputPagese extiende AppleFormPage
Campo | Tipo | Obligatoria | Descripción/Notas |
---|---|---|---|
pageType | ApplePageType | Sí | 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 |
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 |
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 | Sí | Tipo de plantilla válido | |||
datos | Sí | ||||
versión | Sí | Debe ser “1.0” | |||
datos | content | Sí | |||
content | title | Sí | 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 | Sí | 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 | Sí | Un diccionario que contiene los puntos finales para el procesamiento de pagos, las actualizaciones de contactos y el seguimiento de los pedidos. | ||
merchantSession | Sí | Un diccionario que contiene la sesión de pago proporcionada por Apple Pay tras solicitar una nueva sesión de pago. | |||
paymentRequest | Sí | Un diccionario con información sobre la solicitud de pago | |||
puntos de conexión | paymentGatewayUrl | Sí | 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 | Sí | 1 | 64 | Cadena. El nombre canónico de tu tienda, adecuado para mostrarlo. No localice el nombre. |
iniciativa | Sí | Cadena. Debe ser «mensajería» | |||
initiativeContext | Sí | Cadena. Pase su pasarela de pagoURL. | |||
merchantIdentifier | Sí | Cadena. Un identificador único que representa a un vendedor de Apple Pay. | |||
merchantSessionIdentifier | Sí | Cadena. Un identificador único que representa la sesión de un vendedor en Apple Pay. | |||
epochTimestamp | Sí | 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 | Sí | 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 | Sí | Un diccionario que describe la configuración de Apple Pay. | ||
countryCode | Sí | Cadena. El código de país ISO 3166 de dos letras del vendedor. | |||
currencyCode | Sí | 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 | Sí | 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 |
|||
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 | Sí | Un identificador único que representa a un vendedor de Apple Pay. | ||
merchantCapabilities | Sí | 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 | Sí | 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 | Sí | El importe monetario de la línea de pedido. | ||
etiqueta | Sí | 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 | Sí | El importe total del pago. | ||
etiqueta | Sí | Una descripción breve y localizada del pago. | |||
type | No | Un valor que indica si el pago es definitivo o pendiente. | |||
shippingMethods | importe | Sí | Cadena. El coste no negativo asociado a este método de envío. | ||
detail | Sí | Cadena. Descripción adicional del método de envío. | |||
etiqueta | Sí | Cadena. Breve descripción del método de envío. | |||
identifier | Sí | 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 | Sí | TemplateType | Tipo de plantilla válido, "AppleCustomInteractiveMessage» | |
data | Sí | InteractiveMessageData | Contiene contenido y receivedMessage diccionarios | |
versión | Sí | cadena | Debe ser “1.0” | |
data | content | Sí | InteractiveMessageContent | Contenido interactivo de la iMessage aplicación |
replyMessage | Sí | ReplyMessage | Configuración de visualización de mensajes para después del envío de la respuesta a un mensaje interactivo | |
content | appIconUrl | Sí | cadena | AWSS3 URL |
appId | Sí | cadena | ID de IMessage aplicación empresarial | |
appName | Sí | cadena | Nombre de IMessage la aplicación empresarial | |
oferta | Sí | cadena | Oferta de IMessage aplicaciones empresariales. Patrón: com.apple.messages. MSMessageExtensionBalloonPlugin: {team-id}: {} ext-bundle-id | |
dataUrl | Sí | cadena | Datos que se transfieren a la aplicación iMessage | |
useLiveLayout | No | boolean | Verdadero predeterminado | |
title | Sí | 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 |
Formato enriquecido en títulos y subtítulos
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
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.
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)