← Back to all apps

Overview

Tools Available5
CategoryCollaboration

Smart meeting insights from Zoom

Available Tools

Zoom provides 5 tools that can be used to interact with its services.

Create New File With Markdown

create_new_file_with_markdown
Full Description

Creates a new Zoom Docs document from Markdown content.

Use this tool whenever the user asks to save or create content in Zoom Docs. Pass the user's content as a single Markdown string.

After invoking this tool, you must: 1. Tell the user the name of the newly created document. 2. Provide the file_link to the user.

Parameters

Required
contentstring

The markdown formatted content.

Optional
file_namestring

The name of the file.

parent_idstring

The ID of the parent file. The newly created file will become a child of this parent. If this parameter is omitted, the file will be placed under **My Docs**. Use `root` to represent the top-level folder of the current user. Folders can only be created under **My Docs**, a shared folder, or another folder.

Get Meeting Assets

get_meeting_assets
Full Description

Search Meetings Tool V3.1

[READ-ONLY]

Advanced search functionality for user meetings. AI analyzes user input to identify keywords (q) and time ranges (from, to), then uses these extracted parameters to query the user's meeting list, sorting results by relevance.

Core Functionality

Unlike the standard list tool, this tool uses a search engine to find meetings matching specific topics, attendees, or contexts.

Usage Guideline (MANDATORY)

ALWAYS use this Search Tool when:

  • User asks for meeting information but does NOT provide a specific Meeting ID (e.g., "Show my meetings", "Find the budget review", "What meetings did I have last week?").
  • This tool is the primary entry point for all vague or natural language meeting queries.
  • DO NOT ask the user for an ID first; attempt to find the meeting using this tool based on their description.
Input Processing & Parameter Extraction (MANDATORY)

Before calling this tool, the AI MUST perform the following analysis on the user's prompt:

1. Extract Keywords (q):

  • Analyze the user's intent to find specific words (e.g., "project alpha", "sync with bob", "budget review").
  • **CRITICAL
  • ENTITY EXTRACTION:**
  • Extract ANY specific noun, name, or title found in the object position of the query.
  • *Example:* "Search for meeting Assistant" -> q="Assistant" (Do NOT ignore "Assistant" thinking it refers to you/AI).
  • *Example:* "Find Weekly Sync" -> q="Weekly Sync".
  • Action: Extract these keywords and put them into the q parameter.
    • If multiple keywords are present, combine them appropriately.

2. Calculate Time Range (from, to):

  • **CRITICAL
  • TIMEZONE CONVERSION (MANDATORY):**
  • STEP 1: Identify User Timezone. Check the current user context/environment. If user is in China/Asia/Shanghai, offset is -8 hours (UTC+8).
  • STEP 2: Perform Calculation. API_UTC_Time = User_Local_Time
  • User_Timezone_Offset.
  • Example (UTC+8 User):
    • User says "10am" (10:00).
    • Calculation: 10:00 - 8 hours = 02:00.
  • Correct Result: ...T02:00:00Z.
  • WRONG Result: ...T08:00:00Z (This is a common error where no subtraction happens).
    • Do NOT treat user input numbers directly as UTC (unless they explicitly say "UTC").
  • Precision Requirement: Match the user's provided time as precisely as possible, down to the hour.
  • Specific Logic for "Just Finished" / "Recent":
  • If user says "just finished", "latest", "recent", or "today":
    • Set from to Start of Today (00:00 local converted to UTC) or Current Time - 24 hours.
    • Do NOT use the 1-week default for these specific phrases.
  • DEFAULT BEHAVIOR (IMPORTANT):
  • For General/History Search: If no time specified AND no "recent/latest" keywords, default to last 1 week. (from = now - 7 days).
  • For Upcoming/Future Search: If user intent is clearly future (e.g., "upcoming meetings"), default from to current time.
    • from: Start of the range (UTC).
    • to: End of the range (UTC).
Default Parameters
  • page_size: Default 50 (Max 50).

Output & Response Presentation Rules

**CRITICAL

  • ABSOLUTELY FORBIDDEN**

YOU ARE STRICTLY PROHIBITED FROM OUTPUTTING THE MEETING LIST TEXT.

FORBIDDEN OUTPUT EXAMPLES:

  • "Here are the meetings matching 'project':"
  • "1. Project Sync — Nov 27, 2025..."
  • "I found the following meetings..."
  • ANY numbered list of meetings
  • ANY meeting titles, dates, or times
  • ANY description of meeting topics
  • ANY summary, analysis, or interpretation of meeting content
  • ANY additional commentary beyond the EXACT mandatory output format specified below

REASON: The meeting search results are ALREADY VISIBLE IN THE UI. Your output must only guide the user's next action.

**CRITICAL

  • NO SUMMARIZATION OR ANALYSIS (MANDATORY):**
  • DO NOT summarize meeting topics, attendees, or any meeting details
  • DO NOT provide analysis or interpretation of the search results
  • DO NOT add explanatory text beyond the exact format specified in each scenario
  • DO NOT describe what meetings were found beyond the count
  • STRICTLY FOLLOW the exact output format specified below - output ONLY what is explicitly required, nothing more

Workflow: Handling Search Results

**CRITICAL RULE

  • NO SUMMARIZATION:**

YOU MUST NOT summarize, analyze, or describe meeting content in your response. Output ONLY the exact format specified for each scenario below. Any additional commentary, summary, or analysis is STRICTLY PROHIBITED.

MANDATORY OUTPUT Generation:

First, check if you used from and to parameters:

  • IF (and ONLY IF) from/to were used:

Display the search range (Bold the times and timezone): *"Searching meetings from [Local_From_Time] to [Local_To_Time] ([User_Timezone])..."* *(If the timezone is incorrect, please tell me your correct timezone)*

  • IF NO time parameters were used:

DO NOT display the "Searching meetings from..." line. DO NOT invent a time range.

Then, choose the matching scenario based on whether the results contain historical (recordable) meetings:

Scenario A: Results contain ANY Past Meetings

If the results include meetings that have already happened (which might have assets), you MUST offer the asset options.

MANDATORY OUTPUT:

Summary Line:

  • *"I found [Total] meeting(s) matching '[q]'."* (If q is empty, omit "matching...").

Action Prompt:

What would you like to do with the past meeting(s)?

1. Recap meeting – Includes AI summary, docs, recording, and whiteboards
2. View recording – Shows full recording details

Please pick 1 or 2, and tell me which meeting you mean.

ABSOLUTE PROHIBITIONS:

  • DO NOT add meeting lists or details.
Scenario B: Results contain ONLY Upcoming Meetings

If the search results contain ONLY upcoming meetings (no historical assets):

**MANDATORY OUTPUT (EXACT FORMAT

  • NO DEVIATIONS):**
  • Summary Line: *"I found [Total] meeting(s) matching '[q]'."* (If q is empty, omit "matching...").
  • Conclusion: *"You can view them in the list above."*

ABSOLUTE PROHIBITIONS:

  • DO NOT offer Recap/Recording options (assets don't exist).
  • DO NOT list the meetings details.
  • DO NOT summarize meeting topics, titles, or content.
  • DO NOT describe what meetings were found.
  • DO NOT add any analysis, interpretation, or commentary.
  • DO NOT provide additional context or explanations.
  • DO NOT mention meeting times, dates, or attendees.
  • STRICTLY FORBIDDEN: Any text beyond the two exact lines specified above.

CRITICAL: Output ONLY the two lines specified above. Any additional text, summary, or description is PROHIBITED.

Scenario C: No Results (Total = 0)

MANDATORY OUTPUT:

  • If q is NOT empty: *"No meetings found matching '[q]' within that time range. Please try a different keyword or provide the specific Meeting Number/ID directly."*
  • If q IS empty: *"No meetings found within that time range. Please try a different keyword or provide the specific Meeting Number/ID directly."*

User Selection Handling

When the user selects a meeting from the search results (e.g., "recap the first one"):

1. Identify the Target:

  • Locate the corresponding meeting object in the meetings array from the search response.

2. Extract Identifiers:

  • meeting_uuid: The unique string ID (PRIMARY identifier).
  • meeting_number: The numeric ID (Fallback identifier).

3. Double-Encode UUID (CRITICAL & MANDATORY):

  • Before calling ANY downstream tool (Assets or Recording), you MUST check the UUID.
  • Rule: If meeting_uuid starts with / or contains //:
    • Apply Double URL Encoding.
    • % becomes %25, / becomes %2F.
    • *Example:* /Qk7s... -> %252FQk7s... (Encoded once to %2F, then % to %25).
  • Reason: Fails to do this will cause API 404/400 errors due to path parsing issues.

4. Call Next Tool:

  • Recap: Call get_meeting_assets using the Double-Encoded meeting_uuid (or meeting_number if UUID is missing).
  • Recording: Call get_recording_resource using the Double-Encoded meeting_uuid (or meeting_number if UUID is missing).

**CRITICAL

  • ID Usage:**
  • ALWAYS PREFER UUID (meeting_uuid) when calling downstream tools.
  • Only use numeric ID (meeting_number) if the UUID is null or empty.
  • This ensures we target the exact meeting instance found in the search results.

Rate Limit

  • Label: MEDIUM

Parameters

Required
meetingIdstring

The meeting identifier. This field accepts either a UUID-format meeting ID or a numeric meeting number. Prefer passing the UUID-format meeting ID when available. Before invoking the API, the meetingId must be double-encoded; otherwise, the request may fail. If users provide natural language (e.g., 'last meeting'), use searchMeetings to resolve the correct meetingId. Numeric meeting numbers return assets for the latest meeting instance, while UUIDs return assets for the specific occurrence.

Get Recording Resource

get_recording_resource
Full Description

Description:

**PRIORITY TRIGGER CONDITIONS

  • Use THIS Tool When User Mentions Recording:**

**HIGH PRIORITY

  • Always use THIS tool when user explicitly mentions:**
  • "recording" + any action (play, watch, view, listen, open, start, etc.)
  • "play recording" | "play the recording"
  • "watch the recording" | "view the recording" | "listen to the recording"
  • "open the recording" | "start the recording" | "launch the recording"
  • "jump to recording" | "go to recording" | "navigate to recording"
  • "recording content" | "recording details" | "recording transcript"
  • "what's in the recording" | "recording summary" | "recording analysis"

**MEDIUM PRIORITY

  • Use THIS tool when context suggests recording focus:**
  • User asks about specific content AND mentions time/timeline (e.g., "What did they say at 5 minutes?")
  • User wants to search/find specific topics within content (implies transcript search)
  • User asks about speakers, dialogue, or conversation details
  • User mentions playback, timestamps, or navigation within content

**LOW PRIORITY

  • Use ASSETS tool first, then THIS tool if needed:**
  • General meeting information requests without "recording" keyword
  • "Show me my meetings" / "What meetings do I have?"
  • Basic meeting metadata (duration, participants, date) without content focus

CRITICAL: When to Use This Tool vs. Assets Tool

Use THIS RECORDING tool when:

  • User explicitly mentions "recording" in their request
  • User wants detailed recording content: transcript text, per-topic summaries, next steps
    • User needs to search within a recording (e.g., "What did they say about X?")
    • User wants to jump to a specific part of a recording (requires transcript + playback URL)
    • User needs granular timeline data (who said what and when)
    • User wants to play/watch/view/listen to a recording

Use the ASSETS tool when:

  • User wants meeting-level information (meeting summary, recordings list, whiteboards, docs)
  • User asks for "meeting assets", "meeting recordings", "meeting summary" without mentioning "recording" specifically
  • User wants to know what recordings exist for a meeting
  • User needs basic recording metadata (duration, file size, download links)

ENHANCED DECISION RULE:

1. FIRST CHECK: Does the user's request contain the word "recording" or recording-related actions?

  • YES → Use THIS tool immediately
  • NO → Continue to step 2

2. SECOND CHECK: Is the user asking about specific content, transcript, or playback?

  • YES → Use THIS tool
  • NO → Use ASSETS tool

3. FALLBACK: If unclear, and user mentions "meeting" without "recording" → Use ASSETS tool first

Examples of Enhanced Triggering:

ALWAYS use THIS tool for:

  • "Play the recording"
  • "I want to watch the recording"
  • "Show me the recording content"
  • "What's in this recording?"
  • "Open the recording file"
  • "Start the recording"
  • "Jump to 5 minutes in the recording"
  • "Find where they talked about pricing in the recording"

Use ASSETS tool first for:

  • "Show me my meetings"
  • "What meetings do I have today?"
  • "Meeting summary" (without "recording")
  • "My recent meetings"

Context-dependent (analyze user intent):

  • "What did we discuss?" → If no recording context, use ASSETS; if recording context exists, use THIS tool
  • "Show me the summary" → If user was previously discussing recordings, use THIS tool; otherwise use ASSETS

Use this tool whenever you need detailed content or granular metadata for a specific recording:

  • transcript text (to answer questions, find topics, or locate time ranges),
  • summaries (overall or per-topic),
  • next steps / action items,
  • or playable URLs (for jumping to a specific point in the recording).

This tool can return:

  • transcript segments,
  • summary segments,
  • next-step segments,
  • playback URLs,
  • and utility information derived from these (e.g., recording duration).

If the user's request is unclear OR you are not sure which resource type is needed, omit the "types" parameter so that ALL available resources are fetched. You can then decide which parts to use to answer the user.

Parameters:

  • types (string, optional):

A comma-separated list of resource types to retrieve. Valid values (case-insensitive, no spaces needed): • "transcript" → transcript segments for the recording • "summary" → summary segments for the recording • "nextStep" → next-step segments for the recording • "playUrl" → playback URL segments for the recording

Behavior rules for "types":

  • If omitted or an empty string, the tool MUST fetch ALL available resource types.
  • If some values are invalid, ignore the invalid ones and still fetch the valid types.
  • If the user is asking about the content or meaning of the recording

(e.g., "What did they say about X?", "Find the part where they discussed Y"), you SHOULD include "transcript" in types.

  • If the user wants to jump to or play a specific part of the recording

(e.g., "Take me to the part where they talk about pricing"), you SHOULD include both "transcript" and "playUrl" in types.

  • raw_passcode (string, optional):

The plaintext passcode for playing the recording. Up to 10 characters, containing lowercase letters, digits, special characters (e.g., !, @, #), or sometimes all digits. (e.g., passcode directly copied from a Zoom shared link).

  • encode_passcode (string, optional):

The encrypted passcode used for playing the recording. It is an encoded string typically appended to the recording’s share link as the pwd parameter. (e.g., the pwd=xxx value from a Zoom shared link).

  • clip_num (integer, optional):

The index (1-based or as defined by the implementation) of the recording clip to retrieve, for recordings that contain multiple clips. If the requested clip number exceeds the available clip count, the tool should return null.

  • play_time (integer, optional):

The user's desired playback starting time in SECONDS relative to the selected clip. For example:

  • play_time = 0 → start from the beginning of the clip
  • play_time = 20 → start 20 seconds into the clip

When the user asks to "jump to", "play from", or "go to the part where...", you can: 1) Use the returned transcripts to find the relevant segment and its timestamp, then 2) Call or interpret play URLs with an appropriate play_time value.

Behavior:

  • ENHANCED PREREQUISITE CHECK:
    • If user mentions "recording" or recording-related actions → Use THIS tool immediately
    • If user asks about content analysis, transcript, or playback → Use THIS tool
    • If user asks general meeting questions without "recording" context → Use ASSETS tool first
    • The tool returns ONLY the resource types requested via "types".
    • If "types" is empty or omitted, the tool returns ALL available resource types.
    • If a particular resource type does not exist, its field MUST be omitted from the response.
  • Recording duration can be computed using:

duration = recording_end - recording_start

  • Returned transcript data can (and should) be used by the model to:
    • answer content questions,
    • search for specific topics or phrases,
    • determine appropriate time ranges for playback.
    • Returned play URLs can be used by the client or the model to initiate playback

from a desired start time.

  • If the user's question is ambiguous or mixed (e.g., might need both content and playback),

you SHOULD omit "types" so that all resources are retrieved.

  • IMPORTANT: This tool has PRIORITY when "recording" is explicitly mentioned. For general meeting/recording discovery without "recording" keyword, use the ASSETS tool first.

Return Structure (JSON):

{ "transcripts": [ { "timeline": [ { "text": "string", "ts": "HH:mm:ss.SSS", // start time relative to recording start "end_ts": "HH:mm:ss.SSS", // end time relative to recording start "display_name":"string", // the person speaking in this sentence may be empty; if empty, it means they are not a Zoom user. } ], "recording_id": "string", "meeting_id": "string", "recording_start": "timestamp (string)", "recording_end": "timestamp (string)" } ], "summaries": [ { "recordingStartTime": number, "recording_start": "timestamp (string)", "total_items": number, "overall_summary": "string | null", "items": [ { "label": "string", "summary": "string" } ] } ], "next_steps": [ { "recordingStartTime": number, "recording_start": "timestamp (string)", "total_items": number, "items": [ { "text": "string" } ] } ], "play_urls": [ { "recording_start": "timestamp (string)", "urls": [ "string" ], "play_time": number } ] }

Notes:

  • Include each top-level field (transcripts, summaries, next_steps, play_urls)

ONLY if corresponding data exists.

  • If no resource exists for a requested type, omit that field entirely.

Enhanced Tool Selection Examples:

**CORRECT

  • Use THIS tool immediately:**
  • "Play the recording" → THIS tool (explicit recording mention)
  • "I want to watch the recording" → THIS tool (explicit recording mention)
  • "What's in this recording?" → THIS tool (explicit recording mention)
  • "Open the recording" → THIS tool (explicit recording mention)
  • "Find the part where they discussed pricing in the recording" → THIS tool (explicit recording mention)

**WRONG

  • Should use THIS tool, not ASSETS:**
  • User: "Play the recording" → Calling ASSETS tool
  • User: "Show me the recording content" → Calling ASSETS tool

**CORRECT

  • Use ASSETS tool first:**
  • "What meetings do I have?" → ASSETS tool (no recording mention)
  • "Show me my meeting summary" → ASSETS tool (meeting-level, no recording mention)
  • "My recent meetings" → ASSETS tool (no recording mention)

Context-dependent examples:

  • "What did we discuss about the budget?" → If user was previously talking about recordings, use THIS tool; otherwise use ASSETS
  • "Show me the summary" → If recording context exists, use THIS tool; otherwise use ASSETS

Rule of thumb:

  • Recording keyword present → THIS tool has PRIORITY
  • Recording actions (play, watch, view, listen, open) → THIS tool has PRIORITY
  • Content analysis without recording context → Consider both tools based on specificity
  • General meeting discovery → ASSETS tool first

Parameters

Required
meetingIdstring

The original meetingId is not a pure number, but rather a format similar to atsXxhSEQWit9t+U02HXNQ==. The parameters in this format need to be double-encoded (/docs/api/using-zoom-apis/#meeting-id-and-uuid) to obtain the UUID before making an API request.

Optional
clip_numinteger
encode_passcodestring

The encrypted passcode used for playing the recording. It is an encoded string typically appended to the recording’s share link as the pwd parameter.

play_timeinteger
raw_passcodestring

The plaintext passcode for playing the recording. Up to 10 characters, containing lowercase letters, digits, special characters (e.g., !, @, #), or sometimes all digits.

typesstring

Recordings List

recordings_list
Full Description

List all recordings Lists all [cloud recordings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-Recording) for a user. For user-level apps, pass the [me value](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#the-me-keyword) instead of the userId parameter. To access a user's passcode protected cloud recording, send the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) as a bearer token in the authorization header. Example: curl -H "Authorization: Bearer <ACCESS_TOKEN>" https://{{base-domain}}/rec/archive/download/xyz

This can list the current person's records, only displaying the corresponding record information.

Parameters

Required
userIdstring
Optional
fromstring
mcstring
Default: false
meeting_idinteger
next_page_tokenstring
page_sizeinteger
Default: 30
tostring
trashboolean
Default: false
trash_typestring
Default: meeting_recordings

Search Meetings

search_meetings
Full Description

Search Meetings Tool V2.7

[READ-ONLY]

Advanced search functionality for user meetings. AI analyzes user input to identify keywords (q) and time ranges (from, to), then uses these extracted parameters to query the user's meeting list, sorting results by relevance.

Core Functionality

Unlike the standard list tool, this tool uses a search engine to find meetings matching specific topics, attendees, or contexts.

Usage Guideline (MANDATORY)

ALWAYS use this Search Tool when:

  • User asks for meeting information but does NOT provide a specific Meeting ID (e.g., "Show my meetings", "Find the budget review", "What meetings did I have last week?").
  • This tool is the primary entry point for all vague or natural language meeting queries.
  • DO NOT ask the user for an ID first; attempt to find the meeting using this tool based on their description.
Input Processing & Parameter Extraction (MANDATORY)

Before calling this tool, the AI MUST perform the following analysis on the user's prompt:

1. Extract Keywords (q):

  • Analyze the user's intent to find specific words (e.g., "project alpha", "sync with bob", "budget review").
  • **CRITICAL
  • ENTITY EXTRACTION:**
  • Extract ANY specific noun, name, or title found in the object position of the query.
  • *Example:* "Search for meeting Assistant" -> q="Assistant" (Do NOT ignore "Assistant" thinking it refers to you/AI).
  • *Example:* "Find Weekly Sync" -> q="Weekly Sync".
  • Action: Extract these keywords and put them into the q parameter.
    • If multiple keywords are present, combine them appropriately.

2. Calculate Time Range (from, to):

  • **CRITICAL
  • TIMEZONE CONVERSION (MANDATORY):**
  • STEP 1: Identify User Timezone. Check the current user context/environment. If user is in China/Asia/Shanghai, offset is -8 hours (UTC+8).
  • STEP 2: Perform Calculation. API_UTC_Time = User_Local_Time
  • User_Timezone_Offset.
  • Example (UTC+8 User):
    • User says "10am" (10:00).
    • Calculation: 10:00 - 8 hours = 02:00.
  • Correct Result: ...T02:00:00Z.
  • WRONG Result: ...T08:00:00Z (This is a common error where no subtraction happens).
    • Do NOT treat user input numbers directly as UTC (unless they explicitly say "UTC").
  • Precision Requirement: Match the user's provided time as precisely as possible, down to the hour.
  • Specific Logic for "Just Finished" / "Recent":
  • If user says "just finished", "latest", "recent", or "today":
    • Set from to Start of Today (00:00 local converted to UTC) or Current Time - 24 hours.
    • Do NOT use the 1-week default for these specific phrases.
  • DEFAULT BEHAVIOR (IMPORTANT):
  • For General/History Search: If no time specified AND no "recent/latest" keywords, default to last 1 week. (from = now - 7 days).
  • For Upcoming/Future Search: If user intent is clearly future (e.g., "upcoming meetings"), default from to current time.
    • from: Start of the range (UTC).
    • to: End of the range (UTC).
Default Parameters
  • page_size: Default 50 (Max 50).

Output & Response Presentation Rules

**CRITICAL

  • ABSOLUTELY FORBIDDEN**

YOU ARE STRICTLY PROHIBITED FROM OUTPUTTING THE MEETING LIST TEXT.

FORBIDDEN OUTPUT EXAMPLES:

  • "Here are the meetings matching 'project':"
  • "1. Project Sync — Nov 27, 2025..."
  • "I found the following meetings..."
  • ANY numbered list of meetings
  • ANY meeting titles, dates, or times
  • ANY description of meeting topics

REASON: The meeting search results are ALREADY VISIBLE IN THE UI. Your output must only guide the user's next action.


Workflow: Handling Search Results

MANDATORY OUTPUT Generation:

First, check if you used from and to parameters:

  • IF (and ONLY IF) from/to were used:

Display the search range (Bold the times and timezone): *"Searching meetings from [Local_From_Time] to [Local_To_Time] ([User_Timezone])..."* *(If the timezone is incorrect, please tell me your correct timezone)*

  • IF NO time parameters were used:

DO NOT display the "Searching meetings from..." line. DO NOT invent a time range.

Then, choose the matching scenario based on whether the results contain historical (recordable) meetings:

Scenario A: Results contain ANY Past Meetings

If the results include meetings that have already happened (which might have assets), you MUST offer the asset options.

MANDATORY OUTPUT:

Summary Line:

  • *"I found [Total] meeting(s) matching '[q]'."* (If q is empty, omit "matching...").

Action Prompt:

What would you like to do with the past meeting(s)?

1. Recap meeting – Includes AI summary, docs, recording, and whiteboards
2. View recording – Shows full recording details

Please pick 1 or 2, and tell me which meeting you mean.

ABSOLUTE PROHIBITIONS:

  • DO NOT add meeting lists or details.
Scenario B: Results contain ONLY Upcoming Meetings

If the search results contain ONLY upcoming meetings (no historical assets):

MANDATORY OUTPUT:

  • Summary Line: *"I found [Total] meeting(s) matching '[q]'."* (If q is empty, omit "matching...").
  • Conclusion: *"You can view them in the list above."*
  • Prohibitions:
    • DO NOT offer Recap/Recording options (assets don't exist).
    • DO NOT list the meetings details.
Scenario C: No Results (Total = 0)

MANDATORY OUTPUT:

  • If q is NOT empty: *"No meetings found matching '[q]' within that time range. Please try a different keyword or provide the specific Meeting Number/ID directly."*
  • If q IS empty: *"No meetings found within that time range. Please try a different keyword or provide the specific Meeting Number/ID directly."*

User Selection Handling

When the user selects a meeting from the search results (e.g., "recap the first one"):

1. Identify the Target:

  • Locate the corresponding meeting object in the meetings array from the search response.

2. Extract Identifiers:

  • meeting_uuid: The unique string ID (PRIMARY identifier).
  • meeting_number: The numeric ID (Fallback identifier).

3. Double-Encode UUID (CRITICAL & MANDATORY):

  • Before calling ANY downstream tool (Assets or Recording), you MUST check the UUID.
  • Rule: If meeting_uuid starts with / or contains //:
    • Apply Double URL Encoding.
    • % becomes %25, / becomes %2F.
    • *Example:* /Qk7s... -> %252FQk7s... (Encoded once to %2F, then % to %25).
  • Reason: Fails to do this will cause API 404/400 errors due to path parsing issues.

4. Call Next Tool:

  • Recap: Call get_meeting_assets using the Double-Encoded meeting_uuid (or meeting_number if UUID is missing).
  • Recording: Call get_recording_resource using the Double-Encoded meeting_uuid (or meeting_number if UUID is missing).

**CRITICAL

  • ID Usage:**
  • ALWAYS PREFER UUID (meeting_uuid) when calling downstream tools.
  • Only use numeric ID (meeting_number) if the UUID is null or empty.
  • This ensures we target the exact meeting instance found in the search results.

Rate Limit

  • Label: MEDIUM

Parameters

Optional
fromstring

The start date, in yyyy-MM-dd'T'HH:mm:ss'Z' UTC format, used to retrieve the meeting summaries' creation date range.

next_page_tokenstring
page_sizeinteger

The number of records returned with a single API call.

Default: 50
qstring

Full-text search query across topic, summary, and transcript.

tostring

The end date, in yyyy-MM-dd'T'HH:mm:ss'Z' UTC format, used to retrieve the meeting summaries' creation date range.