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
- 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.
- 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.
- 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_statuscolumn. Set to 0 to remove the limit.
- Click Next.
2. Select your Google Meet streams
-
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.
- Click Next.
3. Configure your Google Meet data streams
- 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.
- Click Next.
4. Configure your Google Meet data source
- 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.
- 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!
- Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
- 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 byname, the Google resource identifier of the record.
Conference Records
Conference Records
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 formatconferenceRecords/<id>. Primary key of this tableconference_record_id- Short identifier of the meeting, used to join with the other tablesstart_time- When the meeting started. Used as the incremental replication keyend_time- When the meeting ended. Empty while the meeting is still in progress
space- Resource name of the Meet space where the meeting was held, in the formatspaces/<id>space_id- Short identifier of the space. Groups every occurrence of a recurring meeting
duration_seconds- How long the meeting lasted, in seconds. Empty while the meeting is still in progressexpire_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
Participants
Participants
One record per person who attended a meeting.Key Fields:
name- Resource name of the participation. Primary key of this tableparticipant_id- Short identifier of the participation within this meeting
conference_record- Resource name of the meeting attendedconference_record_id- Short identifier of the meeting attendedconference_start_time- When the meeting started. Used as the incremental replication key
user_type- How the person joined:signed_infor a Google account or meeting-room device,anonymousfor someone not signed in,phonefor someone who dialed inuser_id- Unique identifier of the signed-in user, in the formatusers/<id>. Interoperable with the Google Admin SDK and People APIs. Empty for anonymous and phone participantsdisplay_name- Name shown during the meeting. For phone participants, a partially redacted phone number
earliest_start_time- When the participant first joined the meetinglatest_end_time- When the participant left for the last time. Empty while the meeting is still in progress
Smart Notes
Smart Notes
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 tablesmart_note_id- Short identifier of the notes sessionstate-STARTEDwhile the session runs,ENDEDonce it stopped but before the file exists, andFILE_GENERATEDwhen the document is ready
conference_record- Resource name of the meetingconference_record_id- Short identifier of the meetingconference_start_time- When the meeting started. Used as the incremental replication key
content- Full text of the notes, exported from Google Docs as Markdowncontent_status- Why the text is filled or empty. See the table belowdocument_id- Identifier of the Google Doc holding the notesexport_uri- Link to open the notes in Google Docs
start_time- When the notes session startedend_time- When the notes session stopped
Transcripts
Transcripts
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 tabletranscript_id- Short identifier of the transcription sessionstate-STARTEDwhile the session runs,ENDEDonce it stopped but before the file exists, andFILE_GENERATEDwhen the document is ready
conference_record- Resource name of the meetingconference_record_id- Short identifier of the meetingconference_start_time- When the meeting started. Used as the incremental replication key
content- Full text of the transcript, exported from Google Docs as Markdowncontent_status- Why the text is filled or empty. See the table belowdocument_id- Identifier of the Google Doc holding the transcriptexport_uri- Link to open the transcript in Google Docs
start_time- When the transcription session startedend_time- When the transcription session stopped
Recordings
Recordings
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 tablerecording_id- Short identifier of the recording sessionstate-STARTEDwhile recording,ENDEDonce it stopped but before the file exists, andFILE_GENERATEDwhen the video is ready
conference_record- Resource name of the meetingconference_record_id- Short identifier of the meetingconference_start_time- When the meeting started. Used as the incremental replication key
drive_file_id- Identifier of the MP4 file in Google Driveexport_uri- Link to play the recording in the browser
start_time- When the recording startedend_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!