# Odoo ERP (Full) MCP

> Odoo ERP (Full) connects your AI agent directly to a complete business backend. You manage leads, contacts, sales orders, and internal notes—all without leaving the chat window. Instead of jumping between CRM tabs, you ask your agent to find company data or list recent sales orders using natural conversation.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** business-automation, lead-management, contact-database, sales-pipeline, data-integration, workflow-management

## Description

Odoo ERP (Full) connects your AI agent straight into your entire business backend. You manage everything—leads, contacts, sales orders, and internal notes—without ever leaving the chat window. Forget jumping between different CRM tabs; you just talk to your agent, and it handles the data retrieval or modification for you.

When you need to find someone, `odoo_search_contacts` lets you locate individual people by name, email address, or phone number stored in Odoo's database. If you’re looking for a whole corporation instead of just one person, you use `odoo_search_companies`; this searches your partner records using the organization’s official name. For leads and opportunities, `odoo_search_leads` checks the entire CRM pipeline, finding prospects by name, company affiliation, or any specific keyword you throw at it.

If you find what you need, great. If not, you can build it right there. You'll use `odoo_create_contact` to establish a new record—whether it’s an individual person or a whole company—by supplying all the required contact details. To bring in a brand-new prospect into your sales funnel, you call `odoo_create_lead`, which registers a qualified opportunity and requires details like its type and the expected revenue amount so you can track potential growth from day one.

When it comes to tracking existing business, listing recent orders is simple. `odoo_list_sales_orders` pulls up a summary of your latest sales transactions, giving you the customer name, total amount, order number, and current status all in one quick pull. If you need to document something about any record—say, a specific note on a lead, or a comment tied to an existing sales order—you use `odoo_create_note`. This tool attaches internal comments directly to the chosen Odoo record, making sure everyone sees that historical context.

Your agent does all the heavy lifting. You give a natural language command—for instance, 'Find me every lead in California expected to bring over ten grand' or 'Create a new contact for Acme Corp using this email address.' The system recognizes which tool you need (`odoo_search_leads` or `odoo_create_contact`), runs the necessary function against your live Odoo data, and formats the results right back into the chat. If you want to change something—like noting that an order needs a follow-up call, or registering a new opportunity based on a meeting—it uses the corresponding creation or listing tool. You don't have to remember field names; you just tell your agent what needs to happen.

This setup means your AI client acts as your full-time back office clerk. It handles everything from initial data entry and prospect identification through to logging final sales order status updates, all while keeping you in the chat window. You'll use these tools together: first, searching for a company using `odoo_search_companies`, then creating a follow-up note on their record with `odoo_create_note`, and finally listing the recent orders from that account using `odoo_list_sales_orders`. It’s all connected. You just ask it to do the work.

## Tools

### odoo_create_contact
Creates a new person or company record in Odoo using required contact details.

### odoo_create_lead
Registers a new CRM lead or qualified opportunity, including expected revenue and type.

### odoo_create_note
Attaches an internal comment to any specific Odoo record (e.g., sales order, contact).

### odoo_list_sales_orders
Pulls a list of the most recent sales orders, showing status, amount, and customer name.

### odoo_search_companies
Searches for corporate or organization records within your Odoo partner database by name.

### odoo_search_contacts
Finds individual people (non-company) in Odoo using their name, email, or phone number.

### odoo_search_leads
Searches the CRM for leads and opportunities matching a query by name, company, or keyword.

## Prompt Examples

**Prompt:** 
```
Search for leads from the website
```

**Response:** 
```
👥 **CRM Leads — Website**
| Name | Email | Stage | Revenue |
|---|---|---|---|
| Acme Corp | info@acme.com | Qualification | $15,000 |
| Beta Inc | hello@beta.io | Proposition | $8,500 |
```

**Prompt:** 
```
Show recent sales orders
```

**Response:** 
```
📋 **Sales Orders**
| SO# | Customer | Amount | Status |
|---|---|---|---|
| S00042 | Acme Corp | $12,500 | Confirmed |
| S00041 | Beta Inc | $3,200 | Draft |
```

## Capabilities

### Search Leads
Find existing prospects and leads in your CRM by name, company, or keyword.

### Search Contacts & Companies
Look up individual people or corporate accounts using their name, phone number, or email address.

### Create New Leads/Opportunities
Register a new prospect into the CRM pipeline with initial contact details and expected revenue.

### Create Contacts
Establish a new individual or corporate partner record in your address book.

### List Sales Orders
Pull a summary of the most recent sales orders, including customer name, amount, and status.

### Add Internal Notes
Log a specific comment or note onto any existing Odoo record (leads, contacts, or orders).

## Use Cases

### The Hand-off Follow-up
A sales rep hands off a hot lead. Instead of emailing a spreadsheet to Account Management, they prompt their agent: 'Find Acme Corp's contact details and create a new opportunity for them.' The agent uses `odoo_search_companies` first, then executes `odoo_create_lead`, completing the hand-off instantly.

### Checking Order Status
A client asks about their order. You prompt: 'Show me recent orders for Acme Corp.' The agent uses `odoo_list_sales_orders` and gives you the status, amount, and SO#. If they ask why it's stuck in 'Draft,' you use `odoo_create_note` to document the next step.

### Audit Trail Cleanup
You need to track a tricky conversation. You first search for the contact using `odoo_search_contacts`. Then, because the discussion was complex, you use `odoo_create_note` on that specific record so the entire history is centralized.

### Prospecting Blitz
You are researching a new vertical. You ask: 'Find all companies in Texas with over $50k expected revenue.' The agent uses `odoo_search_leads` to pull the data, letting you know exactly who to target next.

## Benefits

- Stop switching tabs. You can list recent orders using `odoo_list_sales_orders` and then immediately add a follow-up note to that record using `odoo_create_note`, all without leaving your chat client.
- Get accurate contact data fast. Use `odoo_search_contacts` to find an individual's phone or email, then use `odoo_create_lead` right away if they are a new prospect.
- Keep the pipeline clean and auditable. Running `odoo_search_leads` shows you who's where in the funnel, while `odoo_create_note` ensures every interaction is logged against that lead record.
- Handle corporate data better. Instead of searching for a person, use `odoo_search_companies` to pull up the official company details before creating a new partner with `odoo_create_contact`.
- Reduce manual entry errors. The server validates and structures all submissions. You tell it to create an opportunity, and `odoo_create_lead` handles the full record setup.

## How It Works

The bottom line is you don't run API calls; you just ask your agent to do what you need done inside Odoo.

1. First, ask your agent to find the target data. You might run `odoo_search_companies` if you need an organization's details, or `odoo_search_leads` if you are checking pipeline status.
2. Second, once the necessary IDs or information is confirmed, tell the agent what to do next—like creating a new contact using `odoo_create_contact` or logging follow-up notes with `odoo_create_note`.
3. Finally, the system executes the action and returns structured data. You get the ID of the newly created record, or a clean table listing all sales orders.

## Frequently Asked Questions

**How do I check if a company exists using odoo_search_companies?**
Run `odoo_search_companies` and provide the organization's name. The tool returns structured data including its email, phone number, website, city, and country if it matches an existing record.

**What is the difference between odoo_create_contact and odoo_create_lead?**
Use `odoo_search_contacts` first to see if the person exists. If they are a new prospect, use `odoo_create_lead`. Use `odoo_create_contact` when you just need a basic record of an individual or company in your address book.

**Can I log notes on sales orders using odoo_create_note?**
Yes. You must provide the specific Sales Order ID and model (`sale.order`). This ensures the note is attached directly to that order's history, so the full context remains visible.

**How do I list recent orders with odoo_list_sales_orders?**
Just ask your agent to run `odoo_list_sales_orders`. It returns a clear table showing the SO#, customer name, total amount, current state (draft/sent/done), and date.

**How do I link a newly created individual to an existing company using odoo_create_contact?**
You must provide the parent_id. This links the new person record directly under an established partner/company within Odoo's structure, maintaining data integrity.

**What is the difference between setting the type to "lead" versus "opportunity" when using odoo_create_lead?**
You set the type based on qualification. Use "lead" for initial, unqualified prospects who need nurturing. Reserve "opportunity" for prospects already confirmed and deep into your sales pipeline.

**How do I find a specific individual contact using odoo_search_contacts?**
You search by name, email, or phone number. This tool targets individual partners (people), distinguishing them from searches that retrieve entire company organizations.

**Can I use odoo_create_note to add an internal comment to a contact record?**
Yes, you must specify the target's model (resModel) and its unique ID (resId). This logs information directly into that specific record's history or chatter feed.

**Which Odoo versions are supported?**
This server uses the JSON-RPC protocol, which is compatible with Odoo 14, 15, 16, 17, and 18. Both Odoo Community and Enterprise editions are supported.

**Does it work with Odoo.com (SaaS)?**
Yes! Works with both Odoo.com hosted instances and self-hosted Odoo servers. Just provide your instance URL and API key.

**How do I generate an API Key?**
Go to Settings → Users → select your user → API Keys tab → New API Key. Give it a descriptive name and copy the generated key.