Odoo
Your receptionist can check whether a caller is already one of your Odoo contacts and add new callers to Odoo CRM as leads, with what they need, so your sales team can follow up. There are two ways to connect:
- Webhook tools call Odoo’s JSON-2 API directly, with no Zapier account and no Zapier task usage. They need Odoo 19 or later, Community or Enterprise, hosted on odoo.com, on Odoo.sh, or on your own server.
- Zapier works with older Odoo versions too, but each action uses tasks from your Zapier plan, and it can’t search a self-hosted database.
Use webhook tools if your database runs Odoo 19 or later. Odoo’s older API, JSON-RPC, takes each method’s arguments as one mixed list of values, which webhook tools can’t build, so on older versions use Zapier.
Odoo only allows outside apps to access your data on its Custom plan. If your database is hosted by Odoo on the One App Free or Standard plan, check your plan before you start.
Option 1: Webhook tools (recommended)
Check your Odoo version
Your Odoo version is shown at the bottom of the Settings page. Webhook tools need version 19 or later. For a self-hosted database, the server must be reachable from the internet over HTTPS.
Create a user for Reception.ai
In Settings → Users & Companies → Users, create an internal user for Reception.ai. Give it Sales: User: All Documents access and no access to other apps, so the API key can only do what the tools need. User: All Documents lets it assign new leads to the salesperson you choose.
Create an API key
API keys for users who aren’t administrators last three months at most. To get a key that lasts a year:
- As an administrator, turn on developer mode, then go to Settings → Users & Companies → Groups.
- Create a group named, for example,
Reception.ai API key, set API Keys maximum duration days to365, and add the Reception.ai user to it.
Then sign in as the Reception.ai user, open Preferences → Account Security, and select New API Key. Name it, for example Reception.ai, choose the longest duration offered, and copy the key right away: Odoo only shows it once. Note the expiry date, and replace the key before then.
The API key can do anything the Reception.ai user can do. Keep it out of shared documents, and delete it in Odoo if it leaks.
Find the salesperson and sales team IDs
Open the salesperson’s user in Settings → Users & Companies → Users. The number at the end of the page address is the user ID. Do the same for the sales team in CRM → Configuration → Sales Teams.
Create the webhook tools
For each tool below, go to Integrations, select Add integration, and choose Webhook Tool. Replace YOUR_ODOO_ADDRESS with your database’s address, for example mycompany.odoo.com.
Every tool sends the same request headers:
Authorization(Secret):Bearerfollowed by your API keyX-Odoo-Database(Value): your database name. Only needed if your own server hosts more than one database.
Find the caller
The =ilike operator matches the whole name or email address, ignoring capitals, so a search for “Jane” doesn’t list every Jane. Odoo returns only the ID and name of each match. Odoo’s contact search doesn’t cover phone numbers, so your receptionist must ask for an email address or name.
Add the caller as a lead
Odoo expects the new lead’s fields inside a vals_list object. Select Add field on vals_list for each of these:
name(string, required, from the conversation): “The lead’s title, for example: Kitchen quote - Jane Doe.”contact_name(string, required, from the conversation): “The caller’s full name.”email_from(string, from the conversation): “The caller’s email address, if they gave it.”phone(string, required, from the conversation): “The caller’s phone number in international format, for example +14155550123.”description(string, required, from the conversation): “What the caller needs, in a few sentences.”user_id(integer, fixed value): the salesperson’s user IDteam_id(integer, fixed value): the sales team’s ID
The salesperson and team are fixed values, so every lead goes to them even if the AI sends other IDs. Leave out fields such as expected revenue, so your receptionist doesn’t guess at amounts.
Select Enable on each tool, then test your receptionist as an existing contact who gives their email address, then as a new caller who asks for a quote. The new lead appears in your Odoo CRM pipeline.
Option 2: Zapier
Add the Odoo actions
In your Zapier MCP server at mcp.zapier.com, add the actions below from the Odoo CRM app and sign in to Odoo when Zapier asks. For each field, either set a fixed value or let the AI fill it in, as listed.
The Odoo CRM app works with databases hosted on odoo.com. For a self-hosted database, see Limitations.
The actions can do anything the Odoo user you sign in as can do. Consider a dedicated user with access only to CRM and contacts.
Assign the tools
In Reception.ai, open the Zapier integration’s Tools tab, select Refresh tools, and assign each action to the Client (receptionist).
Test it
Test your receptionist as an existing contact who gives their email address, then as a new caller who asks for a quote. The new lead appears in your Odoo CRM pipeline.
Zapier actions
Find the caller
Odoo’s Zapier app finds contacts by name or email address, not by phone number, so your receptionist must ask for one of them.
Add the caller as a lead
Leave fields such as expected revenue empty, so your receptionist doesn’t guess at amounts.
Whichever option you use, add a procedure so your receptionist asks for the caller’s email address and searches for them before it creates a lead.
The search can return contacts who aren’t the caller, and Find Contact in Zapier returns whatever is saved on the contact. Add a rule telling your receptionist to never read a contact’s details back to the caller, and to use them only to recognize the caller.
Limitations
- Your receptionist can’t look callers up by phone number. It needs their email address or exact name.
- The lead’s description holds what the caller wanted. Zapier’s Odoo CRM app has no action to add a note or log a call.
- With webhook tools, the API key expires. Replace it before its expiry date, or the tools stop working.
- With Zapier, a self-hosted Odoo database needs Zapier’s Odoo ERP Self Hosted app instead. Its Create Lead/Opportunity action adds leads, but it has no search actions, so a returning caller can be added twice. Webhook tools can search a self-hosted database on Odoo 19 or later.
- Your receptionist can’t check availability or book meetings in Odoo. Use Reception’s own booking with Google Calendar instead.
- With Zapier, each action your receptionist runs uses tasks from your Zapier plan. Zapier currently counts two tasks per successful call; failed calls aren’t counted. When the plan runs out, the actions stop until it resets.