Ajoutez des messages interactifs Amazon Lex pour les clients dans le chat - Amazon Connect

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ajoutez des messages interactifs Amazon Lex pour les clients dans le chat

Les messages interactifs sont des messages enrichis qui présentent une invite et des options d’affichage préconfigurées que le client peut choisir. Ces messages reposent sur Amazon Lex et sont configurés via Amazon Lex à l'aide d'une fonction Lambda.

Astuce

Si vous avez intégré Apple Messages for Business, consultez Types de messages interactifs sur le site Web d’Apple.

Limites de validation

Les limites des champs de chaîne (par exemple, titre, sous-titre, etc.) devraient être appliquées par le client (c’est-à-dire une interface personnalisée ou le widget de communication hébergé). Le SendMessageAPIvérifie uniquement que la taille totale de la chaîne est inférieure à 20 Ko.

  • Lorsque vous utilisez le widget de communication hébergé sans le personnaliser, si la chaîne dépasse les limites de champs, elle est tronquée sur l’interface utilisateur et des points de suspension (…) sont ajoutés. Vous pouvez déterminer comment appliquer les limites de champ en personnalisant le widget.

  • Si vous effectuez une intégration avec d’autres plateformes (comme Apple Messages for Business), consultez les limites indiquées dans cette rubrique pour Amazon Connect, ainsi que celles de la documentation relative à l’autre plateforme. Par exemple, les réponses rapides ne sont pas prises en charge sur les anciennes versions d’iOS.

Toutes les autres limites de champs doivent être respectées pour que le message soit correctement envoyé.

Modèles d’affichage de messages

Amazon Connect fournit les modèles d’affichage de messages suivants que vous pouvez utiliser pour communiquer des informations aux clients dans un chat :

Ces modèles définissent le mode de rendu des informations et les informations qui apparaissent dans l’interface de chat. Lorsque des messages interactifs sont envoyés par chat, les flux vérifient que le format du message suit l’un de ces modèles.

Modèle de sélecteur de liste

Utilisez le modèle de sélecteur de liste pour présenter au client une liste de six choix maximum. Chaque choix peut comporter sa propre image.

Les images suivantes montrent deux exemples de la manière dont le modèle de sélecteur de liste affiche les informations dans un chat.

  • Une image montre trois boutons, chacun portant le nom d’un fruit dans le texte : pomme, orange, banane.

  • La seconde image montre la photo d’un magasin, ainsi que trois boutons, au-dessous, comportant chacun le nom, l’image et le prix du fruit.

Modèle de sélecteur de liste affichant des informations dans un chat

Le code suivant est le modèle de sélecteur de liste que vous pouvez utiliser dans votre fonction Lambda. Notez ce qui suit :

  • Le texte en gras est un paramètre obligatoire.

  • Dans certains cas, si l’élément parent existe dans la demande et qu’il n’est pas obligatoire/en gras, mais que les champs qu’il contient le sont, les champs sont obligatoires. Par exemple, examinez la structure data.replyMessage dans le modèle suivant. Si la structure existe, le titre est obligatoire. Sinon, l’élément replyMessage complet est facultatif.

{ "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" } ] }

Limites du sélecteur de liste

Le tableau suivant répertorie les limites pour chacun des éléments du sélecteur de liste, si vous choisissez de créer votre propre fonction Lambda à partir de zéro. Les paramètres obligatoires sont affichés en gras.

Pour envoyer un nombre illimité d’options, implémentez des boutons d’action dans votre application. Pour plus d’informations, consultez Implementation of action buttons in interactive message list picker/panel.

Champ parent Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence

templateType

Oui

Type de modèle valide

data

Oui

Version

Oui

Doit être « 1.0 »

data

content Oui
replyMessage Non

content

title Oui

1

400

Devrait être une description pour les modèles sans invite

elements Oui

1 élément

10 éléments

Il s’agit d’un tableau d’éléments, contenant 10 éléments au maximum. Pour envoyer un nombre illimité d’éléments, utilisez la fonctionnalité des boutons d’action.

subtitle Non

0

400

imageType Non

0

50

Doit être « URL »

imageData Non

0

200

Doit être un document valide accessible au public URL

imageDescription Non

0

50

referenceId Non

String. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

listId Non

String. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

preIndex Non

Nombre. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

nextIndex Non

Nombre. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

templateIdentifier Non

Nombre. Ça devrait être unUUID. Ce champ est obligatoire si le sélecteur de liste/volet est utilisé dans un carrousel.

elements

title Oui

1

400

subtitle Non

0

400

imageType Non

0

50

Doit être « URL »

imageData Non

0

200

Doit être un document valide accessible au public URL

imageDescription Non

0

50

Ne peut pas exister sans image

actionDetail Non

Nécessaire uniquement pour la fonctionnalité du bouton d’action. Doit être « PREVIOUS _ OPTIONS » ou « SHOW _ MORE ».

replyMessage

title Oui

1

400

subtitle Non

0

400

imageType Non

0

50

Doit être « URL »

imageData Non

0

200

Doit être un document valide accessible au public URL

imageDescription Non

0

50

Ne peut pas exister sans image

Modèle de sélecteur de temps

Le modèle de sélecteur d’heure est utile pour permettre aux clients de planifier des rendez-vous. Vous pouvez fournir jusqu’à 40 créneaux horaires au client dans un chat.

Les images suivantes montrent deux exemples de la manière dont le modèle de sélecteur de temps affiche les informations dans un chat.

  • Une image montre une date et, en dessous, un créneau horaire.

  • La seconde image montre une date et, en dessous, deux créneaux horaires.

Modèle de sélecteur de temps affichant des informations dans un chat

L'image suivante montre le sélecteur de temps avec une image

Note

Si vous utilisez ce modèle de message avec le canal Apple Messages for Business et que vous n'ajoutez pas d'image, Amazon Connect ajoutera une image par défaut à la fois dans le message de réponse et dans le message de réponse.

Le sélecteur de temps avec une image.

Le code suivant est le modèle de sélecteur de temps que vous pouvez utiliser dans votre fonction Lambda. Notez ce qui suit :

  • Le texte en gras est un paramètre obligatoire.

  • Dans certains cas, si l’élément parent existe dans la demande et qu’il n’est pas obligatoire/en gras, mais que les champs qu’il contient le sont, les champs sont obligatoires. Par exemple, examinez la structure data.replyMessage dans le modèle suivant. Si la structure existe, le titre est obligatoire. Sinon, l’élément replyMessage complet est facultatif.

{ "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, } ], } } } }

Limites du sélecteur de temps

Le tableau suivant répertorie les limites de tous les éléments d’un sélecteur de temps. Utilisez ces informations si vous choisissez de créer votre propre fonction Lambda à partir de zéro. Les paramètres obligatoires sont affichés en gras.

Champ parent Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence

templateType

Oui

Type de modèle valide

data

Oui

Version

Oui

Doit être « 1.0 »

data

replyMessage Non
content Oui

replyMessage

title

Oui

1

400

Devrait être une description pour les modèles sans invite

subtitle Non

0

400

imageType Non

0

50

Doit être « URL »
imageData Non

0

200

Doit être un document valide accessible au public URL
imageDescription Non

0

50

Ne peut pas exister sans image

content

title

Oui

1

400

Devrait être une description pour les modèles sans invite

subtitle Non

0

200

imageType Non

0

50

Doit être « URL »
imageData Non

0

200

Doit être un document valide accessible au public URL
imageDescription Non

0

50

Ne peut pas exister sans image
timezone offset Non

-720

840

Ce champ est facultatif lorsqu’il n’est pas défini. Notre exemple de client utilise par défaut le fuseau horaire de l’utilisateur. Si cette option est définie, elle s’affiche en fonction du fuseau horaire saisi. Le champ doit être un entier représentant le nombre de minutes écouléesGMT, en spécifiant le fuseau horaire du lieu de l'événement.

location Non

timeslots Oui

1

40

Il s’agit d’un tableau de créneaux horaires, contenant 40 éléments au maximum.

location

longitude Oui

-180

180

Doit être double

latitude Oui

-90

90

Doit être double

title Oui

1

400

rayon

Non

0

200

timeslots

date Oui

Doit être au format d'heure ISO -8601 : YYYY-MM-DDTHH .MM+00.00

Par exemple :

« 2020-08-14T21:21+00.00 »

duration Oui

1

3600

Modèle de panneau

En utilisant le modèle de panneau, vous pouvez présenter au client jusqu’à 10 choix pour une question. Toutefois, vous pouvez inclure une seule image, au lieu d’une image pour chaque choix.

L’image suivante montre un exemple de la façon dont le modèle de panneau affiche les informations dans un chat. Il montre une image en haut du message et, sous l’image, une invite qui demande Comment puis-je vous aider ? Appuyez pour sélectionner une option. Sous cette invite, trois options sont affichées pour le client : Vérifier les options de libre-service, Parler à un agent, Mettre fin à la conversation.

Modèle de panneau affichant des informations dans un chat.

Le code suivant est le modèle de panneau que vous pouvez utiliser dans votre fonction Lambda. Notez ce qui suit :

  • Le texte en gras est un paramètre obligatoire.

  • Dans certains cas, si l’élément parent existe dans la demande et qu’il n’est pas obligatoire/en gras, mais que les champs qu’il contient le sont, les champs sont obligatoires. Par exemple, examinez la structure data.replyMessage dans le modèle suivant. Si la structure existe, le titre est obligatoire. Sinon, l’élément replyMessage complet est facultatif.

{ "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", } ] } } }

Limites du panneau

Le tableau suivant répertorie les limites pour chacun des éléments du panneau, si vous choisissez de créer votre propre fonction Lambda à partir de zéro. Les paramètres obligatoires sont affichés en gras.

Pour envoyer un nombre illimité d’options, implémentez des boutons d’action dans votre application. Pour plus d’informations, consultez Implementation of action buttons in interactive message list picker/panel.

Champ parent Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence

templateType

Oui

Type de modèle valide

data

Oui

Version

Oui

Doit être « 1.0 »

data

replyMessage Non
content Oui

content

title Oui

1

400

Devrait être une description pour les modèles sans invite

subtitle Non

0

400

elements Oui

1 élément

10 éléments

Il s’agit d’un tableau d’éléments, contenant 10 éléments au maximum.

imageType Non

0

50

Doit être « URL »

imageData Non

0

200

Doit être un document valide accessible au public URL

imageDescription Non

0

50

Ne peut pas exister sans image

referenceId Non

String. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

listId Non

String. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

preIndex Non

Nombre. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

nextIndex Non

Nombre. Nécessaire uniquement pour la fonctionnalité du bouton d’action.

templateIdentifier Non

Nombre. Ça devrait être unUUID. Ce champ est obligatoire si le sélecteur de liste/volet est utilisé dans un carrousel.

elements

title Oui

1

400

actionDetail Non

Nécessaire uniquement pour la fonctionnalité du bouton d’action. Doit être « PREVIOUS _ OPTIONS » ou « SHOW _ MORE ».

replyMessage

title Oui

1

400

subtitle Non

0

400

Modèle de réponse rapide

Utilisez des messages de réponse rapide pour obtenir des réponses simples de la part des clients et les soumettre aux clients dans une liste intégrée. Vous pouvez proposer aux clients jusqu’à cinq options dans un message de réponse rapide. Les images ne sont pas prises en charge pour les réponses rapides.

L’image suivante montre un exemple de la façon dont le modèle de réponse rapide affiche des informations dans un chat.

Modèle de panneau affichant des informations dans un chat.

Le code suivant est le modèle de réponse rapide que vous pouvez utiliser dans votre fonction 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" } ] } } }

Limites de réponse rapide

Le tableau suivant répertorie les limites pour tous les éléments de réponse rapide. Utilisez ces informations si vous choisissez de créer votre propre fonction Lambda à partir de zéro. Les paramètres obligatoires sont affichés en gras.

Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence

templateType

Type de modèle valide

data

Oui

Version

Oui

Doit être « 1.0 »

content

Oui
title Oui

1

400

Devrait être une description pour les modèles sans invite

elements Oui

2 éléments

10 éléments

Il s’agit d’un tableau d’éléments, Minimum 2 éléments et maximum 10 éléments dans le tableau.

title Oui

1

200

Utilisez des carrousels pour présenter jusqu’à 5 sélecteurs de listes ou panneaux aux clients dans un même message. À l'instar du sélecteur de liste et du sélecteur de temps, vous pouvez ajouter d'autres options au carrousel en utilisant la fonction _. SHOW MORE

Vous trouverez ci-dessous GIF un exemple de la manière dont le modèle de carrousel affiche les informations dans un chat. Les clients font défiler le carrousel d’images à l’aide des flèches gauche et droite.

Carrousel dans l’expérience de chat d’un client.

L’image suivante montre deux liens hypertexte En savoir plus, qui sont des exemples d’éléments de liens hypertexte du sélecteur de carrousel.

Sélecteur de carrousel avec des liens hypertexte

Le code suivant est le modèle de carrousel que vous pouvez utiliser dans votre fonction 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" } ] } } } ] } } }

Pour les utilisateurs du widget de communication hébergé :

  • Les sélections du modèle de carrousel donnent lieu à une réponse JSON sous forme de chaîne structurée comme dans l'exemple suivant, à renvoyer à Lambda (les autres types de messages interactifs renvoient une réponse sous forme de chaîne normale avec uniquement une valeur) : selectionText

    { templateIdentifier: "template0", listTitle: "California", selectionText: "Book hotels" }
  • Dans les carrousels, vous pouvez fournir des liens hypertexte dans les éléments de sélecteur de liste/panneau. Pour créer un lien hypertexte à la place d’un bouton, incluez les champs supplémentaires suivants pour l’élément qui doit être un lien hypertexte :

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

Le tableau suivant répertorie les limites de tous les éléments de carrousel. Utilisez ces informations si vous choisissez de créer votre propre fonction Lambda à partir de zéro. Les paramètres obligatoires sont affichés en gras.

Champ parent Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence

templateType

Oui

Type de modèle valide

data

Oui

Version

Oui

Doit être « 1.0 »

data

content Oui

content

title Oui

1

400

Devrait être une description pour les modèles sans invite

elements Oui

2 éléments

5 éléments

Il s’agit d’un tableau de sélecteurs de listes ou de modèles de panneaux. Un seul type de message interactif est accepté par carrousel. Chaque élément doit inclure le champ templateIdentifierde niveau supérieur. 2 modèles au minimum et 5 modèles au maximum dans le tableau.

Note

Pour une expérience client optimale, nous recommandons que chaque modèle utilise de manière cohérente les images/le nombre d’éléments.

omitTitleFromCarouselResponse Non

Boolean - Répondez éventuellement par »SelectionText« au lieu de la valeur par défaut »PickerTitle: SelectionText".

carouselIsVertical Non

Booléen : affichez éventuellement les éléments Carousel avec un défilement vertical.

Modèle de formulaire Apple

Note

Ce modèle s'applique uniquement aux flux de contacts Apple Messages for Business.

Une entreprise peut envoyer un message interactif sous forme de formulaire à ses clients finaux par le biais d'un seul message contenant plusieurs pages de données demandées. Lorsque le message est reçu sur l'appareil Apple d'un client final, celui-ci peut ouvrir le formulaire et parcourir les pages, en fournissant une réponse pour chaque page, avant de soumettre toutes les réponses à la fin du formulaire.

Par exemple, les entreprises peuvent utiliser les formulaires Apple à diverses fins, notamment pour le tri des flux, les enquêtes auprès des clients et la création de comptes/inscriptions.

Avertissement

Le contenu des messages interactifs et les réponses des clients finaux sont stockés dans la transcription des enregistrements de contacts et peuvent être consultés par les autres participants au chat et les analystes des contacts ayant accès aux transcriptions. Pour éviter PII d'apparaître dans la transcription de votre dossier de contact une fois le contact terminé, vous devez utiliser le bloc Définir le comportement d'enregistrement et d'analyse dans votre flux de contact step-by-step guide, activer les lentilles de contact et activer la suppression des données sensibles. Pour plus de détails sur la façon d'activer la PII rédaction, voir Activer la rédaction de données sensibles.

Les types de pages pris en charge sont les suivants :

  • ListPicker: une liste d'options parmi lesquelles l'utilisateur doit sélectionner avec prise en charge des images.

  • WheelPicker: similaire ListPicker mais la sélection se fait via une molette d'options défilante.

  • DatePicker: une vue du calendrier où l'utilisateur peut choisir une date.

  • Saisie : champ de texte que l'utilisateur doit remplir.

Le code suivant est un exemple de modèle de formulaires Apple que vous pouvez utiliser dans votre Lambda.

Note
  • Le texte en gras est un paramètre obligatoire.

  • Dans certains cas, si l’élément parent existe dans la demande et qu’il n’est pas obligatoire/en gras, mais que les champs qu’il contient le sont, les champs sont obligatoires.

Exemple de formulaire de sondage simple :

{   "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         }       ]     }   } }

Limites relatives aux formulaires Apple

InteractiveMessage

Champ Type Obligatoire Descriptif/Remarques
version chaîne Oui Numéro de version Valeur autorisée : « 1,0 »
templateType TemplateType Oui Type de modèle de message interactif. Valeurs autorisées : [» ListPicker «," TimePicker «, « Panel », "QuickReply«, « Carousel », "ViewResource«," AppleForm«]
data InteractiveMessageData Oui Données de messages interactifs

InteractiveMessageData

Champ Type Obligatoire Descriptif/Remarques
content InteractiveMessageContent Oui Contenu du message interactif principal
replyMessage ReplyMessage Non Configuration de l'affichage des messages après l'envoi de la réponse à un message interactif

AppleFormContent

Champ Type Obligatoire Descriptif/Remarques
title Chaîne Oui Titre de haut niveau du formulaire. Affiché dans la bulle des messages de réception Apple et dans le rendu de la transcription
subtitle Chaîne Non Utilisé comme sous-titre dans ReceivedMessage
imageType Chaîne Non Valeurs valides : « URL » Utilisée pour l'image dans ReceivedMessage
imageData Chaîne Non URL de l'image S3 utilisée pour l'image dans ReceivedMessage
pages AppleFormPage[] Oui Liste des pages du formulaire
showSummary Booléen Non Afficher ou non une page récapitulative des réponses à examiner avant la soumission Par défaut : Faux (aucune page de confirmation/résumé)
splashPage AppleFormSplashPage Non Page de démarrage initiale à afficher avant les pages réelles Par défaut : Pas de page de démarrage

AppleFormSplashPage

Champ Type Obligatoire Descriptif/Remarques
title Chaîne Oui Titre de la page d'accueil
subtitle Chaîne Non Sous-titre/corps de la page d'accueil
imageType ImageType Non Présent lors de l'affichage de l'image dans la page de démarrage Valeur autorisée : URL « » Par défaut : aucune image affichée
imageData Chaîne Non Pour imageType = » URL «, il s'agit de la URL valeur Par défaut : aucune image affichée
buttonTitle Chaîne Oui Texte du bouton Continuer. Requis par Apple, texte par défaut dont la localisation n'est pas prise en charge

AppleFormPage

  • Modèle de base pour les pages de formulaires. Des types de pages spécifiques s'étendent à partir de ce modèle

Champ Type Obligatoire Descriptif/Remarques
pageType ApplePageType Oui Enum pour le type de page. Valeurs autorisées : ["Input », "DatePicker«," WheelPicker «," ListPicker «]
title Chaîne Oui Titre de la page
subtitle Chaîne Oui Sous-titre de page. Utilisé dans la page de confirmation

AppleFormDatePickerPage

AppleFormDatePickerPages'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
pageType ApplePageType Oui Valeur : « DatePicker »
labelText Chaîne Non Texte affiché à côté de la date saisie. Voir des exemples de captures d'écran en annexe
helperText Chaîne Non Texte d'aide affiché sous la date saisie. Voir des exemples de captures d'écran dans l'annexe Par défaut : aucun texte d'assistance
dateFormat Chaîne Non ISOFormat de date 8601. Par défaut : yyyy-MM-dd
startDate Chaîne Non Date initiale/par défaut sélectionnée dans un format de date valide Par défaut : Date actuelle pour l'utilisateur final lorsque le message est envoyé
minDate Chaîne Non Date minimale autorisée à être sélectionnée dans un format de date valide Par défaut : Aucune date minimale
maxDate Chaîne Non Date maximale autorisée à être sélectionnée dans un format de date valide Par défaut : Date actuelle pour l'utilisateur final lorsque le message est envoyé

AppleFormListPickerPage

AppleFormListPickerPages'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
pageType ApplePageType Oui Valeur : « ListPicker »
multiSelect Booléen Non Permet de sélectionner plusieurs éléments Par défaut : faux (sélection unique)
items AppleFormListPickerPageItem[] Oui Liste des éléments de la page de liste

AppleFormListPickerPageItem

AppleFormListPickerPageItems'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
title Chaîne Oui Afficher le texte de l'article
imageType ImageType Non Présent lors de l'affichage de l'image dans l'élément Valeur autorisée : URL « » Par défaut : aucune image affichée
imageData Chaîne Non Pour imageType = » URL «, il s'agit de la URL valeur Par défaut : aucune image affichée
Note

Modèle d'image similaire aux modèles de messages interactifs existants (ListPicker), sauf qu'imageDescriptionil n'est pas inclus, il est utilisé pour le texte alternatif de l'image dans les widgets de chat ou les discussions Web et ignoré pour les messages interactifs Apple.

AppleFormWheelPickerPage

AppleFormWheelPickerPages'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
pageType ApplePageType Oui Valeur : « WheelPicker »
items AppleFormWheelPickerPageItem[] Oui Liste des articles du sélecteur de roues
labelText Chaîne Non Texte affiché à côté de l'entrée. Voir des exemples de captures d'écran en annexe

AppleFormWheelPickerPageItem

AppleFormWheelPickerPageItems'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
title Chaîne Oui Afficher le texte de l'élément de sélection

AppleFormInputPage

AppleFormInputPages'étend AppleFormPage

Champ Type Obligatoire Descriptif/Remarques
pageType ApplePageType Oui Valeur : « Entrée »
labelText Chaîne Non Texte affiché à côté de la zone de saisie. Voir des exemples de captures d'écran en annexe
helperText Chaîne Non Texte supplémentaire affiché sous la zone de saisie Par défaut : aucun texte d'assistance
placeholderText Chaîne Non Texte de remplacement à afficher initialement en l'absence de saisie Par défaut : « (Facultatif) » ou « (Obligatoire) »
prefixText Chaîne Non Préfixe le texte à afficher à côté de l'entrée. Par exemple : « $ » lorsque l'entrée est une valeur monétaire Par défaut : aucun texte de préfixe
obligatoire Booléen Non Si l'utilisateur final est tenu de fournir une entrée Par défaut : false
multiLine Booléen Non Si une entrée multiligne peut être fournie Par défaut : false (ligne unique)
maxCharCount Nombre Non Nombre maximal de caractères en entrée. Appliqué sur le client Apple Par défaut : Aucune limite
regex Chaîne Non Chaîne regex pour placer des contraintes sur l'entrée fournie Par défaut : aucune contrainte regex
keyboardType Chaîne Non Détermine le type de clavier affiché lorsque l'utilisateur final fournit des valeurs autorisées en entrée : Identique à Apple. Voir les documents. Certaines des valeurs autorisées :numberPad,phonePad, emailAddress
textContentType Chaîne Non Facilite le remplissage automatique des suggestions sur les appareils Apple.  Valeurs autorisées : identiques à celles d'Apple. Voir les documents. Certaines des valeurs autorisées :telephoneNumber, fullStreetAddress, familyName

Modèle Apple Pay

Note

Ce modèle s'applique uniquement aux flux de contacts Apple Messages for Business.

Utilisez le modèle Apple Pay pour proposer aux clients un moyen simple et sécurisé d'acheter des biens et des services par le biais d'Apple Messages for Business avec Apple Pay.

Le code suivant est le modèle Apple Pay que vous pouvez utiliser dans votre Lambda :

Note
  • Le texte en gras est un paramètre obligatoire.

  • Dans certains cas, si l’élément parent existe dans la demande et qu’il n’est pas obligatoire/en gras, mais que les champs qu’il contient le sont, les champs sont obligatoires.

{   "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"     }   } }

Limites d'Apple Pay

Champ parent Champ Obligatoire Nombre minimal de caractères Nombre maximal de caractères Autre exigence
templateType Oui Type de modèle valide
data Oui
version Oui Doit être « 1.0 »
data content Oui
content title Oui 1 512 Le titre de la bulle de message reçue
subtitle Non 0 512 Sous-titre à afficher sous le titre de la bulle du message reçu
imageData Non 0 200 Doit être un document valide accessible au public URL
imageType Non 0 50 Doit être « URL »
paiement Oui Un dictionnaire contenant des champs donnant les détails d'une demande Apple Pay.
requestIdentifier Non Chaîne, identifiant de la ApplePay demande. Si ce n'est pas spécifié, un UUID sera généré et utilisé.
paiement points de terminaison Oui Un dictionnaire contenant les points de terminaison pour le traitement des paiements, les mises à jour des contacts et le suivi des commandes.
merchantSession Oui Un dictionnaire contenant la session de paiement fournie par Apple Pay après la demande d'une nouvelle session de paiement.
paymentRequest Oui Un dictionnaire contenant des informations sur la demande de paiement
points de terminaison paymentGatewayUrl Oui String. Appelé par Apple Pay pour traiter le paiement par l'intermédiaire du fournisseur de services de paiement. Le URL doit correspondre à celui URL indiqué dans le initiativeContext champ de la session du commerçant
fallbackUrl Non A URL qui s'ouvre dans un navigateur Web afin que le client puisse finaliser l'achat si son appareil ne parvient pas à effectuer des paiements avec Apple Pay. Si spécifié, fallbackUrl il doit correspondre paymentGatewayUrl.
orderTrackingUrl Non Appelé par Messages for Business après avoir terminé la commande ; vous permet de mettre à jour les informations de commande dans votre système.
paymentMethodUpdateURL Non Appelé par Apple Pay lorsque le client change de mode de paiement. Si vous n'implémentez pas ce point de terminaison et que vous incluez cette clé dans le dictionnaire, le client voit un message d'erreur.
shippingContactUpdateURL Non Appelé par Apple Pay lorsque le client modifie ses informations d'adresse de livraison. Si vous n'implémentez pas ce point de terminaison et que vous incluez cette clé dans le dictionnaire, le client voit un message d'erreur
shippingMethodUpdateURL Non Appelé par Apple Pay lorsque le client change de mode d'expédition. Si vous n'implémentez pas ce point de terminaison et que vous incluez cette clé dans le dictionnaire, le client voit un message d'erreur.
merchantSession displayName Oui 1 64 String. Le nom canonique de votre boutique, adapté à l'affichage. Ne localisez pas le nom.
initiative Oui String. Il doit s'agir d'un « message »
initiativeContext Oui String. Passez votre passerelle de paiementURL.
merchantIdentifier Oui String. Identifiant unique représentant un commerçant pour Apple Pay.
merchantSessionIdentifier Oui String. Identifiant unique qui représente la session d'un commerçant pour Apple Pay.
epochTimestamp Oui Chaîne. Représentation du temps en secondes écoulées depuis 00:00:00UTC, jeudi 1er janvier 1970.
expiresAt Oui String. Représentation de l'heure d'expiration en nombre de secondes écoulées depuis 00:00:00UTC, le jeudi 1er janvier 1970.
nonce Non Binaire. Chaîne à usage unique qui vérifie l'intégrité de l'interaction.
Signature Non Binaire. Un hachage de la clé publique utilisée pour signer les interactions.
signedFields Non La liste des chaînes contient les propriétés signées.
paymentRequest applePay Oui Un dictionnaire qui décrit la configuration d'Apple Pay.
countryCode Oui String. Le code de pays ISO 3166 à deux lettres du vendeur.
currencyCode Oui String. Le code de devise ISO 4217 à trois lettres pour le paiement.
lineItems Non Une série de rubriques expliquant les paiements et les frais supplémentaires. Les rubriques ne sont pas obligatoires. Cependant, le tableau ne peut pas être vide si la lineItems clé est présente.
total Oui Un dictionnaire contenant le total. Le montant total doit être supérieur à zéro pour réussir la validation.
requiredBillingContactChamps Non La liste des informations de facturation requises par le client pour traiter la transaction. Pour la liste des chaînes possibles, consultez la section requiredBillingContactChamps. N'exigez que les champs de contact nécessaires pour traiter le paiement. Le fait de demander des champs inutiles complique la transaction, ce qui peut augmenter les chances que le client annule la demande de paiement.
requiredShippingContactChamps Non La liste des informations de livraison ou de contact requises par le client pour exécuter la commande. Par exemple, si vous avez besoin de l'adresse e-mail ou du numéro de téléphone du client, incluez cette clé. Pour la liste des chaînes possibles, consultez la section requiredShippingContactChamps.
shippingMethods Non Tableau répertoriant les méthodes d'expédition disponibles. Le bulletin de paiement Apple Pay indique le premier mode d'expédition de la gamme comme mode d'expédition par défaut.
supportedCountries Non Toute une série de pays à soutenir. Répertoriez chaque pays avec son code de pays ISO 3166.
applePay merchantIdentifier Oui Identifiant unique représentant un commerçant pour Apple Pay.
merchantCapabilities Oui Une gamme de fonctionnalités de paiement prises en charge par le commerçant. La matrice doit inclure Supports3DS, et peut éventuellement inclure supportsCreditsupportsDebit, et supports. EMV
supportedNetworks Oui Un ensemble de réseaux de paiement pris en charge par le commerçant. Le tableau doit inclure une ou plusieurs des valeurs suivantes : amex, discover, jcb, masterCardprivateLabel, ou visa
lineItem amount Oui Le montant monétaire de l'article.
étiquette Oui Description courte et localisée de l'élément de ligne.
type Non Valeur qui indique si le poste est final ou en attente.
total amount Oui Le montant total du paiement.
étiquette Oui Description courte et localisée du paiement.
type Non Une valeur qui indique si le paiement est final ou en attente.
shippingMethods amount Oui String. Le coût non négatif associé à ce mode d'expédition.
detail Oui String. Description supplémentaire du mode d'expédition.
étiquette Oui String. Brève description de la méthode d'expédition.
identifiant Oui String. Une valeur définie par le client utilisée pour identifier ce mode d'expédition.

iMessage Modèle d'application

Note

Ce modèle s'applique uniquement aux flux de contacts Apple Messages for Business.

Utilisez le modèle iMessage Apps pour présenter au client votre iMessage application personnalisée.

Le code suivant est un exemple de modèle d' iMessage application que vous pouvez utiliser dans votre 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 Limites des applications

Champ parent Champ Obligatoire Type Autres notes
templateType Oui TemplateType Type de modèle valide, « AppleCustomInteractiveMessage »
data Oui InteractiveMessageData Contient du contenu et des receivedMessage dictionnaires
Version Oui chaîne Doit être « 1.0 »
data content Oui InteractiveMessageContent Contenu interactif de l' iMessage application
replyMessage Oui ReplyMessage Configuration de l'affichage des messages après l'envoi de la réponse à un message interactif
content appIconUrl Oui chaîne AWSS3 URL
appId Oui chaîne ID de IMessage l'application professionnelle
appName Oui chaîne Nom de IMessage l'application professionnelle
enchère Oui chaîne Offre IMessage pour applications professionnelles. Modèle : com.apple.messages. MSMessageExtensionBalloonPlugin: {identifiant d'équipe} : {} ext-bundle-id
dataUrl Oui chaîne Données transmises à l' iMessage application
useLiveLayout Non boolean Vrai par défaut
title Oui chaîne titre de la bulle de l'application iMessage
sous-titre Non chaîne sous-titre de la bulle de l'application iMessage
replyMessage title Non chaîne
sous-titre Non chaîne
imageType Non chaîne Doit être un document valide accessible au public URL
imageData Non chaîne Ne peut pas exister sans image

Vous pouvez ajouter une mise en forme enrichie aux titres et aux sous-titres de vos messages de chat. Par exemple, vous pouvez ajouter des liens, une mise en italique, une mise en gras, des listes numérotées et des listes à puces. Vous pouvez utiliser Markdown pour mettre en forme votre texte.

L’illustration suivante d’une boîte de chat montre un exemple de sélecteur de liste avec une mise en forme enrichie dans le titre et le sous-titre.

  • Le titre Comment pouvons-nous vous aider ? aws.amazon.com est en gras et contient un lien.

  • Le sous-titre contient du texte en italique et en gras, une liste à puces et une liste numérotée. Il affiche également un lien brut, un lien texte et un exemple de code.

  • La partie inférieure de la boîte de chat affiche trois éléments de sélecteur de liste.

Boîte de chat, titre avec un lien, sous-titre avec des listes et des liens.

Comment mettre en forme du texte avec Markdown

Vous pouvez écrire les chaînes de titre et de sous-titre dans un format multiligne ou sur une seule ligne avec des caractères `\r\n` de saut de ligne.

  • Format multiligne : l’exemple de code suivant montre comment créer des listes en Markdown dans un format multiligne.

    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: [ /* ... */ ] } } }
  • Format à une seule ligne : l’exemple suivant montre comment créer un sous-titre sur une seule ligne en utilisant des caractères `\r\n` de saut de ligne.

    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: [ /* ... */ ] } } }

L’exemple suivant montre comment mettre en forme du texte en italique et en gras avec Markdown :

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

L’exemple suivant montre comment mettre en forme du texte sous forme de code avec Markdown :

This is `<code />`

Comment mettre en forme des liens avec Markdown

Pour créer un lien, utilisez la syntaxe suivante :

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

Les exemples suivants montrent deux manières d’ajouter des liens avec Markdown :

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

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