Gmail → AI → Todoist: auto-extract tasks from incoming emails (free template + video walkthrough)

Hey everyone! I built a workflow for a problem that was driving me crazy: important tasks hiding in unread emails.

What it does: Gmail Trigger → Information Extractor (the LLM pulls out has_todos + a list of tasks with optional due dates) → IF → Split Out → Todoist “Create Task”. Emails without tasks get a Gmail label instead, so nothing gets lost.

A few things I learned building it:

  • With Gmail “Simplify” enabled you won’t get the full body — turn it off and use textAsHtml
  • “Generate from JSON example” makes every field required, which made the model hallucinate due dates when none existed. Switching to a JSON schema with an optional due field fixed it
  • Pinning the trigger output saves a lot of LLM calls while building

Workflow JSON (free download): https://drive.google.com/file/d/1pajGERUTskYFZTjHZhkic3UQzLJfOzPg/view?usp=sharing

I also recorded a 7-minute walkthrough building it from scratch (German audio, English subtitles available): https://www.youtube.com/watch?v=fVOsRm7_1Lk

Happy to answer questions — and curious how others handle the “no due date” case. Do you default to today, leave it empty, or something smarter?

1 Like