AI has been dominating headlines for the last year, and it seems like its growth is getting faster and faster. Chat-GPT launched late November 2022, and became the fastest growing consumer internet app EVER. It hit 200 million users in just 2 months, cementing 2023 as a big year for AI.
Whether you’re an early adopter of AI, a skeptic or somewhere in between, there are some undoubtedly amazing things anyone can achieve with it. Which leads me to today’s post:
You’re sitting on a ton of data right now, from multiple platforms. Use a fitbit? You can download that data. Use social media? You can download your raw data for nearly every interaction you’ve had there. Use Email Meter? Raw data exports of all your email interactions are ready to be downloaded.
Despite having access to all this raw data (and the things we can discover from it), it was previously incredibly time consuming, and basically impossible for anyone who wasn’t an engineer to learn anything about themselves from it. Gigantic spreadsheets or JSON files aren’t something most of us can tackle, unless we’re data scientists. That’s where AI comes in.
By asking Chat-GPT (or any other platform) to write you some basic Python scripts, you can now find out all kinds of interesting things about yourself from your own data! I was able to generate a ton of interesting scripts to dive deeper into our email data, with zero coding experience. I'll be sharing some today, which I hope will inspire you to create your own!
But wait, what the hell is Python?
Python is a very popular programming language, widely used for a range of apps, such as Netflix, Reddit, Spotify and…Email Meter 🙂 It’s powerful but simple enough for an AI to write competently. To run the scripts in this post, we’ll be setting up a basic Python ‘environment.
Setting up your Python Environment
I’ve opted for Jupyter as my Python Environment, as it’s simple to set up. There’s many other ways to run these scripts, but we don’t need to worry about that right now. Follow these steps to get your environment up and running:
Install Python: Visit the official Python website (https://www.python.org/) and download the latest version of Python for your operating system. Run the installer and follow the on-screen instructions to complete the installation.
Install Jupyter Notebook: Open a command prompt (Windows) or terminal (macOS/Linux) and type the following command to install Jupyter Notebook using the Python package manager, pip:
pip install jupyter
Launch Jupyter Notebook: After the installation is complete, you can launch Jupyter Notebook by typing the following command in the command prompt or terminal:
jupyter notebook
This will open Jupyter Notebook in your default web browser.
Create a new notebook: In the Jupyter Notebook interface, click on the "New" button and select "Python 3" (or any other available Python kernel) to create a new notebook.
You can now start writing and executing Python code in individual cells within the notebook. To run a cell, press Shift + Enter or click the "Run" button in the toolbar.
Now that you’ve got your environment set up, you’re ready to run some scripts!
Pulling your email data
To access your data, follow these steps:
Open Email Meter: If you haven't signed up yet, you can do so here, and you’ll get a free trial of Pro which will give you access to Raw Data Exports.
Apply the filters you want: I’d suggest using a Custom Report to pull a relatively long period, at least 1 month. You can remove automated emails in the Settings page, so you can start with the most accurate data possible.
Export your data: Once you’ve applied any filters you need, simply click the CSV Export button in the top left, and you’ll soon receive an email with a link to download your export CSV file.
Opening your CSV with a Python script
You’ll need to paste the filepath of your CSV export file into the script before running it, so that it accesses the correct file. Here’s how you can do that in Windows and Mac:
For Windows:
Locate the CSV file: Open the folder where you saved the CSV export file.
Copy the file path: Hold down the Shift key on your keyboard and right-click on the CSV file. In the context menu that appears, select "Copy as path". This will copy the full file path to your clipboard.
For macOS:
Locate the CSV file: Open the folder where you saved the CSV export file.
Copy the file path: Right-click (or Control-click) on the CSV file while holding down the Option key. In the context menu, choose "Copy <filename> as Pathname". This will copy the full file path to your clipboard.
So this part:
email_data = pd.read_csv('PASTE PATH TO YOUR CSV EXPORT HERE')
Needs to end up looking something like this:
email_data = pd.read_csv('/Users/YourName/Downloads/name-emailmeter00000.com.csv')
Don’t forget to leave the ‘ ‘ either side!
Exploring your data
Email Meter offers a ton of metrics on your report, without any need to run further scripts, but I wanted to explore where else we could take our Raw Data Exports. From discovering your busiest day of the year, to discovering which day of the week you work overtime the most, here’s the most interesting insights I could squeeze from my data:
1. Who do I CC the most in my emails?
Outside of just being a curiosity, this can help you identify someone who you frequently CC but who does not need to be included, so you can streamline your communication and stop cluttering their inbox.
- To get started, copy the script below and paste it into the Python environment you set up.
- Copy the file path to your Email Meter export as explained above, and then paste it between the quotation marks to replace PASTE PATH TO YOUR CSV EXPORT HERE. You'll need to do this for every script, so it can access your data.
- Run the script to see your result!
2. When do I normally wake up, have lunch and go to sleep?
Here I wanted to see how closely my email data could reflect my real life. I would normally send an email soon after waking up, would take a break from sending emails in the middle of the day to eat, and would obviously not send any emails when I’m asleep! I would say it did a pretty good job accurately predicting this:
3. Which of my contacts are Early Birds, Night Owls or Day…Birds?
By looking at when each contact is most likely to email you, we can deduce when other people are most active. This can help you manage your expectations when waiting for a reply. This gives you a percentage next to each contact (up to 10 for each) which tells you how many of their emails were received during the morning/day/night from them. The times are based on your own timezone, so someone who is showing up as a nightowl for you might actually be an early bird in their own country.
4. What day did I send/received the most emails EVER?
For this one, you’ll want a long period of time, at least a year or more, for it to be relevant. We’re trying to find that ONE day where we were either buried in emails or super busy sending them out. It will print the date of the busiest day for both. When you’ve found the date, try going to Email Meter and looking at it in a report—see anything interesting? What was special about that day?
5. What is other people’s response time to ME?
Who’s that slowcoach who you’re always waiting on? It can be frustrating to wait for replies, so here’s a way to quantify that and see who could be holding you up. But don’t forget, unless your response time is in top shape, you’re probably someone else's slowcoach.
This script gives you the response time for your top 20 contacts. If you want to see more contacts, change the number here and run it again:
top_contacts = email_counts.nlargest(20).index
6. What day do I send the most emails OUTSIDE of working hours?
Sadly, we often blur the lines between work time and personal time by sending emails outside of our set hours. This isn’t a huge deal if it’s only a few emails, but if it’s becoming overwhelming, you’ll want to do something about it. This script will tell you which day is the one where you send the most emails outside work hours, so you can try to address the root cause.
We’re assuming that your work hours are 9AM to 5PM here, you can adjust them by editing this line and rerunning the script:
outside_working_hours = df[(df['hour'] < 9) | (df['hour'] >= 17)]
This uses military time, which is why 5 PM is 17:00.
7. What is my star sign based on my email data?
Finally, a silly one! It actually got it completely wrong for me—it guessed Cancer, Scorpio or Pisces, but I'm an Aquarius. However, it was still funny to see what Chat-GPT considered traits for each sign. I asked it for an explanation and it told me:
“The chosen time ranges for each star sign in the script are based on general astrological interpretations and assumptions. Here's a summary of why each time range was associated with specific star signs:
Night: Aries, Leo, and Sagittarius are active and dynamic signs, and the night time range reflects their energetic nature.
Morning: Gemini, Libra, and Aquarius are sociable signs, and the morning time range aligns with their talkative and curious nature.
Afternoon: Cancer, Scorpio, and Pisces are introspective signs, and the afternoon time range represents a time of productivity and depth.
Evening: Taurus, Virgo, and Capricorn are practical signs, and the evening time range reflects their focus, organization, and goal-oriented nature”.
See if it gets yours right with this script:
Don’t forget that you can edit any of these scripts, simply by pasting them into an AI chatbot and asking it for the changes you want. It might take some trial and error, but it usually gets it working in the end.
We’d love to hear of any other scripts you were able to create with your Email Meter data, or any other data for that matter!