Sweating the UI and UX details: Emails and Email Addresses
blog.close.io
blog.close.io
Why would email clients copy a string like this? In my entire history of email copying and pasting, I don't think I've ever wanted that text.
In Gmail at least you can get what you want with some careful highlighting - but Apple Mail doesn't let you copy that portion at all. Hence this feature :)
The SMTP spec (RFC 5321) which describes what goes on the wire between an SMTP client and an SMTP server uses addresses in a '<to@example.com>' format.
defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
Can't blame Apple enough for making this a hidden default one has to use the terminal to enable. WHY ?
I last tried this around 18 months ago, in a Firefox extension. Was a bit fiddly but I could do what I wanted.
You're more limited in what you can do in a web application though.
For example I should be able to paste in any block from this page http://www.oracle.com/us/corporate/press/publicrelationscont... and have it figure out names, email addresses, phone numbers etc.
If we take your specific example, how would a computer even with "billions of cpu cycles" figure out which piece of information is someone's name and which is their job title? Or which is an address Vs. job title?
Sorting data and understanding it is a "hard problem" and relatively speaking computing power plays a very small part of that. What plays a much larger part is just having MASSIVE databases of already sorted data to compare against (e.g. Siri).
You most likely have the information as a single block especially if copying it from somewhere else. And it is certainly far easier if the user has to do one copy and paste versus once per field.
In this particular case they have a user sitting there so the answer doesn't have to be perfect every time - they just have to make sure that if the heuristics mess up that it can be corrected (eg let the user drag and drop elements into the right arrangement/field names).
> Or which is an address Vs. job title?
The former is likely to occur in a geocoding database and the latter isn't.
close.io focusses on sales so that immediately narrows down the likely possibilities for contact information. I'd be pretty sure naive code would have an 80% success rate, and analytics plus ongoing development would ensure ever improving success rates.
http://blog.close.io/post/46905541008/the-close-io-lead-clip...
https://chrome.google.com/webstore/detail/closeio/cmhcoonbgf...
https://en.wikipedia.org/wiki/Named-entity_recognition
This seems to be a product for it: http://www.alchemyapi.com/api/entity/proc.html
1) allow the user to enter their phone numbers in whatever format they want: 4081231234, (408)123-1234, 408-123-1234 and format it after they click 'save' to (408)123-1234 or however you want it.
2)Cache the domain of the email address for autocomplete suggestions if they enter a website. For example, if you type in phil@close.io for the email, I can already suggest http://close.io if you start typing in a website address.
I've created a draft proposal you're more than welcome to follow up on at https://github.com/mtrimpe/jInternationalPhone
But we're using it for more than just this scenario. If you're just concerned with this specific case you could come up with a simpler/shorter solution.
http://www.regular-expressions.info/email.html
I've yet to run into a problem with it. If you want to extract an address from a larger string, then you need to slightly modify the regex to capture the email address from the string. This is going to depend somewhat on the language you're using, but probably involves wrapping everything between the first \b and the last \b in parentheses.
I guess if I were certain that the target text was a "<name>" user@domain.com style string, I probably wouldn't use a regex (unnecessary overhead) and just split on > and trim or something silly like that.
Hmm, isn't this asking for trouble? Having the emails you send put in spam queues, or eventually having your MTA IP address blacklisted even. When you're sending out emails from @somewhere.tld, even though you aren't in control of somewhere.tld or it's MX server, and sending out multiple emails from the same mail server.
These days, sending email while remaining in the good graces of all the ISPs receiving email is awfully hard. cf http://sendgrid.com/docs/User_Guide/warming_up.html
@close.io team I don't use SaaS services except GitHub regularly, but if you would sell license your applicatoin I would buy a copy. I believe this is a good strategy when you've already a "satisfieable" amount of customers. But your mileage may vary.
They aren't. At least not consistently- the UK (where I suspect you might be given you use of "mobile phone") prefixes them all with 07, but in the US and Canada there is no such difference.
I'm not sure about this in a world with number portability.
> email address and website url are differntiatable too
Yep, we do this already.
> auto-import feature LinkedIn/Facebook/Google, that searches for the contact's
We'd like to pull in social data. It's not trivial, though services like FullContact.com can help.
Most companies think they cannot afford listening to their users, those who do earn my deep respect.
Btw. I'm from Germany and "mobile phones" can be differentiated easily here. Not only that, you'll even know which network the other number is signed up with.
D1 T-Mobile: 0151x, 0160, 0170, 0171, 0175
D2 Vodafone: 0152x, 0162, 0172, 0173, 0174
E-Plus: 0157x, 0163, 0177, 0178
O2: 0159x*, 0176, 0179
Locating positions of landlines phone numbers is even easier, because there are databases. The picture in the german wikipedia article explains how the association with a location works (no need to read the entire article). http://de.wikipedia.org/wiki/Telefonvorwahl But here you can get a free Database containing all landline numbers: http://www.vorwahl-nummern.de/vorwahlen/download.php
I really enjoy how metadata enriches actual data.
Direct link: http://www.access-paradies.de/download/pool/vorwahlen_deutsc...
So no, not possible to detect using rules. It is possible using a telco routing lookup.
More details: http://stackoverflow.com/questions/744227/web-based-api-that...
So, in a way, yes, it's possible for some customers to automatically detect that, but then you need to question how many of them come from countries where there is a difference and whether it's really a good use of your time and money to implement something that might only benefit a percent of your users. As for me, even though I'm conscious of UX, I wouldn't care much if I had to classify my phone number once. What they described in the article already goes way beyond what most other signup forms do.
(Fun fact regarding area codes and figuring out a city from that: The village I lived in previously was pretty much halfway between two smaller cities and it had the area code from one but administratively belonged to the other. So not even that is easy ;-))
Was there clear data which prompted you to implement this format? If so, I'd love to see the testing methodology.
So I email person@example.com then go to close.io and start to add them to my contacts. As soon as I type per... the autosugest expands to the full email, and of course fills in the name too.
Unless your domain is setup to use strict SPF and then this will fail randomly (depending on if the recipient checks SPF or not).
And do people really give their IMAP credentials to a web app?? I would never dream of doing that. That's the keys to the kingdom, right there...
Sure - but most people don't have this, and the goal is to get people to put in their SMTP credentials at some point anyway. Just doesn't have to be in their very first email.
> And do people really give their IMAP credentials to a web app?
Yep. We take security seriously and only end up tracking emails that match up with sales/leads in Close.io. For an entire company, their CRM data is often more important than an individual's inbox anyways - and we want to reduce the data entry necessary in common sales processes.
Along the lines of entering "Phil Freo, Director of Engineering, office phil@close.io, mobile 650-555-1234"
This is a great tip for a validated concept, but at the MVP stage, I wouldn't consider it priorty #1.
If you're starting a grass cutting business, don't go buy a pickup truck, a trailer, and 3 of those orange ride/stand-on mowers.
Get a spreadsheet out and start signing up your customers.
Is that mediocre quality? No. It's not prematurely optimizing for something that may never happen.
Don't buy a pickup truck, a trailer, and 3 of those orange ride/stand-on mowers -- but the ONE mower you buy, make it the BEST DAMN MOWER you can afford, well-thought out best for precisely the kind of mowing jobs you plan to focus on. (And this is only a great analogy to software if your customer is going to be actually USING your mower themselves!)
It's also worth noting that this is a form that can get filled out dozens of times a day by many of our users. It's not some obscure settings page.
I actually used the Chrome developer bar to Display: none it away. I guess that is the way you expect your users to use your site? Remove annoying counter-intuitive UI elements by eliminating them...