For any business with repeat customers
One record per customer, across everything they buy
The same person books by phone, orders under a nickname and pays with a different email. On paper that is three small customers. In truth it is your best one.
Where it goes wrong today
Your best customers are hidden
Their spending is split across duplicate records, so nobody on the list looks worth a thank-you or a follow-up.
Merging the wrong people
Two customers share a name, or a couple shares a phone. Merge them by mistake and one person gets the other's history.
Messaging people who said no
Someone opts out by text, but the email list never hears about it. Under the Data Privacy Act that is your problem.
What the system does about it
- Likely duplicates are scored and shown with the reason they match
- Only a shared phone or email can merge on its own; a shared name always goes to a person to check
- Regulars, big spenders and lapsed customers worked out from real purchases
- Consent is recorded as it is given or withdrawn, and nobody is contacted without it
Working demo
Try it yourself
- 01Ana appears three times. Merge her records and she becomes the most valuable customer on the list.
- 02Look at the two Maria Santoses. They are flagged for review and never merged automatically, because a name is not proof.
Possible duplicates · 5
Ana Cruz ↔ ana dela cruz
- Same phone number (+639171234567)
- Names are similar (85%)
ana dela cruz ↔ Ana Dela Cruz
- Same email address (ana.cruz@example.com)
- Names match
Maria Santos ↔ Maria Santos
- Names match
Roberto Bautista ↔ Elena Bautista
- Same phone number (+639204444444)
- Names do not match — could be a shared phone or address
Ana Cruz ↔ Ana Dela Cruz
- Names are similar (85%)
Only a shared phone or email reaches certain. Two people called Maria Santos score high enough to review and never high enough to merge automatically — welding two real customers together is far harder to undo than leaving a duplicate.
Customers · 9
| Customer | Segment | Seen in | Visits | Lifetime | Last | |
|---|---|---|---|---|---|---|
| Jose Rizal+639215555555 · jose@example.com | lapsed | Resort, Coffee shop | 3 | ₱84,810.00 | 340d | no |
| Ana Cruz+639171234567 | at-risk | Resort | 2 | ₱60,300.00 | 120d | may contact |
| Roberto Bautista+639204444444 | at-risk | Resort | 1 | ₱19,500.00 | 140d | no |
| ana dela cruz+639171234567 · ana.cruz@example.com | promising | Coffee shop | 2 | ₱705.00 | 12d | no |
| Maria Santos+639193333333 · m.santos@example.com | loyal | Coffee shop, Store | 3 | ₱663.00 | 2d | may contact |
| Ana Dela Cruzana.cruz@example.com | new | Store | 1 | ₱612.00 | 5d | no |
| Elena Bautista+639204444444 | at-risk | Coffee shop | 1 | ₱390.00 | 70d | no |
| Maria Santos+639182222222 | lapsed | Store | 1 | ₱240.00 | 190d | no |
| Lito Ramos+639226666666 | new | Store | 1 | ₱96.00 | 6d | no |
Campaign audience
2 of 9 contactable
The default is no. A customer with no consent record cannot be marketed to, and a withdrawal on one channel does not touch the other — unsubscribing from SMS leaves email alone, and the reverse.
- Ana Cruz: email yes (booking form), sms no (STOP reply)
- ana dela cruz: no record
- Ana Dela Cruz: no record
- Maria Santos: no record
- Maria Santos: email yes (counter sign-up)
- Roberto Bautista: no record
- Elena Bautista: no record
- Jose Rizal: email no (unsubscribe link)
- Lito Ramos: sms yes (receipt opt-in)
Seen in more than one business · 2
- Jose RizalResort + Coffee shop
- Maria SantosCoffee shop + Store
This is the reason to run one CRM over three businesses rather than three lists. Without it the resort and the coffee shop each see a stranger, and neither knows the other is serving the same person.
This is a demo with sample data. It runs in your browser, nothing you enter is sent anywhere, and it resets when you reload the page. A system built for you adds your own data, staff logins, and whatever else your business needs.
What is slower than it should be?
Tell me how the work is done today. The first conversation is free and comes with no obligation.