Turn labelled emails into Notion tasks
Label an email "To-do" and it becomes a Notion task with a link back to the email.
How it works
Trigger: Schedule — every 15 minutes
- Get emails with your "To-do" label.
- Create a Notion task with the subject, sender and a link to the email.
- Remove the label so the email isn't added twice.
Diagram
Trigger App
Build it
Pick your tool — same automation, step by step.
Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.
Show code (152 lines)
{
"name": "Turn labelled emails into Notion tasks (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## Turn labelled emails into Notion tasks\nLabel an email \"To-do\" and it becomes a Notion task with a link back to the email.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
"height": 260,
"width": 340
},
"id": "260675b8-87c1-4557-ac65-acf59885bd17",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 15
}
]
}
},
"id": "260675b8-87c1-4557-ac65-acf59885bd17",
"name": "Every 15 minutes",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"operation": "getAll",
"returnAll": true,
"filters": {
"labelIds": [
"YOUR_TODO_LABEL_ID"
]
}
},
"id": "260675b8-87c1-4557-ac65-acf59885bd17",
"name": "Get To-do emails",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
300,
0
]
},
{
"parameters": {
"resource": "databasePage",
"operation": "create",
"databaseId": {
"__rl": true,
"value": "YOUR_TASKS_DATABASE_ID",
"mode": "id"
},
"title": "={{ $json.Subject }}",
"propertiesUi": {
"propertyValues": [
{
"key": "From|rich_text",
"textContent": "={{ $json.From }}"
},
{
"key": "Email link|url",
"urlValue": "=https://mail.google.com/mail/u/0/#all/{{ $json.id }}"
}
]
},
"options": {}
},
"id": "260675b8-87c1-4557-ac65-acf59885bd17",
"name": "Create Notion task",
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
600,
0
]
},
{
"parameters": {
"operation": "removeLabels",
"messageId": "={{ $('Get To-do emails').item.json.id }}",
"labelIds": [
"YOUR_TODO_LABEL_ID"
]
},
"id": "260675b8-87c1-4557-ac65-acf59885bd17",
"name": "Remove To-do label",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
900,
0
]
}
],
"connections": {
"Every 15 minutes": {
"main": [
[
{
"node": "Get To-do emails",
"type": "main",
"index": 0
}
]
]
},
"Get To-do emails": {
"main": [
[
{
"node": "Create Notion task",
"type": "main",
"index": 0
}
]
]
},
"Create Notion task": {
"main": [
[
{
"node": "Remove To-do label",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}In Make, create a new scenario and add these modules in order:
- Schedule the scenario: Every 15 minutes
- Gmail › Watch Emails (by label)
- Notion › Create a Database Item
- Gmail › Modify Email Labels (remove)
- Every module run uses Make operations — the free plan includes a monthly quota.
- Module and step names can differ slightly as Make and Zapier update their apps.
In Zapier, create a new Zap and add these steps in order:
- Schedule by Zapier — Every 15 minutes
- Gmail — New Labeled Email
- Notion — Create Database Item
- Gmail — Remove Label from Email
- Zaps with more than two steps need a paid Zapier plan.
- Module and step names can differ slightly as Make and Zapier update their apps.
Tips
- Get your label's ID from the Gmail node: Label → Get Many.
Related flows
ProductivityEasy
Tasks due today reminder from Notion
Get a Slack message listing every Notion task due today.
Notion → Slack2h/mo
ProductivityMedium
AI daily news digest
Every morning, AI summarises the latest articles from a news feed into one short email.
RSS → AI model → Gmail5h/mo
ProductivityMedium
AI drafts replies to your emails
AI writes a reply draft for every new email — you just review and hit send.
Gmail → AI model12h/mo