Learn how to add emails to Notion in this tutorial. With any of these two methods, you’ll unlock a whole new productivity level for your workspace. Notion is already an awesome all-in-one tool, but unlike dedicated Project Management Software like Asana or Monday, it doesn’t come with built-in email capacity. However, it’s super simple to build this yourself. And if you want, you can even leverage AI for Notion. Get a summary of your email and extract individual tasks on autopilot. Read on for step-by-step instructions on how to integrate Notion with email or jump to the bottom to download the free Notion template.
Add Emails to Notion (The Simple Way)
You can easily add your emails to Notion using a very simple automation.
For this example, I created a basic database in Notion to store my emails with the following properties:
- Subject
- Sender
Step 1: Create Your Make Account
Start by creating an account at Make.com (the automation platform that we’re using here). The free plan is amazing and more than enough for what we’re about to build.
Step 2: Add a new scenario
Once logged in, click on the Create a new scenario button to start building your first automation.
Step 3: Add a mailhook as your first module
Inside the scenario builder, click on the big purple plus button and type Webhook into the search field. Pick the Webhooks option and then opt for Custom Mailhook under Triggers.
Click on the module you just added and add your mailhook by clicking on Add and giving your mailhook a name. After that, a long email appears below the box that you can copy by clicking the grey Copy address to clipboard button.
Now you’re already half-way done. Any email that gets forwarded to this address will enter the automation.
Step 4: Add a Notion Module to your automation
Now click on the half-circle next to your first module to add a second module. Search for Notion in the menu and opt for the Create a database item option.
Step 5: Map the relevant information to add emails to Notion
If you never used Make and Notion together, click on Add under *********connection and authorise Make to access your Notion workspace by following the instructions.
Make sure to give Make access to the Notion page that contains the database where you want to store your emails.
Then, click on Search, type in the name of your Notion database and pick it from the options.
All that’s left is to map the information from your email to your database properties.
To do so, click into one of the fields. Each field corresponds to one of your database properties. Pick the information from the appearing sidebar that you want to add from the email.
Step 6: Set up automatic rules for emails to forward (Optional)
Your automation is ready. You can now add emails to Notion. All that’s left is to decide which emails should be added to Notion.
Here, you have two options:
- Add the mailhook address from Step 3 to your address book and manually forward emails to this address whenever you want to capture something in Notion
- Set up forwarding rules to automatically capture certain emails (or all of them)
Doing so is pretty straightforward, but the specific steps will depend on your email provider of choice. Here’s how to set up automatic forwarding rules for gMail:
First, open your Make scenario that you just built and copy the mailhook address. Then, right click on the webhook module and click on run this module only.
Then, log into your account and navigate to settings. In Settings, head over to Forwarding and POP/IMAP and click on Add a forwarding address.
In the popup, enter the mailhook address from your scenario. Confirm that you want to forward to this email address.
Google will tell you that they sent a test email for you to verify ownership of this email. To do so, head on over to your Make scenario. It should have received some information in the webhook as indicated by the little bubble with a 1 above the webhook module.
Click on it to expand the details. Under Output, expand the Text option. You’ll see the content of the email that Google sent. Look for the confirmation code and copy it.
Navigate back to your Google account and paste the confirmation code. You can now use a filter to automatically forward emails to your mailhook.
To do so, click on the filter icon next to the search bar.
Next, set up your condition, like searching for specific key words. Instead of clicking on search, click on Create Filter.
Check the Forward it option and select the mailhook address you just created from the drop down.
And that’s it! gMail will now automatically forward all emails that match your criteria to your scenario and the scenario will add them to Notion.
Just don’t forget to turn on your Make Scenario by clicking on the Scheduling button at the bottom of the scenario. Emails to Notion, on autopilot? Check!
Pro Tip: If you want more granular control than Google Filters have to offer, you can also use another automation to forward emails to Notion. This could be something like “Starred an email” or any of the other available triggers.
Alternatively, if you don’t want to build an email-forwarding tool yourself, you can look for dedicated third-party email-to-Notion tools like TaskRobin.
Add Emails to Notion (using the Power of AI)
Now, simply getting your emails into Notion is nice, but still leaves a lot to desire. Emails often contain several pieces of information and various tasks. So if you use a Task Manager in Notion, you need to somehow turn that email into individual tasks.
You can either do that manually, going through each imported email and write extract all tasks. Or you can use your personal AI assistant to do this for you.
And don’t worry. Thanks to various open source AI tools, it’s actually surprisingly easy to build such a powerful automation.
For this example, you can use a simple Notion backend with only two databases.
Your email database will save the email itself and should contain the following properties:
- Subject
- Summary
- Sender
- Relation to the second database
Your tasks database should contain the following properties:
- Task
- Relation to the first database.
You can of course use a more complicated setup and integrate this directly with your existing task or Project Manager. If you download the free emails to Notion template at the bottom of this post, you’ll get a working backend as well.
Ready? Let’s dive in.
Step 1: Create a new scenario
Create a new scenario in Make and add a mailhook module as explained in Step 3 of the easy Email to Notion tutorial above.
Right-click the module and run this module only. Forward an email to the mailhook to ensure it works properly.
Step 2: Get Your OpenAI API Key
This automation leverages GTP-3, a natural language processing AI developed by OpenAI. Anyone can sign up for an account and start using the AI for free. You’ll be given free credits for signing up (that are sufficient to summarise A LOT of emails) and afterwards, it will only cost you a few cents to process your emails.
Head on over to OpenAI and create your account. Then, click on Personal in the top right corner and on View API Keys.
Create a new secret key and make sure to copy it to a secure location. You’re going to need the key in a second and you won’t be able to view it again after closing the window. If you lose your key, simply generate a new one.
Step 3: Clean up the Email Data
Before we can ask OpenAI to summarise our email, we first have to clean up the data. To do so, add a Text Parser module and opt for the Replace function.
Remove all linebreaks from your email by searching for the pattern “n”. Replace them with a space or an empty string. Make sure to set the module to Global Match Yes to remove all linebreaks and not just the first one.
Step 4: Extract the Sender of the Email
If you want to identify the person sending you the email, add another text parser module with the Match Pattern option.
Use From:.*<(.*)> as your pattern to extract the sender email of the forwarded email. Set Global Match to No to avoid matching any other emails by accident.
Step 5: Let Open AI Summarise Your Email
Now it’s time to send our cleaned up email to OpenAi.
Make currently doesn’t have a pre-built module for OpenAI, so we’re going to use the HTTP module with the Make a request option to build our own custom API call.
Set the module up as follows:
- URL: https://api.openai.com/v1/completions
- Method: POST
- Header
- Name: authorization
- Value: Bearer YOUR OPENAI API KEY
It is crucial that your authorization header looks as shown in the image (but of course with your own API key instead of this test value). Make sure to leave a space between the word Bearer and your token.
You don’t need to set any parameters in the Query String.
The second half of the module should look like this:
- Body type: Raw
- Content type: JSON (application/json)
- Request content: see below
- Parse response: Yes
In request content, you add the actual information for OpenAI to process your request.
If you’re not familiar with writing API requests, I recommend that you simply copy the following text. To write your own variation, please reference the OpenAI API documentation.
{ “model”: “text-davinci-003”, “prompt”: “You are an expert assistant. Summarize the following email forwarded to you by doing the following: ignore the forwarding header, summarize the email, provide a list of comma separated action items after the title ACTION ITEMS. Email: {{2.text}} SUMMARY:”, “temperature”: 0.5, “max_tokens”: 200 }
The above requests sets four parameters:
- model: sets the GTP-3 training model to use. “text-davinci-003” is the latest model as of writing. If a newer model is released, simply swap out the name and you’re good to go
- prompt: this is the actual request for the AI. Feel free to modify the prompt text to get different types of responses. In order for the rest of the automation to work, you should always ask for a comma separated list of action items. Replace {{2.text}} with the mapped data from your cleaned up email of Step 3 as shown in the image above.
- temperature: sets the “creativity” that OpenAI will use when interpreting your prompt. It’s a value between 0 and 1 with 1 being the most literal and strict interpretation of the prompt.
- max-tokens: sets how many tokens OpenAI will use to process your request. 100 tokens roughly equal 75 words. If you want to process longer emails, you should increase this value. Once you use up all the free tokens you get for signing up, you’ll have to buy more tokens. 1000 tokens (750 words) currently cost around 6 cents.
Before moving on building your emails to Notion automation, make sure to test your build and get a sample response from OpenAI. To do so, click on Run once in the bottom left corner of the scenario screen and forward an email to your mailhook.
The http module should return a status with a 200er number and your answer under Data – Choices – Text.
Trouble Shooting
If OpenAI returns an error message, check the response to see where the issue is. If it states that your json body is formatted wrong, make sure that you have set all quotation marks and commas as shown in the image above. Everything should be wrapped by curly brackets.
If everything is set up correctly and it still returns an error, it might be because your email contains additional quotation marks. To make sure that this doesn’t lead to an error, replace all double brackets ( ” ) with single brackets ( ‘ ) inside the email.
You can do so by wrapping the text inside the http module with a replace function as shown in the image below.
Using the official Make OpenAI Module
Make recently released an official OpenAI Module. You can swap out the http module in this automation for the official module. Opt for the Create a completion action and set up the parameters as described above.
Step 6: Extract the Tasks from your Email
It’s time to get the individual tasks from the email. Add a text parser module to your automation and opt for Replace.
Set it up to match the pattern
^.*:
As the new value, set an emptystring. This will isolate the comma separated list of tasks. Make sure to turn on Global match. The input is the response that you get from OpenAI.
Step 7: File the Email in Notion
Now add the Notion Module Create a Database item and add the email to your email database. Map the subject line to the name field and the sender that you isolated in Step 4 to the sender field.
Add the response from OpenAI as the summary.
If you want to clean up the subject line a bit, you can set a small replace function as shown in the image below.
Congratulations, you can now add emails to Notion with an executive summary provided by your AI asistent.
Step 8: Create the individual tasks in Notion
Now onto the last step, adding the individual tasks to Notion.
To do so, we first need to turn our list of comma separated tasks into an array. Simply add an Iterator (which can be found under the flow control options) and set up a split function
{{split(4.text; “,”)}}
This will take your string of action items and turn it into an array. Afterwards, the iterator makes sure that each element of the array is processed separately.
Finish your automation by adding another Notion module Create a Database item. This time, pick your tasks database and add the result of the iterator as the task name and the previously created email entry from Step 7 as your relation.
And that’s it!
You just built your personal AI powered email assistant for Notion. You can now easily sync email to Notion, get a summary of the content and even extract tasks from email using AI.
Looking for more ways to leverage AI for Notion? Check out this AI Image Generator!
Get the free Email to Notion Template
Don’t want to build this yourself? Simply download the Emails to Notion Template and get the automation blueprint and Notion backend, built-for-you.