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.
