An ecommerce CRM becomes useful when it helps someone answer three questions: who is this customer, what are they asking for, and who will act next? A long contact list does not answer those questions by itself. Start with the customer journey and the decisions your team needs to make, then decide which records and connections support that work.
This guide covers the relationship workflow around a purchase. Product references use Odoo 19 documentation and Shopify’s customer-contact guidance, checked on 9 November 2026. The proposed process below still needs to be configured and tested in your own setup.
Keep customers, opportunities and orders distinct
A customer record identifies a person or organisation. An opportunity describes a potential sale that needs attention. An order records an agreed transaction. A support case tracks a problem that needs resolution. Link these records where appropriate, while preserving what each one means.
A completed online purchase does not automatically need an open sales opportunity. A request for a bulk quotation may need one. A delivery complaint belongs with the people responsible for resolving it; adding it to a sales pipeline can obscure both the complaint and the sales forecast.
In Odoo CRM, a lead can be converted to an opportunity and linked to an existing customer or used to create a new one. That gives you a useful decision point for checking identity and ownership. See Odoo’s lead-conversion documentation.
Agree the record and owner for each situation
Use a short routing table before configuring fields or automation. The following is a proposed starting point, not a description of a prebuilt integration.
| Customer situation | Record to work from | Owner and next action |
|---|---|---|
| Question before purchase | Enquiry linked to the customer | Sales or service: answer the question |
| Bulk order or tailored quotation | Qualified sales opportunity | Sales: confirm requirements and prepare a quote |
| Payment or delivery query | Order reference and support case | Operations: investigate the transaction |
| Damaged item or return request | Support case linked to the order | Service: explain the next resolution step |
| Marketing subscription change | Channel-specific preference record | Marketing operations: update the sending audience |
For each route, name a backup owner and decide what happens when the first owner is unavailable. Set response targets that your team can actually support. A routing rule is incomplete if an unassigned record can sit unnoticed.
Check identity before combining records
Decide which identifiers your team trusts: an internal customer ID, the original store customer ID, email address, telephone number, and relevant order references. Keep the source identifier when information moves between systems. Avoid treating a shared office address or family telephone number as proof that two people are the same customer.
Odoo 19 identifies similar leads and opportunities using the associated contact’s email address and phone number. Its documentation also warns that merging is irreversible. Review the records and the underlying requests before merging; the same customer can have two legitimate opportunities. See Odoo’s guidance on similar leads.
Give every open request a next action
A stage such as “Contacted” tells colleagues what happened. A named owner, next action and due date tell them what should happen next. Prefer a concrete instruction such as “Confirm the requested quantities” over “Follow up”. Record the outcome when the action is completed.
Odoo CRM supports activities attached to leads and opportunities, including follow-up tasks and activity plans. Availability of some activity types depends on installed applications. Use Odoo’s activities documentation to check the options for your deployment.
Keep marketing preferences explicit
Store contact details separately from permission to send marketing. Define the status for each channel, the source of that status and when it changed. Treat an unknown preference as unknown. Do not let a new order, an import or a record merge silently replace a later opt-out.
Shopify documents separate ways to collect marketing subscriptions and explains how customers can opt in through checkout or signup forms. Its settings are not a substitute for reviewing applicable requirements. See Shopify’s customer-contact guidance. Verify how your chosen connection carries these preferences; do not assume a customer sync includes them.
A fictional walkthrough
Imagine Cedar Desk, a fictional online office-supplies shop. A customer asks about buying chairs for two offices. The team links the enquiry to the existing customer, opens a quotation opportunity and assigns a salesperson to confirm quantities. When an order is placed, its reference is linked to the opportunity.
A later delivery query goes to operations with that order reference. It does not reopen the sales opportunity. The customer has declined promotional email, so the marketing preference remains unchanged throughout the process.
Run five acceptance tests
- Repeat enquiry: submit the same enquiry twice. Confirm that the team can identify the repeat and avoid duplicate outreach.
- Separate requests: create two legitimate buying requests for one customer. Confirm that neither disappears into an incorrect merge.
- Owner absence: leave the assigned owner unavailable. Confirm that the agreed backup can find and act on the request.
- Service handoff: raise a delivery issue after purchase. Confirm that operations receives the order context and responsibility is visible.
- Preference preservation: opt out, then update the customer or place another test order. Confirm that promotional sending remains suppressed.
Use these results to define your Odoo implementation scope and website enquiry flow. To discuss the records, handoffs and acceptance criteria your business needs, contact Lava Solutions.
For a related planning step, use the Shopify and Odoo integration checklist.
