First of all - this is a great question! We know that you want to be having as many conversations as possible, especially with contacts you've brought over or captured from an outside source.
So why does targeting a Playbook to a segment that contains contacts imported from a CSV fail?
There are a few contributing factors. When you or a visitor arrives on a site that has Drift installed, you receive an identifier in the form of a string of letters and numbers, in the form of a cookie (this is stored locally on your or the visitor's computer). These are stored until you clear your browsing cache, or if you switch computers.
This cookie is how Drift identifies you or knows who you are. It informs the data we have about you, what Playbooks we should show to you, etc. We create a contact with this cookie in the backend (which is why you can actually see site visitor information and the conversation they're having), and show it in the front end Contacts view when an email address is populated.
So, to answer the question, when you upload a contact, it's very different from this process of a contact being created when someone visited your site. A manually created contact has no cookie value because there was no related website visit, and no computer to generate a value for and store it on.
However, uploading contacts into Drift is still incredibly useful for email campaigns! For more information on those, check out our doc here.