Hello Readers, I will not be talking about OWA every time. In our prior time together we discussed parsing OWA logs to determine who has been accessing someone else's account. For criminal prosecution (unauthorized access) or internal investigations this might be enough, but for investigations involving the civil court system you need to show that the information accessed and
. Read More........Pimp your Duplicate Detection with Phonetic Matching (Soundex)

Ever wanted to get some more "fuzziness" in your detection rules? Then Soundex as a phonetic algorithm will be your friend. There are some caveats but for some applications it might be useful. The nice thing is, that it's super-easy to implement.
Let's consider two options (in your project you might want to go for a "best of both worlds" approach by using both):
Method1 Clientside: Generating the Soundex-Code at the onSave event
Pro: Quick and easy implementation
Con: Will not work on imports or Bulk Operations
Step by step:
1) add a custom field "new_soundex_lastname" to the desired entity (lead, account, contact or any custom entity)
2) add the field to the form
3) add this onSave event:
function soundex(str) {
// original from http://phpjs.org/functions/soundex:520
var i, j, l, r, p = isNaN(p) ? 4 : p > 10 ? 10 : p < 4 ? 4 : p;
var m = {BFPV: 1, CGJKQSXZ: 2, DT: 3, L: 4, MN: 5, R: 6};
var r = (s = (str+'').toUpperCase().replace(/[^A-Z]/g, "").split("")).splice(0, 1);
var sl = 0;
sl = s.length;
for (i = -1, l = sl; ++i < l;) {
for (j in m) {
if (j.indexOf(s[i]) + 1 && r[r.length-1] != m[j] && r.push(m[j])) {
break;
}
}
}
return r.length > p && (r.length = p), r.join("") + (new Array(p - r.length + 1)).join("0");
}
crmForm.all.new_soundex_lastname.DataValue=soundex(crmForm.all.lastname.DataValue);
4) add a duplicate rule & publish

5) enjoy life without unneccessary duplicates ;-)

Method 2 Plugin: Firing at Pre-Create event
Pro: Works on Imports
Con: A bit more work
. Read More........