Axivox Guida utente
Torna al sito

Richiesta Odoo

Interroga il vostro Odoo durante la chiamata e mette la risposta in variabili: uno stato d'ordine, un saldo, una data di appuntamento, per instradare di conseguenza.

In breve

UsciteOK e Errore
CampiIstanza Odoo, Timeout, Modello, Metodo, Args (JSON), Kwargs (JSON), e un elenco di estrazioni Variabile e Percorso JSON
Timeout proposto2, 3, 5 o 8 s, 5 s di default
Timeout realmente applicato8 secondi al massimo
Metodo proposto alla creazionesearch_read
Interruttore5 fallimenti consecutivi sullo stesso server aprono il circuito per 30 secondi
Prova prima della messa in serviziopulsante Test, che interroga realmente il vostro Odoo

Il testo di aiuto mostrato nella finestra è: « Chiama execute_kw(modello, metodo, args, kwargs) su Odoo. args/kwargs = JSON con {{variable}} ({{caller_e164}} = formati E.164 del chiamante). Estrae la risposta JSON in variabili. Uscita « Errore » se Odoo fallisce/va in timeout. »

Come funziona

È il modulo più tecnico del gruppo. Laddove Odoo, risoluzione contatto risponde a una domanda unica e già pronta, questo pone qualsiasi domanda al vostro Odoo. In cambio, occorre sapere dove si trova l'informazione in Odoo.

I quattro campi della domanda

CampoCos'èEsempio
Modelloil nome interno della tabella Odoo interrogatares.partner per i contatti
Metodociò che chiedete a questa tabellasearch_read per cercare e poi leggere
Args (JSON)gli argomenti, in pratica il filtro di ricerca[[["phone_sanitized","in","{{caller_e164}}"]]]
Kwargs (JSON)le opzioni nominate: quali campi leggere, quante righe{"fields":["name","user_id"],"limit":1}

Il nome del modello si legge in Odoo, attivando la modalità sviluppatore, oppure si chiede alla persona che amministra il vostro Odoo. È l'unico punto di questa pagina che non si può inventare.

JSON, in una frase

Args e Kwargs si scrivono in JSON, un formato in cui le parentesi quadre [ ] delimitano una lista, le parentesi graffe { } un insieme di campi nominati, e dove ogni testo è tra virgolette diritte. Una virgola dimenticata o una parentesi graffa non richiusa bastano a far fallire la richiesta.

Le variabili nella domanda

Scrivete {{mia_variabile}} ovunque in Args o Kwargs. Una sfumatura utile: una variabile racchiusa tra virgolette, come "{{caller_e164}}", viene sostituita dal suo valore in formato JSON, virgolette comprese. Una lista resta quindi una lista, il che permette di scrivere un filtro del tipo « il telefono è tra queste scritture ».

L'estrazione

La tabella in basso associa un Percorso JSON a un nome di Variabile. I livelli si separano con punti; le liste si contano a partire da zero. search_read risponde con una lista, quindi il percorso di un primo risultato inizia con 0.: 0.name indica il nome del primo contatto trovato.

Un percorso lasciato vuoto riporta la risposta intera. È indispensabile per i metodi che rispondono con un numero o una parola senza struttura intorno, come un conteggio: senza questo la variabile resterebbe vuota e la condizione che la verifica sarebbe sempre falsa.

L'interruttore

Come per la Richiesta API, dopo 5 fallimenti consecutivi verso lo stesso server, il modulo smette di chiamarlo per 30 secondi e prende l'uscita Errore immediatamente, senza richiesta. Un primo successo azzera il contatore.

Cosa inserire

CampoCosa è previstoSe lo lasciate vuoto
Istanza Odool'Odoo da interrogare, tra quelli dichiarati in Integrazioni, OdooIstanza predefinita, l'istanza di risoluzione dichiarata per la vostra installazione
Timeoutil tempo di attesa, ridotto a 8 s al massimo in esecuzione5 s
Modelloil nome del modello Odoo, ad esempio res.partnerl'uscita Errore viene presa senza che parta alcuna richiesta
Metodoil metodo da chiamare, precompilato con search_readl'uscita Errore viene presa senza che parta alcuna richiesta
Args (JSON)gli argomenti, in JSON validolista vuota
Kwargs (JSON)le opzioni nominate, in JSON validonessuna opzione
Variabile di un'estrazioneil nome sotto cui mettere il valore lettola riga viene ignorata
Percorso JSON di un'estrazioneil percorso verso il valore, ad esempio 0.namela risposta intera viene messa nella variabile

I pulsanti della finestra sono Aggiungi un'estrazione, Test, Annulla e Salva.

Procedura

  1. Verificate che il vostro Odoo sia collegato, in Integrazioni, Odoo, e che l'istanza vi sia attiva.
  2. Individuate in Odoo il modello e i campi che portano l'informazione voluta. Fatevi aiutare dalla persona che amministra il vostro Odoo se necessario.
  3. Posizionate il modulo Richiesta Odoo e collegate il nodo precedente al suo ingresso.
  4. Apritelo, scegliete l'Istanza Odoo e impostate il Timeout al più breve possibile: due o tre secondi, il chiamante attende in linea.
  5. Inserite il Modello e il Metodo.
  6. Scrivete gli Args (JSON) e i Kwargs (JSON), limitando il numero di righe lette con "limit":1 quando una sola basta.
  7. Cliccate su Aggiungi un'estrazione e associate un Percorso JSON a un nome di Variabile.
  8. Cliccate su Test, compilate le variabili di prova, poi cliccate su Avvia. Correggete finché il valore ottenuto è quello giusto.
  9. Cliccate su Salva, poi collegate OK al seguito e Errore a un ripiego che gestisce la chiamata senza il dato.
  10. Cliccate su Salva, poi su Applica le modifiche nella barra superiore.
  11. Chiamate il vostro numero e verificate l'instradamento, aiutandovi con un modulo Debug che scrive le variabili estratte.

Se non funziona

L'uscita Errore viene presa immediatamente, senza che parta alcuna richiesta. Tre cause. Il Modello o il Metodo è vuoto. L'istanza Odoo scelta non esiste più o non è più attiva. Oppure l'interruttore è aperto, dopo cinque fallimenti consecutivi, per trenta secondi.

La richiesta fallisce mentre il JSON mi sembra corretto. Deve restare valido una volta sostituite le variabili, ed è lì che si producono la maggior parte degli errori. Cliccate su Test: lo schermo mostra la richiesta realmente inviata, args e kwargs dopo la sostituzione. Perché una variabile venga sostituita dal suo valore JSON, racchiudetela tra virgolette: "{{caller_e164}}".

La variabile estratta resta vuota mentre la risposta contiene il dato. Il percorso non corrisponde. search_read risponde con una lista: iniziate con 0. per il primo elemento. Un metodo che risponde con un numero singolo, al contrario, richiede un percorso vuoto. La colonna Valore ottenuto della prova segnala le estrazioni vuote.

La prova mi chiede di confermare prima di partire. Il metodo richiesto scrive in Odoo invece di limitarsi a leggere. La prova viene eseguita realmente sul vostro Odoo di produzione: confermate solo se accettate questa scrittura.

La chiamata si interrompe quando Odoo risponde male. L'uscita Errore non è collegata a nulla. Questo modulo non ha il ripiego automatico del modulo di risoluzione contatto: collegate Errore, come minimo verso l'accoglienza abituale.

Come si costruisce il piano di chiamata, spiegato con le immagini

Vedi la pagina Piani di numerazione