- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Search, read, and summarise meeting transcripts and summaries from Google Meet, Zoom, and Microsoft Teams — directly from ChatGPT and Codex. Meetings as context: ask what was decided, who you spoke with, or what’s come up across any call. Your entire meeting history, answerable.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-13
- Tool count
- 16
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Tactiq
Get updates when Tactiq’s Discoverability Score or category rank changes.
Competitive lineup
16 tools agents can invoke
Check whether a previously triggered AI generation (typically a detailed summary started by `generate_meeting_summary`) has finished. Pass the `meetingId` and the `jobId` returned by `generate_meeting_summary`. Use this when `generate_meeting_summary` returned `{ status: 'generating', jobId }`. Poll periodically (a few seconds between calls is appropriate) until status is `ready` or `failed`. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns: `status` (`ready` | `generating` | `failed`), `url`, and `content` when status is `ready`. `failed` is terminal — generation will not produce content; do not keep polling. Re-call `generate_meeting_summary` to start a fresh attempt. Cite `url` when you relay the content — it lets the user open the meeting to verify what was said.
get_generation_status
Save a new plain text note on a space, where every member of the space and their agents can read it. Only a saved space can hold notes, and only a member who can add meetings to it can write one. Read the space with `get_space` first: if a note on the same subject exists, change it with `update_space_note` rather than adding a near-duplicate. Returns: `id`, `title`, `text`, `updatedAt` (ISO 8601).
create_space_note
Delete a note from a space, for every member of the space. It cannot be undone. Only a member who can add meetings to the space can delete its notes. Returns: `id` of the deleted note.
delete_space_note
Read the conversation immediately around an excerpt returned by get_transcript_excerpts — the question it answered, the reply it drew. Use it when an excerpt reads as one side of an exchange, or when a name or number in it looks garbled and the surrounding words would settle it. IMPORTANT: Takes the `excerptId` of an excerpt from a recent get_transcript_excerpts call. References stop working after about an hour; when one does, search again and expand one of the fresh excerpts. IMPORTANT: Returns a short fixed window around the excerpt. Expanding the same excerpt again returns the same window, so to read further use get_transcript_excerpts with a more specific question. IMPORTANT: Rate limited: transcript excerpts can be read for at most 100 different meetings per hour per user; meetings already read in the window don't count again. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns: `entries[]` (each: `text`, `speaker`, `startSeconds`, `endSeconds`, `isExcerpt`) in speaking order, and `url` which opens the transcript at the excerpt.
expand_transcript_excerpt
Create a meeting's detailed AI summary when `get_meeting` returned `detailedSummary: { status: 'not_generated' }`. Generation runs in the background and uses one of the user's AI credits. If the meeting already has a summary, it is returned as is and nothing is generated. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Workflow: 1. `generate_meeting_summary({ meetingId })` → `status` is `generating` with a `jobId`, or `ready` with `content`. 2. While `generating`, poll `get_generation_status({ meetingId, jobId })` until status is `ready`. Returns: `status` (`ready` | `generating`), `jobId` when status is `generating`, `content` when status is `ready`, and `url`. Cite `url` when you relay the content — it lets the user open the meeting to verify what was said.
generate_meeting_summary
Read a meeting's full transcript, one page at a time, in speaking order with speaker names and timestamps. Prefer get_transcript_excerpts when you are looking for specific moments, quotes, or topics — it is faster and more precise. Use this pager only when you genuinely need the complete text (e.g. a full translation or rewrite). IMPORTANT: The transcript is returned in fixed pages. Start at page 1; `totalPages` tells you how many pages exist, and the same page number always returns the same content for a given meeting. IMPORTANT: Rate limited: full transcripts can be read for at most 10 different meetings per hour per user; meetings already read in the window don't count again. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns: `page`, `totalPages`, `totalChars` (size of the whole transcript in characters), `hasMore`, `entries[]` (each: `text`, `speaker`, `startSeconds`, `endSeconds`), `url`. Cite `url` when you relay this content — it lets the user open the meeting to verify what was said.
get_transcript
Fetch the full content of a specific AI-generated artifact on a meeting (summaries, action items, email drafts, slide decks, CSVs, and similar). Use this when `get_meeting` or `list_meeting_artifacts` has returned an artifact id you want to read, or when the detailed summary from `get_meeting` is insufficient and you need a specific artifact type (e.g. action items only). IMPORTANT: Never returns the full transcript. IMPORTANT: `artifactId` must come from `list_meeting_artifacts` or the `otherArtifacts[]` array inside `get_meeting` — do not guess or construct ids. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns: `id`, `title`, optional `contentType` (e.g. `summary`, `email_draft`, `csv`, `slide_deck`), `content` (rendered text — markdown for summaries / slide decks, RFC 4180 CSV for tabular artifacts, plain-text email body for email drafts), `url`. Cite `url` when you relay this content — it lets the user open the meeting to verify what was said.
get_meeting_artifact
Fetch a meeting's detailed AI-generated summary, plus the titles and ids of all other AI artifacts on it (action items, email drafts, CSVs, slide decks, and similar). Use this as the primary way to read meeting content. The detailed summary is the richest single view of a meeting — call this before reaching for individual artifacts. IMPORTANT: Never returns the full transcript. IMPORTANT: Never creates a summary. If the summary doesn't exist yet, `detailedSummary` is returned as `{ status: 'not_generated' }` — call `generate_meeting_summary` to create it. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Workflow: 1. `get_meeting` → read `detailedSummary.content` when status is `ready`. 2. If you need a specific artifact (e.g. action items), pass an id from `otherArtifacts[]` to `get_meeting_artifact`. 3. If the summary is not generated, call `generate_meeting_summary({ meetingId })`, then poll `get_generation_status` with the `jobId` it returns. 4. If `spaces[]` is not empty, pass a space id to `get_space` before acting on what you read — a space carries the outside resources its work is tracked in, and anything you write should match them. Returns: `id`, `title`, `createdAt` (ISO 8601), `durationSeconds`, `attendees[]`, `url`, `spaces[]` (each: `id`, `name`, `url`, and the other fields `list_spaces` returns), `detailedSummary` (`{ status: 'ready', content }` or `{ status: 'not_generated' }`), `otherArtifacts[]` (each: `id`, `title`, optional `status`). Cite `url` when you relay this content — it lets the user open the meeting to verify what was said.
get_meeting
Read one space: what it is, how active it is, the outside resources its members have attached to it, and the notes they keep on it. Call this before working on a meeting that belongs to a space. `linkedResources` names places outside Tactiq that hold the context for this space's work — a Linear project, for example. Tactiq only stores the link; read each one with your own tools for that product before you answer, and before you create anything there. For a Linear project that means reading the project and its existing issues first, so what you write matches how that project is already run. Get a space id from `list_spaces`, or from the `spaces` a meeting names. A suggested space (a recurring meeting Tactiq grouped on its own) can be read here too, but nothing can be attached to one, so its `linkedResources` is always empty. `notes` lists plain text the space's members and their agents keep there. Read one in full with `get_space_note` before relying on it; add, change or remove one with `create_space_note` / `update_space_note` / `delete_space_note` when those tools are available. To read what is actually in the space, pass its id to `search_meetings` or `list_recent_meetings` — this tool returns no meetings. Returns `{ space, linkedResources, notes }`. `space`: `id`, `name`, `isSuggested`, optional `icon`, optional `meetingCount`, optional `lastMeetingAt` (ISO 8601), `url` — cite `url` when you relay anything you read from this space. `linkedResources`: each `title`, `provider`, `url`. `notes`: each `id`, `title`, `preview`, `updatedAt` (ISO 8601).
get_space
Read the whole of one note kept on a space. Notes are plain text the space's members and their agents keep there — context for the space's work that no single meeting holds. Find them in the `notes` `get_space` returns. Returns: `id`, `title`, `text`, `updatedAt` (ISO 8601).
get_space_note
Find the verbatim transcript excerpts of a meeting that are relevant to a question — what exactly was said, by whom, and when. Prefer this over get_transcript whenever you are looking for specific moments, quotes, decisions, or topics; fetch the full transcript only when you genuinely need the entire text. IMPORTANT: Returns at most 10 short excerpts per call. Each excerpt is a single moment; when one reads as half of an exchange, pass its `excerptId` to expand_transcript_excerpt to see what was said around it. IMPORTANT: `hasMore` tells you whether relevant excerpts were left out — when it is true, call again with a more specific question rather than assuming this is everything. IMPORTANT: An empty `excerpts` list means nothing matched the question's wording — NOT that the topic is absent from the meeting. Transcripts contain speech-recognition errors and people rarely speak in the question's exact terms, so rephrase (synonyms, related terms, a broader topic) and try again before concluding something was never discussed. IMPORTANT: Rate limited: transcript excerpts can be read for at most 100 different meetings per hour per user; meetings already read in the window don't count again. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns: `excerpts[]` (each: `text`, `speaker`, `excerptId`, `startSeconds`, `endSeconds`, `url`), ordered most relevant first; `hasMore`; and `searchedWholeMeeting`. An empty list means nothing matched this wording — rephrase and retry before concluding the topic is absent. Each `url` opens the transcript at that excerpt — link to it when you quote or reference the excerpt.
get_transcript_excerpts
List all AI-generated artifacts on a meeting — summaries, action items, email drafts, slide decks, CSVs, and similar. Returns titles and ids only, no content. Use this when you already have a meetingId and want to discover what artifacts exist before fetching one, or when `get_meeting` has already been called and you want a lightweight refresh of the artifact list without re-fetching the summary. Prefer `get_meeting` over this tool if you haven't fetched the meeting yet — `get_meeting` returns both the summary content AND the artifact list in one call. Use `get_meeting_artifact` with the returned ids to fetch actual artifact content. IMPORTANT: Requires a Tactiq Team plan. When the user cannot read this right now — because of their plan, their connection, their AI credits, or because the meeting is only shared as a preview — this returns an error saying why; relay it to the user as written. Returns `{ artifacts: [...], url }`. Each artifact: `id`, `title`, optional `status` (`ready` or `generating` — `generating` means content is not yet available; poll `get_generation_status`). `url` opens the meeting in Tactiq — cite it when you relay anything from this meeting.
list_meeting_artifacts
List the user's most recent accessible meetings (owned + shared + team + space), sorted newest first. Returns meeting metadata only — never transcript content. Use this when the user wants to see recent meetings without specific search criteria (e.g. "show me my latest meetings", "what did I meet about this week"). Use `search_meetings` instead when the user names a topic, participant, or date range. Set `spaceId` to browse one space instead of everything — call `list_spaces` for the id first. Use `search_meetings` with the same `spaceId` when the user also names a topic. Returns `{ results: [...] }`. Each result: `id`, `title`, `createdAt` (ISO 8601), `durationSeconds`, `attendees[]`, `url`. Use the `id` to fetch full content via `get_meeting` or `get_meeting_artifact`.
list_recent_meetings
List the spaces the user can reach, most recently met in first. A space is a named group of meetings — a project, a team, or a recurring meeting the user follows. Use this first whenever the user names a space ("what's been happening in Design Review?", "summarise the last month of the leadership space"). It gives you the `id` to pass to `search_meetings` or `list_recent_meetings`, which is how you read what is actually in one. Two kinds come back and both read the same way. A saved space is one the user made. A suggested space (`isSuggested: true`) is a recurring meeting Tactiq grouped on its own — the user has not saved it yet, so it cannot be shared or added to by hand, but its meetings are readable exactly like a saved space's. Don't describe a suggested space as though the user set it up. `meetingCount` and `lastMeetingAt` tell you which spaces are worth reading: prefer an active space over one nothing has been filed into for months, and say when a space is empty rather than reporting nothing found. A meeting can sit in a saved space and still belong to a suggested one, so don't add `meetingCount`s together or report the same meeting twice. Returns `{ spaces: [...], hasMore }`. Each space: `id`, `name`, `isSuggested`, optional `icon`, optional `meetingCount`, optional `lastMeetingAt` (ISO 8601), `url`. Cite `url` when you relay anything you read from a space. `hasMore` true means the user follows more recurring meetings than this list shows — say so rather than concluding a space doesn't exist.
list_spaces
Search the user's own meetings by topic, participants, or date range. Returns meeting metadata only — never transcript content. Use this when the user references one of: - a topic or subject matter → set `query` (e.g. "find meetings about Netflix" → query: "Netflix") - a person who joined → set `participants` (e.g. "meetings with David" → participants: ["David"], query left empty) - a time window → set `dateFrom` / `dateTo` - a space → set `spaceId` (e.g. "what did Design Review say about pricing" → call `list_spaces` for the id, then spaceId + query: "pricing") These can be combined. Use `list_recent_meetings` instead if no search criteria are provided. IMPORTANT: Supply at least one of `query` / `participants` / `dateFrom` / `dateTo` / `spaceId`. IMPORTANT: Do NOT guess a `spaceId` — call `list_spaces` and use an id from it, or the search returns nothing. IMPORTANT: Do NOT put a participant's name in `query` just because the user mentioned them — that filters meetings by whether the literal name appears in the title/notes/AI outputs, which is almost never true and returns zero results. Use `participants` for people. IMPORTANT: Do NOT include the current authenticated user in `participants` — every result is already one of their meetings, so adding the caller will return zero results. `participantsMatch` modes: ANY (default) = at least one listed participant joined; ALL = every listed participant joined; NONE = none of them joined. Returns `{ results: [...] }`. Each result: `id`, `title`, `createdAt` (ISO 8601), `durationSeconds`, `attendees[]`, `url`, optional `snippet` (best matching highlight from the search). Use the `id` to fetch full content via `get_meeting` or `get_meeting_artifact`.
search_meetings
Replace a space note's title and text. This overwrites the whole note: read it with `get_space_note` first and send back everything that should stay, not just what changed. Only a member who can add meetings to the space can change its notes. Returns: `id`, `title`, `text`, `updatedAt` (ISO 8601).
update_space_note
Tactiq ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Tactiq's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.