Odoo

action_odoo_rpc · action · Utility · Available · v1.0.0

Description

Connettore enterprise per Odoo Community ed Enterprise (versioni 14, 15, 16, 17, 18) via protocollo XML-RPC nativo sugli endpoint /xmlrpc/2/common e /xmlrpc/2/object. Cinque operazioni atomiche coprono il ciclo CRUD completo: search_read leggi record con domain filter (SELECT con WHERE Odoo-style), create per inserire una nuova istanza di un modello (INSERT), write per aggiornare record esistenti (UPDATE), unlink per la cancellazione logica (DELETE rispettando i record rules), call_method per invocare qualsiasi metodo Python esposto dal modello (action_confirm, message_post, action_invoice_create, ecc.). Tutte le chiamate transitano sempre attraverso l'ORM Odoo: rispettano i record rules per-utente, le ACL, i validatori server-side (api.constrains), le compute fields, gli automated actions e popolano il chatter + audit log Odoo come se l'azione fosse fatta da un utente reale dell'interfaccia web. NESSUNA esecuzione SQL diretta sul Postgres backend: zero rischio di bypass di sicurezza o corruzione di dati derivati. Cache automatica dell'uid di sessione per ridurre i due roundtrip authenticate iniziali al primo call (TTL 15 minuti, invalidata su 401). Supporta API Key Odoo 14+ raccomandata in produzione (bypass 2FA, revocabile, non scade). Use case: sincronizzazione contatti tra form web e res.partner Odoo, creazione automatica di lead CRM da email PEC dello studio commercialista, aggiornamento stato fattura account.move via call_method action_post, lookup anagrafica fiscale partita IVA per matching cliente nella pipeline di onboarding, batch reporting estraendo report Qweb in PDF per controllo di gestione mensile.

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
baseUrl
URL Odoo (https://)
stringyes
https://mio-odoo.example.it
URL base della tua istanza Odoo. https:// obbligatorio in produzione. Senza /web, senza /xmlrpc — il nodo aggiunge automaticamente i path.
database
Nome database
stringyes
odoo_studiocommercialista
Database name (database_show=False richiede di inserirlo a mano). Se vedi solo un db, e` quello che ti appare nella URL dopo /web?db=...
login
Utente Odoo
stringyes
[email protected]
Email o username Odoo. Per workflow automatici crea un utente dedicato (es. "Workflow Bot") con permessi limitati al minimo necessario.
password
Password o API Key
string (encrypted)yesPER PRODUZIONE: usa un API Key (Odoo 14+, menu utente → Account Security → New API Key). Bypassa il 2FA, non scade, revocabile. Password normale funziona ma non e` raccomandata.
operation
Operazione
enum
search_readcreatewriteunlinkcall_method
yessearch_readsearch_read = leggi record (SELECT). create = crea nuovo record. write = aggiorna record esistenti. unlink = cancella record (rispetta record rules). call_method = chiama metodo arbitrario (es. action_confirm sull'ordine).
model
Modello Odoo
stringyes
res.partner oppure crm.lead oppure account.move
Nome tecnico del modello Odoo (lowercase con punti). Esempi: res.partner (anagrafica), crm.lead (lead CRM), account.move (fattura), mail.message (messaggi/email), product.template (prodotti).
domainJson
Domain (filtri)
codeno
[["email", "=", "{{input.from}}"], ["customer_rank", ">", 0]]
Array di triple [campo, operatore, valore] in formato Odoo domain. Operatori: =, !=, >, <, >=, <=, like, ilike, in, not in, child_of. AND implicito; per OR usa "|" prima di due triple. Vuoto = tutti i record (rispetta i record rules dell'utente).
fieldsJson
Campi da leggere
codeno
["id", "name", "email", "phone", "company_id"]
Array di nomi campo. Vuoto = tutti i campi (lento, default). Usa solo i campi che ti servono per ridurre payload + latenza.
limit
Limit (max record)
numberno100Range 1-10000. Default 100. Riducilo per snellire i payload.
offset
Offset (paginazione)
numberno0Per paginazione: salta i primi N record. Range 0-1000000.
order
Ordinamento (ORDER BY)
stringno
create_date desc, id desc
Espressione SQL-like Odoo. Vuoto = ordine default del modello.
valuesJson
Valori (JSON)
codeno
{"name": "Mario Rossi", "email": "[email protected]", "phone": "+39 333 1234567"}
Oggetto JSON con i campi da scrivere. Per relazioni many2one usa l'ID numerico (es. company_id: 1). Per many2many usa il "command Odoo" [(6, 0, [id1, id2])]. Per binary upload (allegati) usa base64.
recordIdsJson
IDs dei record
codeno
[42, 7] oppure {{$node.search.json.body}}
Array di ID numerici dei record da modificare o cancellare. Tipicamente l'output di un nodo search_read precedente.
methodName
Nome metodo
stringno
action_confirm oppure message_post
Nome del metodo da chiamare sul modello. Esempi comuni: action_confirm (conferma SO/PO), action_invoice_create, message_post (invio messaggio chatter), action_send_mail.
positionalJson
Argomenti posizionali (JSON array)
codeno
[[42], {"body": "<p>Ciao</p>"}]
Array JSON dei posizionali. Primo elemento spesso e` l'array di IDs target. Vuoto = nessun arg posizionale.
kwargsJson
Argomenti keyword (JSON object)
codeno
{"subject": "Promemoria", "subtype_id": 1}
Oggetto JSON dei kwargs. Vuoto = {}.
timeoutMs
Timeout HTTP (ms)
numberno60000Default 60s. Aumenta per query report pesanti. Range 1000-300000.
followRedirects
Segui redirect
booleannotrue
includePipelineLog
Includi log nell'output
booleannotrue

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "id": "node-action_odoo_rpc-1",
  "defId": "action_odoo_rpc",
  "label": "Odoo",
  "config": {
    "baseUrl": "https://mio-odoo.example.it",
    "database": "odoo_studiocommercialista",
    "login": "[email protected]",
    "password": "<password>",
    "operation": "search_read",
    "model": "res.partner    oppure    crm.lead    oppure    account.move",
    "limit": 100,
    "offset": 0,
    "timeoutMs": 60000,
    "followRedirects": true,
    "includePipelineLog": true
  }
}

🔗 Related nodes in the same category

Ready to use Odoo?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes