Modelli di messaggi

Per aprire conversazioni di marketing, utility e autenticazione, è necessario un modello di messaggio. Queste conversazioni possono essere messaggi di assistenza clienti o promemoria di appuntamenti, aggiornamenti di pagamenti o spedizioni, avvisi e altro ancora.

Requisiti

  • Un modello di messaggio deve essere approvato prima di poter essere utilizzato per aprire una conversazione. Ulteriori informazioni.
  • Per aprire conversazioni di marketing, utility e autenticazione con un cliente, quest'ultimo deve aver fornito il consenso esplicito alla ricezione di messaggi dalla tua azienda. Ulteriori informazioni.

Categorie di modelli supportate

Consulta Categorie.

Traduzioni

Quando invii un modello di messaggio, devi specificare la lingua utilizzando il campo language. La tua azienda è responsabile di tutte le traduzioni che desideri utilizzare.

Lingue supportate

Lingue supportate

Di seguito sono riportate le lingue supportate per i modelli di messaggio.

LinguaCodice

Afrikaans

af

Albanese

sq

Arabo

ar

Azero

az

Bengalese

bn

Bulgaro

bg

Catalano

ca

Cinese (CHN)

zh_CN

Cinese (HKG)

zh_HK

Cinese (TAI)

zh_TW

Croato

hr

Ceco

cs

Danese

da

Olandese

nl

Inglese

en

Inglese (Regno Unito)

en_GB

Inglese (Stati Uniti)

en_US

Estone

et

Filippino

fil

Finlandese

fi

Francese

fr

Tedesco

de

Greco

el

Gujarati

gu

Hausa

ha

Ebraico

he

Hindi

hi

Ungherese

hu

Indonesiano

id

Irlandese

ga

Italiano

it

Giapponese

ja

Kannada

kn

Kazako

kk

Coreano

ko

Lao

lo

Lettone

lv

Lituano

lt

Macedone

mk

Malese

ms

Malayalam

ml

Marathi

mr

Norvegese

nb

Persiano

fa

Polacco

pl

Portoghese (Brasile)

pt_BR

Portoghese (Portogallo)

pt_PT

Punjabi

pa

Rumeno

ro

Russo

ru

Serbo

sr

Slovacco

sk

Sloveno

sl

Spagnolo

es

Spagnolo (Argentina)

es_AR

Spagnolo (Spagna)

es_ES

Spagnolo (Messico)

es_MX

Swahili

sw

Svedese

sv

Tamil

ta

Telugu

te

Tailandese

th

Turco

tr

Ucraino

uk

Urdu

ur

Uzbeco

uz

Vietnamita

vi

Zulu

zu

Pacchetti linguistici

I modelli di messaggi vengono memorizzati nei pacchetti linguistici. Un pacchetto linguistico è un bundle di elementi del modello di messaggio per una lingua specifica. Se un'azienda supporta almeno una traduzione in una data lingua, viene creato un pacchetto corrispondente.

Uno spazio dei nomi di un modello di messaggio è un bundle di pacchetti linguistici per un'azienda specifica.

Opzioni del criterio di lingua

Se un modello di messaggio viene inviato con il campo language: policy impostato su deterministic, come valore predefinito, WhatsApp consegna il modello di messaggio esattamente nella lingua richiesta. In seguito, il dispositivo interroga il server per il pacchetto linguistico di quella lingua specifica.

Quando questo messaggio viene consegnato al dispositivo, quest'ultimo esegue le seguenti azioni:

  • Controllo criterio/codice: considerati "policy": "deterministic" e "code": "en", nella cache del dispositivo è salvato un pacchetto en?
    • Se sì, passa al Controllo elemento
    • Se no, il pacchetto en è presente sul server?
      • Se sì, aggiorna la cache locale e passa al Controllo elemento.
      • Se no, registra l'errore, il server restituisce l'errore structure_unavailable tramite un webhook e sul dispositivo non viene visualizzato alcun messaggio.

  • Controllo elemento: l'elemento "element": "hello_world" esiste?
    • Se sì, decomprimi i parametri e visualizza il messaggio sul dispositivo.
    • Se no:
      • Se il pacchetto linguistico proviene dalla cache locale, scarica l'ultima versione del pacchetto en dal server e ripeti il Controllo elemento.
      • Se il pacchetto linguistico è stato recentemente scaricato dal server, registra l'errore, il server restituisce l'errore structure_unavailable tramite un webhook e sul dispositivo non viene visualizzato alcun messaggio.

Le impostazioni di lingua del dispositivo vengono completamente ignorate.

Un problema che può sorgere quando si usa il criterio deterministic è se ciò che richiedi non esiste. Verifica i seguenti elementi:

  • Lo spazio dei nomi è corretto.
  • Il nome dell'elemento è corretto.
  • Esiste una traduzione nella lingua per quell'elemento.
  • Il numero di parametri inviati corrisponde a quello specificato nel modello di messaggio.

Localizzazione

I modelli di messaggi forniscono un supporto di localizzazione pronto all'uso localizzando il messaggio in base alle impostazioni internazionali del dispositivo.

Parametri localizzabili

I modelli hanno parametri che vengono incorporati dinamicamente nel messaggio. Per l'esempio utilizzato in questo documento, il modello di messaggio è simile al seguente:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

Per "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" con "element_name": "purchase_with_credit_card", il primo valore indicato sostituisce la variabile {{1}} nel modello di messaggio, mentre il secondo valore sostituisce la variabile {{2}}.

Il numero di parametri passati nel payload deve corrispondere al numero di parametri nell'oggetto template. In caso contrario, ricevi una callback che ti informa che si è verificato un problema durante la visualizzazione del modello di messaggio.

Alcuni di questi parametri (ad es. date_time o currency) sono localizzabili così da essere visualizzati in modo appropriato in base alla lingua e alle relative preferenze del cliente. Se il dispositivo non riesce a localizzare un parametro, per impostazione predefinita viene usato il fallback_value.

Se, oltre al fallback_value, devi specificare la valuta e la data, utilizza gli oggetti currency e date_time. In questo modo il client localizzerà questi dati nel modo migliore possibile e userà il fallback_value per impostazione predefinita solo quando non sarà possibile localizzare i dati.

Le opzioni localizable_params sono mostrate nella tabella sottostante:

Parametri

NomeDescrizione

fallback_value

tipo: stringa

Obbligatorio.

Testo predefinito se la localizzazione non va a buon fine. Tutti i parametri di localizzazione devono avere un valore di fallback. Quando si specifica il testo, è obbligatorio solo il valore di fallback.

currency

tipo: oggetto currency

Facoltativo.

Se viene usato l'oggetto currency, questo contiene i parametri obbligatori currency_code e amount_1000.

date_time

tipo: oggetto date_time

Facoltativo.

Se viene usato l'oggetto date_time, è richiesta un'ulteriore definizione della data e dell'ora. Vedi l'esempio seguente per due delle opzioni.

Oggetto currency

Il client dell'API di WhatsApp Business tenta di formattare la valuta in base alla localizzazione specificata.

NomeDescrizione

currency_code

tipo: stringa

Obbligatorio.

Codice valuta come definito in ISO 4217.

amount_1000

tipo: intero

Obbligatorio.

Importo moltiplicato per 1000.

Esempio

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

Oggetto date_time

Il client dell'API di Whatsapp Business tenta di formattare data/ora in base alla localizzazione specificata. I formati di data e ora supportati includono:

  • Ora componente: l'ora è ricavata dai componenti (ad es., giorno della settimana, mese, ora, ecc.) L'ora specificata sarà la stessa, indipendentemente dal fuso orario del client.
  • Tempo Unix: l'ora da visualizzare dipende dal fuso orario del client.

DateTime

NomeDescrizione

component

tipo: DateTimeComponent

Obbligatorio se unix_epoch non è presente.

Data/ora per componente.

unix_epoch

tipo: DateTimeUnixEpoch

Obbligatorio se component non è presente.

Data/ora per Unix epoch.

Almeno uno dei seguenti campi deve essere presente: component o unix_epoch. In caso di utilizzo, può essere presente solo uno dei due.

DateTimeComponent

NomeDescrizione

day_of_week

tipo: stringa

Facoltativo.

Se diverso dal valore derivato dalla data (se specificata), usa il valore derivato. Sono accettati sia stringhe che numeri.
Opzioni:"MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY", 7

year

tipo: intero

Facoltativo.

L'anno.

month

tipo: intero

Facoltativo.

Il mese.

day_of_month

tipo: intero

Facoltativo.

Il giorno del mese.

hour

tipo: intero

Facoltativo.

L'ora.

minute

tipo: intero

Facoltativo.

Il minuto.

calendar

tipo: stringa

Facoltativo.

Tipo di calendario.
Opzioni:GREGORIAN, SOLAR_HIJRI

Esempio

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

DateTimeUnixEpoch sarà dichiarato obsoleto. DateTimeComponent sarà l'impostazione predefinita da quel momento in poi. Apporta le modifiche al codice per evitare problemi.

NomeDescrizione

timestamp

tipo: intero

Obbligatorio.

Indicazione temporale epoch in secondi. Questo campo sarà dichiarato obsoleto.

Passaggi successivi

Questo documento contiene informazioni di riferimento sui modelli di messaggi. Per indicazioni su come creare e inviare un modello, consulta Invio di modelli di messaggi. Per tutti i parametri utilizzabili in un modello di messaggio, consulta Messaggi, Modello di messaggio.

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager