AI Prompts to Extract Action Items From an Email Thread

The short answer
Paste the thread oldest-first, then use a prompt that requests each action item as 'Task | Owner | Due date | Quoted line.' Tell the model to write 'Unassigned' or 'No date' when the thread does not name them, and to include only firm commitments — not vague intentions like 'I'll look into it.'
Five copy-paste AI prompts to pull action items, owners and due dates from any email thread — including a strict mode that flags inferred items.
On this page
- 01What do you need before running the prompt?
- 02What is the basic prompt to extract action items from an email?
- 03How do I add a source quote so I can verify each task?
- 04What if the thread only implies some tasks without stating them clearly?
- 05How do I get a table that shows priority and what is blocked?
- 06How do I get a 'who owes what' summary to share with the whole group?
- 07Does this work the same in ChatGPT, Claude, Gemini, and Copilot in Outlook?
- 08What do you do when the extraction is incomplete or wrong?
- 09A faster way: action items without the copy-paste loop
The hardest information to find in a long email thread is who agreed to do what and by when. A commitment appears once, in plain prose, buried under seven replies and three rounds of quoted history. You read past it, miss the deadline, and the project stalls. Using an ai prompt to extract action items from an email thread turns that buried sentence into a structured checklist — task, owner, due date, and the exact line it came from — in under a minute.
Five prompts below cover the most common extraction jobs: a basic task list, a table with priority and dependencies, a version that quotes the source line for each item, a strict mode that marks inferred commitments as unconfirmed, and a short 'who owes what' summary you can share with the group. Each prompt is copy-paste ready. You supply the thread; the model supplies the list.
The variable that separates a useful extraction from a noisy one is the instruction about what counts as an action item. A vague prompt promotes 'we should probably revisit this' into a firm task, producing a list that contains obligations nobody agreed to. The prompts here tell the model to treat only firm, named commitments as tasks — and to mark anything softer as unconfirmed when it keeps it at all.
What do you need before running the prompt?#
The quality of the output depends almost entirely on the quality of the input. Three things make the difference between a reliable extraction and one that invents owners and drops commitments.
First, expand the full thread before copying. Most email clients collapse quoted history under a 'Show trimmed content' or '...' control. If you copy only what is visible, the model processes one reply and reports it with the confidence of having read the whole chain. Expand everything, then copy.
Second, keep the thread oldest-first. Email displays newest-first, but a model traces commitments through a conversation — who agreed to what, based on what was asked before. If your client forces newest-first order, add one line to the prompt: 'This thread is pasted newest-first — treat the last message as the earliest in the conversation.'
Third, keep sender names and dates in the paste. They are the raw material for Owner and Due date. Strip them and the model cannot tell you who committed to anything or when.
- Expand the full thread before copying — collapsed history hides the messages the model needs.
- Paste oldest-first; if you must paste newest-first, say so explicitly in the prompt.
- Keep sender names and timestamps — they are how Owner and Due date get filled accurately.
- Delete signatures, disclaimers, and repeated quoted blocks to cut noise and save context.
- Treat the paste as a privacy decision: a confidential thread in a consumer chatbot goes to a third-party server, so redact anything sensitive before pasting.
Pasting a thread is a privacy decision
What is the basic prompt to extract action items from an email?#
Start with the plainest version: a flat list that names the task, the owner, and the due date. The three rules below do the real work. 'Unassigned' and 'No date' are not placeholders — they are explicit permission to leave a field blank rather than fill it with a plausible-sounding guess. 'Firm commitments only' is what stops a casual 'we should look at that' from appearing as a task with an assigned owner.
How do I add a source quote so I can verify each task?#
The most common reason an extracted task turns out to be wrong is that the model inferred something the thread only implied. Adding a Quoted line column forces the model to show its work: each task is tethered to the exact sentence that contains the commitment, and you can cross-check in ten seconds.
This version also catches a common drift — the model paraphrasing a commitment slightly differently from what the thread said, rounding a Tuesday deadline to 'end of week' or assigning ownership to whoever was CC'd most. The quoted line keeps that from happening without you noticing.
The quoted line is an anti-hallucination check
What if the thread only implies some tasks without stating them clearly?#
Threads often contain soft commitments — 'I can probably help with that' or 'let me know if you need anything' — that do not quite rise to a firm agreement but are not meaningless either. A standard extraction prompt either promotes them to firm tasks or drops them entirely. The strict-mode prompt below takes a third path: it keeps them on the list but marks them as INFERRED, so whoever receives the list knows those items need a confirmation before anyone acts.
This matters most when you are forwarding the extracted list to the people who own the tasks. A task marked INFERRED signals that the recipient needs to confirm they agreed before treating it as a real obligation.
How do I get a table that shows priority and what is blocked?#
Once you have the full list, the next question is usually: what is urgent and what is waiting on something else? Adding Priority and Blocked-by columns makes those visible without reading the list twice. Tell the model to infer priority only from explicit signals in the thread — words like 'urgent,' 'blocking,' 'by end of day' — and to leave the field blank otherwise. A guessed priority that contradicts what the thread actually said is worse than a blank column.
How do I get a 'who owes what' summary to share with the whole group?#
When you want to share the result with everyone on the thread, a five-column table is often too much to forward in a reply. A who owes what summary collapses the list into a short block per person — what they committed to, by when, and who is waiting on them. It is readable in fifteen seconds and easy to paste into a reply or a shared channel without burying the key points in a spreadsheet.
Does this work the same in ChatGPT, Claude, Gemini, and Copilot in Outlook?#
All four handle structured extraction, but they differ in where you run the prompt, how much thread they can handle, and whether they read your inbox directly or require a paste. The table below covers the practical differences as of mid-2026. Verify current limits and features against each vendor's own documentation before relying on them.
| Tool | Where you run it | Reads inbox directly | Prompt control | Notes |
|---|---|---|---|---|
| ChatGPT (GPT-4o) | chat.openai.com | No — paste required | Full | Everyday threads fit comfortably; follows structured format reliably when rules are explicit |
| Claude (claude.ai) | claude.ai | No — paste required | Full | Large context; rarely invents owners when the Unassigned rule is stated |
| Copilot in Outlook | Inside Outlook (Microsoft 365) | Yes | Limited | Reads the open thread directly; output format is fixed and cannot be customized by prompt |
| Gemini in Gmail | Inside Gmail (Google Workspace) | Yes | Limited | Highlights action items in the summary pane; format cannot be changed by prompt |
| API or custom integration | Your own setup | Can be, with OAuth | Full | Most consistent for repeatable workflows; requires initial setup |
Built-in tools trade format control for privacy
What do you do when the extraction is incomplete or wrong?#
Most extraction failures trace back to one of four causes. Work through them in order before re-running the prompt with no changes.
The thread was incomplete. If you copied only the visible top message of a collapsed thread, the model processed one reply and reported it with the confidence of having processed the whole chain. Expand the thread fully, verify all messages are in the paste, and re-run.
The thread arrived newest-first without a note. Add one line to the prompt: 'This thread is pasted newest-first — treat the last message in the paste as the earliest in the conversation.' Without that, the model may read commitments in reverse and attribute them to the wrong person.
The thread is too long for one pass. Quality degrades when a commitment is buried thousands of words into a single paste. Split the thread into chronological chunks, run the extraction prompt on each chunk, then combine the results with a merge prompt: 'These are action-item lists from consecutive sections of one email thread. Merge them, remove any item that was already completed in a later section, and resolve any owner or date that changed.' Check the merged list for duplicates and contradictions before forwarding it.
The model invented an owner or date. This happens when the thread does not name an owner and the model fills the slot with whoever was most active. The fix is explicit: add 'Write Unassigned rather than guess. Do not infer ownership from frequency, position, or seniority.' Switch to Prompt 2 and require the Quoted line — if no sentence in the thread supports the task, the task should not be on the list.
A faster way: action items without the copy-paste loop#
The prompts above work. The part that wears thin is the loop: expand the thread, copy, switch tabs, paste — then repeat for every thread in the backlog. For one critical thread, that setup is worth five minutes. For a daily workflow across dozens of threads, the friction accumulates faster than the time saved.
AI Emaily is an AI-native email client that surfaces action items automatically, inside the inbox where the thread already lives — no paste loop, because it reads the conversation directly in your real mailbox. Open a thread and the tasks, owners, and due dates appear alongside the summary, each one linked back to the message it came from. We build AI Emaily. The mechanism is straightforward: extraction runs on your own mailbox, your mail is never copied to a third-party chatbot, and it is not used to train models.
A 7-day free trial covers the full client, with no commitment before day seven. AI Emaily works across Gmail, Outlook, iCloud, Fastmail, Proton, and IMAP, and in Copilot mode the extracted tasks can become proposed replies or follow-up actions, each waiting for your approval before anything is sent. Start at aiemaily.com or see aiemaily.com/pricing for what each plan includes.
Frequently asked
See it in AI Emaily
Keep reading
Sources

Written by
Nafiul HasanNafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.