in Email, Marketing, Programming

Using Facial Recognition Technology to Segment Your Email List

My email list is…

  • 75.57% Male
  • 24.43% Female
  • 15.27% Ages 16-20
  • 37.40% Ages 21-30
  • 31.30% Ages 31-40
  • 9.16% Ages 41-50
  • 5.34% Ages 51-60
  • 1.53% Ages 61+

I determined this using a picture of your face.

Let me explain…

I confess, I’m a nerd and I love myself a good API.

This post is very nerdy and may be overly technical, but I was still compelled to give the methodology a try.

Without further ado…

Here’s my little hack for segmenting your email list by approximated age, gender, and magnitude of smile featured in your social network profile picture:

What You’ll Need:

  • An Export of Your Email List
  • FullContact Person API
  • Face++ API
  • SEOTools for Excel

In my case, I’m automating this whole process using Knime and MailChimp’s Export API.

But for the purposes of this post, I’ll go over how to do the process using Excel and SEOTools for Excel.

Start by export your list’s email addresses to be opened within Excel.


You should only focus on the column with Email addresses (unless you already have social media account information in your list).

Sign-up for the FullContact Person API here.


The free version will give you access to 250 API matches per month. This is usually good enough for me!

Note: Of course there is premium pricing available if you require it.

They email you your API key. Just append it to the API URL:


So, in Excel, I create an FullContact API URL column:


Where A2 is equal to the cell with first user’s email address.

Next, create a column for their social profile image. Use SEOTools for Excel using the JsonPathOnURL function:


The URL field should be a cell from the FullContact API URL column, and then the JsonPath should be photos[0].url (you might want to source it from another field).

Tip: I usually use JSONView, an Chrome extension, to help me quickly find the JSONPath.


Once you drag down, you should have list of image URLs for your email list contacts.

Now, onto the Face++, the facial recognition API…

You need to register for it. It’s free.

Check out the demo:


It’s very cool.

Anyway, create an app and get an API key.

The Face++ API call looks like this…

Like you did with FullContact, make a column for the Face++ API URL, the formula will look something like this:


And drag those cells down…

Make a column for Age, Age Range, Gender, Ethnicity, and Smile Magnitude.

Each one of these columns will use the JsonPathOnURL function in SEOTools.

As an example, you grab age with the JSONPath “face[0].attribute.age.range”.

The Excel formula would be “=JsonPathOnUrl(E4,”face[0].attribute.age.value”)”

I also added two column to deal with the age range. So, it will estimate someone is 25 years old with and age range of 7, meaning that it is estimate should be within +/- 7 years. So I have a low age column that is “=F4-G4” and a high age column set is set to “=F4+G4”.

I drop some conditional formatting on my Smile Magnitude Column. It seems to be a range between 1 and 100.


The excel output will end up looking something like this in the end…


You can now add segments by these various criteria in your email list. If you go with a Knime implementation, you can go as far to automate ALL of this.

Happy segmenting!

Write a Comment


This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. Can you expand on the practical use of “scraping smiles”? Sure I can understand how gender, age and ethnicity apply to how I would segment an email list. But smiles? The photo being a static image, usually deliberately chosen by the user, gives some broad indications of how they see themselves and how they want others to see them. But photos can be untruthful. What kind of email would I send someone who has a smiling photo compared to someone who is surly? Is it a sound basis for conducting a split test? I’d love to hear what you’ve found out so far from using it!

    • I’ve not done enough with the smiles yet, but I intention in using it with emails, is to see how it affect open rate and similarly with outreach to see how it may be an indication of receptiveness. The static nature of these photos is a legitimate concern, but we won’t know until it’s been tested more thoroughly.