Whenever a lead or contact is created with ZK, the app searches for existing ones by matching the email address. You might have duplicate rules set in your Sf org, and they will kick in to prevent the creation of duplicates the same way if you were creating the records on your laptop. The app, however, cannot access them, and regardless of their existence, will only use the email as an identifier. So it's possible to run into duplicate errors when scanning business cards.
The native duplicate has no fuzzy logic there, so the email must match an existing one 100%. When an existing record is found, the app will update it, and not create a new one. There are some rules to this though, on which fields are updated and which are not. See below for more information.
How will the user know if an existing record was updated, or a new one created?
They can't. The record that was created or updated will end up as the the first one on their Recently Viewed list.
Does the app overwrite existing data when updating an existing record?
This depends on the field. The ones picked up in the scanner are NOT overwritten, but empty fields will be filled in. The scanner fields include First Name, Last Name, Company (on leads), Title, Email, Phone, Mobile Phone, Website (on leads), Fax, and all standard address fields. However, if workflow actions are set, they will overwrite existing data even in the aforementioned fields.
All other fields, except the standard field Description (on both leads and contacts, on contacts it's called "Contact Description"), standard or custom, will be overwritten if there is a value given in the app. The Description field will be appended so no previous data will be lost.
My user got a duplicate error message in the app, but can't find an existing record in Salesforce. Where is it?
There are three possible scenarios in this case.
The user does not have access to the duplicate record due to user rights. It could be because of the record type or ownership or any other criteria.
The duplicate record is a different object. Salesforce duplicate rules can mix and match leads and contacts. So when searching for existing records, be sure to search for different objects.
Salesforce duplicate rules can be very strict and use many different fields. For example, a partial phone number and a matching city, and part of the company name can be enough to trigger the Salesforce duplicate alert. This means that searching with the name of the lead will not yield any results.
When there is a duplicate error, can ZK provide us with the record ID that Salesforce identified as the duplicate?
Unfortunately not. Salesforce does not return the record ID in duplicate cases.