---
title: Connect Odoo
description: Connect your Odoo ERP instance to Pinchy and give agents access to your business data.
---

This guide walks you through connecting your Odoo instance to Pinchy so your agents can query sales orders, contacts, inventory, and other business data — without giving them direct database access.

## Prerequisites

- Pinchy is running (see [Quick Start](/getting-started/))
- An Odoo instance with API access enabled
- You're logged in as an admin in Pinchy

## 1. Create an API key in Odoo

Pinchy connects to Odoo via its External API using a personal API key.

1. Log in to your Odoo instance
2. Go to **Settings → Users & Companies → Users**
3. Click on your user
4. Open the **API Keys** tab
5. Click **New API Key**, give it a name (e.g. "Pinchy"), and confirm your password
6. Copy the key — you won't see it again

:::note
The API key inherits the Odoo permissions of the user who created it. If you want agents to have read-only access, create the key from a user with read-only permissions in Odoo.
:::

## 2. Add the connection in Pinchy

1. Go to **Settings → Integrations**
2. Click **Add Integration** and select **Odoo**
3. Enter:
   - **URL** — your Odoo instance URL (e.g. `https://erp.yourcompany.com`)
   - **Database** — auto-detected after you enter the URL, or enter it manually
   - **Email** — the email of the Odoo user whose API key you created
   - **API Key** — the key you copied in step 1
4. Click **Test & Connect**

![Add Integration → Odoo wizard with URL, database, email, and API key fields](/screenshots/integrations-odoo-wizard.png)

Pinchy verifies the credentials and probes the available data models. If the connection fails, double-check the URL and API key.

## 3. Review the sync

After a successful connection, Pinchy shows which data categories are accessible — Sales, Inventory, Contacts, Accounting, and others. This depends on the Odoo modules you have installed and the permissions of the API user.

Review the list and click **Save**.

## 4. Grant agent access

A connection alone doesn't give any agent access. You need to explicitly grant it.

1. Open the agent you want to connect to Odoo
2. Click the gear icon to open **Agent Settings**
3. Select the **Permissions** tab
4. In the **Odoo** section, select:
   - **Connection** — pick the connection you just created
   - **Access level** — Read-only, Read & Write, or Full
   - **Models** — optionally restrict to specific models (e.g. only `sale.order` and `res.partner`)
5. Click **Save**

### Access levels

| Level            | Tools enabled                                         | Use case                     |
| ---------------- | ----------------------------------------------------- | ---------------------------- |
| **Read-only**    | schema, read, count, aggregate                        | Reporting, dashboards, Q&A   |
| **Read & Write** | schema, read, count, aggregate, create, write         | Data entry, updating records |
| **Full**         | schema, read, count, aggregate, create, write, delete | Full CRUD — use with caution |
| **Custom**       | You pick individual tools                             | Fine-grained control         |

Each level maps directly to the Odoo tools that get enabled for the agent. See [Agent Permissions](/concepts/agent-permissions/) for the full tool list.

## 5. Test it

Open the agent's chat and try a few queries:

- "List all sales orders from this month"
- "How many contacts do we have in Germany?"
- "Show me the inventory for product X"

The agent uses the Odoo tools to query your data in real time. If something doesn't work, check that the Odoo user has the right permissions for the models you're querying.

:::note
Agents that attach files to Odoo records, such as saving a receipt on an invoice or bill, also need access to `ir.attachment`. Finance agents that create invoices or bills may also need supporting models such as `account.journal`, `account.account`, `account.tax`, `account.payment.term`, and `res.currency`. Grant only the models and operations the agent needs, and make sure the Odoo API user has the matching access rights in Odoo.
:::

## Agent Templates

Pinchy ships with 16 pre-configured agent templates for common Odoo use cases. Instead of building an agent from scratch and manually assigning permissions, you can pick a template and have everything set up in seconds.

Each template auto-configures the agent's permissions, tools, and system instructions. All you need to do is select which Odoo connection the agent should use. During creation, Pinchy validates the API user's access rights against the models the agent needs. If some models are missing (e.g. the required Odoo module is not installed), Pinchy warns you so you can adjust the Odoo configuration or pick a different template.

### Sales & Customer Operations

- **Sales Analyst** _(read-only)_ — Revenue analysis, customer rankings, order trends, and product margin analysis using standard cost.
- **CRM & Sales Assistant** _(read-write)_ — Pipeline management, lead follow-up, opportunity updates and customer data maintenance.
- **Customer Service** _(read-write)_ — Answers order inquiries and drafts responses entirely through Odoo's mail alias and discussion thread, so agents never need external email access.
- **Subscription Manager** _(read-only)_ — Tracks MRR, churn, renewal dates and recurring revenue across your subscription base.

### Inventory & Supply Chain

- **Inventory Scout** _(read-only)_ — Stock monitoring, slow-mover detection, warehouse utilization and fulfillment speed.
- **Procurement Agent** _(read-write)_ — Supplier comparison, price tracking, purchase order management and reorder suggestions.
- **Manufacturing Planner** _(read-only)_ — Production order progress, BOM analysis, work center load and component shortages.
- **Fleet Manager** _(read-only)_ — Vehicle tracking, service schedules, fuel consumption and total cost of ownership per vehicle.

### Finance

- **Finance Controller** _(read-only)_ — Invoice tracking, payment status, aging analysis and margin reporting.
- **Expense Auditor** _(read-only)_ — Reviews expense claims, flags policy violations, detects duplicates and unusual spending patterns.

### Human Resources

- **HR Analyst** _(read-only)_ — Headcount reporting, leave balances, attendance tracking and contract overviews.
- **Recruitment Coordinator** _(read-write)_ — Applicant tracking, job pipeline management, time-to-hire metrics and interview scheduling.
- **Project Tracker** _(read-only)_ — Monitors project progress, deadlines, task load per employee and timesheet entries.

### Marketing & E-Commerce

- **Marketing Analyst** _(read-only)_ — Measures email campaign performance, open rates, click-throughs and UTM conversions.
- **POS Analyst** _(read-only)_ — Analyzes point-of-sale revenue, cash sessions, payment methods and top-selling products.
- **Website Analyst** _(read-only)_ — Tracks online sales, visitor behavior, top products and conversion funnels.

:::tip
Read-only templates are safe to deploy immediately — they can't modify your data. Read-write templates (**CRM & Sales Assistant**, **Procurement Agent**, **Customer Service**, **Recruitment Coordinator**) can create or modify records, so review their permissions and test them in a sandbox before rolling them out to your team.
:::

:::note
Templates depend on specific Odoo modules being installed. For example, **Fleet Manager** requires the Fleet module, **Manufacturing Planner** requires MRP, and **Subscription Manager** works best with the Subscriptions module. If a template can't be activated, check the missing models list shown during agent creation and install the corresponding module in Odoo.
:::

## Re-syncing when Odoo permissions change

If the Odoo admin changes the API user's permissions after you've set up the connection, agents may lose access to certain models. When this happens, the agent gets a clear error message explaining that access was denied.

To re-sync: go to **Settings → Integrations**, select the connection, and click **Re-sync**. Pinchy probes the available models again and updates the connection accordingly.

:::warning
Re-syncing may remove models that are no longer accessible. Agents that were configured to use those models will lose access to them.
:::

## What's next

- [Integrations](/concepts/integrations/) — how connections and permissions work under the hood
- [Agent Permissions](/concepts/agent-permissions/) — the full allow-list model and integration tools
