This prompt is designed for productivity tool builders who need to extract decisions, action items, owners, and deadlines from meeting transcripts. It converts unstructured or semi-structured transcript text into a clean JSON array of action items with normalized assignee names and standardized dates. Use this prompt when a prior model call or transcription service has produced narrative text instead of structured data, and you need a reliable repair step before inserting records into a task management system, CRM, or project database. This is a post-generation repair prompt, not a real-time meeting assistant.
Prompt
Meeting Transcript to Action Items JSON Prompt Template

When to Use This Prompt
Understand the job-to-be-done, the ideal user, and the boundaries of this repair prompt before integrating it into your pipeline.
The ideal user is an integration engineer or backend developer building a pipeline that ingests meeting transcripts from tools like Zoom, Teams, or Gong, and needs to populate downstream systems like Jira, Asana, or Salesforce with structured task records. The prompt expects a raw transcript string as input, along with optional context like a list of known participant names and a target date format. It returns a JSON array where each object represents a single action item with fields for action, assignee, due_date, and confidence. The prompt normalizes assignee names against a provided roster, standardizes dates to ISO 8601, and flags items where the source text is ambiguous.
Do not use this prompt for real-time meeting assistance, live transcription, or conversational agent workflows. It is not designed to handle multi-turn dialogue, speaker diarization, or streaming audio input. It is also not a substitute for a dedicated task extraction model if your transcript volume exceeds hundreds per hour—at that scale, consider fine-tuning a smaller model on your specific meeting format. For high-stakes workflows where missed action items could have legal or financial consequences, always route low-confidence outputs to a human review queue before they enter your system of record.
Use Case Fit
Where this prompt works and where it does not. Use these cards to decide if the Meeting Transcript to Action Items JSON prompt template fits your workflow before you integrate it.
Good Fit: Clean Transcripts with Explicit Decisions
Use when: your meeting transcripts contain clear verbal cues like 'action item,' 'I'll take that,' or explicit deadline assignments. The prompt excels when speakers name owners and dates directly. Guardrail: pre-process transcripts with speaker diarization and remove filler words before extraction.
Bad Fit: Implied or Ambiguous Tasks
Avoid when: action items are implied through context rather than stated explicitly. The model will hallucinate owners and deadlines to fill gaps. Guardrail: add a confidence flag field to the output schema and route low-confidence items to human review instead of auto-committing to a task system.
Required Inputs: Speaker Labels and Timestamps
Risk: without speaker-attributed segments, the model cannot reliably assign owners. Without timestamps, relative deadlines ('by Friday') become ambiguous. Guardrail: require diarized transcripts with speaker IDs and UTC timestamps as mandatory inputs. Reject transcripts that lack both before calling the prompt.
Operational Risk: Hallucinated Action Items
Risk: the model may invent tasks that sound plausible but were never discussed, especially when the transcript is long or the meeting lacked clear conclusions. Guardrail: implement a post-extraction grounding check that requires each action item to cite a verbatim quote or timestamp range from the source transcript. Flag uncited items for removal.
Operational Risk: Assignee Name Normalization
Risk: transcripts contain nicknames, first-name-only references, or mis-transcribed names that don't match your directory. Guardrail: provide a canonical participant list as a prompt input and instruct the model to resolve all assignees against it. Return unmatched names in a separate unresolved_assignees field for manual mapping.
Scale Limit: Multi-Hour Transcripts
Risk: very long transcripts exceed context windows or cause the model to drop action items from later segments. Guardrail: chunk transcripts by agenda item or 15-minute windows, extract action items per chunk, then run a deduplication pass across chunks. Never send an un-chunked two-hour transcript and expect complete extraction.
Copy-Ready Prompt Template
A copy-ready template for converting meeting transcripts into a structured JSON array of action items with normalized assignees and standardized dates.
This prompt template is designed to be the core instruction you send to a language model. It takes a raw meeting transcript and a list of known participants as input and produces a clean, predictable JSON payload. The template uses square-bracket placeholders for all dynamic inputs, allowing you to inject the specific content for each run programmatically. Before using this in production, ensure you have a reliable method for providing the full transcript and a verified list of participants to ground the model's output and prevent hallucinated names.
Below is the copy-ready template. Replace every [PLACEHOLDER] with your actual data before sending it to the model. The [OUTPUT_SCHEMA] placeholder should be replaced with your exact JSON schema definition, and [CONSTRAINTS] should be filled with any specific business rules, such as date formats or required fields.
textYou are an expert executive assistant. Your task is to analyze the provided meeting transcript and extract a list of concrete action items, decisions, and follow-ups. ### INPUT DATA **Transcript:** ```text [TRANSCRIPT]
Known Participants (Name, Email):
json[PARTICIPANTS_LIST]
OUTPUT SCHEMA
You must output a single JSON object with a key "action_items" containing an array of objects. Each object must strictly follow this schema:
json[OUTPUT_SCHEMA]
CONSTRAINTS
- [CONSTRAINTS]
- Assignee names MUST exactly match a name from the "Known Participants" list. If an action item's owner is ambiguous or not in the list, set the assignee to "Unassigned" and add a flag.
- All extracted dates must be standardized to ISO 8601 format (YYYY-MM-DD). If a date is relative (e.g., "next Tuesday"), calculate it based on the meeting date provided in the context.
- Do not invent action items that are not explicitly mentioned in the transcript.
- If no action items are found, return an empty "action_items" array.
OUTPUT
jsonundefined
To adapt this template, start by defining your [OUTPUT_SCHEMA]. A robust schema for action items typically includes fields like id, description, assignee, due_date, status, and source_quote. The [CONSTRAINTS] section is your primary lever for controlling output quality; use it to enforce business logic like "all action items must have a due date within the next quarter" or "categorize each item as Decision, Task, or Information." For high-stakes workflows, always pair this prompt with a post-processing validation step that checks the JSON structure against your schema and verifies that every assignee name exists in your [PARTICIPANTS_LIST] to catch hallucinations before the data enters your system of record.
Prompt Variables
Inputs the prompt needs to work reliably. Validate these before sending to the model. Missing or malformed inputs are the most common cause of hallucinated action items and owner assignment failures.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[TRANSCRIPT] | Full meeting transcript text to extract action items from | John: Let's circle back on the Q3 roadmap. Sarah: I'll own the pricing model update by Friday. | Check that input is non-empty string with at least 50 characters. Reject null, empty, or whitespace-only inputs. Verify speaker labels or turn markers are present to enable owner assignment. |
[MEETING_DATE] | Reference date for resolving relative date expressions like 'next Tuesday' or 'by EOW' | 2025-03-15 | Must be ISO 8601 date string (YYYY-MM-DD). Required for temporal normalization. If null, relative dates will be flagged with low confidence rather than guessed. |
[PARTICIPANT_LIST] | Known meeting participants with full names and roles for assignee normalization | Sarah Chen (Product Manager), John Reyes (Engineering Lead), Maria Santos (Design) | Array of objects with 'name' and 'role' fields. Used to match transcript mentions to canonical identities. If empty or missing, owner extraction relies solely on transcript text and may produce inconsistent name variants. |
[OUTPUT_SCHEMA] | Target JSON schema for action item records | { 'action': string, 'owner': string | null, 'deadline': string | null, 'confidence': number, 'source_quote': string } | Must be a valid JSON Schema object. Required fields should be marked explicitly. Schema is used both for output formatting and for post-generation validation. Missing schema triggers default action item shape. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score (0.0-1.0) for including an action item in output | 0.7 | Float between 0.0 and 1.0. Items below threshold are either dropped or flagged for human review depending on [REVIEW_MODE]. Default 0.7 if not specified. Threshold too low increases hallucination risk; too high drops real action items. |
[REVIEW_MODE] | Controls whether low-confidence items are dropped silently or surfaced for human approval | flag_for_review | Must be one of: 'drop', 'flag_for_review', 'include_with_warning'. Determines handling of items below [CONFIDENCE_THRESHOLD]. 'flag_for_review' adds a 'needs_review' boolean field to output records. |
[MAX_ACTION_ITEMS] | Upper bound on number of action items to extract | 20 | Integer greater than 0. Prevents unbounded extraction on very long transcripts. If transcript yields more candidates, keep highest-confidence items. Default 50 if not specified. Set lower for real-time summarization use cases. |
[ORGANIZATION_CONTEXT] | Team or company context for disambiguating owners, projects, and jargon | Q3 planning for pricing infrastructure team; OKR: launch dynamic pricing by Q4 | Optional free-text string. Helps the model resolve ambiguous references like 'the pricing thing' or 'Alice's team'. If omitted, disambiguation relies solely on transcript context and may produce lower-confidence owner assignments. |
Implementation Harness Notes
How to wire the meeting transcript prompt into a production application with validation, retries, and human review gates.
This prompt is designed to be called after a meeting transcript is finalized, not streamed in real time. The application should first chunk the transcript if it exceeds the model's context window, process each chunk independently, and then deduplicate action items across chunks using a secondary merge prompt or deterministic matching on assignee and task description. The prompt expects a raw transcript string in the [TRANSCRIPT] placeholder and an optional [MEETING_METADATA] object containing fields like meeting_title, meeting_date, and participant_list to improve assignee normalization. If participant context is missing, the model will attempt to infer names from the transcript, but accuracy drops significantly for organizations with similar-sounding names or nicknames.
Wire the prompt into a pipeline with these stages: (1) Pre-processing — strip speaker labels if they contain PII beyond names, normalize timestamps to UTC, and inject the participant list into [MEETING_METADATA] from the calendar invite. (2) Model call — use a model with strong JSON mode support (GPT-4o, Claude 3.5 Sonnet, or Gemini 1.5 Pro) with response_format set to json_object and the output schema provided in the system message. Set temperature=0.1 to reduce variance in task descriptions. (3) Post-processing validation — run a JSON Schema validator against the expected structure: an object with an action_items array where each item has task, assignee, deadline, priority, and source_quote fields. Reject any output where source_quote is not a verbatim substring of the transcript using a fuzzy string match with a minimum similarity threshold of 0.85. Flag items where assignee does not appear in the participant list for human review. (4) Retry logic — if validation fails, retry up to two times with the validation error message appended to the prompt as a [PREVIOUS_ERRORS] block. After two failures, escalate to a human review queue with the raw transcript and partial output attached.
For high-stakes meetings (legal, compliance, executive decisions), always route the final action items through a human approval step before writing to a system of record like Jira, Asana, or a CRM. Log every model call with the transcript hash, prompt version, model identifier, output, validation results, and reviewer decision. This audit trail is essential for debugging hallucinated action items and for demonstrating due diligence if a missed task leads to a dispute. Avoid using this prompt for real-time meeting assistants where latency matters more than accuracy — instead, use a streaming summarization prompt and run this structured extraction as a post-meeting batch job.
Expected Output Contract
Validation rules for each field in the Meeting Transcript to Action Items JSON output. Use this contract to build a post-generation validator that rejects hallucinated items, malformed dates, or missing required fields before the payload reaches a task system.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
action_items | Array of objects | Array must not be empty if the transcript contains any task, decision, or follow-up. Validate length >= 1 when source has actionable content. | |
action_items[].description | String | Must be a non-empty string. Each sentence must be traceable to a speaker utterance in [TRANSCRIPT]. Reject if the description contains a task not mentioned in the source. | |
action_items[].assignee | String or null | If present, must match a speaker name from [TRANSCRIPT] or a recognized participant alias. Normalize to canonical name. Set to null when no owner is stated. | |
action_items[].deadline | ISO 8601 date string or null | If present, must parse as a valid date. Reject relative expressions that cannot be resolved against [MEETING_DATE]. Set to null for open-ended items. | |
action_items[].confidence | Number between 0.0 and 1.0 | Must be a float. Score below 0.7 triggers a human-review flag. Reject values outside the 0.0-1.0 range. | |
action_items[].source_quote | String | Must be a verbatim substring from [TRANSCRIPT]. Reject if the quoted text does not appear in the source. Used for grounding verification. | |
decisions | Array of objects | Array must be empty if no decisions are recorded. Each entry must include a summary and a source_quote from [TRANSCRIPT]. | |
metadata.meeting_date | ISO 8601 date string or null | If present, must parse as a valid date. Used to resolve relative deadline expressions. Set to null when the transcript provides no date. |
Common Failure Modes
Production failures when converting meeting transcripts to action items. Each card identifies a specific breakage pattern and the guardrail that prevents it.
Hallucinated Action Items
What to watch: The model invents tasks, owners, or deadlines that never appeared in the transcript. This is the most dangerous failure mode because fabricated action items create real-world confusion and false commitments. Guardrail: Require the model to cite the exact transcript segment or speaker turn that supports each action item. Add a post-generation validation step that checks whether every extracted item has a grounding quote. If a citation is missing or doesn't match the source, discard the item or flag it for human review.
Owner Name Fragmentation
What to watch: The model extracts inconsistent name variants for the same person across multiple action items—'Sarah Chen,' 'S. Chen,' 'Sarah,' or 'the engineering lead' all refer to one individual but produce unmergeable records. Guardrail: Include a canonical participant list in the prompt context with preferred display names. Add a post-processing normalization step that maps extracted names back to canonical identifiers using fuzzy matching. Flag any extracted owner that doesn't match a known participant.
Ambiguous Action Item Wording
What to watch: The model produces vague action items like 'follow up on the issue' or 'look into it' that lack enough specificity for anyone to know what completion looks like. These items clog task queues without driving outcomes. Guardrail: Add a constraint requiring each action item to include a concrete deliverable or observable completion condition. Use a validator that scores action items on specificity and rejects items below a threshold. Prompt the model to rephrase ambiguous items before output.
Deadline Misparsing
What to watch: Relative date expressions like 'next Tuesday,' 'by end of week,' or 'in two sprints' are resolved incorrectly, especially when the transcript recording date differs from the processing date. A deadline of 'Friday' becomes ambiguous when the meeting was Wednesday but processing happens Thursday. Guardrail: Always provide the meeting date as an explicit input field and instruct the model to resolve all relative dates against that reference point. Output all dates in ISO 8601 format. Add a post-check that flags any date that falls before the meeting date.
Decision vs. Action Item Confusion
What to watch: The model conflates decisions made during the meeting with action items that require future work. 'We decided to use Postgres' is a decision, not an action item, but the model may list it as a task. This inflates action counts and buries real work. Guardrail: Add explicit output field separation between decisions and action items. Include few-shot examples that show decisions recorded without owners or deadlines and action items with both. Validate that no action item is a passive statement of fact.
Multi-Turn Context Collapse
What to watch: In long transcripts, the model loses track of action items that were discussed early in the meeting, revised later, or assigned across multiple speaker turns. The output misses updates or includes stale versions of tasks that were superseded. Guardrail: Instruct the model to track each action item across all mentions in the transcript and output only the final resolved version. If the transcript is very long, chunk it with overlapping windows and deduplicate action items across chunks using a similarity threshold.
Evaluation Rubric
Score each criterion on a pass/fail or 1-5 scale before shipping the Meeting Transcript to Action Items JSON prompt. Use this rubric to catch hallucinated action items, malformed JSON, and normalization failures in production.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Source Grounding | Every action item, decision, and owner is explicitly traceable to a speaker statement in [TRANSCRIPT]. No invented items. | Action item references a topic or person not present in the transcript. No source quote can be located. | For each output item, require a verbatim source quote from [TRANSCRIPT]. Flag items without a match as hallucinated. |
JSON Schema Validity | Output parses as valid JSON matching the [OUTPUT_SCHEMA] exactly. All required fields present. No extra top-level keys. | JSON.parse throws an error. Required field like | Run output through a JSON schema validator against the expected schema. Reject on any validation error. |
Action Item Completeness | Every action item contains a non-null | Action item has empty string for | Iterate over |
Assignee Normalization | All assignee names are normalized to a consistent format defined in [NAME_NORMALIZATION_RULES]. No raw transcript variants. | Output contains 'Bob', 'Robert', and 'Bobby' for the same person. Email-style names appear alongside display names. | Apply a canonicalization function. Compare output names against a deduplicated set. Flag any name not matching the normalized form. |
Date Standardization | All dates and deadlines are converted to ISO 8601 format (YYYY-MM-DD). Relative dates resolved against [MEETING_DATE]. | Deadline appears as 'next Tuesday' or 'tomorrow'. Date format is MM/DD/YYYY. Timezone ambiguity is unresolved. | Parse every date field. Assert it matches ISO 8601 regex. Assert resolved date is not before [MEETING_DATE] unless explicitly a past reference. |
No Hallucinated Metadata | Output does not invent meeting title, attendees list, duration, or other metadata not present in [TRANSCRIPT]. | Output includes a | Diff output metadata fields against [TRANSCRIPT]. Any field not directly extractable must be |
Decision Log Accuracy | Every entry in | Decision is a paraphrase of a single speaker's opinion presented as group consensus. Decision contradicts another extracted decision. | For each decision, require at least one supporting quote. Check for logical contradictions between decisions using an LLM judge with a pairwise comparison prompt. |
Confidence Flagging | Low-confidence extractions (unclear speaker, ambiguous deadline, tentative language) are flagged with | Hesitant statement like 'maybe we should' is extracted with | Assert |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a frontier model and minimal post-processing. Focus on getting the JSON shape right before adding validation layers. Replace [OUTPUT_SCHEMA] with a simple array of objects containing action_item, owner, deadline, and source_quote fields. Set [CONSTRAINTS] to a single instruction: "Only extract action items explicitly stated in the transcript."
Watch for
- Hallucinated owners when the transcript says "someone should" without naming a person
- Relative dates like "next Tuesday" left unnormalized
- Action items that paraphrase the transcript but lose the original commitment language

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us