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 a Google Sheet she can pivot before the meeting. Odoo has all of it. The standard path is to go into Odoo's Sales module, configure the filter, export a CSV, open it, reformat the headers, and paste it into the sheet. That takes 20 minutes on a good day. Today is 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, realize the column names don't match the sheet headers your VP is expecting, spend 10 minutes renaming and reordering.
- Paste the data in, discover the export included draft orders because the filter wasn't set exactly right, and do it again from scratch.
The data is in Odoo. It was always in Odoo. The 20 minutes was a formatting and filtering tax, not actual analysis.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads the sheet 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 into the sheet in the column order you specify — in one pass.
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 sheet
What You Get
- One row per confirmed order lands in the sheet — order number in column A, customer name in column B, amount_total in column C, order date in column D
- Only records with state 'sale' or 'done' are included — no drafts, no cancelled orders
- The date filter scopes to the current month automatically based on when the prompt runs
- The result is ready to pivot, chart, or hand off without a reformatting step
What If the Data Is Not Quite Ready
You need orders from a specific date range rather than the current month
Call Odoo JSON-RPC to search sale.order where state is 'sale' or 'done' and date_order is between 2026-05-01 and 2026-05-14, then write order number, customer name, amount_total, and date into this sheet — include a Total row at the bottom summing amount_total
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 (salesperson), and write all five fields into this sheet 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, then group the results by customer name and write one row per customer with total order count and sum of amount_total into this sheet — sorted descending by revenue
Full pipeline pull with enrichment and flags 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 in row 1 showing total orders, total revenue, and count per tier
Running the classification logic at query time means the pivot table your VP needs is already structured — you're not building it by hand after the export.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet, then ask it to pull your confirmed Odoo sales orders for the period you need — the JSON-RPC query runs against your live Odoo data. For related tasks, see vendor invoice batch extraction and invoice validation with anomaly flagging.
