I used the n8n Odoo node successfully on Odoo version 15 to create a new activity in mail.activity on e.g. crm.lead. After upgrading to a newer version of Odoo V18, the same node now fails with an error referencing vars_list. This field (vars_list) is not defined on mail.activity, and it cannot be selected in the node’s field list. I did not send any vars_list value myself — yet the node triggers it internally.
I have no idea how I can do a workaround or solve this, the Odoo n8n node seems to be outdated or I’m missing some kind of field
Video of my error that I’m getting: https://jam.dev/c/e469c49d-61fe-4015-bb7b-814fe4173a5a
I have tried multiple ways of solving this, scouting forums, asking our partners, but no one seems to be able to help me out on this.
Some suggestions were (e.g. when tryiing for an HTTP request)
Wrap your payload in an array, even when creating one activity.
Correct n8n JSON body:
[{"activity_type_id": 4,"summary": "Email sent","note": "Generated via n8n","res_model": "mail.activity","res_id": 123} ]
Incorrect (what causes your error):
{"activity_type_id": 4,"summary": "Email sent","res_model": "mail.activity","res_id": 123 }
Quick Fix: Bypass the Odoo Node and Use HTTP Request
Hey! I’ve run into this exact vars_list issue afterupgrading Odoo—it means the n8n Odoo node is broken for V18 & V19 (it’s calling a deprecated method). I hope n8n update the node soon, however in the meantime, the only reliable way to fix this is to stop using the dedicated Odoo node and switch to an HTTP Request node to call the Odoo JSON-RPC API directly.
This lets you control the exact payload, avoiding the bad call.
1. HTTP Request Setup
Set up a new HTTP Request node:
| Setting |
Value |
| Method |
POST |
| URL |
https://your-odoo-url.com/jsonrpc |
| Body Content |
JSON |
2. The Working Payload (JSON Body)
Use this exact structure for the JSON body, replacing the placeholders with your values.
JSON
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"YOUR_DB_NAME",
"YOUR_USER_ID",
"YOUR_API_KEY",
"mail.activity",
"create",
[
[
{
"res_model_id": YOUR_MODEL_ID,
"res_id": YOUR_RES_ID,
"activity_type_id": 4,
"summary": "Created by n8n",
"note": "HTTP Request Node Fix!"
}
]
]
],
"id": "1234"
}
}
Key Points:
-
You must use the Integer ID for the model (YOUR_MODEL_ID) and the record (YOUR_RES_ID).
-
The double square brackets ([[...]]) are essential for the Odoo RPC format!
-
You have to modify depending on your environment, I had to tweak according the tasks I was employing but this seems to be the most effective way.
This bypasses the faulty Odoo node logic and should resolve your vars_list error instantly. Give it a shot and let me know if you need some more brainstorming, I’m actively working with Odoo and n8n. Cheers!