Odoo ERP

italia_odoo · action · Italia (PEC/SDI) · Disponibile · v1.0.0

Descrizione

CRUD universale su qualsiasi modello Odoo (res.partner, sale.order, account.move, ...) + esecuzione metodi custom del modulo proprietario. JSON-RPC su /jsonrpc (Odoo 12+). Domain syntax polish notation. Authenticate cached 30min per connection. UI con progressive disclosure: vedi solo i campi che servono per l'action scelta.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
url
URL Odoo
stringsi
https://erp.mio-cliente.com
Base URL Odoo SENZA trailing slash. JSON-RPC chiamato su {url}/jsonrpc. Self-hosted o Odoo.sh entrambi supportati.
database
Nome database
stringsi
production
Nome del database Odoo (visibile in Impostazioni → Tecnico → Database, oppure nel URL al login).
username
Username
stringsi
[email protected]
Login Odoo (di solito email dell'utente). Crea un utente dedicato "integration_bot" con permessi minimi.
apiKey
API key (o password)
string (encrypted)siOdoo 14+: API key da Preferences → Account Security → Developer API Keys (scope ridotto, revocabile). Odoo <14: password utente.
action
Azione
enum
search_readsearchreadcreatewriteunlinkexecute_methodname_searchfields_getcheck_connection
sisearch_readsearch_read = query con campi (PIÙ USATO). search = solo IDs. read = read by IDs. create = INSERT. write = UPDATE. unlink = DELETE. execute_method = metodo Python custom su modello. name_search = autocomplete-style search (per UI). fields_get = schema introspection (discovery). check_connection = test credentials.
model
Modello Odoo
expressionno
res.partner
Es: res.partner, sale.order, account.move, product.product, oppure <modulo_custom>.<model> per modello del modulo proprietario. Vai in Impostazioni → Tecnico → Modelli per la lista completa. Non richiesto per check_connection.
domain
Domain (filtro records)
expressionno
[["is_company","=",true],["country_id.code","=","IT"]]
Filtro polish notation. AND implicito, OR esplicito con "|" prefix, NOT con "!" prefix. Operators: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, =like. Esempi: [["state","=","draft"]] · [["name","ilike","%mario%"]] · ["|",["a","=",1],["b","=",2]] · [["partner_id.country_id.code","=","IT"]] (dot-traversal).
fields
Fields (campi da leggere)
expressionno
["id","name","vat","email","country_id"]
Array JSON di field names. Vuoto = tutti i campi (SCONSIGLIATO, payload pesante). Relazioni many2one ritornano [id, "display_name"]. one2many/many2many ritornano [id1, id2, ...]. Usa dot-traversal NEL domain (non nei fields).
values
Values (campi da scrivere)
expressionno
{"name":"Cliente Test","email":"[email protected]","is_company":true,"country_id":110}
Object JSON field→value. Per many2one passa l'ID intero (es. country_id: 110). Per one2many/many2many usa il formato special Odoo: [[0,0,{...}]] crea child, [[1,id,{...}]] aggiorna, [[2,id]] elimina, [[3,id]] dissocia (no delete), [[4,id]] associa, [[6,0,[id1,id2]]] replace all.
ids
IDs (record target)
expressionno
[42, 43, 44]
Array JSON di interi. Per write/unlink: i records modificati/cancellati. Per execute_method: i records su cui il metodo opera (convenzione Odoo). Singolo ID: [42] (sempre array).
method
Metodo Python
expressionno
action_confirm
Nome del metodo da invocare sul modello. Standard Odoo: action_confirm/action_cancel/action_done su sale.order, post/action_post su account.move. Custom: nome del metodo del modulo proprietario del cliente.
args
Args (positional)
expressionno
[[42]]
Array positional di argomenti del metodo Python. Convenzione Odoo: il PRIMO arg è SEMPRE l'array di IDs (es. [[42]] = metodo applicato a record id 42). Per metodi class-level (no IDs): []. Se vuoto, viene auto-popolato con [ids] dal campo IDs sopra.
kwargs
Kwargs (keyword args + context)
expressionno
{"context":{"lang":"it_IT","tz":"Europe/Rome","no_send_mail":true}}
Object JSON di keyword arguments. Spesso usato per context (lang/tz/no_send_mail/active_test/force_company_id). Per ignorare email automatic: {"context":{"no_send_mail":true}}.
limit
Limit (max records)
numberno100Max records ritornati. Per export grandi (>100k): usa limit=500 + loop su offset. Default 100 per evitare payload accidentali da 100MB.
offset
Offset (pagination)
numberno0Offset per pagination. Loop deterministico: offset=0,500,1000... finché result.length < limit (= ultima pagina).
order
Order (ORDER BY)
expressionno
create_date desc, id desc
Sintassi SQL-like. Esempi: "create_date desc" · "name asc, id desc" · "priority asc, write_date desc". Per pagination stabile usa SEMPRE un tiebreak su id.
name
Query name_search
expressionno
Mario
Stringa matched contro display_name. Usata dagli autocomplete Odoo. Operator default: "ilike" (case-insensitive substring). Ottimo per integrazioni "type-ahead" (es. search Cliente da nome parziale).

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • result
  • count

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-italia_odoo-1",
  "defId": "italia_odoo",
  "label": "Odoo ERP",
  "config": {
    "url": "https://erp.mio-cliente.com",
    "database": "production",
    "username": "[email protected]",
    "apiKey": "<apiKey>",
    "action": "search_read",
    "limit": 100,
    "offset": 0
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Odoo ERP?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi