Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiungi messaggi interattivi Amazon Lex per i clienti in chat
I messaggi interattivi sono messaggi complessi che presentano un prompt e opzioni di visualizzazione rapide e preconfigurate tra cui il cliente può scegliere. Questi messaggi sono alimentati da Amazon Lex e configurati tramite Amazon Lex utilizzando una funzione Lambda.
Suggerimento
Se hai effettuato l'integrazione con Apple Messages for Business, consulta Tipi di messaggi interattivi
Limiti di convalida
I limiti dei campi di stringa (ad esempio, titolo, sottotitolo, ecc.) dovrebbero essere applicati dal client (ad esempio, un'interfaccia personalizzata o il widget di comunicazione ospitato). SendMessageAPIVerifica solo che la dimensione totale della stringa sia inferiore a 20 KB.
-
Quando si utilizza il widget di comunicazione ospitato senza personalizzarlo, se la stringa supera i limiti di campo, viene troncata nell'interfaccia utente e viene aggiunta un'ellissi (...). È possibile determinare come applicare i limiti dei campi personalizzando il widget.
-
Se effettui l'integrazione con altre piattaforme (come Apple Messages for Business), consulta i limiti in questo argomento per Amazon Connect e consulta i limiti nella documentazione per l'altra piattaforma. Ad esempio, le risposte rapide non sono supportate nelle versioni precedenti di iOS.
È necessario rispettare tutti gli altri limiti di campo affinché il messaggio venga inviato correttamente.
Modelli di visualizzazione dei messaggi
Amazon Connect fornisce i seguenti modelli di visualizzazione dei messaggi da utilizzare per fornire informazioni ai clienti in una chat:
Questi modelli definiscono come verranno visualizzate le informazioni e quali informazioni verranno visualizzate nell'interfaccia di chat. Quando i messaggi interattivi vengono inviati tramite chat, i flussi convalidano che il formato del messaggio segua uno di questi modelli.
Modello di selezione di elenchi
Utilizza il modello di selezione degli elenchi per presentare al cliente un elenco con un massimo di sei scelte. Ogni scelta può avere una propria immagine.
Le immagini seguenti mostrano due esempi di come il modello di selezione degli elenchi visualizza le informazioni in una chat.
-
Un'immagine mostra tre pulsanti, ognuno con il nome di un frutto nel testo: mela, arancia, banana.
-
La seconda immagine mostra l'immagine di un negozio e poi, sotto di essa, tre pulsanti, ognuno con il nome, l'immagine e il prezzo del frutto.
Il codice seguente è il modello di selezione degli elenchi che puoi usare nella tua Lambda. Tieni presente quanto segue:
-
Il testo in grassetto è un parametro obbligatorio.
-
In alcuni casi, se l'elemento principale è presente nella richiesta e non è obbligatorio/in grassetto, ma i campi in esso contenuti lo sono, allora i campi sono obbligatori. Ad esempio, vedi la struttura
data.replyMessage
nel modello seguente. Se la struttura esiste, il titolo è obbligatorio. Altrimenti il completamento direplyMessage
è facoltativo.
{ "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" } ] }
Limiti del selettore di elenchi
La tabella seguente elenca i limiti per ciascuno degli elementi del selettore di elenchi, se scegli di creare la Lambda da zero. I parametri obbligatori sono in grassetto.
Per inviare opzioni illimitate, implementa i pulsanti di azione nell'applicazione. Per ulteriori informazioni, consulta Implementazione dei pulsanti di azione nel selettore/pannello interattivo dell'elenco dei messaggi
Campo principale | Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|---|
templateType |
Sì |
Tipo di modello valido |
|||
dati |
Sì |
||||
versione |
Sì |
Deve essere "1.0" |
|||
dati |
contenuto | Sì | |||
replyMessage | No | ||||
contenuto |
titolo | Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
elementi | Sì | 1 elemento |
10 elementi |
Questo è un array di elementi. Massimo 10 elementi nell'array. Per inviare un numero illimitato di elementi, utilizza la funzionalità dei pulsanti di azione. |
|
Sottotitolo | No | 0 |
400 |
||
imageType | No | 0 |
50 |
Deve essere "» URL |
|
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL |
|
imageDescription | No | 0 |
50 |
||
referenceId | No |
|
Stringa. Necessario solo per la funzionalità del pulsante di azione. |
||
listId | No |
|
Stringa. Necessario solo per la funzionalità del pulsante di azione. |
||
preIndex | No |
|
Numero. Necessario solo per la funzionalità del pulsante di azione. |
||
nextIndex | No |
|
Numero. Necessario solo per la funzionalità del pulsante di azione. |
||
templateIdentifier | No |
|
Numero. Dovrebbe essere unUUID. Questo campo è obbligatorio se Selettore/Pannello elenchi viene utilizzato in un Carosello. |
||
elementi |
titolo | Sì | 1 |
400 |
|
Sottotitolo | No | 0 |
400 |
||
imageType | No | 0 |
50 |
Deve essere "URL» |
|
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL |
|
imageDescription | No | 0 |
50 |
Non può esistere senza un'immagine |
|
actionDetail | No |
|
|
Necessario solo per la funzionalità del pulsante di azione. Deve essere "PREVIOUS_OPTIONS" o "SHOW_MORE». |
|
replyMessage |
titolo | Sì | 1 |
400 |
|
Sottotitolo | No | 0 |
400 |
||
imageType | No | 0 |
50 |
Deve essere "URL» |
|
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL |
|
imageDescription | No | 0 |
50 |
Non può esistere senza un'immagine |
Modello Selettore orario
Il modello Selettore orario è utile per consentire ai clienti di fissare appuntamenti. Puoi fornire fino a 40 fasce orarie al cliente in una chat.
Le immagini seguenti mostrano due esempi di come il modello Selettore tempo visualizza le informazioni in una chat.
-
Un'immagine mostra una data e, al di sotto di essa, una fascia oraria.
-
La seconda immagine mostra una data e, al di sotto di essa, due fasce orarie.
L'immagine seguente mostra il selettore orario con un'immagine
Nota
Se utilizzi questo modello di messaggio con il canale Apple Messages for Business e non aggiungi un'immagine, Amazon Connect aggiungerà un'immagine predefinita sia nel messaggio di risposta che in quello di risposta.
Il codice seguente è il modello di selezione del tempo che puoi usare nella tua Lambda. Tieni presente quanto segue:
-
Il testo in grassetto è un parametro obbligatorio.
-
In alcuni casi, se l'elemento principale è presente nella richiesta e non è obbligatorio/in grassetto, ma i campi in esso contenuti lo sono, allora i campi sono obbligatori. Ad esempio, vedi la struttura
data.replyMessage
nel modello seguente. Se la struttura esiste, il titolo è obbligatorio. Altrimenti il completamento direplyMessage
è facoltativo.
{ "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, } ], } } } }
Limiti del selettore di orario
La tabella seguente elenca i limiti per ciascuno degli elementi del selettore di orario. Usa queste informazioni se scegli di creare la Lambda da zero. I parametri obbligatori sono in grassetto.
Campo principale | Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|---|
templateType |
Sì |
Tipo di modello valido |
|||
dati |
Sì |
||||
versione |
Sì |
Deve essere "1.0" |
|||
dati |
replyMessage | No | |||
contenuto | Sì | ||||
replyMessage |
titolo |
Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
Sottotitolo | No | 0 |
400 |
||
imageType | No | 0 |
50 |
Deve essere "» URL | |
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL | |
imageDescription | No | 0 |
50 |
Non può esistere senza un'immagine | |
contenuto |
titolo |
Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
Sottotitolo | No | 0 |
200 |
||
imageType | No | 0 |
50 |
Deve essere "URL» | |
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL | |
imageDescription | No | 0 |
50 |
Non può esistere senza un'immagine | |
offset del fuso orario | No | -720 |
840 |
Questo è un campo opzionale quando non è impostato. Il nostro client di esempio utilizza per impostazione predefinita il fuso orario dell'utente. Se impostato, viene visualizzato in base al fuso orario inserito. Il campo deve essere un numero intero che rappresenta il numero di minuti trascorsiGMT, specificando il fuso orario del luogo dell'evento. |
|
posizione | No | ||||
fasce orarie | Sì | 1 |
40 |
Questo è un array di fasce orarie. Massimo 40 elementi nell'array. |
|
posizione |
longitudine | Sì | -180 |
180 |
Deve essere doppia |
latitudine | Sì | -90 |
90 |
Deve essere doppia |
|
titolo | Sì | 1 |
400 |
||
raggio |
No | 0 |
200 |
||
fasce orarie |
data | Sì |
|
Dovrebbe essere nel formato orario ISO -8601: .MM+00.00 YYYY-MM-DDTHH Per esempio: "2020-08-14T21:21+00.00" |
|
durata | Sì | 1 |
3600 |
Modello di pannello
Utilizzando il modello di pannello, è possibile presentare al cliente fino a 10 scelte con una sola domanda. Tuttavia, è possibile includere solo un'immagine, anziché un'immagine per ogni scelta.
L'immagine seguente mostra un esempio di come il modello di pannello visualizza le informazioni in una chat. Mostra un'immagine nella parte superiore del messaggio e sotto l'immagine mostra un messaggio di prompt che chiede Come posso d'aiuto? Tocca per selezionare l'opzione. Al cliente vengono visualizzate tre opzioni: Controlla le opzioni self-service, Parla con un agente, Termina la chat.
Il codice seguente è il modello di pannello che puoi usare nella Lambda. Tieni presente quanto segue:
-
Il testo in grassetto è un parametro obbligatorio.
-
In alcuni casi, se l'elemento principale è presente nella richiesta e non è obbligatorio/in grassetto, ma i campi in esso contenuti lo sono, allora i campi sono obbligatori. Ad esempio, vedi la struttura
data.replyMessage
nel modello seguente. Se la struttura esiste, il titolo è obbligatorio. Altrimenti, il completamento direplyMessage
è facoltativo.
{ "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", } ] } } }
Limiti del pannello
La tabella seguente elenca i limiti per ciascuno degli elementi del pannello, se scegli di creare la Lambda da zero. I parametri obbligatori sono in grassetto.
Per inviare opzioni illimitate, implementa i pulsanti di azione nell'applicazione. Per ulteriori informazioni, consulta Implementazione dei pulsanti di azione nel selettore/pannello interattivo dell'elenco dei messaggi
Campo principale | Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|---|
templateType |
Sì |
Tipo di modello valido |
|||
dati |
Sì |
||||
versione |
Sì |
Deve essere "1.0" |
|||
dati |
replyMessage | No | |||
contenuto | Sì | ||||
contenuto |
titolo | Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
Sottotitolo | No | 0 |
400 |
||
elementi | Sì | 1 elemento |
10 elementi |
Questo è un array di elementi. Massimo 10 elementi nell'array. |
|
imageType | No | 0 |
50 |
Deve essere "» URL |
|
imageData | No | 0 |
200 |
Deve essere un documento valido e accessibile al pubblico URL |
|
imageDescription | No | 0 |
50 |
Non può esistere senza un'immagine |
|
referenceId | No |
|
Stringa. Necessario solo per la funzionalità del pulsante di azione. |
||
listId | No |
|
Stringa. Necessario solo per la funzionalità del pulsante di azione. |
||
preIndex | No |
|
Numero. Necessario solo per la funzionalità del pulsante di azione. |
||
nextIndex | No |
|
Numero. Necessario solo per la funzionalità del pulsante di azione. |
||
templateIdentifier | No |
|
Numero. Dovrebbe essere unUUID. Questo campo è obbligatorio se Selettore/Pannello elenchi viene utilizzato in un Carosello. |
||
elementi |
titolo | Sì | 1 |
400 |
|
actionDetail | No |
|
|
Necessario solo per la funzionalità del pulsante di azione. Deve essere "PREVIOUS_OPTIONS" o "SHOW_MORE». |
|
replyMessage |
titolo | Sì | 1 |
400 |
|
Sottotitolo | No | 0 |
400 |
Modello di risposta rapida
Utilizza i messaggi di risposta rapida per ottenere risposte semplici dai clienti e per i clienti in un elenco in linea. È possibile presentare ai clienti fino a 5 opzioni in un unico messaggio di risposta rapida. Le immagini non sono supportate per le risposte rapide.
L'immagine seguente mostra un esempio di come il modello di risposta rapida visualizza le informazioni in una chat.
Il codice seguente è il modello di risposta rapida che è possibile usare nella 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" } ] } } }
Limiti di risposta rapida
La tabella seguente elenca i limiti per ciascuno degli elementi di risposta rapida. Usa queste informazioni se scegli di creare la Lambda da zero. I parametri obbligatori sono in grassetto.
Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|
templateType |
Tipo di modello valido |
|||
dati |
Sì |
|||
versione |
Sì |
Deve essere "1.0" |
||
contenuto |
Sì | |||
titolo | Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
elementi | Sì | 2 elementi |
10 elementi |
Questo è un array di elementi. Minimo 2 elementi e massimo 10 elementi nell'array. |
titolo | Sì | 1 |
200 |
Modello di carosello
Usa i caroselli per mostrare ai clienti fino a 5 selettori o pannelli di elenchi in un unico messaggio. Analogamente al selettore elenco e al selettore orario, puoi aggiungere altre opzioni al carosello utilizzando la funzione _. SHOW MORE
Di seguito GIF viene mostrato un esempio di come il modello di carosello visualizza le informazioni in una chat. I clienti scorrono il carosello di immagini utilizzando le frecce sinistra e destra.
L'immagine seguente mostra due collegamenti ipertestuali Ulteriori informazioni, che sono esempi di elementi di collegamento ipertestuale del selettore a carosello.
Il codice seguente è il modello di carosello che è possibile usare nella 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" } ] } } } ] } } }
Per gli utenti del widget di comunicazione ospitato:
-
Le selezioni sul modello carousel generano una risposta di JSON stringa strutturata come nell'esempio seguente, da inviare a Lambda (altri tipi di messaggi interattivi restituiscono una risposta di stringa normale con solo valore):
selectionText
{ templateIdentifier: "template0", listTitle: "California", selectionText: "Book hotels" }
-
Nei caroselli, è possibile fornire collegamenti ipertestuali negli elementi del selettore/pannello di elenchi. Per creare un collegamento ipertestuale anziché un pulsante, includi i seguenti campi aggiuntivi per l'elemento che dovrebbe essere un collegamento ipertestuale:
{ title: "Book flights", ... type: "hyperlink", url: "https://www.example.com/Flights" }
Limiti del carosello
Nella tabella seguente sono elencati i limiti per ciascuno degli elementi del carosello. Usa queste informazioni se scegli di creare la Lambda da zero. I parametri obbligatori sono in grassetto.
Campo principale | Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|---|
templateType |
Sì |
Tipo di modello valido |
|||
dati |
Sì |
||||
versione |
Sì |
Deve essere "1.0" |
|||
dati |
contenuto | Sì | |||
contenuto |
titolo | Sì | 1 |
400 |
Dovrebbe essere una descrizione per i modelli immediati |
elementi | Sì | 2 elementi |
5 elementi |
Questa è un array di modelli di selettori o pannelli di elenchi. È accettato un solo tipo di messaggio interattivo per carosello. Ogni elemento deve includere il campo di primo livello. templateIdentifier Minimo 2 modelli e massimo 5 modelli nell'array. NotaPer la migliore esperienza del cliente, è consigliabile che ogni modello abbia un uso coerente di immagini/numero di elementi. |
|
omitTitleFromCarouselResponse | No |
Boolean: facoltativamente rispondi con» |
|||
carouselIsVertical | No |
Boolean: visualizza facoltativamente gli elementi |
Modello di modulo Apple
Nota
Questo modello è applicabile solo ai flussi di contatti di Apple Messages for Business.
Un'azienda può inviare un messaggio interattivo basato su un modulo ai propri clienti finali tramite un unico messaggio, contenente più pagine con gli input richiesti. Quando il messaggio viene ricevuto sul dispositivo Apple del cliente finale, quest'ultimo può aprire il modulo e navigare tra le pagine, fornendo una risposta per ogni pagina, prima di inviare tutte le risposte alla fine del modulo.
Ad esempio, le aziende possono utilizzare i moduli Apple per vari scopi, tra cui flussi di valutazione, sondaggi tra i clienti e creazione/registrazione di account.
avvertimento
Il contenuto interattivo dei messaggi e le risposte dei clienti finali vengono archiviati nella trascrizione dei record di contatto e sono visualizzabili dagli altri partecipanti alla chat e dagli analisti di contatto che hanno accesso alle trascrizioni. Per PII evitare che compaia nella trascrizione del record di contatto una volta terminato il contatto, ti consigliamo di utilizzare il blocco Imposta comportamento di registrazione e analisi nel flusso di contatti step-by-step guida, abilitare le lenti a contatto e abilitare la redazione dei dati sensibili. Per tutti i dettagli su come abilitare la PII redazione, consulta Abilitare la redazione dei dati sensibili.
I tipi di pagine supportati sono:
-
ListPicker: un elenco di opzioni tra cui l'utente deve selezionare con il supporto delle immagini.
-
WheelPicker: simile a ListPicker ma la selezione viene effettuata tramite una rotellina di opzioni scorrevole.
-
DatePicker: una visualizzazione del calendario in cui l'utente può scegliere una data.
-
Input: un campo di testo che l'utente deve compilare.
Il codice seguente è un esempio di modello di moduli Apple che puoi usare in Lambda.
Nota
-
Il testo in grassetto è un parametro obbligatorio.
-
In alcuni casi, se l'elemento principale è presente nella richiesta e non è obbligatorio/in grassetto, ma i campi in esso contenuti lo sono, allora i campi sono obbligatori.
Semplice esempio di modulo di sondaggio:
{ "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 } ] } } }
Limiti dei moduli Apple
InteractiveMessage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
version | string | Sì | Numero di versione. Valore consentito: «1.0" |
templateType | TemplateType | Sì | Tipo di modello di messaggio interattivo. Valori consentiti: [» ListPicker «," TimePicker «, «Panel», "QuickReply«, «Carousel», "ViewResource«," AppleForm«] |
dati | InteractiveMessageData | Sì | Dati interattivi dei messaggi |
InteractiveMessageData
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
contenuto | InteractiveMessageContent | Sì | Contenuto principale del messaggio interattivo |
replyMessage | ReplyMessage | No | Configurazione della visualizzazione dei messaggi dopo l'invio della risposta al messaggio interattivo |
AppleFormContent
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
titolo | Stringa | Sì | Titolo di primo livello del modulo. Visualizzato nel rendering della bolla e della trascrizione dei messaggi di ricezione di Apple |
Sottotitolo | Stringa | No | Utilizzato come sottotitolo in ReceivedMessage |
imageType | Stringa | No | Valori validi: "URL" Utilizzato per l'immagine in ReceivedMessage |
imageData | Stringa | No | URL dell'immagine S3 Usato per l'immagine in ReceivedMessage |
pages | AppleFormPage[] | Sì | Elenco delle pagine del modulo |
showSummary | Boolean | No | Indica se visualizzare una pagina di riepilogo delle risposte da esaminare prima dell'invio. Impostazione predefinita: False (nessuna pagina di conferma/riepilogo) |
splashPage | AppleFormSplashPage | No | Pagina iniziale iniziale da visualizzare prima delle pagine effettive Impostazione predefinita: nessuna pagina iniziale |
AppleFormSplashPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
titolo | Stringa | Sì | Titolo della splash page |
Sottotitolo | Stringa | No | Sottotitolo/corpo della splash page |
imageType | ImageType | No | Presente quando si visualizza l'immagine nella pagina iniziale Valore consentito: "URL" Predefinito: nessuna immagine visualizzata |
imageData | Stringa | No | Per imageType =» URL «, questo è il URL valore Predefinito: Nessuna immagine visualizzata |
buttonTitle | Stringa | Sì | Testo del pulsante Continua. Richiesto da Apple, testo predefinito con localizzazione non supportato |
AppleFormPage
-
Modello base per le pagine dei moduli. A partire da questo modello si estendono tipi di pagina specifici
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
pageType | ApplePageType | Sì | Enum per tipo di pagina. Valori consentiti: ["Input», "DatePickerWheelPicker«," ListPicker «] |
titolo | Stringa | Sì | Titolo pagina |
Sottotitolo | Stringa | Sì | Sottotitolo della pagina. Utilizzato nella pagina di conferma |
AppleFormDatePickerPage
AppleFormDatePickerPageestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
pageType | ApplePageType | Sì | Valore: "DatePicker» |
labelText | Stringa | No | Testo visualizzato accanto alla data inserita. Vedi schermate di esempio nell'Appendice |
helperText | Stringa | No | Testo di supporto visualizzato sotto l'immissione della data. Vedi schermate di esempio in Appendice Default: Nessun testo di supporto |
dateFormat | Stringa | No | ISOFormato data 8601. Valore predefinito: yyyy-MM-dd |
startDate | Stringa | No | Data selezionata iniziale/predefinita in formato di data valido Predefinito: data corrente per l'utente finale al momento dell'invio del messaggio |
minDate | Stringa | No | La data minima può essere selezionata in un formato di data valido Predefinito: Nessun valore minimo |
maxDate | Stringa | No | Data massima che può essere selezionata in un formato di data valido Predefinito: Data corrente per l'utente finale al momento dell'invio del messaggio |
AppleFormListPickerPage
AppleFormListPickerPageestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
pageType | ApplePageType | Sì | Valore: "ListPicker» |
multiSelect | Boolean | No | Consente la selezione di più elementi Predefinito: false (selezione singola) |
items | AppleFormListPickerPageItem[] | Sì | Elenco degli elementi della pagina di elenco |
AppleFormListPickerPageItem
AppleFormListPickerPageItemestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
titolo | Stringa | Sì | Visualizza il testo dell'articolo |
imageType | ImageType | No | Presente quando si visualizza l'immagine all'interno dell'elemento Valore consentito: URL "" Predefinito: Nessuna immagine visualizzata |
imageData | Stringa | No | Per imageType =» URL «, questo è il URL valore Predefinito: Nessuna immagine visualizzata |
Nota
Modello di immagine simile ai modelli di messaggi interattivi esistenti (ListPicker), con l'eccezione imageDescription
di «non incluso», che viene utilizzato per il testo alternativo delle immagini nei widget di chat o nelle chat web e ignorato per i messaggi interattivi Apple.
AppleFormWheelPickerPage
AppleFormWheelPickerPageestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
pageType | ApplePageType | Sì | Valore: "WheelPicker» |
items | AppleFormWheelPickerPageItem[] | Sì | Elenco degli articoli di Wheel Picker |
labelText | Stringa | No | Testo visualizzato accanto all'input. Vedi schermate di esempio nell'Appendice |
AppleFormWheelPickerPageItem
AppleFormWheelPickerPageItemestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
titolo | Stringa | Sì | Visualizza il testo dell'elemento del selettore |
AppleFormInputPage
AppleFormInputPageestende AppleFormPage
Campo | Tipo | Richiesto | Descrizione/Note |
---|---|---|---|
pageType | ApplePageType | Sì | Valore: «Input» |
labelText | Stringa | No | Testo visualizzato accanto alla casella di immissione. Vedi schermate di esempio nell'Appendice |
helperText | Stringa | No | Testo aggiuntivo visualizzato nella casella di immissione Predefinito: nessun testo di supporto |
placeholderText | Stringa | No | Testo segnaposto da visualizzare inizialmente in assenza di input. Impostazione predefinita: testo segnaposto «(Facoltativo)» o «(Obbligatorio)» |
prefixText | Stringa | No | Testo del prefisso da visualizzare accanto all'input. Es: '$' quando l'input è un valore monetario Predefinito: nessun testo di prefisso |
obbligatorio | Boolean | No | Se l'utente finale è tenuto a fornire l'input Predefinito: false |
multiLine | Boolean | No | Se è possibile fornire un input multilinea Predefinito: false (riga singola) |
maxCharCount | Numero | No | Numero massimo di caratteri in ingresso. Applicato sul client Apple. Impostazione predefinita: nessun limite |
regex | Stringa | No | Stringa regex per inserire vincoli sull'input fornito Predefinito: nessun vincolo regex |
keyboardType | Stringa | No | Determina il tipo di tastiera visualizzata quando l'utente finale fornisce l'input Valori consentiti: come Apple. Vedi i documenti. |
textContentType | Stringa | No | Aiuta con i suggerimenti di compilazione automatica sui dispositivi Apple. Valori consentiti: uguali a quelli di Apple. Vedi i documenti. |
Modello Apple Pay
Nota
Questo modello è applicabile solo ai flussi di contatti di Apple Messages for Business.
Usa il modello Apple Pay per offrire ai clienti un modo semplice e sicuro per acquistare beni e servizi tramite Apple Messages for Business con Apple Pay.
Il codice seguente è il modello di Apple Pay che puoi usare in Lambda:
Nota
-
Il testo in grassetto è un parametro obbligatorio.
-
In alcuni casi, se l'elemento principale è presente nella richiesta e non è obbligatorio/in grassetto, ma i campi in esso contenuti lo sono, allora i campi sono obbligatori.
{ "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" } } }
Limiti di Apple Pay
Campo principale | Campo | Richiesto | Caratteri minimi | Caratteri massimi | Altro requisito |
---|---|---|---|---|---|
templateType | Sì | Tipo di modello valido | |||
dati | Sì | ||||
version | Sì | Deve essere "1.0" | |||
dati | contenuto | Sì | |||
contenuto | titolo | Sì | 1 | 512 | Il titolo della bolla dei messaggi ricevuti |
Sottotitolo | No | 0 | 512 | Sottotitolo da visualizzare sotto il titolo della bolla del messaggio ricevuto | |
imageData | No | 0 | 200 | Deve essere un documento valido e accessibile al pubblico URL | |
imageType | No | 0 | 50 | Deve essere "URL» | |
pagamento | Sì | Un dizionario contenente i campi che forniscono le specifiche di una richiesta Apple Pay. | |||
requestIdentifier | No | String, un identificatore per la ApplePay richiesta. Se non specificato, UUID verrà generato e utilizzato un. | |||
pagamento | endpoint | Sì | Un dizionario contenente gli endpoint per l'elaborazione dei pagamenti, gli aggiornamenti dei contatti e il tracciamento degli ordini. | ||
merchantSession | Sì | Un dizionario contenente la sessione di pagamento fornita da Apple Pay dopo aver richiesto una nuova sessione di pagamento. | |||
paymentRequest | Sì | Un dizionario con informazioni sulla richiesta di pagamento | |||
endpoint | paymentGatewayUrl | Sì | Stringa. Chiamato da Apple Pay per elaborare il pagamento tramite il gestore dei pagamenti. URLDeve corrispondere URL a quello nel initiativeContext campo della sessione commerciale | ||
fallbackUrl | No | A URL che si apre in un browser Web in modo che il cliente possa completare l'acquisto se il suo dispositivo non è in grado di effettuare pagamenti tramite Apple Pay. Se specificato, fallbackUrl deve corrispondere paymentGatewayUrl. | |||
orderTrackingUrl | No | Chiamato da Messages for Business dopo aver completato l'ordine; ti offre l'opportunità di aggiornare le informazioni sull'ordine nel tuo sistema. | |||
paymentMethodUpdateUrl | No | Chiamato da Apple Pay quando il cliente cambia il metodo di pagamento. Se non implementi questo endpoint e includi questa chiave nel dizionario, il cliente visualizza un messaggio di errore. | |||
shippingContactUpdateUrl | No | Chiamato da Apple Pay quando il cliente modifica le informazioni sull'indirizzo di spedizione. Se non implementi questo endpoint e includi questa chiave nel dizionario, il cliente visualizza un messaggio di errore | |||
shippingMethodUpdateUrl | No | Chiamato da Apple Pay quando il cliente cambia il metodo di spedizione. Se non implementi questo endpoint e includi questa chiave nel dizionario, il cliente visualizza un messaggio di errore. | |||
merchantSession | displayName | Sì | 1 | 64 | Stringa. Il nome canonico del tuo negozio, adatto alla visualizzazione. Non localizzare il nome. |
iniziativa | Sì | Stringa. Deve essere «messaggistica» | |||
initiativeContext | Sì | Stringa. Supera il tuo gateway di pagamentoURL. | |||
merchantIdentifier | Sì | Stringa. Un identificativo univoco che rappresenta un commerciante di Apple Pay. | |||
merchantSessionIdentifier | Sì | Stringa. Un identificatore univoco che rappresenta la sessione di un commerciante per Apple Pay. | |||
epochTimestamp | Sì | String.La rappresentazione del tempo in numero di secondi trascorsi dalle 00:00:00 UTC di giovedì 1 gennaio 1970. | |||
expiresAt | Sì | Stringa. Rappresentazione dell'ora di scadenza in numero di secondi trascorsi dalle 00:00:00 di giovedì 1 gennaio 1970. UTC | |||
nonce | No | Binario. Una stringa monouso che verifica l'integrità dell'interazione. | |||
signature | No | Binario. Un hash della chiave pubblica utilizzata per firmare le interazioni. | |||
signedFields | No | L'elenco di stringhe contiene le proprietà firmate. | |||
paymentRequest | applePay | Sì | Un dizionario che descrive la configurazione di Apple Pay. | ||
countryCode | Sì | Stringa. Il prefisso internazionale ISO 3166 a due lettere del venditore. | |||
currencyCode | Sì | Stringa. Il codice valuta ISO 4217 a tre lettere per il pagamento. | |||
lineItems | No | Una serie di voci che spiegano i pagamenti e i costi aggiuntivi. Le voci non sono obbligatorie. Tuttavia, l'array non può essere vuoto se la lineItems chiave è presente. | |||
total | Sì | Un dizionario contenente il totale. L'importo totale deve essere maggiore di zero per superare la convalida. | |||
requiredBillingContactCampi | No | L'elenco delle informazioni di fatturazione richieste dal cliente necessarie per elaborare la transazione. Per l'elenco delle stringhe possibili, consulta requiredBillingContact Fields. |
|||
requiredShippingContactCampi | No | L'elenco delle informazioni di spedizione o di contatto richieste al cliente per evadere l'ordine. Ad esempio, se hai bisogno dell'e-mail o del numero di telefono del cliente, includi questa chiave. Per l'elenco delle stringhe possibili, vedi requiredShippingContactFields |
|||
shippingMethods | No | Un array che elenca i metodi di spedizione disponibili. Il foglio di pagamento Apple Pay mostra il primo metodo di spedizione dell'array come metodo di spedizione predefinito. | |||
supportedCountries | No | Una serie di paesi da supportare. Elenca ogni paese con il suo prefisso ISO 3166. | |||
applePay | merchantIdentifier | Sì | Un identificatore univoco che rappresenta un commerciante per Apple Pay. | ||
merchantCapabilities | Sì | Una serie di funzionalità di pagamento supportate dal venditore. L'array deve includere Supports3DS e può facoltativamente includere supportsCredit e supporta. supportsDebit EMV | |||
supportedNetworks | Sì | Una serie di reti di pagamento supportate dal commerciante. L'array deve includere uno o più dei seguenti valori: amex, discover, jcb,, masterCard o visa privateLabel | |||
lineItem | amount | Sì | L'importo monetario della voce. | ||
etichetta | Sì | Una breve descrizione localizzata dell'elemento della riga. | |||
tipo | No | Un valore che indica se l'elemento della riga è finale o in sospeso. | |||
total | amount | Sì | L'importo totale del pagamento. | ||
etichetta | Sì | Una breve descrizione localizzata del pagamento. | |||
tipo | No | Un valore che indica se il pagamento è definitivo o in sospeso. | |||
shippingMethods | amount | Sì | Stringa. Il costo non negativo associato a questo metodo di spedizione. | ||
detail (dettaglio) | Sì | Stringa. Descrizione aggiuntiva del metodo di spedizione. | |||
etichetta | Sì | Stringa. Una breve descrizione del metodo di spedizione. | |||
identificatore | Sì | Stringa. Un valore definito dal cliente utilizzato per identificare questo metodo di spedizione. |
iMessage Modello di app
Nota
Questo modello è applicabile solo ai flussi di contatti di Apple Messages for Business.
Utilizza il modello iMessage Apps per presentare al cliente la tua iMessage app personalizzata.
Il codice seguente è un esempio di modello di iMessage app che puoi usare nella tua 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 Limiti delle app
Campo principale | Campo | Campo obbligatorio | Tipo | Altre note |
---|---|---|---|---|
templateType | Sì | TemplateType | Tipo di modello valido, "AppleCustomInteractiveMessage» | |
dati | Sì | InteractiveMessageData | Contiene contenuti e receivedMessage dizionari | |
versione | Sì | string | Deve essere "1.0" | |
dati | contenuto | Sì | InteractiveMessageContent | Contenuto interattivo dell'app iMessage |
replyMessage | Sì | ReplyMessage | Configurazione della visualizzazione dei messaggi dopo l'invio della risposta al messaggio interattivo | |
contenuto | appIconUrl | Sì | string | AWSS3 URL |
appId | Sì | string | ID IMessage app aziendale | |
appName | Sì | string | Nome IMessage dell'app aziendale | |
offerta | Sì | string | Offerta IMessage per app aziendali. Modello: com.apple.messages. MSMessageExtensionBalloonPlugin: {team-id}: {} ext-bundle-id | |
dataUrl | Sì | string | Dati che vengono passati all'app iMessage | |
useLiveLayout | No | booleano | Impostazione predefinita True | |
titolo | Sì | string | titolo della bolla dell'app Imessage | |
sottotitolo | No | string | sottotitolo della bolla dell'app Imessage | |
replyMessage | titolo | No | string | |
sottotitolo | No | string | ||
imageType | No | string | Deve essere un documento valido e accessibile al pubblico URL | |
imageData | No | string | Non può esistere senza un'immagine |
Formattazione avanzata di titoli e sottotitoli
È possibile aggiungere una formattazione avanzata ai titoli e ai sottotitoli dei messaggi di chat. Ad esempio, è possibile aggiungere collegamenti, corsivo, grassetto, elenchi numerati ed elenchi puntati. È possibile utilizzare markdown
L'immagine seguente di una finestra di chat mostra un esempio di selettore di elenchi con una formattazione avanzata nel titolo e nei sottotitolo.
-
Il titolo Come posso essere di aiuto? aws.amazon.com è in grassetto e contiene un collegamento.
-
Il sottotitolo contiene testo in corsivo e grassetto, un elenco puntato e un elenco numerato. Mostra anche un collegamento semplice, un collegamento testuale e un codice di esempio.
-
La parte inferiore della casella di chat mostra tre elementi del selettore di elenchi.
Come formattare il testo con markdown
È possibile scrivere stringhe di titoli e sottotitoli in un formato a più righe o in una singola riga con `\r\n`
caratteri di interruzione di riga.
-
Formato a più righe: il seguente esempio di codice mostra come creare elenchi in markdown in un formato a più righe.
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 a riga singola: l'esempio seguente mostra come creare un sottotitolo in una singola riga utilizzando
`\r\n`
caratteri di interruzione di riga.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'esempio seguente mostra come formattare il corsivo e il grassetto con markdown:
This is some *emphasized text* and some **strongly emphasized
text**
L'esempio seguente mostra come formattare il testo come codice con markdown:
This is `<code />`
Come formattare i collegamenti con markdown
Per creare un collegamento, utilizza la sintassi seguente:
[aws](https://aws.amazon.com)
Gli esempi seguenti mostrano due modi per aggiungere collegamenti con markdown:
Questions? Visit https://plainlink.com/faq
[This is a link](https://aws.amazon.com)