Back to Odoo in Excel
SheetXAI logo
Odoo logo
Odoo · Excel Guide

Query Odoo Sales Orders Into a Google Sheet With JSON-RPC

2026-05-14
5 min read

The Scenario

You're a sales analyst at a mid-size B2B software company. The quarterly business review is Tuesday morning. Your VP of Sales wants a breakdown of this month's confirmed orders — order number, customer name, total, and order date — in an Excel workbook she can pivot before the meeting. Odoo has all of it. The usual path is to navigate into Odoo's Sales module, configure the filter, export a CSV, open it in Excel, reformat the headers, and paste the data into the right workbook. That's 20 minutes on a good day. It's Monday afternoon.

The bad version:

  • Log into Odoo, navigate to Sales > Orders, set the filter to confirmed orders this month, export to CSV.
  • Open the CSV in Excel, realize the column names don't match the headers your VP is expecting, spend 10 minutes renaming and reordering columns.
  • Paste the data in, discover the export included draft orders because the filter wasn't configured correctly, and repeat the whole sequence.

The data exists in Odoo. It was always there. The 20 minutes was a formatting and filtering tax — not actual analysis time.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. It reads the workbook structure, connects to Odoo through its built-in JSON-RPC integration, and can run the query, pull exactly the records you need, and write them in the column order you specify — in one pass.

Use Odoo's JSON-RPC API to fetch all res.partner records where customer_rank is greater than 0 and write partner name, email, phone, and city into my Excel customer directory sheet

What You Get

  • One row per confirmed customer record lands in your Excel sheet — name, email, phone, and city in the columns you specified
  • Only records with customer_rank greater than 0 are included — no vendor-only or internal records
  • The result is ready to sort, filter, or pivot without a reformatting step
  • Repeating the pull next month takes the same prompt against updated live data

What If the Data Is Not Quite Ready

You need confirmed sales orders rather than customer records

Call Odoo JSON-RPC to search sale.order records where state is 'sale' or 'done' and date_order is this month, then write order number, customer name, amount_total, and date into this Excel workbook

You also need the salesperson name from each order

Query Odoo sale.order via JSON-RPC for confirmed orders this month, fetch order number, customer name, amount_total, order date, and user_id display name, and write all five fields into this workbook with a header row

Some customers have multiple orders and you want one summary row per customer

Call Odoo JSON-RPC for confirmed sale.order records this month, group results by customer name, and write one row per customer with total order count and sum of amount_total into this workbook — sorted descending by revenue

Full pipeline pull with enrichment and revenue tiers in one shot

Query Odoo JSON-RPC for all sale.order records in 'sale' or 'done' state this month — write order number, customer name, amount_total, order date, and salesperson to columns A through E, add a Revenue Tier column F labeling amounts above 10000 as 'Large', 1000–10000 as 'Mid', and below 1000 as 'Small', and write a summary block showing total orders, total revenue, and count per tier

The classification runs at pull time — the pivot your VP needs is already structured when the data lands.

Try It

Get the 7-day free trial of SheetXAI and open any Excel workbook, then ask it to pull your confirmed Odoo sales records for the period you need. For related tasks, see vendor invoice batch extraction and invoice validation with anomaly flagging.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more