Skip to content

Shopify CRM integration for the sales Shopify never sees

When sales close by phone or in the shop, Shopify sees only the last step. What a CRM should hold, how to sync without duplicates, and when Zoho is enough.

Online and counter sales joining one customer record. Illustration; the logo marks the platform discussed.
In this article10 sections
  1. What Shopify records, and what it misses
  2. The records a retail CRM needs
  3. Fix the storefront's next step first
  4. Syncing Shopify and the CRM without duplicates
  5. Off-the-shelf or custom?
  6. Automate reminders, keep people on decisions
  7. Deposits: audit before you promise
  8. What to leave out of version one
  9. Start with one sale
  10. Sources

A Shopify order is often the last line of a sale that started a week earlier with a phone call. One retailer we spoke to told us their store drew steady visits and very few online sales, while most of their business closed in the shop. Shopify recorded the end of some of those sales and nothing that came before.

If that sounds like your store, a better theme won't fix it. You need somewhere to keep the work that happens before and after the order.

What Shopify records, and what it misses#

Shopify is a commerce record. It knows your products, inventory, checkout, orders and each customer's order history. It doesn't know about:

  • an enquiry that hasn't become an order yet;
  • the quote you sent on WhatsApp on Tuesday;
  • the customer who visited the shop, paid a deposit in cash and is waiting for a supplier;
  • who on your team owns the next step.

Staff access matters too. In India, Shopify's plans list these staff allowances, billed yearly:

Basic, about $16 a month
0Additional staff accounts
Grow, about $59 a month
5Staff accounts
Advanced, about $239 a month
15Staff accounts

If your salespeople need to see orders, you're already paying for that on Grow or above, and they still won't see the enquiries.

The records a retail CRM needs#

When we proposed a CRM for a Shopify retailer, it came down to five records:

  • A customer profile. Contact details, city, consent preferences and the Shopify order history, pulled in rather than retyped.
  • An enquiry. Where it came from, which product, its status, who owns it and the next action with a date.
  • A quote. Items, amount, validity, whether it was sent, accepted or declined, and a follow-up date.
  • In-shop activity. Visits, calls and purchases that never become a Shopify order, recorded without forcing them into one.
  • Supplier milestones. For made-to-order items: supplier order, expected date, received, balance due, ready to dispatch.

Payment state comes last, once you've agreed how deposits are collected. More on that below.

Fix the storefront's next step first#

A CRM can only track enquiries the website actually captures. Two storefront changes feed it.

Give product cards a price state that means something: a fixed price, a starting price, price on request, made to order, or temporarily unavailable. A $0 price can't tell a buyer which of those they're looking at.

Then replace "call us" with a short form: name, phone, city, the product, quantity, notes and a consent line. Each submission becomes an enquiry in the CRM with an owner, and nobody has to retype it from a chat.

Syncing Shopify and the CRM without duplicates#

Decide which system owns each record before writing any code. When two systems both think they own something, you get duplicates.

RecordOwnerNote
Products, prices, stockShopifyThe CRM reads them
Orders paid at checkoutShopifyThe CRM links to them by order ID
Enquiries, quotes, follow-upsCRMShopify never sees them
Deposits and balances collected outside checkoutCRM ledgerReconciled against the payment provider
The final invoice and order for an offline saleDecide explicitlyThe usual source of double counting

Then build the sync defensively. Shopify signs every webhook, so verify the signature, and use the X-Shopify-Webhook-Id header to ignore repeats. Shopify's webhook guidance says delivery isn't guaranteed and recommends a reconciliation job that fetches recently updated records through the API. Run one on a schedule, say hourly, so a missed webhook costs you an hour of lag instead of a missing order.

Matching in-shop customers to online ones is the hard part. A phone number is often the most practical key in Indian retail, but families share numbers. Let the system suggest a match and let staff confirm the merge.

Off-the-shelf or custom?#

OptionFits whenWatch for
Shopify alone, with appsSales mostly happen at checkout, with little quotingBasic has no extra staff accounts; app subscriptions add up
Zoho CRMA standard lead-to-deal pipeline your team can configureListed at about $8 a user a month for Standard and about $15 for Professional, free for up to three users. Check how the Shopify connection handles your stages.
OdooYou want CRM, inventory, invoicing and purchasing in one systemCustom code, Odoo.sh hosting and external API access come with the Custom plan. Moving stock out of Shopify is a bigger project.
Custom CRM around ShopifyYour stages, such as deposit, supplier order and balance, are the business, and the CRM must read Shopify directlyHigher upfront cost, and someone has to maintain it

Prices are from Zoho's and Odoo's pricing pages on 4 October 2026, before tax, converted from rupees. For scale, five salespeople on Zoho Professional is 5 × $15 = $75 a month, or $900 a year, before any setup or integration work.

We build custom software, so here is our bias stated plainly: most stores should start with Shopify alone or a CRM's free tier, and move to custom only when their real stages don't fit. We recommended custom for one retailer because its made-to-order sale ran through a deposit, a supplier order and a balance, and the CRM needed Shopify's customers and orders on the same screen. The reasoning is in the Shopify study on our Work page.

Automate reminders, keep people on decisions#

Automation should create tasks, never make judgements:

  1. New enquiryCreates a lead and assigns an owner.
  2. Quote, no outcomeCreates a follow-up task.
  3. Quote acceptedOpens a supplier checklist.
  4. Balance verifiedMoves the sale to dispatch.

Pricing, compatibility, refunds and supplier promises stay with your staff. One rule matters most: never treat a customer's "I've paid" message as proof of payment. Staff verify it against the payment provider.

Deposits: audit before you promise#

Deposits are where Indian Shopify stores get stuck. Shopify's native partial-payment workflows for general online orders sit on Plus, which starts at about $1,840 a month on a three-year term. Shopify Payments isn't offered in India, so on Basic you also pay Shopify a 2% fee on top of your gateway's charges.

A Razorpay payment link can collect a deposit, but Shopify may not show the order as part-paid. Treat the CRM's ledger as the record of deposits and balances, and check Shopify's API terms before automating any payment outside checkout. The details are in who owns the other $420?

What to leave out of version one#

  • Catalogue clean-up. It's a project of its own; build filters on the fields you already trust.
  • WhatsApp campaigns, until your WhatsApp Business API account, templates and customer consent are in place. Our WhatsApp cost guide helps with the budget.
  • Payment automation, until someone has audited your plan, gateway, refunds and fees.
  • AI features, until the records underneath are complete enough to trust.

Start with one sale#

Pick one recent sale that began online and finished in your shop. Write down every step, who did it, where it was recorded and where money moved. That page will tell you whether you need a CRM, which one, and what it has to connect to.

If you want us to look at it, send us that one sale. We'll tell you what we'd connect first, and whether you need us at all.

Sources#

Checked 4 October 2026.