How matching works
How matching works
Every time a sync brings in a person (someone who booked a ticket, placed an order, registered for an event or subscribed to the newsletter), Mocca looks for that person’s Contact before it creates a new one. It checks, in this order:
- The same id in the same system. If the Shopify customer has Shopify ID 12345 and a Contact already holds Shopify ID 12345, that is the person.
- The same email address. Emails are compared lowercased and without surrounding spaces, so
Ana.Lopez@Example.comandana.lopez@example.commatch. - The same phone number. Phones are compared in international format, so
(201) 555-0142and+1 201 555 0142match. An extension is ignored for matching.
If none of those finds a Contact, Mocca creates one. If more than one Contact matches, the oldest one wins.
When Mocca finds the person, it also fills in what was missing: the new system’s id, and an email or phone the Contact did not have yet (added as an extra row, not replacing the primary one).
What Mocca ignores
- Placeholder emails such as
none@none.com,test@test.comornoemail@...: they are not stored and never match. - Invalid or placeholder phones, such as
000-000-0000or a number made of one repeated digit.
When two systems disagree
If a Contact already holds a different id for the same system (for example, it has Peek Pro ID A and a new booking arrives with Peek Pro ID B but the same email), Mocca keeps the existing id and writes a Contact identity conflict entry in the Error Log. An administrator decides whether these are really the same person.
Why duplicates still happen
Two records of the same person end up as two Contacts when they share nothing Mocca can compare: a different email in each system and no phone, for example. Mocca lists likely duplicates for review; see Merging duplicates.
Every email and phone is stored in the same normalised form when you save a contact by hand too, so typing an email in capitals in the CRM does not create a mismatch.