Skip to content
Odysı
See if we fit
Service Custom CRM development

A custom CRM with AI: every customer in one record

Invoices and orders sit in the ERP, conversations in WhatsApp and Instagram, Facebook form leads in another tab and the rest in email and spreadsheets. We build a custom CRM that brings it together in one record per customer, the single customer view nobody on your team has today, without replacing the software you already use.

On top of it sit email and WhatsApp automations that a person approves, and an analytics and AI layer that answers questions about your own data and prepares the work. The AI does not decide on its own.

01 · YOUR SYSTEMS ERP WHATSAPP INSTAGRAM LEAD ADS EMAIL SPREADSHEETS CUSTOMER RECORD PHONE · EMAIL · TAX ID 02 · AUTOMATIONS 03 · ANALYTICS AND AI ONE RECORD PER CUSTOMER 04 · A PERSON APPROVES
Plate I · One record per customerDiagram
ForSmall and mid-sized companies with customers on several channels
SourcesERP, WhatsApp, Instagram, Facebook, email and spreadsheets
Who decidesA person on your team
LanguagesEnglish and Spanish
01

Each system knows one part of the customer

This is what usually happens in a company with customers on several channels:

  • The ERP knows what each customer has bought and what they still owe, but not what they asked on WhatsApp yesterday.
  • WhatsApp, Instagram and Facebook conversations stay on a phone or in the inbox of whoever answered them.
  • Leads from Facebook and Instagram forms (Lead Ads) are downloaded by hand when someone remembers, and Meta only keeps them available for download for 90 days after they are submitted (Meta Business Help Center, checked 15 October 2026).
  • Email is spread across several inboxes, and the spreadsheets across several versions.
  • The same follow-ups (a quote with no reply, an order ready, a renewal) are done by hand, whenever someone has a moment.

Nobody sees the whole customer. Every reply starts with a search in three places, and follow-ups depend on one person's memory.

02

What we build: the record, the automations and the AI

Three pieces, in this order. Each with what the system does and what stays with your team.

01

One record per customer

What it is
One record per customer with what your systems know: contact details, orders and invoices from the ERP, WhatsApp, Instagram and Facebook conversations, Lead Ads leads, emails and what lives in spreadsheets today. It updates itself, as things happen or at set intervals, depending on what each system allows.
How it is fed
From the software you already use, by whatever route each one allows: an API (the connection the software itself offers for reading and writing data), database access or exports. We start by reading, and only write back into your ERP once that has been tested.
What a person decides
Which data goes in and what for, and what to do with the customers the system cannot match.
02

Email and WhatsApp automations

What they do
Operational messages (order ready, appointment, documents missing, invoice overdue) and marketing messages to people who have agreed to receive them, triggered by what happens in the record.
How they work
Each automation follows a written rule. On WhatsApp, anything sent more than 24 hours after the customer's last message goes out as a template approved by Meta. Step by step: how to automate WhatsApp Business with AI.
What a person decides
They approve the texts and the rules before anything is switched on, and the messages that matter, such as a payment reminder or an offer to a large customer, wait for their sign-off.
03

Analytics and AI to decide better

What it does
A dashboard with what your team looks at every week (sales, new, returning and lost customers, pending follow-ups) and an AI you ask about your own data in plain language, for example which customers have not bought again this quarter.
What it prepares
It summarises the record before a call, sorts incoming messages and drafts the next step.
What a person decides
Everything that has an effect. The AI prepares and suggests; it does not send, change prices or terms, or touch the ERP on its own.
03

How the same customer is recognised on WhatsApp, email and the ERP

This is the hard part, and the least visible one. Someone who writes on WhatsApp shows up with their number; in email, with their address; in the ERP, with their tax ID (the NIF in Spain) and sometimes a different phone. To build a unified customer view you have to decide what counts as the same customer, and we do it with written rules agreed with you:

  • Certain matches. The same tax ID, the same email or the same phone number, written the same way (with or without the country code, with or without spaces). These merge on their own.
  • Likely matches. For example, the same company name in the same town with a different phone. These do not merge on their own: they go on a list for someone on your team to confirm.
  • No match. A new record is created, and if the detail that links it to another one turns up later, the system suggests merging them.

Before switching it on, we test the rules on your real data and show you how many duplicates they find and which ones they cannot resolve. It is the same kind of cross-check Odysi Reach for retail runs: every store it finds is checked against the brand's own sales history and tagged as active, lost or a new prospect.

04

Which ERPs can be connected, and how

It depends on the software, the version and sometimes the plan you pay for, so the first step is to check what yours allows. This is what each vendor publishes for ERPs common among small and mid-sized companies in Spain (checked 15 October 2026):

  • HoldedAPI included on every plan, with a monthly request limit that depends on the plan, and automatic notifications (webhooks) when, for example, an invoice or a contact changes. Source: Holded, API and developers
  • OdooThe external API is only available on Odoo's Custom plans, not on One App Free or Standard. Odoo 19 adds a new API (JSON-2), and the old one (XML-RPC and JSON-RPC) is removed in Odoo Online 21.1 (winter 2027) and Odoo 22 (autumn 2028), so anything connected today uses the new one. Source: Odoo documentation
  • Sage 200Needs the Advanced edition, the Sage Soluciones Conectadas licence and version 2020.87 or later. Source: Sage 200 help
  • a3innuva and a3facturaA REST API with the product's Conectia subscription (and, for a3innuva Contabilidad, an OAuth client, which is the registration of the app that connects). Source: a3developers, a3innuva Contabilidad and a3factura
  • Business CentralIn the online version of Microsoft Dynamics 365 Business Central the APIs are enabled by default, with notifications (webhooks) when a customer, an order or an invoice changes. Source: Microsoft Learn, API and webhooks
  • Sage 50 and a3ERPNeither appears on Sage's or Wolters Kluwer's developer portals. Data usually leaves them by export or through a partner's connector; we check it against your version. Sources: Sage Developer, a3developers

This is not a list of integrations we have built: it is what each vendor says. Where there is an API, we read from it; where there is none, we work from scheduled exports or, if the software runs on your own server and you give us permission, from read access to its database. If it turns out it cannot be connected, we tell you before we start.

05

WhatsApp, Instagram and Facebook: what Meta allows

Connecting Meta's channels to the record is possible, but each one has its own rules, and they are worth knowing before you plan a single automation. What Meta's pages say, checked 15 October 2026:

WhatsApp

Connection
Any CRM WhatsApp integration goes through the WhatsApp Business API; with the free app, whatever a customer tells you has to be copied by hand. We explain it in what the WhatsApp Business API is.
Writing first
Meta requires a person's opt-in before a business messages them (Meta, opt-in), and more than 24 hours after their last message only approved templates can be sent (Meta, templates).
Cost
Meta charges per message. Since 1 October 2026 that includes service replies, after 1,000 free per number per month (Meta pricing, updated 30 September 2026). Details in WhatsApp Business API pricing in 2026.
AI
Since 15 January 2026, Meta's terms restrict general-purpose AI assistants on the API. An assistant your business uses to serve its own customers is a different case: what is and is not allowed.

Instagram and Messenger

Connection
With an Instagram professional account or a Facebook Page, messages reach the record through Meta's API. This is what an Instagram CRM connection amounts to.
Writing first
On Instagram, a business can only reply after the person has written (Meta, Instagram messaging API).
Window
On both channels, there are generally 24 hours to reply from when the person writes (up to 7 days if they first write from a Facebook or Instagram ad that opens the conversation); if a person replies rather than an automation, Meta lets the reply be tagged for a separate 7-day window (Messenger and Instagram policy).

Lead Ads forms

Connection
Leads from Facebook and Instagram forms can reach the record on their own through Meta's API, with a delay of a few minutes at most (Meta, retrieving leads).
Limit
Meta only keeps them available for download for 90 days after they are submitted, and recommends downloading them often or using a CRM (Meta, expired leads). Connecting today does not bring back what has already expired.
06

When you do not need a custom CRM

If your sales process is simple and your team works well in a standard tool, do not build anything. The well-known CRMs already connect many of these channels without development, although some only on their higher plans:

  • HubSpot connects email and syncs Facebook Lead Ads leads on every plan. WhatsApp in its inbox needs Marketing Hub or Service Hub at Professional or Enterprise, and Instagram messages need Marketing Hub Professional or Enterprise (HubSpot, email; WhatsApp; Instagram; Lead Ads).
  • Zoho CRM has its own WhatsApp integration and captures leads from social media from the Standard edition up (Zoho, WhatsApp; editions).
  • For the ERP, HubSpot's marketplace has an Odoo data sync built by HubSpot and third-party apps for Business Central, SAP Business One and several Sage products (HubSpot marketplace). Before building, we check whether one of them does the job.

A custom (or bespoke) CRM is worth it when the way you sell does not fit a standard tool, when the data that matters lives in your ERP and no connector brings it across properly, or when you want the record, the rules and the data to sit where you decide. If you already have a CRM that works, we build only the missing piece around it.

Sometimes the answer is to build less. On Odysi Reach for retail three problems came up, and we deliberately parked the third, a larger CRM-style build, to ship what paid for itself sooner. How to decide in your case: build, buy or wait and no-code vs custom code for internal tools.

07

How we do it: in phases

First step

A call and a written proposal

In half an hour we look at which systems you use and what each one allows. Then we send you a written proposal with the scope, the price and the assumptions behind it.

Phase 1

The record and one or two connections

We start with the sources that matter most, for example the ERP and WhatsApp, reading only. We agree the rules for matching customers and test them on your data.

Phase 2

The automations

The email and WhatsApp messages that are sent by hand today, with a person approving what matters before it goes out.

Phase 3

Analytics and AI

The dashboard and the questions about your data, once the record is reliable. AI on top of duplicated data gives wrong answers with great confidence.

Each phase ends in something your team uses, and if the first one already gives you what you needed, we stop there. We do not give timelines before we have seen your systems: they depend on how many sources there are, whether your ERP has an API and the state of the data, and they go in the proposal. What moves the price is explained in how much a custom AI tool costs.

What we have built

None of these is a full CRM. They are the pieces of one.

01 · Connecting to a client's system

Fixlab

A WhatsApp assistant in production since June 2026 that identifies the customer against the Fixlab platform and opens requests through its API. Between 26 June and 24 September 2026 it handled 279 conversations from 218 people and opened 20 reform requests end to end.

Read the case
02 · A system the client runs itself

Saint Charles Hardwoods

A custom catalog system the new owners manage themselves, live since August 2026. Permissions apply record by record and decide who can read and change what, and every relevant admin action is written to an audit log.

Read the case
03 · A dashboard on their own data

Odysi Reach for retail

A sales dashboard that reads a brand's sales sheet: revenue, active accounts, campaign over campaign, a per-agent view and new, returning and lost accounts, with the figures audited against the original file.

Read the case

We will not tell you we have connected a particular ERP if we have not. What we have done is read from and write to a client's system through its API, build a system the client runs itself, with access control, and turn a sales spreadsheet into a dashboard with the figures checked against the source.

08

The data, GDPR and what is yours

You are the controller of your customers' data and we are the processor, under a data processing agreement, as Article 28 of the GDPR requires. Bringing data together does not mean keeping everything: each field in the record needs a purpose, and we document where each component processes and stores data.

Marketing messages by email or WhatsApp need the customer's consent. In Spain, article 21 of the LSSI makes an exception for existing customers: only for your own products or services similar to what they bought, with their contact details obtained lawfully, and with a simple, free way to opt out both when the details are collected and in every message. On WhatsApp, Meta asks for its own opt-in as well.

The system is built on your criteria and your data, which are yours, and they are not shared with other clients. At handover we document everything, and the documentation is fully yours, so your team can change the rules without us.

FAQ

FAQ: custom CRM development with AI

What is a single customer view?
One record per customer that brings together what your separate systems know about them (invoices, messages, ad leads, emails), with duplicates matched and merged. It is also called a unified customer view or customer 360. In a custom CRM, it is the record your team opens before replying to anyone.
Which ERPs can be connected to the CRM?
It depends on the software, the version and the plan. According to their vendors, Holded includes its API on every plan; Odoo's external API is only on its Custom plans; Sage 200 needs the Advanced edition and the Sage Soluciones Conectadas licence; a3innuva and a3factura need the Conectia subscription; and Business Central online has its APIs enabled. Sage 50 and a3ERP do not appear on Sage's or Wolters Kluwer's developer portals; there we usually work from exports or a partner's connector. We check it against your version before proposing anything.
Do we have to replace our ERP, or the CRM we already have?
No. The record is built on top of what you already use and reads from it; your ERP stays where you invoice and keep the books. If you already use HubSpot, Zoho or Odoo and it works for your team, it stays, and we build only the missing piece: the ERP connection, a specific automation or a dashboard. First we check whether your CRM's marketplace already has a connector that does it without development.
Do I need a custom ERP?
Almost never. The ERP holds the accounting, tax, stock and orders, and in Spain it has to meet the legal and tax requirements for invoicing. Replacing it is a long, risky project, and that work is already carried by established ERP vendors. Most companies are better served by keeping their ERP and building around it: the customer record, the connections, the automations and the analytics, which is what we do. A custom ERP only makes sense when the processes are very specific and stable and no standard ERP fits, and it is not what we offer.
Do we need the WhatsApp Business API to connect WhatsApp, Instagram and Facebook?
For WhatsApp, yes: with the free app, whatever a customer tells you has to be copied by hand. Instagram and Facebook connect through Meta's messaging API, with an Instagram professional account or a Facebook Page. On Instagram a business can only reply after the person has written, and on WhatsApp, more than 24 hours after the customer's last message, only approved templates can be sent. We explain it in what the WhatsApp Business API is.
Do Lead Ads leads reach the record on their own?
Yes, once connected: Meta sends them through its API with a delay of a few minutes at most, and they land in the customer's record, new or existing. Without a connection they have to be downloaded by hand, and Meta only keeps them available for download for 90 days after they are submitted.
How do you know the WhatsApp customer is the same one as in the ERP or email?
With written rules agreed with you. The same tax ID, email or phone merges records on its own; likely matches, such as the same company name in the same town, go on a list for someone on your team to confirm. Before switching it on we test it on your data and show you which duplicates it finds.
CRM vs ERP vs CDP: what is the difference?
The ERP runs operations: orders, invoices, stock and accounting. The CRM runs the relationship with each customer: conversations, opportunities and follow-ups. A CDP (customer data platform) brings customer data together from many sources, mostly for marketing. What we build is a CRM that also brings your other systems' data into one record, sized for a small or mid-sized company.
What does the AI actually do, and who checks it?
It summarises a customer's record before a call, sorts incoming messages, suggests the next step and answers questions about your data in plain language. It does not send or change anything on its own: a person reviews and decides. If any part of it talks to your customers, it says it is an AI, as the EU AI Act requires from 2 August 2026.
Who owns the data, and is it GDPR-compliant?
The data is yours. You are the controller and we are the processor, under a data processing agreement (GDPR Article 28). It is not shared with other clients, we document where it is processed and stored, and the system's documentation is fully yours.
Can we start with only WhatsApp or only email, and how long does it take?
Yes, and that is how we recommend it: one or two sources first, for example the ERP and WhatsApp, and the rest once that works. The timeline depends on how many sources there are, whether your ERP has an API and the state of the data; we do not give it before seeing them, and it goes in writing in the proposal.
Keep reading

If answering WhatsApp is what weighs most, see the WhatsApp AI agent for customer service; if it is email across several inboxes, the AI email agent.

Leave your details

Prefer that we get in touch?

Leave a name and an email or phone. One of us will write to you to hear which systems you use and tell you plainly whether you need a custom CRM or a standard one will do.

We use your details only to reply to you. More in our privacy policy.

Let's talk

Tell us where your customer data lives today

In half an hour we look at which systems you use, what each one allows and where the first phase would start. Then we send you a written proposal.