Skip to main content
Google Meet is Google’s video conferencing service. This source brings your meetings and everything they produce into your Lakehouse: who attended, the automatic transcript, the recording link, and the full text of the meeting summaries generated by Gemini’s “Take notes for me”. Transcripts and Gemini notes are saved by Google as documents in Drive, and this source extracts their text into a column, so meeting content is queryable alongside the rest of your data.
Google keeps meetings available for only 30 days after they end. There is no historical backfill: meetings older than 30 days cannot be extracted, no matter which start date you set. Your Lakehouse becomes the permanent archive, so schedule this source to run at least once a month, and preferably once a day. A meeting that is never extracted within its 30-day window is lost.

Before you start

  • Only meetings the connected Google account took part in can be extracted.
  • The Gemini notes stream only returns data if the meeting organizer’s Google Workspace has a Gemini license and note taking was switched on during the call. An empty table means the feature was not used, not that the extraction failed.
  • Transcripts and notes are written by Google minutes to hours after a meeting ends. This source automatically re-reads the last couple of days on every run so late documents are still picked up.

1. Add your Google Meet access

  1. In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Google Meet option from the list of connectors.
  2. Click Next and you’ll be prompted to add your access. Authorize Nekt through the Google Authorization button, signing in with the account that attends the meetings you want to extract.
Accept every permission requested, including access to Meet recordings and transcripts in Google Drive. Without it, meetings and participants are still extracted, but the text of transcripts and Gemini notes is not.
  1. The following configurations are available:
  • Start Date: The earliest meeting start date to extract. Because of the 30-day retention, an earlier date does not return more data.
  • Extract document text: (Default: enabled) Extracts the full text of transcripts and Gemini notes. Turn it off to bring only metadata and document links.
  • Lookback (days): (Default: 2) How many days before the last extracted meeting to read again on every run, so documents Google finished writing after the previous run are picked up.
  • Maximum document length: (Default: 1,000,000) Maximum number of characters kept from each document. Longer documents are cut and flagged in the content_status column. Set to 0 to remove the limit.
  1. Click Next.

2. Select your Google Meet streams

  1. The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.
    Tip: The stream can be found more easily by typing its name.
  2. Click Next.

3. Configure your Google Meet data streams

  1. Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
  • Sync Type: choose INCREMENTAL for every Google Meet stream.
Do not use FULL_TABLE with this source. Google only returns the last 30 days of meetings, so a full sync would delete every older meeting already stored in your Lakehouse.
  1. Click Next.

4. Configure your Google Meet data source

  1. Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
  2. To define your Trigger, consider how often you want data to be extracted from this source. A daily trigger is recommended, so no meeting expires before being extracted.

Check your new source!

  1. Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
  2. You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can now monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.

Streams and Fields

Below you’ll find all available data streams from Google Meet and their corresponding fields. Every stream is keyed by name, the Google resource identifier of the record.
One record per meeting held in a Google Meet space. This is the central stream: every other stream joins back to it.Key Fields:
  • name - Resource name of the meeting, in the format conferenceRecords/<id>. Primary key of this table
  • conference_record_id - Short identifier of the meeting, used to join with the other tables
  • start_time - When the meeting started. Used as the incremental replication key
  • end_time - When the meeting ended. Empty while the meeting is still in progress
Space:
  • space - Resource name of the Meet space where the meeting was held, in the format spaces/<id>
  • space_id - Short identifier of the space. Groups every occurrence of a recurring meeting
Duration and retention:
  • duration_seconds - How long the meeting lasted, in seconds. Empty while the meeting is still in progress
  • expire_time - When Google deletes this meeting from its API, 30 days after it ends. After this moment the extracted data is the only remaining copy
One record per person who attended a meeting.Key Fields:
  • name - Resource name of the participation. Primary key of this table
  • participant_id - Short identifier of the participation within this meeting
Meeting reference:
  • conference_record - Resource name of the meeting attended
  • conference_record_id - Short identifier of the meeting attended
  • conference_start_time - When the meeting started. Used as the incremental replication key
Identity:
  • user_type - How the person joined: signed_in for a Google account or meeting-room device, anonymous for someone not signed in, phone for someone who dialed in
  • user_id - Unique identifier of the signed-in user, in the format users/<id>. Interoperable with the Google Admin SDK and People APIs. Empty for anonymous and phone participants
  • display_name - Name shown during the meeting. For phone participants, a partially redacted phone number
Attendance:
  • earliest_start_time - When the participant first joined the meeting
  • latest_end_time - When the participant left for the last time. Empty while the meeting is still in progress
One record per Gemini “Take notes for me” summary, including its full text. Requires a Gemini license on the meeting organizer’s Google Workspace.Key Fields:
  • name - Resource name of the smart notes. Primary key of this table
  • smart_note_id - Short identifier of the notes session
  • state - STARTED while the session runs, ENDED once it stopped but before the file exists, and FILE_GENERATED when the document is ready
Meeting reference:
  • conference_record - Resource name of the meeting
  • conference_record_id - Short identifier of the meeting
  • conference_start_time - When the meeting started. Used as the incremental replication key
Content:
  • content - Full text of the notes, exported from Google Docs as Markdown
  • content_status - Why the text is filled or empty. See the table below
  • document_id - Identifier of the Google Doc holding the notes
  • export_uri - Link to open the notes in Google Docs
Timing:
  • start_time - When the notes session started
  • end_time - When the notes session stopped
One record per transcription session of a meeting, including its full text. Transcripts are generated independently from recordings.Key Fields:
  • name - Resource name of the transcript. Primary key of this table
  • transcript_id - Short identifier of the transcription session
  • state - STARTED while the session runs, ENDED once it stopped but before the file exists, and FILE_GENERATED when the document is ready
Meeting reference:
  • conference_record - Resource name of the meeting
  • conference_record_id - Short identifier of the meeting
  • conference_start_time - When the meeting started. Used as the incremental replication key
Content:
  • content - Full text of the transcript, exported from Google Docs as Markdown
  • content_status - Why the text is filled or empty. See the table below
  • document_id - Identifier of the Google Doc holding the transcript
  • export_uri - Link to open the transcript in Google Docs
Timing:
  • start_time - When the transcription session started
  • end_time - When the transcription session stopped
One record per recording session of a meeting. Only metadata and the Drive link are extracted; the video file itself stays in Google Drive.Key Fields:
  • name - Resource name of the recording. Primary key of this table
  • recording_id - Short identifier of the recording session
  • state - STARTED while recording, ENDED once it stopped but before the file exists, and FILE_GENERATED when the video is ready
Meeting reference:
  • conference_record - Resource name of the meeting
  • conference_record_id - Short identifier of the meeting
  • conference_start_time - When the meeting started. Used as the incremental replication key
File:
  • drive_file_id - Identifier of the MP4 file in Google Drive
  • export_uri - Link to play the recording in the browser
Timing:
  • start_time - When the recording started
  • end_time - When the recording ended

Understanding the content_status column

The Smart Notes and Transcripts tables always explain why their text column is filled or empty:
If you also need the meeting video files in your Lakehouse, use the Google Drive source in unstructured mode with the drive_file_id from the Recordings table.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!