Skip to main content

Connect ChatGPT to Odoo

Use GPT Actions to give ChatGPT secure, audited access to your Odoo data through the KMEE REST API.

Prerequisites: A KMEE account with an API key. See Getting Started.

How it works

ChatGPT → GPT Action (OpenAPI) → KMEE REST API → XML-RPC → Odoo

ChatGPT uses GPT Actions (formerly Plugins) to call external APIs. KMEE provides a REST API with an OpenAPI schema that ChatGPT understands natively.

Step 1: Get the OpenAPI schema

The KMEE Gateway automatically generates an OpenAPI 3.0 schema at:

OpenAPI Schema URL url
https://gateway.kmee.ai/api/v1/openapi.json

This schema describes all available endpoints: search_read, read_group, count, fields_get, execute, and more.

Step 2: Create a Custom GPT

  1. Go to chat.openai.comExplore GPTsCreate
  2. Give it a name: e.g., "My Odoo Assistant"
  3. In the Instructions, describe what it should do:
    GPT Instructions (example) text
    You are an Odoo ERP assistant for [Company Name].
    You can search, read, and analyze data from the company's Odoo instance.
    
    Available data:
    - Sales orders (sale.order)
    - Customers (res.partner)
    - Products (product.product)
    - Invoices (account.move)
    - Inventory (stock.quant)
    
    Always present data in clear tables.
    When asked about sales, include totals and trends.
    For inventory, highlight low-stock items.
    Respect that you have read-only access unless specified.
  4. Scroll to ActionsCreate new action
  5. Click "Import from URL" and paste:
    https://gateway.kmee.ai/api/v1/openapi.json
  6. Under Authentication, select "API Key":
    • Auth Type: API Key
    • Header name: X-API-Key
    • Value: your-kmee-api-key
  7. Click Save

Step 3: Test it

Try these prompts in your Custom GPT:

Prompt

"Show me the last 10 sales orders with amounts"

What happens

ChatGPT calls search_read on sale.order with fields [name, partner_id, amount_total, state, date_order], limit 10, ordered by date_order desc.

Prompt

"What's our total revenue this month?"

What happens

ChatGPT calls read_group on account.move with domain [["move_type","=","out_invoice"],["date",">=","2026-04-01"]], groupby date, aggregating amount_total.

Prompt

"Which products have less than 10 units in stock?"

What happens

ChatGPT calls search_read on stock.quant with domain [["quantity","<",10]], joined with product info.

Tips for better results

  • Be specific in instructions — list which Odoo models and fields are available. ChatGPT performs better when it knows the schema.
  • Use read_group for aggregations — instead of fetching all records and summing, use read_group which does it server-side.
  • Set limits — always mention "last 10" or "top 5" to avoid fetching too much data.
  • Create focused API keys — one key for sales (sale.order, crm.lead), another for accounting. Principle of least privilege.

Share with your team

In ChatGPT, you can share your Custom GPT with your team:

  1. Open your Custom GPT → EditShare
  2. Choose "Anyone with the link" or "Only people in my workspace"
  3. Share the link with your team

Everyone uses the same KMEE API key, so all requests are logged in your audit trail. For per-user tracking, create separate keys for each team member (Pro plan).