Hi everyone,
I’m facing a customer identity issue in Shopify and would love some guidance from people who’ve solved this at scale.
Problem Statement:
In my store, multiple customer records are being created for the same person even when the phone number is identical.
Real Example (from my data):
One customer “Manasa” placed 3 orders, but Shopify created 4 separate customer profiles:
-
Customer 1: Name = Manasa, Phone = +91 70325 42614, No email → Order #1207
-
Customer 2: Name = Manasa, No order (likely created via draft/manual)
-
Customer 3: Name = Manasa Sowmya Mallampalli, Phone = 7032542614, Email present → Order #1434
-
Customer 4: Name = Manasa, Phone = +91 70325 42614, No email → Order #1331
So in reality:
1 customer with 3 orders
But in Shopify:
4 different customer records
Orders are split across different customer IDs
Why this is happening (my understanding):
-
Shopify uses email as primary identity
-
If email is missing or different → new customer is created
-
Draft orders and manual orders don’t reliably match existing customers
-
Phone number is not used for identity
What I want to achieve:
-
Treat phone number as the primary customer identity
-
Normalize phone numbers (e.g. +91 format)
-
Ensure:
- Same phone → same customer (even if name/email changes)
-
Get accurate repeat customer tracking
Constraints:
-
Not on Shopify Plus
-
Cannot customize checkout deeply
-
Using an external assessment tool (Tally), so phone is the most reliable identifier
My questions:
-
Has anyone implemented phone-based identity in Shopify (non-Plus)?
-
Is there a reliable way to prevent duplicate customers at creation time?
-
Any recommended apps / middleware to deduplicate or merge customers?
-
Best practices when using draft orders to avoid duplicate customers?
-
How do you handle repeat customer tracking and LTV in this scenario?
Current approach I’m considering:
-
Ignore Shopify
customer_id -
Use normalized phone as
customer_key -
Group orders by phone in analytics layer
Would love to learn how others are solving this in production.
Thanks in advance!