Skip to main content
Read AI is an AI meeting assistant that joins calls on Zoom, Google Meet and Microsoft Teams and turns each one into a report — a summary, action items, key questions, topics, a full transcript and engagement metrics. Connecting it to Nekt brings that meeting history into your Catalog, so meeting activity can be analyzed alongside your CRM, support and product data.

Configuring Read AI as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Read AI option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

Read AI’s API uses OAuth 2.0. Unlike most connectors, Read AI has no developer portal: applications are registered by each account through a single API call, and you then authorize your application to generate the credentials Nekt needs. The guide below covers every step.
Before starting, make sure your workspace has the Downloads option enabled under Workspace Settings → Reports & Sharing. Read AI requires it for any API access.
The following configurations are required:
  • Client ID: From the application you register on your Read AI account (guide below).
  • Client Secret: From the same application.
  • Refresh token: Generated with the Google OAuth Playground (guide below).
  • Start Date: (Optional) The earliest meeting start date from which records will be synced. If omitted, the full history available in the API is synced.
  • Lookback (days): (Optional, default 1) Read AI generates summaries, transcripts and metrics only after a meeting ends. Each sync re-reads meetings that started within this many days of the previous run so those fields are picked up once they exist.
1

Register an application on your Read AI account

Read AI registers applications through an API call rather than a settings screen. Paste the command below into a terminal and run it — you can change client_name to anything you like:
Copy the client_id and client_secret from the response.
Save the Client Secret immediately — Read AI does not show it again. If you lose it, register a new application.
The redirect_uris value above points at the Google OAuth Playground, which is what lets you generate the refresh token in the browser in the next steps. Keep it exactly as written.
2

Open the Google OAuth Playground

The Google OAuth Playground is a free tool that generates your Refresh token in the browser — no coding involved. Click the link below to open it pre-configured for Read AI:Open Read AI OAuth Playground →
3

Configure the OAuth Playground

In the OAuth Playground, click the gear icon (⚙️) on the right side to open “OAuth 2.0 configuration” and update these values:
  1. Replace READ_AI_CLIENT_ID with your Client ID
  2. Replace READ_AI_CLIENT_SECRET with your Client Secret
  3. Verify the endpoints:
    • OAuth authorization endpoint: https://authn.read.ai/oauth2/auth
    • OAuth token endpoint: https://authn.read.ai/oauth2/token
  4. Click Close
4

Authorize and get your Refresh token

If your browser is signed in to more than one Read AI account, do this step in a private/incognito window so you are prompted to log in with the right one.
  1. In Step 1 of the playground (left side), the scopes are already filled in — click Authorize APIs
  2. You’ll be redirected to Read AI — log in with the account whose meetings you want to sync and click Allow Access
  3. After returning to the playground, click Exchange authorization code for tokens (Step 2)
  4. Your refresh_token appears in the response on the right side
Copy the refresh_token value and go straight to Nekt. Do not click Refresh access token in the playground afterwards — Read AI replaces the refresh token on every use, and the one you copied would stop working.
If Read AI signs you in through SSO and does not send you back to the playground automatically, click Authorize APIs again — you are already authenticated at that point and the flow will skip the sign-in step.
5

Paste your credentials in Nekt

Back in Nekt, fill in the three fields:
  • Client ID: From your Read AI application
  • Client Secret: From your Read AI application
  • Refresh token: The refresh_token value you just copied
Finish the source setup right after generating the refresh token. Read AI replaces it on every use, so a token left unused while something else consumes it will no longer work. After the first successful run, Nekt renews and stores it automatically on every extraction — you never need to touch it again.
The application belongs to whoever registered it, which is why each account uses its own Client ID and Client Secret. Authorize with an account that can see the meetings you intend to sync.
Once you’re done, click Next.
A Read AI user only has API access to the meeting reports they can see in the Read AI web app. To sync every meeting across your workspace, an administrator must enable global report access before connecting.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Every stream is keyed by the meeting id, so they can all be joined together on that field. Below you’ll find all available data streams from Read AI and their corresponding fields:
Core metadata for every meeting Read AI recorded — who took part, when it happened and on which platform. This is the cheapest stream to sync, since it requests none of Read AI’s generated content.Key Fields:
  • id - Unique identifier of the meeting (ULID)
  • title - Title of the meeting, as taken from the calendar event
  • report_url - URL of the meeting report in the Read AI web app
Timing:
  • start_time - When the meeting actually started (UTC), used as the incremental replication key
  • end_time - When the meeting ended (UTC); empty while the meeting is still in progress
  • scheduled_start_time - When the meeting was scheduled to start (UTC)
  • scheduled_end_time - When the meeting was scheduled to end (UTC)
  • duration_seconds - Actual duration of the meeting in seconds
  • start_time_ms, end_time_ms, scheduled_start_time_ms, scheduled_end_time_ms - The same timestamps in epoch milliseconds, as returned by the API
People:
  • owner_name - Display name of the meeting owner (the Read AI user the report belongs to)
  • owner_email - Email address of the meeting owner
  • participants - People invited to or present in the meeting, as a JSON array of objects with name, email, invited and attended
  • participant_count - Number of people listed as participants
  • attendee_count - Number of participants who actually attended
Source platform:
  • platform - Conferencing platform the meeting took place on (for example zoom, google_meet or teams)
  • platform_id - Identifier of the meeting on that platform
  • folders - Names of the Read AI folders the report is filed under
  • live_enabled - Whether real-time data capture was enabled for this meeting
Read AI’s generated write-up of each meeting: what was discussed, what was decided and what needs to happen next.Key Fields:
  • id - Unique identifier of the meeting, matching the Meetings stream
  • start_time - When the meeting started (UTC), used as the incremental replication key
  • start_time_ms - The same timestamp in epoch milliseconds
Generated content:
  • summary - Narrative summary of what was discussed during the meeting
  • chapter_summaries - Section-by-section breakdown of the meeting, as a JSON array of chapter objects with their titles, timings and summaries
  • action_items - Follow-up tasks identified during the meeting, as a JSON array of objects
  • key_questions - Notable questions raised during the meeting, as a JSON array of objects
  • topics - Subjects detected in the meeting, as a JSON array of objects
Read AI produces these fields only after a meeting ends, so they are empty for meetings still in progress. The connector’s lookback setting re-reads recent meetings so the content is captured once available.
Read AI’s scoring of how each meeting went.Key Fields:
  • id - Unique identifier of the meeting, matching the Meetings stream
  • start_time - When the meeting started (UTC), used as the incremental replication key
  • start_time_ms - The same timestamp in epoch milliseconds
Scores:
  • read_score - Read AI’s overall quality score for the meeting
  • sentiment - Sentiment detected across the meeting, from negative to positive
  • engagement - How engaged the participants were during the meeting
  • metrics - The complete metrics object returned by the API, as JSON, so any score not broken out above remains available
The full transcript of each meeting, one row per meeting.Key Fields:
  • id - Unique identifier of the meeting, matching the Meetings stream
  • start_time - When the meeting started (UTC), used as the incremental replication key
  • start_time_ms - The same timestamp in epoch milliseconds
Transcript:
  • transcript_text - Full transcript as plain text, with each line prefixed by the name of the speaker
  • speakers - People who spoke during the meeting, as a JSON array of objects with their names
  • turns - Individual speaking turns, as a JSON array of objects with the speaker, the spoken text and the start and end timestamps in epoch milliseconds
  • speaker_count - Number of distinct speakers detected in the transcript
  • turn_count - Number of speaking turns in the transcript
Download references for meeting recordings.Key Fields:
  • id - Unique identifier of the meeting, matching the Meetings stream
  • start_time - When the meeting started (UTC), used as the incremental replication key
  • start_time_ms - The same timestamp in epoch milliseconds
Recording:
  • recording_download - Download reference for the meeting recording, as returned by the API
Recording download links are typically short-lived, so treat this field as a pointer to fetch soon after extraction rather than a durable URL to store.

Implementation Notes

Authentication

  • Read AI’s API is in open beta. Access tokens last 10 minutes and refresh tokens are single-use — Read AI issues a new one on every refresh. Nekt handles this automatically and stores the rotated token between runs.
  • Because each refresh token can only be used once, avoid using the same OAuth client with another tool at the same time. If the token chain breaks, re-run the authorization flow and update the source with a new refresh token.
  • Read AI has stated that static API keys and personal access tokens are planned for the API’s general availability, which will simplify this setup.

API Limits & Performance

  • Read AI enforces a limit of 100 requests per minute per user, and the meetings endpoint returns at most 10 meetings per request. Initial backfills over a long meeting history therefore take a while; the connector paces itself to stay within the limit and retries automatically if it is hit.
  • Each stream reads the meetings endpoint separately, requesting only the content it needs. Selecting fewer streams makes extractions meaningfully faster — sync Meeting Transcripts only if you actually need transcript text.

Data Quality Considerations

  • Meetings still in progress are synced with the fields Read AI has at that moment; summaries, transcripts and metrics arrive afterwards and are filled in on a later run thanks to the lookback setting.
  • Nested values such as participants, turns and action_items are delivered as JSON strings, which you can parse in a Query when you need the individual elements.
  • Real-time transcripts of ongoing meetings (Read AI’s live endpoint) are not extracted: that data only exists when someone keeps the live dashboard open during a call, which does not fit a scheduled extraction.