If you use Odoo, your CRM talks to Odoo.
Account, product, order and invoice data stays in Odoo; your sales team sees the same data in the CRM. Because Odoo is open source and modular, the access question starts differently than it does with other ERPs, and that is where this page begins.
Operations in Odoo, the pre-sales process in the CRM
At companies using Odoo, the product may have been customised either by an in-house developer or by an Odoo partner. This page describes the needs that companies who call us raise on the sales side, and how they work together with Odoo.
- Everything before the order (the lead, the discovery, the quote revision, the reason for losing) builds up only if it is recorded.
- The customer request arrives over WhatsApp, the quote goes out by email; both are outside the ERP and both get lost.
- If the visit note is not entered on a phone in the field, it stays a note that never gets written up in the evening.
- And there is the possibility nobody likes: two customer lists form in two places, and which one is correct becomes a matter of debate.
That last item is the real subject of this page. The job of an integration is not to produce a second list, but to set a rule for which system is the authority for which data.
How is the connection built?
There is no out-of-the-box module for Odoo on our side, and we will not claim there is. The connection is built as an integration project whose scope is determined in the discovery call, using the REST API, webhooks and import/export. Which interface will be used on the Odoo side, and with which permissions, we determine together during discovery.
Odoo differs from other ERPs in one way, and that makes our work easier: because the source code is open, what is possible on the other side is not guessed at, it is looked at. With a closed ERP, the answer to the access question is sought at the licence and version desk; with Odoo, we look at your own installation during the discovery call. This lets us determine the scope earlier and more precisely; but it is not the same thing as an out-of-the-box module. There is still a connection that has to be written.
Three tools are used on the Rapitek CRM side:
- REST API: every record in the CRM, from lead to quote, from invoice to task, can be read and written through it; access is granted with permissions, without sharing passwords. The field structure can be read from outside, several operations can be sent in one request, and records can be transferred in bulk.
- Outbound webhook: the external system is notified securely of CRM events; a notification that does not arrive is retried, and the target address is validated.
- Import/export: a four-step wizard; we do the initial data migration ourselves during setup.
The limits of these three tools are measured, not estimated: the REST API gives the field structure of each record type, handles up to 200 records per bulk transfer request, and accepts up to 25 operations in a single request. The import wizard works on more than 75 objects, up to 100,000 rows per job and 25 MB per file. Our general approach is on the integrations page, and the same framework applied to a closed ERP is on the Netsis integration page.
Thursday, 15:10. The customer asks for a revision over WhatsApp, and the quote had been written in Odoo. Once the connection is in place, here is what changes:
-
1
The request lands as a record, not as a message
If your WhatsApp Business account is connected to the CRM, the message is written into the shared inbox and onto the relevant customer record. The revision request does not stay on one person's phone.
-
2
The quote revision is tracked on the opportunity record
Which revision number it is, what changed and who approved it stay in the CRM. The version that turns into an order is passed to Odoo through defined fields.
-
3
The price stays the same as the list in the ERP
Because the product catalogue and the price list are transferred from Odoo, the quote is written at the current price. The authority for the price stays in Odoo; the copy in the CRM is there for the sales screen.
-
4
The authority for the customer record is set by a rule
Which system the customer record is created in, and how it flows to the other, is written down during setup. The two lists do not drift apart, because one becomes the source and the other the mirror.
-
5
The sales manager adds their own field themselves
Adding custom objects and fields on the CRM side is done without writing code.
-
6
A reporting screen, not a report request
The pipeline, the source breakdown and the reasons for losing are prepared with the drag-and-drop dashboard designer. No appointment with the technical team is needed for a sales report.
Flows that can be built between Odoo and Rapitek CRM
Customer record matching and the authority rule
Which system is the authority for the customer record, and how it flows to the other, is defined in the written scope. Matching is set up on the tax number or on the identity key on the Odoo side.
Product catalogue and price list transfer
Product cards and the price list are transferred into the CRM; quotes are written at the current price. The transfer can be periodic, or it can be set up over the API.
Passing a won opportunity to Odoo
A webhook that passes the order data to the external system when an opportunity is won can be set up. Entering the same data by hand a second time is reduced.
Account balance and invoice visibility
Balance, due date and invoice header data are transferred onto the customer card. The authority for the document stays in Odoo; the CRM adds a visibility layer for the sales team.
Connecting messaging channels to records
Your own Meta WhatsApp Business account is connected to the CRM and the correspondence lands on the relevant record. You connect your own Gmail account by granting permission through Google; that connection covers email sending and calendar synchronisation; inbox reading is switched off. Outlook and Microsoft 365 connections are not live.
Adding fields and objects without writing code
The administrator defines the fields the sales side needs themselves.
Which method, and when?
| Method | What it is for | When it is preferred |
|---|---|---|
| REST API | The external system reads and writes every record in the CRM; access is granted with permissions, the field structure is read from the API, and up to 25 operations can be sent in one request | When an external interface can be used on the Odoo side and the flow is meant to run automatically |
| Outbound webhook | Events in the CRM (e.g. opportunity won) are notified to the external system securely; a notification that does not arrive is retried | In flows that need event notification in the CRM-to-Odoo direction |
| Import (Data Hub) | Excel/CSV extracts are transferred with a four-step wizard: upload, map fields, preview, run. Export is done in the same module | For the initial data migration and one-off transitions; as a bridge until the API flow is in place |
| Your own developer or your Odoo partner | The team that already knows the Odoo side can write the connection themselves using the same REST API; we give them the field structure, the access permissions and the field mapping table | If customisation has accumulated in your Odoo and you will keep working with that team |
What we have verified
How is the Odoo connection put into service?
-
1
Discovery
We work out where you run Odoo, which modules you use and which customisations have been made. We recommend that the partner or developer who set up your Odoo joins this call.
-
2
The authority rule and field mapping
Which system is the authority for which data is decided here. This is the critical step in Odoo flows. The field mapping table, the direction of flow, the frequency and the cost, if any, are shared in writing.
-
3
Configuration and test migration
The objects, fields and permissions on the CRM side are set up; two-way verification is done with sample records. Duplicate record scenarios are tried out here.
-
4
Training and go-live
Training for the sales and field teams, then close follow-up during the first week. We do not commit to a duration before discovery; after the discovery call we give you a date, not a range. The duration of the API-based Odoo flow becomes clear according to the scope.
Scope and setup terms
Four questions come up whenever ERP integration is discussed. Here is how each one is handled:
- Stock stays in Odoo. The authority for the stock record stays in Odoo; which stock data the CRM shows, and how often, is defined during discovery.
- The order → invoice → collection chain is built into the product. It is not sold as an automated accounting flow.
- Manufacturing and MRP: the bill of materials and the production line definition exist in the product. Work order execution is new; if your process depends on it, let's try it together in the demo.
- e-Invoice and e-Archive documents stay with your current setup. Rapitek CRM is not a GİB private integrator; it does not produce official documents and does not track ETTN or GİB status. Your invoices continue to be issued under your current arrangement.
The reasons for the first three, and what can be done instead, are in one place, line by line: scope and setup terms.
Work on the Odoo side: if a module has to be installed or an interface has to be written on the Odoo side, that work sits with your developer or your Odoo partner, as do Odoo installation, upgrades and maintenance. We provide the CRM side, the field structure, the access permissions and the field mapping table.
Data location: your data is held in the European Union: the database in Helsinki (Finland), files in Frankfurt, backups in Falkenstein (Germany). We do not have a single component in Türkiye, and we do not have a region selection feature. This is a transfer abroad within the scope of KVKK art. 9. The details are on the security page and in the KVKK disclosure notice.
Certification: we do not have an ISO 27001 or SOC 2 certificate, and we will not claim one until we do.
If you see anything incorrect or out of date on this page, write to info@rapitek.com and we will review and correct it.
Plan prices are out in the open; scope comes out of discovery
The scope of the Odoo connection, and its cost if there is one, are worked out in the discovery call and shared in writing. Plan prices and separately priced items, on the other hand, we publish on a single page, with the figures.
Three plans, a scope table and separately priced items on a single page.
Frequently asked questions about Odoo integration
Is CRM integration with Odoo possible?
Is there a ready-made Odoo module in Rapitek CRM?
Odoo has its own CRM module. Why a separate CRM?
We run Odoo on our own server. Will access be a problem?
We have a partner who has done customisation in Odoo. Can they write the connection?
Does it matter which Odoo version we use?
Won't we end up with two customer lists in two systems?
Does it replace Odoo?
Will our stock stay in sync with the CRM?
Can we issue an e-invoice from the CRM?
Will synchronisation be real-time?
What does the Odoo integration cost?
How long does setup take?
Where is our data held?
Let's clarify your Odoo flow in 30 minutes
Invite the team that set up your Odoo to the call as well; let's decide together which system will be the authority for which data, and who will write the connection. Then we open your 7-day trial account; no credit card required.
