Has a customer ever called to complain about an invoice, and whoever answered had no idea the sales rep had promised them a discount by email? Does one of your best customers show up in the sales report as two midsize accounts because it was created twice? In both cases, the customer history is failing: it's either incomplete or duplicated.
In this guide, you'll learn what customer history and a 360 view are, what each team should log, where it breaks down, and how CRM data quality affects your reports and your AI, plus a checklist to audit it.
What customer history is (and what a 360 view is)
Customer history is the organized record of everything that has happened between your company and a customer: quotes, orders, invoices, payments, support tickets, conversations, and deliveries, each with a date and an owner. A 360 customer view is that history brought together in a single record, so any team can see the full relationship without having to ask anyone for data.
It's useful for every customer, not just large accounts; how to use it in quarterly reviews is covered in the guide to key accounts and QBRs.
Customer purchase history
Customer purchase history records what the customer bought, when, at what price, and on what terms. It helps you spot drops in purchasing and measure profitability per customer, but it doesn't explain why someone stopped buying: that's usually in the tickets and conversations.
What the customer record in your CRM should include
The customer record in the CRM starts with master data: legal name, RUT (Chile's tax ID), line of business, address, and contact people with their email and mobile number. On top of that, each team adds its part:
| Team | What to log | Why it matters |
|---|---|---|
| Sales | Quotes, opportunities, and loss reasons | Know what was offered and why it didn't close |
| Orders | Sales orders, products, and terms | See purchase frequency and usual products |
| Invoicing and payments | Invoices, credit notes, payments, and overdue balance | Collect with context and avoid extending credit to customers who don't pay |
| Support | Tickets and complaints | Know whether the customer is upset before you call |
| Conversations | Emails, calls, meetings, and agreements | Keep promises from depending on someone's memory |
| Deliveries | Shipments, plus promised and actual dates | Understand complaints and measure on-time delivery |
The rule of thumb: if a conversation produced a commitment, that commitment goes in the customer record, not in the inbox of whoever made it.
Where customer history breaks: spreadsheets, personal email, and standalone apps
Customer history gets fragmented in predictable ways: spreadsheets for each sales rep, quotes sitting in personal email, WhatsApp on the account manager's phone, standalone apps for support or shipping, and invoicing kept separate from the CRM. When someone leaves the company, part of the history leaves with them. If you're coming from spreadsheets, the guide to migrating from Excel to an ERP explains how to clean up master data before loading it.
CRM data quality: duplicates, contacts with no RUT, and other data entry errors
CRM data quality is the degree to which customer records are complete, accurate, free of duplicates, and properly linked to one another.
Duplicate contacts
Duplicate contacts are two or more records for the same customer, such as “Comercial Andes SpA,” created from invoicing, and “Comercial Andes,” created from a web form. Their sales are split across both records, and the customer ranking underestimates them. A parent company and its subsidiary, on the other hand, have different RUTs: they're not duplicates.
The RUT as the deduplication key
In Chile, the RUT uniquely identifies every company and individual, and electronic invoices require it for the recipient. Use it as your key: search by RUT before creating a customer and make it your first criterion when reviewing duplicates. In Odoo's Chilean localization, a contact that receives electronic documents carries an identification number, taxpayer type, activity description, and DTE email, the address where it receives electronic tax documents (Odoo documentation for Chile). In Mexico, the RFC plays that role.
ERP data integrity
ERP data integrity means records are properly related: people to their company, opportunities to a customer, tickets to whoever opened them, and credit notes to their invoice. These data entry errors distort your reports:
- Customer created twice: splits its history and its sales.
- Contact with no RUT: can't be matched against invoicing.
- Individual not linked to a company: their conversations stay out of the customer record.
- Email or mobile number in the wrong format: notifications and collection notices bounce.
- Opportunity with no linked company: the per-customer pipeline is incomplete.
- Ticket not linked to a customer: the complaint isn't visible when someone goes to sell to them.
How to centralize customer history in your CRM or ERP (Odoo example)
Centralizing means every team writes to the same record. In Odoo:
- Companies and individuals. Each individual is linked to their company, so their orders and invoices land on the right account.
- Smart buttons. Depending on the apps installed, the record shows shortcuts to meetings, sales, subscriptions, opportunities, invoicing, and Helpdesk tickets.
- Chatter. Every record keeps a thread at the bottom with emails, notes, and changes.
- Merging duplicates. Contacts finds duplicates by one or more criteria (email, name, tax ID, or parent company) and lets you merge them. According to Odoo's documentation, merging is irreversible: review each group before confirming.
- Deduplication rules. In the Data Cleaning app, deduplication (Odoo Enterprise only) defines rules per model and merges records manually or automatically above a similarity threshold.
Odoo 20 adds access to the customer's subscriptions from the lead and a chatter filter to show only conversations or only changes, according to its release notes. These features depend on your version and plan: you won't have them on an earlier version.
To organize your pipeline, see the guide to Odoo CRM. Bringing CRM, Sales, Invoicing, and Helpdesk together in a single database is part of an Odoo implementation.
Customer history and AI: why an agent gets it wrong without it
A sales or support AI agent reads the customer record before replying. If the customer has two records, it sees half the history; if the latest complaint ended up in a ticket with no customer, it will pitch a sale to someone who's waiting for a fix.
Besides, nobody types everything in. The AI assistants and agents from Kersify, such as the CRM & Sales Agent, bring what was discussed in meetings, chats, and emails into the customer record, and they can search by RUT first so they don't create another duplicate; a person reviews before anything is saved. They work with Odoo or with another CRM. To connect an agent to your ERP, read the guide on MCP; for support, read the guide on AI customer service and the page for our Helpdesk Agent.
A complete history also gathers personal data: log only what's necessary and limit who can see each record. What changes under Law 21,719 (Chile's new personal data protection law) is covered in the guide on personal data in the CRM.
Checklist to audit your customer history
Take a sample of 20 active customers and review each record:
- Is there a single record per customer, with the correct RUT and legal name?
- Is each individual linked to their company, with a valid email and mobile number?
- Can you see the latest quotes, orders, invoices, and payments?
- Are tickets and complaints assigned to the customer?
- Were the agreements from the latest meetings logged?
- Do open opportunities have a company, an amount, and an expected closing date?
If several records fail on the same point, the problem is the process: you need to define who creates customers and with what minimum data.
Alerts that keep customer history clean
To keep the mess from coming back, Keep Checking, our alerts module, adds a data integrity line to Odoo with 39 alerts in its catalog, such as “Duplicate contacts,” “Contacts with no RUT,” “Individuals not linked to a company,” “Contacts with no email (or an invalid format),” “Opportunity with no linked company,” and “Tickets not linked to a customer.” If you need a different one, you can request it as a custom alert.
Plans include up to 10, 30, 50, or 100 alerts, from 3 to 10 UF + VAT per month (the UF is Chile's inflation-indexed unit of account), with installation in 7 days. In the quote builder, put together your selection of alerts and request your quote.
Why do it with KPB Solutions
Cleaning up customer history has a technical side and a process side, and we work on both. At KPB, an Odoo Gold Partner (top 5% worldwide), we centralize CRM, Sales, Invoicing, and Helpdesk in Odoo, turn on data integrity alerts with Keep Checking, and add AI assistants with Kersify.
Want one complete, duplicate-free record per customer? Book a meeting and let's talk about how to organize your customer history.