Inferensys

Prompt

Meeting Transcript to Action Items JSON Prompt Template

A practical prompt playbook for extracting structured action items from meeting transcripts and converting them into validated JSON payloads for productivity tools.
Developer demonstrating multi-agent tool use, agent tool selection interface on laptop, casual tech demo moment.
PROMPT PLAYBOOK

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.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

text
You 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

json
undefined

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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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 action_items or decisions is missing. Unknown field appears at root.

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 description, assignee, and deadline (or explicit null if not stated).

Action item has empty string for description. assignee is 'TBD' when a name was stated. deadline is missing when a date was mentioned.

Iterate over action_items[]. Assert description is non-empty string. Assert assignee is a recognized name or null. Assert deadline is ISO 8601 or null.

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 meeting_title field when none was stated. attendees list contains names not spoken in the transcript.

Diff output metadata fields against [TRANSCRIPT]. Any field not directly extractable must be null or omitted per schema.

Decision Log Accuracy

Every entry in decisions captures a conclusion explicitly stated or clearly implied by speaker agreement in [TRANSCRIPT].

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 confidence: low and include a rationale.

Hesitant statement like 'maybe we should' is extracted with confidence: high. No rationale field present for ambiguous items.

Assert confidence field is present on every item. For items with confidence: low, assert rationale is a non-empty string explaining the ambiguity.

ADAPTATION OPTIONS

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
Prasad Kumkar

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.