# Odoo

## In brief {#summary}

With Odoo, your assistant works in your database: it finds a customer, reads a quote, creates a ticket or sets a reminder. Nothing needs to be installed in Odoo.

Two steps, two people:

1. **A Mitogen workspace admin opens Odoo for the team.** They enter your Odoo address and prove, once, that the company owns it. Allow two minutes.
2. **Each person then connects their own Odoo account**, in Connections. The assistant then acts with that person's Odoo rights, never more.

Key points:

- Odoo 17 or later.
- On Odoo Online (an address ending in `.odoo.com`), external access requires the **Custom plan**.
- An Odoo administrator account is needed once, for verification. Mitogen then erases its copy of the key.
- You can open several Odoo databases, each with a clear name (ten at most).

## Before you start {#before}

Check these points before you open the screen. They prevent almost every block.

| What you need | Why | How to check |
|---|---|---|
| Your Odoo address | Mitogen needs to know where your database is. | Open Odoo in your browser and copy the start of the address, for example `https://my-company.odoo.com`. |
| Odoo 17, 18, 19 or 20 | Older versions are not supported. | Ask your Odoo partner, or check your database's information page. If in doubt, the screen will tell you. |
| On Odoo Online: the **Custom** plan | Odoo reserves external access (the "External API") for this plan. The Standard and One App Free plans do not allow it. | The [Odoo pricing](https://www.odoo.com/pricing) page: the "External API" line is ticked only for Custom. |
| An Odoo administrator account | Only an administrator can prove that the database belongs to the company. | In Odoo, this account's **Administration** right is set to **Settings** (see [Access rights](https://www.odoo.com/documentation/20.0/applications/general/users/access_rights.html)). |
| An API key for this administrator account | It is used for the verification. You create it just before, see [Verification](#verification). |  |
| You are an admin or the owner of the Mitogen workspace | Only they can open a tool for the team. | In the console, you can open **Modules**. |

> **Are you a team member?** There is nothing to do here. Go straight to [Connect my account](#connect).

## Open Odoo for the team {#open}

1. In the console, open **Modules**: `https://mitogen.ai/console/modules`.
2. On the **Odoo** card (section **Available**), click **Open**. A window opens in the middle of the screen with a short introduction: “Odoo, with your assistant”.
3. Click **Open Odoo**. The window keeps the title **Open Odoo** and the steps appear at the top: **Address · Verification · Name · Access**. If you turn on the team account, a **Team account** step is added after Verification.

Not ready yet? **Later** closes the window without creating anything.

On a phone, a single line shows where you are, for example “Step 2 of 4 · Verification”.

The **Help ↗** link at the bottom of the window opens the section of this page for the step on screen. At the bottom of each step: the main button, then **Back** to return to the previous step, and **Cancel** to give up.

You can close the window at any time. If you have already entered something, Mitogen asks “Leave without finishing?”: “Unsaved details will be lost.” The button is **Leave**. What is already saved stays: the Odoo card then shows **To finish**, and **Resume** takes you back to the right step.

> **Odoo is already open and you want a second database?** On the Odoo card (section **On this workspace**), click **Learn more**, then **Add a database**.

### Step 1 · Address {#address}

**On screen**: the title “Your Odoo address”.

- Field **Odoo address**, with the example `https://your-company.odoo.com`.
- Switch **Shared team account** (only if your workspace allows it): “One Odoo account shared by the whole team. Mitogen keeps its key to act on its behalf.” See [Team account](#team-account).
- Buttons **Continue** and **Cancel**.

**What you do**

1. Open your Odoo in another tab.
2. Copy the start of the address, up to the domain name. For example `https://my-company.odoo.com`. The rest of the address (`/odoo/...`, `/web#...`) is not needed.
3. Paste it into **Odoo address**, then click **Continue**.

**If your address ends in `.odoo.com`**, a line under the field reminds you that external access on Odoo Online requires the Custom plan. This is not an error, just a reminder. If you already have this plan, continue. Otherwise, see [Odoo pricing](https://www.odoo.com/pricing).

**Possible messages**

| Message | What it means | What to do |
|---|---|---|
| “This address is not valid. Example: https://your-company.odoo.com” | The address is malformed. | Copy the address again from your browser, with `https://`. |
| “Odoo is not responding at this address. Check it, then try again.” | Mitogen found no Odoo at this address. | Copy the address again from your browser. Check the `https://`. |
| “This Odoo version is too old. Version 17 or later is required.” | Your database runs version 16 or earlier. | Ask your Odoo partner about an upgrade. |

### Step 2 · Verification {#verification}

Here you prove that this database belongs to your company. You do it once, with an Odoo administrator account.

**On screen**: the title “Verify with an administrator account”.

- The line “Mitogen checks access, then erases its copy of the key.”
- Field **Administrator login** (example `admin@your-company.com`).
- Field **API key** (placeholder “Paste the key here”), hidden. The **Show** button lets you check what you pasted.
- Buttons **Verify**, **Back** and **Cancel**.

**First, create the key in Odoo**

1. Sign in to Odoo with the administrator account.
2. Click your avatar, then **My Preferences**, then the **Security** tab. *(Labels from the [official Odoo docs](https://www.odoo.com/documentation/20.0/applications/general/users/2fa.html).)*
3. Click **New API Key**. *(Label from the [official Odoo docs](https://www.odoo.com/documentation/20.0/developer/reference/external_api.html).)*
4. Odoo asks for a **description**: type, for example, “Mitogen verification”.
5. Odoo asks for a **duration**: choose **1 day**. This key is only used for the verification. If Odoo asks for a scope, choose **RPC**.
6. Copy the key straight away: **Odoo shows it only once**.

**Then, in Mitogen**

1. **Administrator login**: the sign-in name of the administrator account, often its email address.
2. **API key**: paste the key.
3. Click **Verify**.

**If your Odoo holds several databases**

Mitogen finds the database on its own in most cases. Otherwise, the screen asks you:

- **Which database?** “Several databases answer at this address. Choose the right one.”: one card per database. Choose yours, then **Verify**.
- Field **Database name** (example `your-company-prod`): “The name was not recognized. Type it as it appears in Odoo.” On Odoo Online, the database name is shown in your [database manager](https://www.odoo.com/my/databases) (sign-in to your odoo.com account required).

**After the verification**

The next step opens with: “Access verified. Mitogen has erased its copy of the key; you can delete it in Odoo.”
Mitogen does not keep this key. You can delete it in Odoo right away, where you created it. Otherwise it expires on its own after one day.

**Possible messages**

| Message | What it means | What to do |
|---|---|---|
| “The login or key was refused. Check them, then try again.” | The login or the key does not match. | Check the login. Create a new key if you are not sure you copied all of it. |
| “This account is not an Odoo administrator. Use a system-group account.” | The account does not have the Administration right set to Settings (what Mitogen calls the "system group"). | Use an administrator account, or ask an Odoo administrator to give you this right (see [Access rights](https://www.odoo.com/documentation/20.0/applications/general/users/access_rights.html)). |
| “Odoo refuses external access. Check your Odoo plan.” | Your Odoo plan does not include external access. | On Odoo Online, switch to the Custom plan, then start again. |

### Optional step · Team account {#team-account}

By default, each person connects their own Odoo account. The assistant then acts with that person's Odoo rights.

The **team account** is another way: one Odoo account, shared by the team. People who have access then do not need their own key. In Mitogen, you always know which person asked for the action.

**When to choose it?** When your colleagues do not each have an Odoo account, or when you prefer an account dedicated to integrations. Odoo itself recommends a dedicated user for this kind of use ([official docs](https://www.odoo.com/documentation/20.0/developer/reference/external_api.html)).

**On screen**: the title “The team account”, the fields **Account login** (example `team@your-company.com`) and **API key**, the buttons **Save account** and **Back**.

**What you do**

1. At the **Address** step, turn on the **Shared team account** switch.
2. After the verification, the **Team account** step appears.
3. In Odoo, create an API key for this account, as in the previous step. Choose a longer duration: Mitogen keeps this key to act on the account's behalf.
4. Enter its **Account login** and **API key**, then click **Save account**.

This account acts with its own Odoo rights. In Odoo, give it only the rights the team needs.

### Step 3 · Name {#name}

**On screen**: the title “The name your team sees”, the help “Your colleagues will see it in their connections. Pick a name they recognize at once.”, and the field **Display name**, prefilled from your Odoo address (example “Odoo production”).

Pick a name your colleagues will recognize at once in their connections. For example “Odoo production”, “Odoo test” or “Company A”. It helps even more if you open several databases.

Click **Save**. **Back** returns you to the previous step.

### Step 4 · Access {#access}

Here you choose who can use Odoo, and what the assistant may do there for each person. This screen is the same for every tool.

**On screen**: the line “Give access” and the help “Each person gets an email and connects their own Odoo account.”

- One block for this Odoo database, titled with its name (the one chosen at the Name step, for example “Odoo production”).
- In each block, the members of the workspace, with a checkbox per person. You appear as **You**, already checked.
- On each checked row, the five rights. **Read** is on and locked. **Create**, **Modify**, **Delete** and **Send** are set for that person.
- Buttons **Give access** and **Later**.

**What you do**

1. In each block, check the people who need it.
2. For each person, turn on the rights they need. What each right allows in Odoo: see [Rights](#rights).
3. You can uncheck **You** as soon as someone else is checked in the same block.
4. Click **Give access**.

While a block has nobody, **Give access** stays greyed out and a line below it reads “Add at least one person to Odoo production.”

**Next**

The screen confirms “The team can now use Odoo.”, then “2 people will receive an email.” If there is only one: “1 person will receive an email.”. Click **Done**.

If the email could not be sent, the screen shows “Access is saved. The message was not sent. Copy the Connections link.” Copy the link offered and send it to your colleagues yourself.

**If you click Later**, everything so far is saved, but nobody has access. The card shows **To finish** with the line “Access to grant”. **Resume** brings you back to this step.

You can change rights at any time afterwards, in **Team › Connection rights** (see [Rights](#rights)).

### What the Odoo card shows next

| Badge | Line | Button | What it means |
|---|---|---|---|
| **To finish** | “Verification to do” | **Resume** | The address is saved, the verification is not done. **Resume** reopens the Verification step. The address is kept; paste the key again. |
| **To finish** | “Access to grant” | **Resume** | The database is verified, nobody has access yet. **Resume** reopens the Access step. |
| **To finish** | “2 bindings to finish” | **Manage** | Several databases are unfinished. **Manage** opens the Odoo page, where each database has its own button. |
| **Open** | “No account connected yet.” | **Manage** | Everything is ready on the admin side. Your colleagues have not connected their account yet. |
| **Open** | “1 account connected” / “2 accounts connected” | **Manage** | Odoo is in use. If another database is still unfinished, the card also says so (“1 binding to finish”). |

## Connect my account {#connect}

This part is for each person who has been given access.

**Before**: you need your own Odoo account on this database, and a personal API key.

1. **Create your key in Odoo.** Avatar ‣ **My Preferences** ‣ **Security** tab ‣ **New API Key** (same path as in the [Verification](#verification) step). Add a description, for example “Mitogen”, and a duration. Copy the key: it is shown only once.
2. In the console, open **Connections**: `https://mitogen.ai/console/connections`.
3. Under **Odoo**, find the binding with the name your admin chose, then click **Connect my account**.
4. Fill in **Database** if asked, your Odoo **Login** and your **API key**. These are personal credentials, never shared with your colleagues.
5. Confirm. Your account appears under the binding's name.

**If your admin set up a team account**, the row is called **Team connection**: you have no key to enter.

**When your key expires**, the row shows **Reconnect**. Create a new key in Odoo, click **Reconnect** and paste it.

Always enter the key in the console, never in the conversation with the assistant.

## Rights {#rights}

Rights say what the assistant may do in Odoo for a person. They are set **per person and per Odoo database**.

**Common rules**

- **Read** comes with access. It is locked and cannot be removed.
- **Create**, **Modify**, **Delete** and **Send** are set person by person: at the [Access](#access) step, then at any time. Only a workspace admin or the owner sets them.
- **The two sets of rights add up.** For an action to go through, you need the right in Mitogen **and** the right in Odoo, on the account used. Mitogen never gives more than Odoo allows that account.
- With a team account, the Odoo rights **of that account** are what count.
- Removing a person's access also cuts their connections on this database.

The five rights are shown for every tool. In Odoo, **Delete** has no use: Mitogen cannot delete anything in Odoo. You can turn this right on, but any delete request will be refused.

| Right | What it allows in Odoo | What it does not allow |
|---|---|---|
| **Read** | Search and read tickets, CRM leads, tasks, contacts, products, projects, quotes and orders, purchases, invoices, journal entries, timesheets and documents. | Changing anything. |
| **Create** | Create a ticket, a lead, a task, a contact, an order or an invoice. Set a reminder (an Odoo activity). Attach a file to a record. | Creating a project. |
| **Modify** | Update fields, for example move a ticket to the next stage. Add an internal note. Run a business step: confirm an order, receive a purchase, validate an invoice. | Changing a document's status directly without going through these steps. |
| **Delete** | Nothing in Odoo. The right stays on screen so the screen is the same everywhere, but any deletion is refused. | Deleting any record. |
| **Send** | Send the customer the PDF of a quote, an invoice or a request for quotation. Post a customer-visible message in a record's chatter. | Sending from a journal entry or a timesheet. Attaching a file to a message. |

**Where to set rights**: at the [Access](#access) step when you open the tool, then at any time in **Team › Connection rights**.

## If something blocks {#troubleshooting}

| What you see | Most likely cause | What to do |
|---|---|---|
| “Odoo is not responding at this address. Check it, then try again.” | Address copied wrongly, or Odoo not reachable from the internet. | Copy the address from the browser. If your Odoo is reachable only from the office, ask your partner. |
| “Odoo refuses external access. Check your Odoo plan.” | Odoo plan without external access. | Odoo Online: Custom plan. See [Odoo pricing](https://www.odoo.com/pricing). |
| “The login or key was refused. Check them, then try again.” | Key copied wrongly, expired or deleted. | Create a new key and paste it straight away. |
| “This account is not an Odoo administrator…” | The account does not have Administration = Settings. | Use an Odoo administrator account. |
| The screen asks for the database | Your Odoo holds several databases. | Choose the right card, or type its exact name. |
| A colleague sees “No connection is available to you.” | You have not given them access. | Reopen the Odoo database and give them access. |
| The assistant says it does not have the right | The Mitogen right is missing, or the Odoo account lacks that right in Odoo. | Check both: [Rights](#rights). |
| A connection shows **Reconnect** | The personal key has expired or been deleted. | New key, then **Reconnect**. |
| A connection shows **Disabled** | The person no longer has a seat. | See [Run the workspace](/en/admin). |

## Remove access {#revoke}

Choose the level that suits you, from lightest to most complete:

1. **A person removes their own account.** In **Connections**, **Revoke this account**. Mitogen warns: “You will no longer be able to act via admin@company.com on Odoo production. Case sources stay.”
2. **An admin removes a person's access.** On the Odoo database's sheet, section **Access**, remove the person. Mitogen asks “Remove access?”: “This person will no longer be able to act via their accounts on this binding.” Their connections on this database are revoked.
3. **An admin removes the whole database.** On the Odoo database's sheet, **Remove binding**. “The binding is removed. Linked accounts are revoked.” If it was the last Odoo database, Odoo goes back to the available modules.
4. **On the Odoo side, to be thorough.**
   - Delete the API keys created for Mitogen: avatar ‣ **My Preferences** ‣ **Security** tab.
   - For a team account you no longer use, archive the user: **Settings** ‣ **Users** section ‣ **Manage Users** (see [Users](https://www.odoo.com/documentation/20.0/applications/general/users.html)).

What the assistant already filed in a case stays there. Nothing is deleted in Odoo.

## Official docs {#official-docs}

| Topic | Link |
|---|---|
| Create an API key, duration, required plan | [External API](https://www.odoo.com/documentation/20.0/developer/reference/external_api.html) |
| Where to find the Security tab of your preferences | [Two-factor authentication](https://www.odoo.com/documentation/20.0/applications/general/users/2fa.html) |
| Access rights, Administration right | [Access rights](https://www.odoo.com/documentation/20.0/applications/general/users/access_rights.html) |
| Manage and archive users | [Users](https://www.odoo.com/documentation/20.0/applications/general/users.html) |
| Odoo Online and your databases | [Odoo Online](https://www.odoo.com/documentation/20.0/administration/odoo_online.html) |
| Developer mode (if your partner asks) | [Developer mode](https://www.odoo.com/documentation/20.0/applications/general/developer_mode.html) |
| Plans and External API | [Odoo pricing](https://www.odoo.com/pricing) |

## FAQ {#faq}

**Do I need to install anything in Odoo?**
No. Mitogen uses Odoo's standard external access.

**Why a one-day key for the verification?**
It is used only once. Mitogen erases its copy right after. A short duration limits the risk if the key is left lying around.

**Does Mitogen keep the administrator key?**
No. It erases it after the verification. Only a team account's key is kept, because it is used to act.

**Do my colleagues need an Odoo account?**
Yes, unless you set up a team account.

**Can the assistant delete data in Odoo?**
No. No deletion is possible, even with the Delete right.

**Can the assistant send an invoice to a customer?**
Yes, if the person has the **Send** right in Mitogen and the matching right in Odoo.

**I don't have the Custom plan on Odoo Online. Can I still try?**
No. Odoo refuses external access on the other plans. The screen will show “Odoo refuses external access. Check your Odoo plan.”

**Can I open several databases?**
Yes, ten at most. Beyond that: “You already have ten bindings. Remove one before adding another.”

**What is the difference between “Open Odoo” and “Connect my account”?**
“Open Odoo” opens the database for the whole team: the admin's job, done once. “Connect my account” links your own account: each person does it for themselves.
