Productivity
Overview
Grain captures and transcribes your meetings where you have them: Meet, Zoom, Teams, Slack, and more. Grain builds an AI Meeting Data Layer of transcripts, notes, and enriched context that Claude uses to power your work. Example prompts: "Draft a proposal for AcmeCo using context from every call we've had with them." "What pain points came up most across our user interviews this month?" "Summarize the team meetings I missed this week and flag anything I should weigh in on." "Find and clip recent moments where customers pushed back on pricing to share with sales." "Create a project for AcmeCo with every meeting we've had with them so I can prep for our QBR."
Tools
Adds one or more clips to an existing story. Use list_stories or fetch_story to find the story ID, and create_clip or list_clips to get clip IDs.
add_recordings_to_collection
ChatGPTAdds one or more recordings to an existing playlist (collection) by recording ID. Use list_meetings or search_in_transcripts first to find recording IDs.
create_clip
ChatGPTCreates a clip on a recording between the given timestamps. Use search_in_transcripts first to find the recording and relevant transcript timestamps, then call this tool with the meeting ID and start/end timestamps. Choose start_ms and end_ms to capture a complete thought or topic — avoid cutting off mid-sentence. Invalid ranges (start_ms >= end_ms, or end_ms past the recording's duration) returns an error.
create_collection
ChatGPTCreates a new empty playlist (collection) with the given title. The playlist is created with restricted visibility (only you can see it). Use add_recordings_to_collection to add meetings, and update_collection_share_state to change visibility.
create_story
ChatGPTCreates a new story with the given title.
fetch_deal
ChatGPTFetches information about a single HubSpot deal by ID. In addition to returning the same data as returned by list_all_deals, this returns data about all the activity that has occurred on the deal.
fetch_meeting
ChatGPTFetches information about a single Grain meeting by ID. The response format is the same as is returned by list_meetings.
fetch_meeting_action_items
ChatGPTFetches the action items extracted from a single Grain meeting by ID. Each action item includes the task description, timestamp, status (pending or completed), the assignee (person_id and name, or null when unassigned), and the due date (or null when not set).
end_timestamp_ms is null when the action item has no end time. In some cases, older meetings may not have had action items generated for them.fetch_meeting_coaching_feedback
ChatGPTFetches AI-generated sales coaching feedback and scorecard for a single Grain meeting by ID. The response format is the same as is returned by list_coaching_feedback.
fetch_meeting_notes
ChatGPTFetches the AI notes payload from a single Grain meeting by ID. In some cases, older meetings may not have had notes generated for them. In these cases you can use
fetch_meeting_transcript instead to determine the content of the meeting.fetch_meeting_transcript
ChatGPTFetches the full transcript of a single Grain meeting by ID. Returns the entire conversation as markdown, which can be large for long meetings.
fetch_playlist
ChatGPTFetches detailed information about a single Grain playlist by ID, including the list of recordings it contains with their URLs.
fetch_story
ChatGPTFetches detailed information about a single Grain story by ID, including its items (clips and text sections). Use list_stories first to find story IDs.
fetch_user_recording_notes
ChatGPTFetches the current user's private notes for a single Grain meeting by ID. Returns the notes as markdown text, or a message if no notes exist.
list_all_deals
ChatGPTList status of hubspot-linked deals that are synced in Grain. If the list contains more than
limit deals, the response will also contain a non-null cursor value that can be used to fetch the next page of deals in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no deals matching the supplied filters.list_attended_meetings
ChatGPTReturns a filtered list of Grain meetings you have attended, ordered by most recent. If the list contains more than
limit meetings, the response will also contain a non-null cursor value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no meetings matching the supplied filters. If also looking to include meetings the user didn't attend, use list_meetings instead.list_clips
ChatGPTReturns a paginated list of Grain clips you have access to, ordered by most recent. Clips are short segments from meeting recordings. If the list contains more than
limit clips, the response will also contain a non-null cursor value that can be used to fetch the next page by calling the tool again. Only returns clips whose media has finished processing, so newly-created clips may take a few minutes to appear.list_coaching_feedback
ChatGPTList AI-generated sales-coaching feedback and scorecards for a filtered set of meetings. If the list contains more than
limit meetings, the response will also contain a non-null cursor value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no meetings matching the supplied filters.list_meetings
ChatGPTReturns a filtered list of Grain meetings you have access to, ordered by most recent. If the list contains more than
limit meetings, the response will also contain a non-null cursor value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no meetings matching the supplied filters. If only looking for meetings the user attended, use list_attended_meetings instead.list_open_deals
ChatGPTList status of open hubspot-linked deals that are synced in Grain. If the list contains more than
limit deals, the response will also contain a non-null cursor value that can be used to fetch the next page of deals in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no open deals matching the supplied filters. If also looking to include closed deals, use list_all_deals instead.list_playlists
ChatGPTReturns a paginated list of Grain playlists you have access to, ordered by most recent. If the list contains more than
limit playlists, the response will also contain a non-null cursor value that can be used to fetch the next page of playlists in the list by calling the tool again and passing the cursor along with the same filters. The list will be empty if there are no playlists matching the supplied filters.list_stories
ChatGPTReturns a paginated list of Grain stories you have access to, ordered by most recent. Stories are curated collections of clips and text sections created from meetings. If the list contains more than
limit stories, the response will also contain a non-null cursor value that can be used to fetch the next page by calling the tool again.list_workspace_users
ChatGPTGet information about all the users in the logged-in Grain user's workspace. Each user's person ID is also returned and can be used to list recordings attended by that person.
myself
ChatGPTGet information about the logged-in Grain user.
resolve_urls
ChatGPTResolves canonical shareable URLs for Grain entities (meetings, clips, playlists, stories) by ID. Always prefer this tool over constructing URLs yourself; hand-built URLs are frequently wrong. Supported
media_type values: recording, clip, collection, story. Each returned item contains either a url on success or an error string if the entity is not accessible to the current user.search_companies
ChatGPTReturns a filtered list of companies that were participants of Grain meetings you have access to.
search_in_transcripts
ChatGPTSearches transcripts of Grain meetings and returns the matching segments rather than the full transcript. Useful for locating specific content, topics, quotes, decisions, action items, or moments across one or many meetings without loading entire transcripts. Uses hybrid semantic + keyword search over transcript segments — coherent conversation chunks annotated with summaries, topics, entities, and speaker info. Results are grouped by meeting and ordered by relevance.
search_persons
ChatGPTReturns a filtered list of persons that were participants of Grain meetings you have access to.
tag_meetings
ChatGPTAdd or remove a tag from one or more meetings by recording ID. Creates the tag if it doesn't exist (on add).
update_collection_share_state
ChatGPTChanges the visibility of a playlist (collection). Options: 'restricted' (only shared users), 'workspace' (all workspace members), 'public' (anyone with the link).
citation_search
Claudefetch
Claudefetch_deal
Claudefetch_meeting
Claudefetch_meeting_coaching_feedback
Claudefetch_meeting_notes
Claudefetch_meeting_transcript
Claudelist_all_deals
Claudelist_attended_meetings
Claudelist_coaching_feedback
Claudelist_meetings
Claudelist_open_deals
Claudelist_workspace_users
Claudemyself
Claudesearch
Claudesearch_companies
Claudesearch_meetings
Claudesearch_persons
Claudesearch_recording_segments
Claudesuggest_calendar_event
Claudesuggest_email_draft
ClaudeLinks
App Stats
51
Tools
ChatGPT, Claude
Platforms
Category
Meeting NotesWorks with
ChatGPT
Claude
Data refreshed daily






