We would like to send users of our service an email after they have availed our service. We get the bookings through online website or through offline medium. We have the users name ( just first name or full name) and the email. But, we would like to know how to address a user in the email like "Dear Bill" or "Dear Mr Clinton". So, we are designing a form to get user's input. Have you seen a UI for such a scenario or can give some suggestions ? Is there any best practice or research you can share?
This depends on the kind of tone you and relationship you want to establish with the user. it's like how they ask for your 1st name and write it on your cup at starbucks vs how they call you by your surname at a bank or how they simply refer to you as sir or ma'am at a police station. Calling by the 1st name is more casual and personal while calling someone by the surname is more formal and official.
You can also decide on this based on the target age group of your users or what the norm in it's specific industry. For example in the military they would mention the rank (e.g. lieutenant) before the name.
If you do have an offline communication before this with the customer, try to be consistent with that.
As others noted, sometimes it can be optimal to address academics with their appropriate titles, while sometimes it may not, depending on the nature of your service and the brand message you're trying to convey.
I spent 20 minutes googling a research article I read that even mentioning someone's name in an email led to less conversion as people were slightly freaked out about the service knowing their name (as they probably forgot they shared it a while ago). In those cases, even mentioning the name might actually be counterintuitive.
What is consistent is that some form of address is definitely needed. "Dear XYZ user," is still better than nothing, or a overdesigned email. If you have a product name that can be used as a name for the user "e.g. Hello, Googler!", you can avoid being too creepy.
That said, again, it really depends on what your service is and what kind of brand tone you have.
It's culture-specific, so there is no global best-practice. Most USAians are used to a surface (i.e. false) informality, but even in the US there are gradations, as when someone of higher rank addresses someone of lower by their given name. A might call B "John", but B will still address A as "Mr/Ms Jones" unless they work together every day, and even then there's no guarantee. The only advice I can give is "know your customers".
Other answers are spot on. This is highly culture-specific. However, since you have asked let me offer a suggestion.
You can ask the user to furnish title in the user profile page. That is, Mr, Miss, Mrs Etc. Next to it, you can get user's preference if s/he wants the title to be used in communications and activity on your product site/platform.
You can make the title optional. If user furnishes the title explicitly and selects that box, use a more formal tone with interacting with the user. In other cases, a more informal setting will do.
This needs to be coupled with the domain of your website and demographic of your target users. If you have a financial enterprise website, informal greetings should be avoided by default. I am yet to see an enterprise utility being informal and casual in the communication.
Even in case of non enterprise solution the brand image matters in designing the language styles. A professional concierge service might be more formal than a funky food delivery startup.
Do have a look at how letterboxd user profile page. They have a nice way of handling salutations. They offer flexibility to the user regarding how s/he wants to be addressed. Unfortunately, I can not post a screenshot of that screen right now.