Grain
App · Meeting Notes · 3 actions
Pull your Grain meeting recordings, AI summaries, action items, and transcripts into your workflows.
Actions
| Action | What it does |
|---|---|
| Get a recording | Fetch one recording with its AI summary, action items, and highlights. |
| Get a transcript | Fetch a recording's word-for-word transcript, both as one block of text and as timed segments. |
| List recordings | List the meeting recordings in your Grain workspace. |
Get a recording
Fetch one recording with its AI summary, action items, and highlights.
Inputs
- Recording ID
recording_idtextRequired - The Grain recording ID, as returned by List recordings.
- Include AI summary
include_summarytrue/false - Include the AI-generated summary and action items. On by default.Default:
true.
Outputs
action_itemslist- Action items Grain's AI picked out
duration_msnumber- How long the recording runs, in milliseconds
end_datetimetext- When the meeting ended
highlightslist- Clips someone highlighted in the recording
participantslist- The people on the call
recording_idtext- Recording ID. Use with Get a recording and Get a transcript.
sourcetext- Where the recording came from, for example 'zoom', 'teams', 'meet', or 'upload'
start_datetimetext- When the meeting started
summarytext- Grain's AI summary of the meeting, as Markdown. Empty when the summary wasn't requested or hasn't been generated.
tagslist- Tags applied to the recording
titletext- The recording's title
urltext- Link to watch the recording in Grain
Example output
{
"action_items": [
{
"assignee": "Ada Lovelace",
"completed": false,
"text": "Send the SOC 2 report"
}
],
"duration_ms": 1920000,
"end_datetime": "2026-07-29T15:32:00Z",
"highlights": [
{
"highlight_id": "8f2b1c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"text": "We need SOC 2 before we can sign.",
"timestamp_ms": 742000,
"url": "https://grain.com/share/highlight/8f2b1c4d"
}
],
"participants": [
{
"confirmed_attendee": true,
"email": "ada@example.com",
"name": "Ada Lovelace",
"scope": "internal"
},
{
"confirmed_attendee": true,
"email": "grace@example.com",
"name": "Grace Hopper",
"scope": "external"
}
],
"recording_id": "d1c9f7a2-3b4e-4c5d-9e8f-0a1b2c3d4e5f",
"source": "zoom",
"start_datetime": "2026-07-29T15:00:00Z",
"summary": "Acme is evaluating three vendors and needs SOC 2 evidence before moving forward.",
"tags": [
"discovery",
"enterprise"
],
"title": "Acme discovery call",
"url": "https://grain.com/share/recording/d1c9f7a2-3b4e-4c5d-9e8f-0a1b2c3d4e5f"
}Get a transcript
Fetch a recording's word-for-word transcript, both as one block of text and as timed segments.
Inputs
- Recording ID
recording_idtextRequired - The Grain recording ID, as returned by List recordings.
Outputs
recording_idtext- The recording the transcript belongs to
segmentslist- The transcript split into timed lines
texttext- The whole transcript as one string, one 'Speaker: line' per line. Handy for passing to an AI step.
Example output
{
"recording_id": "d1c9f7a2-3b4e-4c5d-9e8f-0a1b2c3d4e5f",
"segments": [
{
"end_ms": 3400,
"speaker": "Ada Lovelace",
"start_ms": 1200,
"text": "Thanks for making the time."
},
{
"end_ms": 5100,
"speaker": "Grace Hopper",
"start_ms": 3500,
"text": "Happy to be here."
}
],
"text": "Ada Lovelace: Thanks for making the time.\nGrace Hopper: Happy to be here."
}List recordings
List the meeting recordings in your Grain workspace.
Inputs
- Started after
after_datetimedate and time - Optional. Only return recordings that started after this time, as an ISO 8601 timestamp.
- Started before
before_datetimedate and time - Optional. Only return recordings that started before this time, as an ISO 8601 timestamp.
- Title contains
title_searchtext - Optional. Only return recordings whose title contains this text.
Outputs
recordingslist- The matching recordings
Example output
{
"recordings": [
{
"duration_ms": 1920000,
"end_datetime": "2026-07-29T15:32:00Z",
"participants": [
{
"confirmed_attendee": true,
"email": "ada@example.com",
"name": "Ada Lovelace",
"scope": "internal"
},
{
"confirmed_attendee": true,
"email": "grace@example.com",
"name": "Grace Hopper",
"scope": "external"
}
],
"recording_id": "d1c9f7a2-3b4e-4c5d-9e8f-0a1b2c3d4e5f",
"source": "zoom",
"start_datetime": "2026-07-29T15:00:00Z",
"tags": [
"discovery",
"enterprise"
],
"title": "Acme discovery call",
"url": "https://grain.com/share/recording/d1c9f7a2-3b4e-4c5d-9e8f-0a1b2c3d4e5f"
}
]
}