Vai al contenuto principale

Introduzione

Questa sezione fornisce la documentazione ufficiale per utilizzare l’API di Lovi con WhatsApp tramite Postman. Include istruzioni dettagliate su come configurare e testare le richieste API per l’integrazione con WhatsApp, garantendo una comunicazione fluida attraverso la piattaforma. L’autenticazione viene effettuata utilizzando token che abilitano l’autenticazione di base per i servizi API. Per ulteriori dettagli su come autenticarsi, consulta la pagina Autenticazione. L’API di Lovi supporta le notifiche WhatsApp con contenuti multimediali, segnaposto dinamici, consegna programmata e integrazione con flussi di conversazione.

Funzionalità principali:

  • Notifiche WhatsApp con supporto multimediale
  • Personalizzazione dinamica dei contenuti con segnaposto
  • Consegna programmata dei messaggi con supporto fuso orario
  • Integrazione con flussi di conversazione
  • Due formati di struttura dati (annidata e piatta)

📣 Invia notifica WhatsApp

Per inviare una notifica tramite l’API di Lovi, effettua una richiesta POST all’endpoint con i parametri necessari e l’autenticazione.
Metodo: POST Formato: JSON

Endpoint

POST https://cloud.lovi.ai/functions/v1/notify?access_key={YOUR_ACCESS_KEY}

Parametri di query

ParametroObbligatorioDescrizione
access_keyLa tua chiave di accesso API unica.
unflattenNoSe impostato su true, il corpo deve contenere variabili piatte (nessun oggetto annidato). Se impostato su false o omesso, il corpo può contenere oggetti annidati.
URL di esempio:
POST https://cloud.lovi.ai/functions/v1/notify?access_key=your-api-key
POST https://cloud.lovi.ai/functions/v1/notify?access_key=your-api-key&unflatten=true
ChiaveValoreObbligatorioDescrizione
Content-Typeapplication/jsonIndica che il corpo della richiesta è in formato JSON.
Nota: L’autenticazione è gestita tramite il parametro access_key nell’URL, non tramite gli header.

📋 Parametri della richiesta

L’API supporta due formati di struttura dati controllati dal parametro unflatten.

Parametri obbligatori

ParametroTipoDescrizioneEsempio
contact O contactsObject O ArrayScegli uno: Singolo contatto (oggetto) O Contatti multipli (array, max 100)Vedi sotto
language_templateStringCodice lingua per il template"es_ES", "en_US"
name_templateStringNome del template approvato"welcome_user"
recipient_idStringID o numero di telefono del destinatario"34666033135"
notification_typeStringTipo per le analisi"marketing", "transactional", "utility"
campaign_nameStringNome identificativo della campagna"Black Friday 2024"
Importante: Devi usare contact (per singolo destinatario) O contacts (per destinatari multipli), ma NON entrambi.

Parametri opzionali

ParametroTipoDescrizioneQuando usarloEsempio
contact.nameStringNome del contatto per personalizzazionePer messaggi personalizzati"Juan Pérez"
contact.emailStringEmail del contattoPer dati aggiuntivi del contatto"juan@email.com"
name_eventStringEvento per attivare flussi di conversazioneQuando vuoi avviare un flusso specifico"intent-general-push"
datetime_sendingDateTimeOrario di consegna programmato (ISO 8601)Quando vuoi programmare il messaggio per dopo"2024-12-25T10:30:00"
timezoneStringFuso orario per la consegna programmataQuando usi datetime_sending"Europe/Madrid"
components_push.*MixedComponenti del template (testo, media)Quando il template richiede contenuto dinamicoVedi sezione componenti

👥 Singolo vs destinatari multipli

Usando contact - Invia a una persona

Usa contact quando vuoi inviare una notifica a un destinatario. Struttura:
{
  "contact": {
    "number": "34666033135",
    "name": "John",
    "email": "john@example.com"
  }
}
  • contact è un oggetto (non una lista)
  • Campo obbligatorio: number
  • Campi opzionali: name, email e qualsiasi campo personalizzato

Usando contacts - Invia a più persone (Invio massivo)

Usa contacts quando vuoi inviare la stessa notifica a più destinatari contemporaneamente. Struttura:
{
  "contacts": [
    {
      "number": "34666033135",
      "name": "John"
    },
    {
      "number": "34777044246",
      "name": "Sarah"
    },
    {
      "number": "34888055357",
      "name": "Michael"
    }
  ]
}
  • contacts è una lista/array (non un singolo oggetto)
  • Massimo: 100 contatti per richiesta
  • Ogni contatto nella lista deve avere un number
  • Campi opzionali: name, email e qualsiasi campo personalizzato
Restrizioni importanti:
  • ⚠️ Non è possibile usare unflatten=true con contacts - L’invio massivo funziona solo con struttura annidata
  • ⚠️ Non è possibile usare sia contact che contacts nella stessa richiesta - scegli uno
  • ⚠️ La lista contacts non può essere vuota - deve avere almeno 1 contatto

🔄 Formati della struttura dati

L’API supporta due formati basati sul parametro unflatten:

Struttura annidata (unflatten=false o omesso)

Quando unflatten=false o non specificato, usa oggetti annidati:
{
  "contact": {
    "number": "34666033135",
    "name": "Juan Pérez",
    "email": "juan@email.com"
  },
  "components_push": {
    "header_text_0": "Welcome Message",
    "body_text_0": "Hello {{name}}",
    "body_text_1": "Your order is ready!",
    "footer_text_0": "Support Team"
  },
  "language_template": "es_ES",
  "name_template": "order_ready",
  "recipient_id": "34666033135",
  "notification_type": "transactional",
  "campaign_name": "Order Notifications"
}

Struttura piatta (unflatten=true)

Quando unflatten=true, tutti gli oggetti annidati devono essere appiattiti usando la notazione con punto:
{
  "contact.number": "34666033135",
  "contact.name": "Juan Pérez",
  "contact.email": "juan@email.com",
  "components_push.header_text_0": "Welcome Message",
  "components_push.body_text_0": "Hello {{name}}",
  "components_push.body_text_1": "Your order is ready!",
  "components_push.footer_text_0": "Support Team",
  "language_template": "es_ES",
  "name_template": "order_ready",
  "recipient_id": "34666033135",
  "notification_type": "transactional",
  "campaign_name": "Order Notifications"
}

Quando usare ciascun formato

  • Struttura annidata (unflatten=false): Raccomandata per una migliore leggibilità e quando il tuo sistema supporta oggetti annidati
  • Struttura piatta (unflatten=true): Usa quando il tuo sistema non supporta oggetti annidati o richiede una struttura dati piatta

Per la documentazione completa su componenti e multimediali, variabili dei template, programmazione, codici di risposta, errori comuni e migliori pratiche, consulta le pagine dedicate:

📚 Documentazione correlata