Axivox Gebruikershandleiding
Terug naar de site

Odoo-query

Bevraagt uw Odoo tijdens de oproep en slaat het antwoord op in variabelen: een bestelstatus, een saldo, een afspraakdatum, om vervolgens te routeren.

In het kort

UitgangenOK en Fout
VeldenOdoo-instantie, Timeout, Model, Methode, Args (JSON), Kwargs (JSON), en een tabel met extracties Variabele en JSON-pad
Voorgestelde timeout2, 3, 5 of 8 s, 5 s standaard
Werkelijk toegepaste timeoutmaximaal 8 seconden
Voorgestelde methode bij het aanmakensearch_read
Stroomonderbreker5 opeenvolgende mislukkingen op eenzelfde server openen het circuit gedurende 30 seconden
Test vóór ingebruiknameknop Testen, die uw Odoo daadwerkelijk bevraagt

De hulptekst die in het venster wordt getoond, is: « Roept execute_kw(model, methode, args, kwargs) aan op Odoo. args/kwargs = JSON met {{variabelen}} ({{caller_e164}} = E.164-formaten van de beller). Extraheert het JSON-antwoord naar variabelen. Uitgang « Fout » als Odoo mislukt/timeout. »

Hoe het werkt

Dit is de meest technische module van het stel. Waar Odoo, contactopzoeking een unieke, kant-en-klare vraag beantwoordt, stelt deze module eender welke vraag aan uw Odoo. In ruil daarvoor moet u weten waar de informatie zich in Odoo bevindt.

De vier velden van de vraag

VeldWat het isVoorbeeld
Modelde interne naam van de bevraagde Odoo-tabelres.partner voor de contacten
Methodewat u aan deze tabel vraagtsearch_read om te zoeken en dan te lezen
Args (JSON)de argumenten, in de praktijk het zoekfilter[[["phone_sanitized","in","{{caller_e164}}"]]]
Kwargs (JSON)de benoemde opties: welke velden te lezen, hoeveel rijen{"fields":["name","user_id"],"limit":1}

De naam van het model wordt afgelezen in Odoo, door de ontwikkelaarsmodus te activeren, of wordt gevraagd aan de persoon die uw Odoo beheert. Dit is het enige punt op deze pagina dat u niet kunt verzinnen.

JSON, in één zin

Args en Kwargs worden in JSON geschreven, een formaat waarin de vierkante haken [ ] een lijst afbakenen, de accolades { } een geheel van benoemde velden, en waarin alle tekst tussen rechte aanhalingstekens staat. Een vergeten komma of een niet-gesloten accolade volstaat om het verzoek te doen mislukken.

De variabelen in de vraag

Schrijf {{mijn_variabele}} eender waar in Args of Kwargs. Een nuttige nuance: een variabele tussen aanhalingstekens, zoals "{{caller_e164}}", wordt vervangen door haar waarde in JSON-formaat, aanhalingstekens inbegrepen. Een lijst blijft dus een lijst, wat toelaat een filter te schrijven van het type « de telefoon staat tussen deze schrijfwijzen ».

De extractie

De tabel onderaan koppelt een JSON-pad aan een naam van Variabele. De niveaus worden door punten gescheiden; de lijsten worden vanaf nul geteld. search_read antwoordt met een lijst, dus het pad van een eerste resultaat begint met 0.: 0.name duidt de naam van het eerste gevonden contact aan.

Een leeg gelaten pad geeft het volledige antwoord terug. Dit is onmisbaar voor methoden die een getal of een woord zonder structuur eromheen beantwoorden, zoals een telling: zonder dit zou de variabele leeg blijven en zou de conditie die ze test altijd onwaar zijn.

De stroomonderbreker

Net als bij het API-verzoek, stopt de module na 5 opeenvolgende mislukkingen naar dezelfde server hem gedurende 30 seconden te bevragen en neemt onmiddellijk de uitgang Fout, zonder verzoek. Een eerste succes zet de teller terug op nul.

Wat u moet invullen

VeldWat wordt verwachtAls u het leeg laat
Odoo-instantiede te bevragen Odoo, uit degene die zijn opgegeven in Integraties, OdooStandaardinstantie, de resolutie-instantie die voor uw installatie is opgegeven
Timeoutde wachttijd, teruggebracht tot maximaal 8 s bij uitvoering5 s
Modelde naam van het Odoo-model, bijvoorbeeld res.partnerde uitgang Fout wordt genomen zonder dat er enig verzoek vertrekt
Methodede aan te roepen methode, vooraf ingevuld met search_readde uitgang Fout wordt genomen zonder dat er enig verzoek vertrekt
Args (JSON)de argumenten, in geldige JSONlege lijst
Kwargs (JSON)de benoemde opties, in geldige JSONgeen enkele optie
Variabele van een extractiede naam waaronder de gelezen waarde wordt opgeslagende rij wordt genegeerd
JSON-pad van een extractiehet pad naar de waarde, bijvoorbeeld 0.namehet volledige antwoord wordt in de variabele opgeslagen

De knoppen van het venster zijn Een extractie toevoegen, Testen, Annuleren en Opslaan.

Stap voor stap

  1. Controleer dat uw Odoo is gekoppeld, in Integraties, Odoo, en dat de instantie er actief is.
  2. Identificeer in Odoo het model en de velden die de gewenste informatie dragen. Laat u indien nodig helpen door de persoon die uw Odoo beheert.
  3. Plaats de module Odoo-query en verbind de vorige node met haar ingang.
  4. Open hem, kies de Odoo-instantie en stel de Timeout zo kort mogelijk in: twee à drie seconden, de beller wacht in de lijn.
  5. Voer het Model en de Methode in.
  6. Schrijf de Args (JSON) en de Kwargs (JSON), door het aantal gelezen rijen te beperken met "limit":1 wanneer één enkele volstaat.
  7. Klik op Een extractie toevoegen en koppel een JSON-pad aan een naam van Variabele.
  8. Klik op Testen, vul de testvariabelen in, en dan op Starten. Corrigeer tot de verkregen waarde de juiste is.
  9. Klik op Opslaan, en verbind dan OK met het vervolg en Fout met een terugvalpositie die de oproep zonder het gegeven afhandelt.
  10. Klik op Opslaan, en dan op Wijzigingen toepassen in de bovenste balk.
  11. Bel uw nummer en controleer de routering, met behulp van een module Debug die de geëxtraheerde variabelen schrijft.

Als het niet werkt

De uitgang Fout wordt onmiddellijk genomen, zonder dat er enig verzoek vertrekt. Drie oorzaken. Het Model of de Methode is leeg. De gekozen Odoo-instantie bestaat niet meer of is niet meer actief. Of de stroomonderbreker is open, na vijf opeenvolgende mislukkingen, voor dertig seconden.

Het verzoek mislukt terwijl de JSON me correct lijkt. Ze moet geldig blijven nadat de variabelen zijn vervangen, en daar treden de meeste fouten op. Klik op Testen: het scherm toont het werkelijk verzonden verzoek, args en kwargs na vervanging. Opdat een variabele door haar JSON-waarde zou worden vervangen, omkader ze met aanhalingstekens: "{{caller_e164}}".

De geëxtraheerde variabele blijft leeg terwijl het antwoord het gegeven bevat. Het pad komt niet overeen. search_read antwoordt met een lijst: begin met 0. voor het eerste element. Een methode die enkel een getal beantwoordt, vereist daarentegen een leeg pad. De kolom Verkregen waarde van de test meldt de lege extracties.

De test vraagt me om te bevestigen voordat hij vertrekt. De gevraagde methode schrijft in Odoo in plaats van enkel te lezen. De test wordt daadwerkelijk uitgevoerd op uw productie-Odoo: bevestig enkel als u deze schrijfactie aanvaardt.

De oproep wordt verbroken wanneer Odoo verkeerd antwoordt. De uitgang Fout is nergens mee verbonden. Deze module heeft niet de automatische terugval van de module contactopzoeking: verbind Fout, minstens met het gebruikelijke onthaal.

Hoe het belplan wordt opgebouwd, uitgelegd in beelden

Bekijk de pagina Belplannen