OK, so this is going to attract the geeks. What have you done to get your data to 3NF? In particular, I'm wondering about fixing up company names. I work in healthcare. I like to use the example of the number of ways one could spell out St. John's Hospital. Now, we know that email domains are typically wonderful for getting an accurate spelling but how to you normalize company names off of the email domain? Marketo doesn't excel at data management.
Any suggestions for normalizing data? Even 1st or 2nd normal form is better than pure free-form text.
A couple of thoughts: we usually use a combination of email domain and postal/zip code to identify the company in a account DB. This can be done in SFDC with a trigger using the account DB which is itself normalized. In SFDC, the interesting point is that you can link the lead to the account with a lookup field (meaning the link is the ID) and make sure that from then the lead company name always reflect the account name (with workflows and process builders and/or triggers). This is the closer I think of the 3NF.
Not as good but may be easier to implement : this can also be done with a webhook that will to the lookup in an external DB, but it's harder to keep the 2 in sync (if the account name changes, how do you make sure all the leads are updated ?)
Finally, I read a post a while ago, from Dan Stevens about lookup munctions that may enable this kind of lookup search as well.