Extract email tasks with Gmail, ChatGPT-4o and Supabase
Workflow preview
$20/month : Unlimited workflows
2500 executions/month
THE #1 IN WEB SCRAPING
Scrape any website without limits
HOSTINGER
Early Deal
DISCOUNT 20% Try free
DISCOUNT 20%
Self-hosted n8n
Unlimited workflows - from $4.99/mo
#1 hub for scraping, AI & automation
6000+ actors - $5 credits/mo
Important notice
This workflow is provided as-is. Please review and test before using in production.
Overview
π© Gmail β GPT β Supabase | Task Extractor
This n8n workflow automates the extraction of actionable tasks from unread Gmail messages using OpenAI's GPT API, stores the resulting task metadata in Supabase, and avoids re-processing previously handled emails.
β What It Does
- Triggers on a schedule to check for unread emails in your Gmail inbox.
- Loops through each email individually using
SplitInBatches. - Checks Supabase to see if the email has already been processed.
- If it's a new email:
- Formats the email content into a structured GPT prompt
- Calls ChatGPT-4o to extract structured task data
- Inserts the result into your
emailstable in Supabase
π§° Prerequisites
Before using this workflow, you must have:
- An active n8n Cloud or self-hosted instance
- A connected Gmail account with OAuth credentials in n8n
- A Supabase project with an
emailstable and:ALTER TABLE emails ADD CONSTRAINT unique_email_id UNIQUE (email_id); - An OpenAI API key with access to GPT-4o or GPT-3.5-turbo
π Required Credentials
| Name | Type | Description |
|---|---|---|
| Gmail OAuth | Gmail | To pull unread messages |
| OpenAI API Key | OpenAI | To generate task summaries |
| Supabase API | HTTP | For inserting rows via REST API |
π Environment Variables or Replacements
Supabase_TaskManagement_URIβ e.g.,https://your-project.supabase.coSupabase_TaskManagement_ANON_KEYβ Your Supabase anon key
These are used in the HTTP request to Supabase.
β° Scheduling / Trigger
- Triggered using a Schedule node
- Default: every X minutes (adjust to your preference)
- Uses a Gmail API filter: unread emails with label = INBOX
π§ Intended Use Case
> Designed for productivity-minded professionals who want to extract, summarize, and store actionable tasks from incoming email β without processing the same email twice or wasting GPT API credits.
This is part of a larger system integrating GPT, calendar scheduling, and optional task platforms (like ClickUp).
π¦ Output (Stored in Supabase)
Each processed email includes:
email_idsubjectsenderreceived_atbody(email snippet)gpt_summary(structured task)requires_deep_work(from GPT logic)deleted(initially false)