Axivox Guia do utilizador
Voltar ao site

Pedido Odoo

Consulta o seu Odoo durante a chamada e guarda a resposta em variáveis: um estado de encomenda, um saldo, uma data de compromisso, para depois encaminhar.

Em resumo

SaídasOK e Erro
CamposInstância Odoo, Timeout, Modelo, Método, Args (JSON), Kwargs (JSON), e uma tabela de extrações Variável e Caminho JSON
Timeout proposto2, 3, 5 ou 8 s, 5 s por predefinição
Timeout realmente aplicado8 segundos no máximo
Método proposto na criaçãosearch_read
Disjuntor5 falhas consecutivas no mesmo servidor abrem o circuito durante 30 segundos
Ensaio antes de colocar em serviçobotão Testar, que consulta realmente o Odoo

O texto de ajuda mostrado na janela é: «Chama execute_kw(modelo, método, args, kwargs) no Odoo. args/kwargs = JSON com {{variaveis}} ({{caller_e164}} = formatos E.164 de quem liga). Extrai a resposta JSON para variáveis. Saída «Erro» se o Odoo falhar/exceder o timeout.»

Como funciona

É o módulo mais técnico do conjunto. Enquanto o Odoo, resolução de contacto responde a uma pergunta única e já pronta, este coloca qualquer pergunta ao Odoo. Em contrapartida, é preciso saber onde está a informação no Odoo.

Os quatro campos da pergunta

CampoO que éExemplo
Modeloo nome interno da tabela do Odoo consultadares.partner para os contactos
Métodoo que se pede a essa tabelasearch_read para procurar e depois ler
Args (JSON)os argumentos, na prática o filtro de procura[[["phone_sanitized","in","{{caller_e164}}"]]]
Kwargs (JSON)as opções nomeadas: que campos ler, quantas linhas{"fields":["name","user_id"],"limit":1}

O nome do modelo lê-se no Odoo, ativando o modo programador, ou pergunta-se a quem administra o Odoo. É o único ponto desta página que não se inventa.

JSON, numa frase

Args e Kwargs escrevem-se em JSON, um formato em que os parênteses retos [ ] delimitam uma lista, as chavetas { } um conjunto de campos nomeados, e onde todo o texto fica entre aspas retas. Uma vírgula esquecida ou uma chaveta por fechar bastam para a fazer falhar.

As variáveis na pergunta

Escreva {{minha_variavel}} em qualquer lugar dentro de Args ou Kwargs. Uma nuance útil: uma variável rodeada de aspas, como "{{caller_e164}}", é substituída pelo seu valor em formato JSON, aspas incluídas. Uma lista, portanto, continua a ser uma lista, o que permite escrever um filtro do tipo «o telefone está entre estas escritas».

A extração

A tabela de baixo associa um Caminho JSON a um nome de Variável. Os níveis separam-se por pontos; as listas contam-se a partir de zero. search_read responde uma lista, pelo que o caminho de um primeiro resultado começa por 0.: 0.name designa o nome do primeiro contacto encontrado.

Um caminho deixado vazio traz a resposta inteira. Isto é indispensável para os métodos que respondem um número ou uma palavra sem estrutura à volta, como uma contagem: sem isso a variável ficaria vazia e a condição que a testa seria sempre falsa.

O disjuntor

Tal como no Pedido de API, depois de 5 falhas consecutivas para o mesmo servidor, o módulo deixa de o chamar durante 30 segundos e utiliza a saída Erro de imediato, sem pedido. Um primeiro sucesso repõe o contador a zero.

O que preencher

CampoO que é esperadoSe o deixar vazio
Instância Odooo Odoo a consultar, entre os declarados em Integrações, OdooInstância predefinida, a instância de resolução declarada para a instalação
Timeouto prazo de espera, reduzido a 8 s no máximo na execução5 s
Modeloo nome do modelo Odoo, por exemplo res.partnera saída Erro é utilizada sem que nenhum pedido parta
Métodoo método a chamar, pré-preenchido com search_reada saída Erro é utilizada sem que nenhum pedido parta
Args (JSON)os argumentos, em JSON válidolista vazia
Kwargs (JSON)as opções nomeadas, em JSON válidonenhuma opção
Variável de uma extraçãoo nome sob o qual guardar o valor lidoa linha é ignorada
Caminho JSON de uma extraçãoo caminho até ao valor, por exemplo 0.namea resposta inteira é guardada na variável

Os botões da janela são Adicionar uma extração, Testar, Cancelar e Guardar.

Passo a passo

  1. Verifique que o Odoo está ligado, em Integrações, Odoo, e que a instância está ativa aí.
  2. Identifique no Odoo o modelo e os campos que carregam a informação pretendida. Peça ajuda a quem administra o Odoo se necessário.
  3. Coloque o módulo Pedido Odoo e ligue o nó anterior à sua entrada.
  4. Abra-o, escolha a Instância Odoo e regule o Timeout o mais curto possível: dois a três segundos, quem liga aguarda na linha.
  5. Indique o Modelo e o Método.
  6. Escreva os Args (JSON) e os Kwargs (JSON), limitando o número de linhas lidas com "limit":1 quando uma só baste.
  7. Clique em Adicionar uma extração e associe um Caminho JSON a um nome de Variável.
  8. Clique em Testar, indique as variáveis de ensaio, depois em Executar. Corrija até que o valor obtido seja o correto.
  9. Clique em Guardar, depois ligue OK à continuação e Erro a um recurso que trate a chamada sem o dado.
  10. Clique em Guardar, depois em Aplicar as alterações na faixa superior.
  11. Ligue para o número e verifique o encaminhamento, com a ajuda de um módulo Depuração que escreve as variáveis extraídas.

Se não funcionar

A saída Erro é utilizada de imediato, sem que nenhum pedido parta. Três causas. O Modelo ou o Método está vazio. A instância Odoo escolhida já não existe ou já não está ativa. Ou o disjuntor está aberto, depois de cinco falhas consecutivas, durante trinta segundos.

O pedido falha apesar de o JSON parecer correto. Tem de continuar válido depois de substituídas as variáveis, e é aí que ocorre a maioria dos erros. Clique em Testar: o ecrã mostra o pedido realmente enviado, args e kwargs depois da substituição. Para que uma variável seja substituída pelo seu valor JSON, rodeie-a de aspas: "{{caller_e164}}".

A variável extraída fica vazia apesar de a resposta conter o dado. O caminho não corresponde. search_read responde uma lista: comece por 0. para o primeiro elemento. Um método que responde apenas um número exige, pelo contrário, um caminho vazio. A coluna Valor obtido do ensaio assinala as extrações vazias.

O ensaio pede para confirmar antes de partir. O método pedido escreve no Odoo em vez de se limitar a ler. O ensaio executa-se realmente no Odoo de produção: só confirme se aceitar essa escrita.

A chamada é cortada quando o Odoo responde mal. A saída Erro não está ligada a nada. Este módulo não tem o recurso automático do módulo de resolução de contacto: ligue Erro, no mínimo ao atendimento habitual.

Como se constrói o plano de chamadas, explicado em imagens

Ver a página Planos de numeração