The Google Drive connection allows Qontext to ingest documents, presentations, tables, and text files from a connected Google Drive into your context repository.
Only files and folders that the connected Google account can access will be ingested into your context repository.
Supported file types:
Type
Description
Google Workspace files
Google Docs, Google Slides, and Google Sheets, synced as text
Documents & other files
docx, pptx, xlsx, pdf, rtf, txt, csv, md, odt, odp, ods, and html (up to 10 MB per file)
Unsupported:
Type
Description
Other file types
Images, audio, video, and file types not listed above
Scanned PDFs
Image-only PDFs contain no extractable text and are not OCR processed
Use a dedicated integration user in your Google Workspace to ensure a stable and uninterrupted connection.
Create a service account such as qontext@yourcompany.com and grant it access to the files and folders you want Qontext to ingest. This prevents sync interruptions if employee accounts change or are deactivated.
The integration user will:
Authenticate the connection between Qontext and Google Drive.
Access required resources with read and download permissions.
You can connect Google Drive from your Qontext workspace, authorize access in Google, then choose what to sync and how often. The steps below walk you through the full flow.
You can also manage all your credentials, including Google Drive, from the Sources page.
1
Open Sources in your workspace
In the Qontext app, open your workspace and go to the Sources tab, then click + Connect data source.
2
Select Google Drive as the data source
Choose Google Drive from the list of available data sources. This starts the Google Drive connection flow.
3
Choose Google account and grant scopes
You can reuse existing Google Drive credentials (if you’ve already connected this account to Qontext) or create a new connection.If you create a new connection, select the Google account that has access to the files you want to ingest, and approve the requested OAuth scopes.
4
Configure what to sync (filters)
Select the folders and files you want Qontext to ingest into your context repository. You can add folders or individual files.Click the + next to a folder to add it; open the folder to add subfolders or individual files and select them the same way. Files over 10MB or in an unsupported format cannot be selected. Any such files inside a selected folder are excluded from sync automatically.Selected items appear at the top. Click All file types next to a folder to limit which file types are synced from that folder. Use the checkmark next to an item to remove it from the selection.
5
Set sync frequency
Choose how often Qontext should refresh data from Google Drive (e.g. daily, weekly, monthly). More frequent syncs keep the context repository up to date but use more resources.
6
Review and create connection
Review your choices (account, filters, frequency), then confirm to create the connection. Qontext will start the initial sync shortly after.
By default, Qontext connects to Google Drive through its own Google OAuth client. If your organization needs the connection to go through a Google Cloud project you control, you can use your own OAuth client instead. Your Google Workspace admins then manage the consent screen and can revoke access from your own Google Cloud project.
Using your own OAuth client is off by default. To turn it on for your workspace, reach out at support@qontext.ai.
Adding your own OAuth client requires the Owner or Admin role in your Qontext workspace (see Member settings), and access to a Google Cloud project where you can create OAuth clients.
1
Copy the Redirect URI from Qontext
In the Qontext app, open your workspace and go to the Sources tab, then click + Connect data source. Select Google Drive, create a new connection, then expand Advanced and open Custom OAuth client. Copy the Redirect URI shown there. It is https://app.qontext.ai/oauth/callback/google_drive. If the form shows a different value, use that one instead. You will add it to your OAuth client in Google Cloud.
2
Enable the Google Drive API
In the Google Cloud console, select the project you want to use or create a new one. Go to APIs & Services > Library, search for Google Drive API, and click Enable.
3
Configure the consent screen and add the scope
Go to Google Auth Platform and complete the Branding and Audience settings: the app name, the support email, and the user type. Choose Internal if everyone who connects belongs to your Google Workspace organization, otherwise External.Then open Data access, click Add or remove scopes, select https://www.googleapis.com/auth/drive.readonly, click Update, and save your changes. This declares the scope your app can request. If the scope isn’t listed, paste it under Manually add scopes and click Add to table.
An External app left in Testing status only works for the test users you list, and Google expires its authorizations after 7 days. Publish the app to In production under Audience for a connection that stays active.
4
Create the OAuth client
In Google Auth Platform, open Clients, click Create client, and choose Web application as the application type. Enter a name, for example Qontext.Under Authorized redirect URIs, click Add URI and enter the Redirect URI from Qontext, https://app.qontext.ai/oauth/callback/google_drive. Click Create.
Google can take from a few minutes to a few hours to apply changes to an OAuth client.
5
Copy the Client ID and Client secret
Google shows the Client ID and Client secret after you create the client. Copy both.
Treat the Client secret like a password. Qontext stores it encrypted and never shows it again after you save it.
6
Add the client to Qontext
Back in the Custom OAuth client section of the connect form, paste the Client ID and Client secret, then continue. Sign in with the Google account that has access to the files you want to sync. Google then asks that account to approve the requested scope. From here, the setup continues as described in Setting up the connection.
Qontext uses the scope https://www.googleapis.com/auth/drive.readonly (read-only access to your Drive files). If it isn’t granted, the connection is not created. See Google Drive OAuth scopes.
If the connection fails, Qontext shows a message with the error. Find it in the table below.
Error
What it means
How to fix it
invalid_client
Google rejected the Client ID or Client secret.
Copy both again from Google Auth Platform > Clients, without extra spaces. Make sure the client type is Web application and the secret has not been deleted or disabled.
redirect_uri_mismatch
The Redirect URI is not registered in your OAuth client.
Copy the Redirect URI from the Custom OAuth client section in Qontext and add it under Authorized redirect URIs. It has to match exactly. Google can take from a few minutes to a few hours to apply the change.
access_denied
Access was not granted.
Connect again and approve the request. If your app is in Testing, add the account as a test user. If a Google Workspace admin restricts third-party apps, ask them to allow your OAuth client.
invalid_grant
Google rejected the authorization.
Connect again. This happens when access was revoked, the password of the connected account changed, or an app in Testing reached the 7-day expiry.
scopes
Not all required scopes were granted.
Make sure https://www.googleapis.com/auth/drive.readonly is added under Data access and approved when you sign in, then connect again.
provider_error
Google rejected the request from your OAuth app for another reason.
Check the Client ID, the Client secret, and the Authorized redirect URI against the steps above. Then connect again.
Use a single person or service account to manage Drive permissions for Qontext. This avoids accidental permission changes that break syncs.
If you don’t see a file in Qontext’s Drive tree, verify download permissions using the file’s File info -> Details and ensure Viewers and commenters can see the option to download, print, and copy is enabled.
Qontext preprocesses Drive content before ingesting it into the context repository. The initial synchronization time depends on the volume and type of files. Workspaces with many files may take up to 12 hours to fully index.
Subsequent syncs process incremental changes and typically complete much faster than the initial sync.
Qontext supports native Google Docs, Google Slides, and Google Sheets, along with docx, pptx, xlsx, pdf, rtf, txt, csv, md, odt, odp, ods, and html files. Files larger than 10MB, in an unsupported format, or without extractable text are skipped.
Can I connect multiple Google Drive accounts?
Yes. You can create multiple Google Drive connections at any time in the Sources tab in your Qontext workspace.
How do I manually refresh Google Drive data?
Manual refresh for Google Drive connections is available via the Sources tab. Navigate to the respective Google Drive connection and open the Syncs tab. In the Sync settings, select Sync latest data to pull recent changes, or Resync all data to rebuild the source from scratch.
What happens if I disconnect Google Drive?
If you disconnect the Drive connection, no new files will be ingested. Content already ingested from Drive will remain in your context repository. For data removal requests, contact support@qontext.ai.
Can I use my own Google OAuth client?
Yes. If your organization wants the connection to go through a Google Cloud project you control, expand Advanced when you add a new connection and use Custom OAuth client. The setup is described in Use your own OAuth client. Qontext still requests the same read-only Drive scope. This option is off by default. Reach out at support@qontext.ai to turn it on.
Is my Google Drive data secure?
Yes. All data is encrypted in transit (TLS) and at rest. Qontext only accesses files you explicitly authorize via Google OAuth scopes.
How can I limit what Qontext accesses?
By default, Qontext only ingests files the connected Google account can access. Additionally, you can add filters to every connection as described in the setup flow.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Qontext","description":"Documentation for Qontext: connect sources, manage your context repository, and build with the public API or MCP.","colors":{"primary":"#412BCF","light":"#7E58FF","dark":"#412BCF"},"logo":{"light":"https://mintcdn.com/qontext/Tolvg4Hv1Vx28YpD/logo/light.svg?fit=max\u0026auto=format\u0026n=Tolvg4Hv1Vx28YpD\u0026q=85\u0026s=e1dd74700b783e48c060009405203624","dark":"https://mintcdn.com/qontext/Tolvg4Hv1Vx28YpD/logo/dark.svg?fit=max\u0026auto=format\u0026n=Tolvg4Hv1Vx28YpD\u0026q=85\u0026s=18f0915cbb236baee74211b2906a0d40"},"favicon":"https://mintcdn.com/qontext/DmQWV5Y18Cz8KEeV/favicon.png?fit=max\u0026auto=format\u0026n=DmQWV5Y18Cz8KEeV\u0026q=85\u0026s=9b5430f328221ecb02dd5347b92ade61","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript"]}},"navbar":{"links":[{"href":"mailto:support@qontext.ai","label":"Support"},{"href":"https://app.qontext.ai","label":"Dashboard"}]},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qontext","hasAudioNarration":false,"actualSubdomain":"qontext","customDomains":["docs.qontext.ai"],"gitSource":{"type":"github","owner":"qontext-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9cd6c8c693588234e95ed","collectionId":"90f5ce51-b250-40b6-9578-7e4b64df1b2f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9cd6c8c693588234e95ed"},"entitlements":{},"buildId":"6ae9cd6c8c693588234e95ed","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Guides","count":41},{"language":"default","tag":"API","count":20},{"language":"default","tag":"Features","count":11},{"language":"default","tag":"Clients","count":10},{"language":"default","tag":"Sources","count":10},{"language":"default","tag":"Files","count":6},{"language":"default","tag":"Get started","count":5},{"language":"default","tag":"Folders","count":5},{"language":"default","tag":"Context repository","count":5},{"language":"default","tag":"Using the API","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--qontext-font-family:\"Inter\", \"Inter Placeholder\", sans-serif;--qontext-grey-900:#1F232B;--qontext-grey-800:#30353F;--qontext-grey-700:#414651;--qontext-grey-600:#535862;--qontext-grey-500:#717680;--qontext-grey-400:#A4A7AE;--qontext-grey-300:#D5D7DA;--qontext-grey-200:#E9EAEB;--qontext-grey-100:#F5F5F5;--qontext-grey-050:#FAFAFA;--qontext-letter:-0.02em;--qontext-display-weight:500;--qontext-display-size:24px;--qontext-display-line-height:32px;--qontext-display-spacing:24px;--qontext-display-color:var(--qontext-grey-900);--qontext-heading-l-weight:400;--qontext-heading-l-size:24px;--qontext-heading-l-line-height:32px;--qontext-heading-l-spacing:24px;--qontext-heading-l-color:var(--qontext-grey-900);--qontext-heading-m-weight:400;--qontext-heading-m-size:16px;--qontext-heading-m-line-height:24px;--qontext-heading-m-spacing:24px;--qontext-heading-m-color:var(--qontext-grey-900);--qontext-heading-ml-weight:400;--qontext-heading-ml-size:20px;--qontext-heading-ml-line-height:28px;--qontext-heading-ml-spacing:24px;--qontext-heading-ml-color:var(--qontext-grey-900);--qontext-body-weight:300;--qontext-body-size:16px;--qontext-body-line-height:24px;--qontext-body-spacing:20px;--qontext-body-color:var(--qontext-grey-500);--qontext-btn-text-weight:500;--qontext-btn-text-size:16px;--qontext-btn-text-line-height:16px;--qontext-btn-text-color:var(--qontext-grey-900);--qontext-nav-btn-weight:500;--qontext-nav-btn-size:14px;--qontext-nav-btn-line-height:16px;--qontext-nav-btn-color:var(--qontext-grey-500);--qontext-footnote-heading-weight:400;--qontext-footnote-heading-size:14px;--qontext-footnote-heading-line-height:21px;--qontext-footnote-heading-spacing:24px;--qontext-footnote-heading-color:var(--qontext-grey-900);--qontext-footnote-weight:300;--qontext-footnote-size:14px;--qontext-footnote-line-height:21px;--qontext-footnote-spacing:20px;--qontext-footnote-color:var(--qontext-grey-500);--qontext-btn-primary-bg:#000000;--qontext-btn-primary-border:#000000;--qontext-btn-primary-text:#ffffff;--qontext-btn-primary-shadow:inset 0px 1.8px 1px 0px rgba(255, 255, 255, 0.15),\n inset 0px -2px 1px 0.5px rgba(0, 0, 0, 0.25),\n 0px 1px 2px 0px rgba(65, 70, 81, 0.1);--qontext-btn-secondary-bg:#e9eaeb;--qontext-btn-secondary-bg-hover:#d5d7da;--qontext-btn-padding:8px 12px;--qontext-btn-radius:8px;--qontext-btn-gap:10px}html:not([data-theme=dark]):not(.dark) :is(\n header,\n #navbar,\n [data-slot=\"navbar\"],\n #navbar > *,\n header > div\n){border-bottom:none!important;box-shadow:none!important}html:not([data-theme=dark]):not(.dark) :is(\n #navbar [role=\"tablist\"] a[aria-current=\"page\"],\n #navbar a[role=\"tab\"][aria-current=\"page\"]\n)::after{background-color:transparent!important}#sidebar-content img{filter:grayscale(100%);opacity:.7;background-color:transparent}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-btn-primary,\n a[href].qontext-btn-primary,\n .topbar-cta-button,\n [class*=\"topbar-cta-button\"],\n #navbar a[href*=\"app.qontext\"],\n [data-slot=\"navbar\"] a[href*=\"app.qontext\"],\n #tryit-button,\n [class*=\"tryit\"],\n [class*=\"try-it\"],\n [class*=\"TryIt\"]\n),html:not([data-theme=dark]):not(.dark) :is(.qontext-btn-secondary, a.qontext-btn-secondary){display:inline-flex!important;padding:var(--qontext-btn-padding)!important;border-radius:var(--qontext-btn-radius)!important;text-decoration:none!important;font-family:var(--qontext-font-family)!important;font-weight:var(--qontext-btn-text-weight)!important;font-size:var(--qontext-btn-text-size)!important;line-height:var(--qontext-btn-text-line-height)!important;letter-spacing:var(--qontext-letter)!important}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-btn-primary,\n a[href].qontext-btn-primary,\n .topbar-cta-button,\n [class*=\"topbar-cta-button\"],\n #navbar a[href*=\"app.qontext\"],\n [data-slot=\"navbar\"] a[href*=\"app.qontext\"],\n #tryit-button,\n [class*=\"tryit\"],\n [class*=\"try-it\"],\n [class*=\"TryIt\"]\n){flex-direction:row!important;justify-content:center!important;align-items:center!important;background-color:var(--qontext-btn-primary-bg)!important;border:1px solid var(--qontext-btn-primary-border)!important;box-shadow:var(--qontext-btn-primary-shadow)!important;color:var(--qontext-btn-primary-text)!important;gap:var(--qontext-btn-gap)!important;transition:opacity .15s ease}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-btn-primary,\n .topbar-cta-button,\n #navbar a[href*=\"app.qontext\"],\n [data-slot=\"navbar\"] a[href*=\"app.qontext\"]\n):hover{opacity:.9!important;background-color:var(--qontext-btn-primary-bg)!important;border-color:var(--qontext-btn-primary-border)!important}html:not([data-theme=dark]):not(.dark) :is(\n #tryit-button,\n [class*=\"tryit\"],\n [class*=\"try-it\"],\n [class*=\"TryIt\"]\n):hover{opacity:.9!important;background-color:var(--qontext-grey-800)!important;border-color:var(--qontext-grey-800)!important}html:not([data-theme=dark]):not(.dark) :is(.qontext-btn-secondary, a.qontext-btn-secondary){flex-direction:row;justify-content:center;align-items:center;background-color:var(--qontext-btn-secondary-bg)!important;border:0!important;color:var(--qontext-btn-text-color)!important;transition:background-color .15s ease}html:not([data-theme=dark]):not(.dark) .qontext-btn-secondary:hover{background-color:var(--qontext-btn-secondary-bg-hover)!important}.qontext-btn-group{display:flex;flex-direction:row;align-items:center;gap:var(--qontext-btn-gap)}#body-content,#page-title,#sidebar .sidebar-group-header,.footnote,.footnote-heading,.mdx-content,.sidebar-note,[data-slot=body-content],[data-slot=footnote-heading],[data-slot=footnote],[data-slot=mdx-content],[data-slot=page-title],[data-slot=sidebar] .sidebar-group-header,aside,body,h1,h2,h3,h4,main,nav .sidebar-group-header{font-family:var(--qontext-font-family)!important;letter-spacing:var(--qontext-letter)!important}#page-title,[data-slot=page-title],h1{font-size:var(--qontext-display-size)!important;font-weight:var(--qontext-display-weight)!important;line-height:var(--qontext-display-line-height)!important;margin-bottom:var(--qontext-display-spacing)!important}#page-title,[data-slot=page-title]{margin-bottom:4px!important}#page-title+*,[data-slot=page-title]+*{margin-top:0!important}main h2{font-size:var(--qontext-heading-l-size)!important;font-weight:var(--qontext-heading-l-weight)!important;line-height:var(--qontext-heading-l-line-height)!important;margin-bottom:var(--qontext-heading-l-spacing)!important}main h3{font-size:var(--qontext-heading-ml-size)!important;font-weight:var(--qontext-heading-ml-weight)!important;line-height:var(--qontext-heading-ml-line-height)!important;margin-bottom:var(--qontext-heading-ml-spacing)!important}main h4{font-size:var(--qontext-heading-m-size)!important;font-weight:var(--qontext-heading-m-weight)!important;line-height:var(--qontext-heading-m-line-height)!important;margin-bottom:var(--qontext-heading-m-spacing)!important}#body-content,.mdx-content,[data-slot=body-content],[data-slot=mdx-content],body,main li,main ol,main p,main ul{font-size:var(--qontext-body-size)!important;font-weight:var(--qontext-body-weight)!important;line-height:var(--qontext-body-line-height)!important}[data-component-part=update-content] span[data-as=p]{font-size:var(--qontext-body-size)!important;line-height:var(--qontext-body-line-height)!important;display:block}html:not([data-theme=dark]):not(.dark) :is(h1, #page-title, [data-slot=\"page-title\"]){color:var(--qontext-display-color)!important}html:not([data-theme=dark]):not(.dark) main h2{color:var(--qontext-heading-l-color)!important}html:not([data-theme=dark]):not(.dark) main h3{color:var(--qontext-heading-ml-color)!important}html:not([data-theme=dark]):not(.dark) main h4{color:var(--qontext-heading-m-color)!important}html:not([data-theme=dark]):not(.dark) :is([class*=\"update\" i], [class*=\"changelog\" i], [class*=\"accordion\" i], [data-state=\"open\"], [data-state=\"closed\"], details) :is(p, li, span),html:not([data-theme=dark]):not(.dark) :is(body, #body-content, [data-slot=\"body-content\"], [data-slot=\"mdx-content\"], .mdx-content){color:var(--qontext-body-color)!important}html:not([data-theme=dark]):not(.dark) :is(.footnote-heading, [data-slot=\"footnote-heading\"], aside h4){color:var(--qontext-footnote-heading-color)!important}html:not([data-theme=dark]):not(.dark) :is(.footnote, [data-slot=\"footnote\"], aside, .sidebar-note){color:var(--qontext-footnote-color)!important}html:not([data-theme=dark]):not(.dark) :is(\n #navbar [role=\"tablist\"] a,\n #navbar a[role=\"tab\"],\n #navbar [role=\"tab\"] a,\n #navbar [class*=\"tab\"] a,\n #navbar a[href*=\"support@qontext.ai\"],\n #navbar a[href^=\"mailto:support\"],\n #navbar button[class*=\"theme\"],\n #navbar [class*=\"theme-toggle\"],\n [data-slot=\"navbar\"] [role=\"tablist\"] a,\n [data-slot=\"navbar\"] a[role=\"tab\"],\n [data-slot=\"navbar\"] [role=\"tab\"] a,\n [data-slot=\"navbar\"] [class*=\"tab\"] a,\n [data-slot=\"navbar\"] a[href*=\"support@qontext.ai\"],\n [data-slot=\"navbar\"] a[href^=\"mailto:support\"],\n [data-slot=\"navbar\"] button[class*=\"theme\"],\n [data-slot=\"navbar\"] [class*=\"theme-toggle\"]\n){box-sizing:border-box!important;display:inline-flex!important;flex-direction:row!important;align-items:center!important;padding:8px 16px!important;background-color:#fff!important;border-radius:8px!important;gap:10px!important;font-family:var(--qontext-font-family)!important;font-size:var(--qontext-nav-btn-size)!important;font-weight:var(--qontext-nav-btn-weight)!important;line-height:var(--qontext-nav-btn-line-height)!important;color:var(--qontext-nav-btn-color)!important;text-decoration:none!important;transition:background-color .15s ease}html:not([data-theme=dark]):not(.dark) :is(\n #navbar [role=\"tablist\"] a,\n #navbar a[role=\"tab\"],\n #navbar [class*=\"tab\"] a,\n #navbar a[href*=\"support@qontext.ai\"],\n #navbar a[href^=\"mailto:support\"],\n #navbar button[class*=\"theme\"],\n [data-slot=\"navbar\"] [role=\"tablist\"] a,\n [data-slot=\"navbar\"] a[role=\"tab\"],\n [data-slot=\"navbar\"] [class*=\"tab\"] a,\n [data-slot=\"navbar\"] a[href*=\"support@qontext.ai\"],\n [data-slot=\"navbar\"] a[href^=\"mailto:support\"],\n [data-slot=\"navbar\"] button[class*=\"theme\"],\n [data-slot=\"navbar\"] [class*=\"theme-toggle\"]\n):hover{background-color:var(--qontext-grey-100)!important}.footnote-heading,[data-slot=footnote-heading],aside h4{font-size:var(--qontext-footnote-heading-size)!important;font-weight:var(--qontext-footnote-heading-weight)!important;line-height:var(--qontext-footnote-heading-line-height)!important;margin-bottom:var(--qontext-footnote-heading-spacing)!important}.footnote,.sidebar-note,[data-slot=footnote],aside{font-size:var(--qontext-footnote-size)!important;font-weight:var(--qontext-footnote-weight)!important;line-height:var(--qontext-footnote-line-height)!important;margin-bottom:var(--qontext-footnote-spacing)!important}.qontext-type-display,.qontext-type-heading-l,.qontext-type-heading-m{font-family:var(--qontext-font-family);font-size:var(--qontext-display-size);font-weight:var(--qontext-display-weight);line-height:var(--qontext-display-line-height);letter-spacing:var(--qontext-letter);color:var(--qontext-display-color);margin-bottom:var(--qontext-display-spacing)}.qontext-type-heading-l,.qontext-type-heading-m{font-size:var(--qontext-heading-l-size);font-weight:var(--qontext-heading-l-weight);line-height:var(--qontext-heading-l-line-height);color:var(--qontext-heading-l-color);margin-bottom:var(--qontext-heading-l-spacing)}.qontext-type-heading-m{font-size:var(--qontext-heading-m-size);font-weight:var(--qontext-heading-m-weight);line-height:var(--qontext-heading-m-line-height);color:var(--qontext-heading-m-color);margin-bottom:var(--qontext-heading-m-spacing)}.qontext-type-body,.qontext-type-footnote,.qontext-type-footnote-heading,.qontext-type-heading-ml{font-family:var(--qontext-font-family);font-size:var(--qontext-heading-ml-size);font-weight:var(--qontext-heading-ml-weight);line-height:var(--qontext-heading-ml-line-height);letter-spacing:var(--qontext-letter);color:var(--qontext-heading-ml-color);margin-bottom:var(--qontext-heading-ml-spacing)}.qontext-type-body,.qontext-type-footnote,.qontext-type-footnote-heading{font-size:var(--qontext-body-size);font-weight:var(--qontext-body-weight);line-height:var(--qontext-body-line-height);color:var(--qontext-body-color);margin-bottom:var(--qontext-body-spacing)}.qontext-type-footnote,.qontext-type-footnote-heading{font-size:var(--qontext-footnote-size);font-weight:var(--qontext-footnote-weight);line-height:var(--qontext-footnote-line-height);color:var(--qontext-footnote-color);margin-bottom:var(--qontext-footnote-spacing)}.qontext-type-footnote-heading{font-size:var(--qontext-footnote-heading-size);font-weight:var(--qontext-footnote-heading-weight);line-height:var(--qontext-footnote-heading-line-height);color:var(--qontext-footnote-heading-color);margin-bottom:var(--qontext-footnote-heading-spacing)}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-cards a[href],\n .qontext-cards [class*=\"grid\"] > div,\n [data-slot=\"card\"],\n [class*=\"card\"] a[href],\n [class*=\"CardGroup\"] a[href],\n [class*=\"CardGroup\"] > div > div,\n [class*=\"Columns\"] > a[href],\n [class*=\"grid-cols-1\"] > a[href],\n [class*=\"grid-cols-1\"] > div,\n [class*=\"grid-cols-2\"] > a[href],\n [class*=\"grid-cols-2\"] > div,\n [class*=\"grid-cols-3\"] > a[href],\n [class*=\"grid-cols-3\"] > div\n){background-color:var(--qontext-grey-050)!important;border:1px solid var(--qontext-grey-100)!important;border-radius:8px!important;padding:12px!important}.qontext-cards-compact [class*=grid]{gap:8px!important}.qontext-cards-compact :is(a[href], [class*=\"grid\"] > div){padding:8px!important}.qontext-cards-compact :is(\n a[href] h3, a[href] h4, [class*=\"grid\"] > div h3, [class*=\"grid\"] > div h4,\n [class*=\"grid\"] > div > div:last-child > *:first-child,\n [class*=\"grid\"] > div [class*=\"font-medium\"],\n [class*=\"grid\"] > div [class*=\"font-semibold\"],\n a[href] > div:last-child > *:first-child,\n a[href] [class*=\"font-medium\"],\n a[href] [class*=\"font-semibold\"]\n){margin-bottom:2px!important}.qontext-cards-icon-flush :is(a[href], [class*=\"grid\"] > div, [class*=\"CardGroup\"] a[href], [class*=\"CardGroup\"] > div > div){padding-top:0!important}.qontext-cards-icon-flush :is(\n a[href] > *:first-child,\n [class*=\"grid\"] > div > *:first-child,\n [class*=\"CardGroup\"] a[href] > *:first-child,\n [class*=\"CardGroup\"] > div > div > *:first-child\n){margin-top:0!important;padding-top:0!important}:is(\n .qontext-cards a[href] h3, .qontext-cards a[href] h4,\n .qontext-cards [class*=\"grid\"] > div h3, .qontext-cards [class*=\"grid\"] > div h4,\n .qontext-cards [class*=\"grid\"] > div > div:last-child > *:first-child,\n .qontext-cards [class*=\"grid\"] > div [class*=\"font-medium\"],\n .qontext-cards [class*=\"grid\"] > div [class*=\"font-semibold\"],\n .qontext-cards a[href] > div:last-child > *:first-child,\n .qontext-cards a[href] [class*=\"font-medium\"],\n .qontext-cards a[href] [class*=\"font-semibold\"],\n [data-slot=\"card\"] h3, [data-slot=\"card\"] h4,\n [class*=\"card\"] a[href] h3, [class*=\"card\"] a[href] h4,\n [class*=\"CardGroup\"] a[href] h3, [class*=\"CardGroup\"] a[href] h4,\n [class*=\"CardGroup\"] > div > div h3, [class*=\"CardGroup\"] > div > div h4,\n [class*=\"CardGroup\"] > div > div > div:last-child > *:first-child,\n [class*=\"CardGroup\"] > div > div [class*=\"font-medium\"],\n [class*=\"CardGroup\"] > div > div [class*=\"font-semibold\"],\n [class*=\"Columns\"] > a[href] h3, [class*=\"Columns\"] > a[href] h4,\n [class*=\"grid-cols-1\"] > * h3, [class*=\"grid-cols-1\"] > * h4,\n [class*=\"grid-cols-2\"] > * h3, [class*=\"grid-cols-2\"] > * h4,\n [class*=\"grid-cols-3\"] > * h3, [class*=\"grid-cols-3\"] > * h4\n){font-family:var(--qontext-font-family)!important;font-size:var(--qontext-heading-m-size)!important;font-weight:var(--qontext-heading-m-weight)!important;line-height:var(--qontext-heading-m-line-height)!important;letter-spacing:var(--qontext-letter)!important;margin-bottom:8px!important}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-cards a[href] h3, .qontext-cards a[href] h4,\n .qontext-cards [class*=\"grid\"] > div h3, .qontext-cards [class*=\"grid\"] > div h4,\n [class*=\"CardGroup\"] a[href] h3, [class*=\"CardGroup\"] a[href] h4,\n [class*=\"CardGroup\"] > div > div h3, [class*=\"CardGroup\"] > div > div h4\n){color:var(--qontext-heading-m-color)!important}:is(\n .qontext-cards a[href] p, .qontext-cards a[href] span:not([class*=\"icon\"]),\n .qontext-cards [class*=\"grid\"] > div p, .qontext-cards [class*=\"grid\"] > div span:not([class*=\"icon\"]),\n [data-slot=\"card\"] p, [data-slot=\"card\"] span:not([class*=\"icon\"]),\n [class*=\"card\"] a[href] p, [class*=\"card\"] a[href] span:not([class*=\"icon\"]),\n [class*=\"CardGroup\"] a[href] p, [class*=\"CardGroup\"] a[href] > span,\n [class*=\"CardGroup\"] > div > div p, [class*=\"CardGroup\"] > div > div span:not([class*=\"icon\"]),\n [class*=\"Columns\"] > a[href] p, [class*=\"Columns\"] > a[href] > span,\n [class*=\"grid-cols-1\"] > * p, [class*=\"grid-cols-1\"] > * span:not([class*=\"icon\"]),\n [class*=\"grid-cols-2\"] > * p, [class*=\"grid-cols-2\"] > * span:not([class*=\"icon\"]),\n [class*=\"grid-cols-3\"] > * p, [class*=\"grid-cols-3\"] > * span:not([class*=\"icon\"])\n),:is(\n [data-slot=\"callout\"], [data-slot=\"callout\"] p, [data-slot=\"callout\"] span, [data-slot=\"callout\"] li,\n [data-slot=\"info\"], [data-slot=\"info\"] p, [data-slot=\"info\"] span, [data-slot=\"info\"] li,\n [data-slot=\"note\"], [data-slot=\"note\"] p, [data-slot=\"note\"] span, [data-slot=\"note\"] li,\n [class*=\"callout\"], [class*=\"callout\"] p, [class*=\"callout\"] span, [class*=\"callout\"] li,\n [class*=\"Callout\"], [class*=\"Callout\"] p, [class*=\"Callout\"] span, [class*=\"Callout\"] li,\n [class*=\"alert-info\"], [class*=\"alert-info\"] p, [class*=\"alert-info\"] span, [class*=\"alert-info\"] li,\n [class*=\"alert-note\"], [class*=\"alert-note\"] p, [class*=\"alert-note\"] span, [class*=\"alert-note\"] li,\n [class*=\"info-callout\"], [class*=\"info-callout\"] p, [class*=\"info-callout\"] span, [class*=\"info-callout\"] li,\n blockquote[class*=\"callout\"], blockquote[class*=\"callout\"] p, blockquote[class*=\"callout\"] span, blockquote[class*=\"callout\"] li,\n blockquote[class*=\"info\"], blockquote[class*=\"info\"] p, blockquote[class*=\"info\"] span, blockquote[class*=\"info\"] li,\n blockquote[class*=\"note\"], blockquote[class*=\"note\"] p, blockquote[class*=\"note\"] span, blockquote[class*=\"note\"] li\n){font-family:var(--qontext-font-family)!important;font-size:var(--qontext-body-size)!important;font-weight:var(--qontext-body-weight)!important;line-height:var(--qontext-body-line-height)!important;letter-spacing:var(--qontext-letter)!important}html:not([data-theme=dark]):not(.dark) :is(\n .qontext-cards a[href] p, .qontext-cards a[href] span:not([class*=\"icon\"]),\n .qontext-cards [class*=\"grid\"] > div p, .qontext-cards [class*=\"grid\"] > div span:not([class*=\"icon\"]),\n [class*=\"CardGroup\"] a[href] p, [class*=\"CardGroup\"] > div > div p, [class*=\"CardGroup\"] > div > div span:not([class*=\"icon\"])\n){color:var(--qontext-body-color)!important}html:not([data-theme=dark]):not(.dark) :is(\n [data-slot=\"callout\"], [data-slot=\"info\"], [data-slot=\"note\"],\n [class*=\"callout\"], [class*=\"Callout\"],\n [class*=\"alert-info\"], [class*=\"alert-note\"], [class*=\"info-callout\"],\n blockquote[class*=\"callout\"], blockquote[class*=\"info\"], blockquote[class*=\"note\"]\n):not(.qontext-tip-check-wrapper *):not(.qontext-warning-wrapper *){background-color:var(--qontext-grey-050)!important;border:1px solid var(--qontext-grey-100)!important;border-radius:8px!important;padding:16px!important}html:not([data-theme=dark]):not(.dark) .qontext-tip-check-wrapper,html:not([data-theme=dark]):not(.dark) .qontext-tip-check-wrapper *{background-color:#ecfdf5!important}html:not([data-theme=dark]):not(.dark) .qontext-tip-check-wrapper>*{border:1px solid #a7f3d0!important;border-radius:8px!important;padding:16px!important}html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper,html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper *{background-color:#fdfbea!important}html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper>*{border:1px solid #fde047!important;border-radius:8px!important;padding:16px!important}html:not([data-theme=dark]):not(.dark) :is([data-slot=\"callout\"], [data-slot=\"callout\"] p, [data-slot=\"info\"] p, [data-slot=\"note\"] p, [class*=\"callout\"] p, [class*=\"Callout\"] p):not(.qontext-tip-check-wrapper *):not(.qontext-warning-wrapper *){color:var(--qontext-body-color)!important}html:not([data-theme=dark]):not(.dark) :is([data-slot=\"callout\"] strong:first-of-type, [data-slot=\"info\"] strong:first-of-type, [data-slot=\"note\"] strong:first-of-type, [class*=\"callout\"] strong:first-of-type, [class*=\"Callout\"] strong:first-of-type):not(.qontext-tip-check-wrapper *):not(.qontext-warning-wrapper *){color:var(--qontext-grey-900)!important}html:not([data-theme=dark]):not(.dark) .qontext-tip-check-wrapper,html:not([data-theme=dark]):not(.dark) .qontext-tip-check-wrapper *,html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper,html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper *{color:#065f46!important;font-size:var(--qontext-body-size)!important;font-weight:var(--qontext-body-weight)!important;line-height:var(--qontext-body-line-height)!important}html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper,html:not([data-theme=dark]):not(.dark) .qontext-warning-wrapper *{color:#64461b!important}html:not([data-theme=dark]):not(.dark) :is(\n [class*=\"request-example\"], [class*=\"response-example\"],\n [class*=\"RequestExample\"], [class*=\"ResponseExample\"],\n [class*=\"code-group\"], [class*=\"CodeGroup\"],\n [class*=\"api-reference\"] [class*=\"code-block\"],\n [class*=\"api-reference\"] [class*=\"CodeBlock\"],\n main [class*=\"code-block\"], main [class*=\"CodeBlock\"],\n main [class*=\"code-group\"], main [class*=\"CodeGroup\"],\n main [class*=\"shiki\"], main div:has(> pre)\n){background-color:var(--qontext-grey-050)!important;border:0!important;border-radius:8px!important}html:not([data-theme=dark]):not(.dark) :is(\n [class*=\"request-example\"] > *:first-child,\n [class*=\"response-example\"] > *:first-child,\n [class*=\"code-group\"] > *:first-child,\n main [class*=\"code-block\"] > *:first-child,\n main [class*=\"CodeBlock\"] > *:first-child,\n main [class*=\"code-group\"] > *:first-child,\n main [class*=\"CodeGroup\"] > *:first-child,\n [class*=\"response-example\"] [class*=\"tab\"],\n [class*=\"code-group\"] [class*=\"tab\"],\n main div:has(> pre) > *:first-child:not(pre)\n){background-color:var(--qontext-grey-050)!important}html:not([data-theme=dark]):not(.dark) :is(\n [class*=\"request-example\"] pre, [class*=\"response-example\"] pre,\n [class*=\"api-reference\"] pre, main [class*=\"code-block\"] pre, main [class*=\"CodeBlock\"] pre, main pre\n){background-color:#fff!important;border:0!important;font-family:var(--qontext-font-family)!important;font-size:var(--qontext-body-size)!important;color:var(--qontext-body-color)!important}#table-of-contents,#table-of-contents h2{font-size:var(--qontext-body-size)!important}.tree span[data-as=p],div[role=tree] span[data-as=p]{font-size:0!important;line-height:0!important;display:block!important;margin-bottom:0!important}.tree [role=treeitem],.tree [role=treeitem] *,div[role=tree] [role=treeitem],div[role=tree] [role=treeitem] *{font-size:.875rem!important;line-height:1.25rem!important;margin-bottom:0!important}#footer{border-top:none!important}.q-yes{color:#412bcf;font-weight:500}.q-no{color:#a4a7ae}.perm-table table{table-layout:fixed!important;width:100%!important;min-width:unset!important}.perm-table table td:first-child,.perm-table table th:first-child{width:32%!important;min-width:unset!important;max-width:unset!important}#pagination a,#pagination button,[class*=pagination-next],[class*=pagination-prev]{padding:14px 20px!important}:is(\n #body-content [class*=\"api-reference\"] p,\n #body-content [class*=\"api-reference\"] span,\n #body-content [class*=\"api-reference\"] li,\n #body-content [class*=\"api-reference\"] td,\n #body-content [class*=\"api-reference\"] th,\n [class*=\"param-field\"], [class*=\"response-field\"],\n [class*=\"ParamField\"], [class*=\"ResponseField\"]\n){font-family:var(--qontext-font-family)!important;font-size:var(--qontext-body-size)!important;font-weight:var(--qontext-body-weight)!important;line-height:var(--qontext-body-line-height)!important;letter-spacing:var(--qontext-letter)!important}html:not([data-theme=dark]):not(.dark) :is(\n #body-content [class*=\"api-reference\"] p, #body-content [class*=\"api-reference\"] span,\n #body-content [class*=\"api-reference\"] li, #body-content [class*=\"api-reference\"] td, #body-content [class*=\"api-reference\"] th,\n [class*=\"param-field\"], [class*=\"response-field\"]\n){color:var(--qontext-body-color)!important}html:not([data-theme=dark]):not(.dark) :is(\n [class*=\"response-example\"] [class*=\"tab\"],\n [class*=\"ResponseExample\"] [class*=\"tab\"],\n [class*=\"response\"] [class*=\"status\"] button,\n [class*=\"response\"] [class*=\"tab\"],\n button[class*=\"response\"],\n [class*=\"code-group\"] button,\n [class*=\"CodeGroup\"] button\n){border-color:var(--qontext-grey-300)!important;color:var(--qontext-grey-700)!important;box-shadow:none!important}html:not([data-theme=dark]):not(.dark) :is(\n [class*=\"response-example\"] [class*=\"tab\"][class*=\"selected\"],\n [class*=\"response-example\"] [class*=\"tab\"][aria-selected=\"true\"],\n [class*=\"response\"] button[class*=\"selected\"],\n [class*=\"code-group\"] button[class*=\"selected\"],\n [class*=\"code-group\"] button[aria-selected=\"true\"]\n){border-bottom:none!important;color:var(--qontext-grey-900)!important;box-shadow:none!important}"}],"page":{"pagePath":"sources/google-drive","slug":"/sources/google-drive","pageMetadata":{"title":"Google Drive","icon":"https://upload.wikimedia.org/wikipedia/commons/1/12/Google_Drive_icon_%282020%29.svg","description":"Connect Google Drive with Qontext","href":"/sources/google-drive"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect Google Drive with Qontext\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Info,OptimizedImage,Step,Steps,Table,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`The Google Drive connection allows Qontext to ingest documents, presentations, tables, and text files from a connected Google Drive into your context repository.`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Only files and folders that the connected Google account can access will be ingested into your context repository.`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Supported file types:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Google Workspace files`})}),_jsx(_components.td,{children:`Google Docs, Google Slides, and Google Sheets, synced as text`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Documents \u0026 other files`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`docx`}),`, `,_jsx(_components.code,{children:`pptx`}),`, `,_jsx(_components.code,{children:`xlsx`}),`, `,_jsx(_components.code,{children:`pdf`}),`, `,_jsx(_components.code,{children:`rtf`}),`, `,_jsx(_components.code,{children:`txt`}),`, `,_jsx(_components.code,{children:`csv`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`odt`}),`, `,_jsx(_components.code,{children:`odp`}),`, `,_jsx(_components.code,{children:`ods`}),`, and `,_jsx(_components.code,{children:`html`}),` (up to 10 MB per file)`]})]})]})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Unsupported:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Other file types`})}),_jsx(_components.td,{children:`Images, audio, video, and file types not listed above`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Scanned PDFs`})}),_jsx(_components.td,{children:`Image-only PDFs contain no extractable text and are not OCR processed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Large files`})}),_jsx(_components.td,{children:`Files over 10 MB are skipped`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`recommended-setup`,children:`Recommended setup`}),`\n`,_jsxs(_components.p,{children:[`Use a `,_jsx(_components.strong,{children:`dedicated integration user`}),` in your Google Workspace to ensure a stable and uninterrupted connection.`]}),`\n`,_jsx(`div`,{className:`qontext-tip-check-wrapper`,children:_jsxs(Tip,{children:[` Create a service account such as `,_jsx(_components.code,{children:`qontext@yourcompany.com`}),` and grant it access to the files and folders you want Qontext to ingest. This prevents sync interruptions if employee accounts change or are deactivated.`]})}),`\n`,_jsx(_components.p,{children:`The integration user will:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Authenticate the connection between Qontext and Google Drive.`}),`\n`,_jsx(_components.li,{children:`Access required resources with read and download permissions.`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`setting-up-the-connection`,children:`Setting up the connection`}),`\n`,_jsx(_components.p,{children:`You can connect Google Drive from your Qontext workspace, authorize access in Google, then choose what to sync and how often. The steps below walk you through the full flow.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`You can also manage all your credentials, including Google Drive, from the `,_jsx(_components.strong,{children:`Sources`}),` page.`]})}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open Sources in your workspace`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://app.qontext.ai`,children:`Qontext app`}),`, open your workspace and go to the `,_jsx(_components.strong,{children:`Sources`}),` tab, then click `,_jsx(_components.strong,{children:`+ Connect data source`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=4e1a9f0335f4535e305518a8b9de0ac2`,alt:`Sources tab in a Qontext workspace`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1057`,width:`1057`,\"data-og-height\":`704`,height:`704`,\"data-path\":`sources/images/sources_page.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=280\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=652017bedeed8d097eb20a209e3814be 280w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=560\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=721d4f90172e28b1501e4cd7273e0cd5 560w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=840\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=9850fff876ee535aab64ce316d4cf619 840w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=1100\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=b1c75a430bd57b7c962f11536f6ccb76 1100w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=1650\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=cf0c2d3dafb148416d8672ae5017ea0c 1650w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/sources_page.png?w=2500\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=d6e2756fd16072b220a0af6f11556180 2500w`})]}),_jsxs(Step,{title:`Select Google Drive as the data source`,children:[_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`Google Drive`}),` from the list of available data sources. This starts the Google Drive connection flow.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=efab6006536ab6a1a030a9b5e24ef4f8`,alt:`Select Google Drive from the list of integrations`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`768`,width:`768`,\"data-og-height\":`448`,height:`448`,\"data-path\":`sources/images/qontext_select_integration.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=280\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=713d1e74c2343d7d5862c649957d7579 280w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=560\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=5fad38af84c9aac2dc2baddd1bd9cd84 560w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=840\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=e0e0cbf00bda10097d0d2325b9a4b79c 840w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=1100\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=99b3312ba7c97898ecdaa2a15f7c0517 1100w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=1650\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=2296396d32d963437a6e70a129df0a3a 1650w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/qontext_select_integration.png?w=2500\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=c5a5d74e2ff576f091134a2c9bc06bd9 2500w`})]}),_jsxs(Step,{title:`Choose Google account and grant scopes`,children:[_jsxs(_components.p,{children:[`You can `,_jsx(_components.strong,{children:`reuse existing Google Drive credentials`}),` (if you’ve already connected this account to Qontext) or `,_jsx(_components.strong,{children:`create a new connection`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=94f02b33ecd7732ce4c9a217c2761263`,alt:`Google account selection screen`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`1517`,width:`1517`,\"data-og-height\":`855`,height:`855`,\"data-path\":`sources/images/google-drive/google_select_credential.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=bc0d92aecd909c6a705df1c6bfd77770 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=5a0cc8d930a4328270547b15250625be 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=137b9c285f055a16443ebaacd012538a 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=b2fb220335a5637e573f5ee6374f6442 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=6cf02568605f817f7453d80f06f5c436 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_credential.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=5540e2ebc863201de8af5c6eb5ca5547 2500w`}),_jsx(_components.p,{children:`If you create a new connection, select the Google account that has access to the files you want to ingest, and approve the requested OAuth scopes.`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=b3607de0bdc38ea81fd818672ec80e1e`,alt:`Google sign-in`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`2232`,width:`2232`,\"data-og-height\":`812`,height:`812`,\"data-path\":`sources/images/google-drive/google_drive_login.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=c8f18794017d1e9645c80e01050f7bec 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=94aaff7f59c4c9a333cf6b99ceb817b3 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=c11191aad9bcffe415297d34e1e84e0a 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=df8a195b51028262b0de909f63edb05a 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=efa877173b6d5357473ca6922ab95518 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_login.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=4c6c896d8b076d665f502552a2cb1d74 2500w`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=6117221f2aaf4c27ed5eff7d7c510211`,alt:`Google account access`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`2232`,width:`2232`,\"data-og-height\":`1010`,height:`1010`,\"data-path\":`sources/images/google-drive/google_drive_access.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=ee287ac7e154b3ff3dc7619548d7e61c 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=a3e15766f70aeb230831d102ab4b8d01 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=536c10a4220af45d1bab27b99b017c11 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=08ba737c48fce268825fc61c17ec9760 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=b6ca5dab8aaf570bf8cfa093ccd873e0 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_drive_access.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=35acfb576c454ceed7280536d9392ad0 2500w`})]}),_jsxs(Step,{title:`Configure what to sync (filters)`,id:`configure-what-to-sync-filters`,children:[_jsx(_components.p,{children:`Select the folders and files you want Qontext to ingest into your context repository. You can add folders or individual files.`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=177008262382d07cb033b583294c2b1f`,alt:`Google Drive filters`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1518`,width:`1518`,\"data-og-height\":`786`,height:`786`,\"data-path\":`images/google_configure_filters.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=280\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=7f1f99a90e083c04e4598c5a45b52aeb 280w, https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=560\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=da289a89d597f71011e8d41c60095770 560w, https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=840\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=5d9744909983f800d6788bfe947b79f4 840w, https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=1c8db79eb5f7638ff8387a290de59ba5 1100w, https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=6ce06f9fbdb938f53b59768dd9690d2e 1650w, https://mintcdn.com/qontext/4AT5TgUmCcWh-GU5/images/google_configure_filters.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4AT5TgUmCcWh-GU5\u0026q=85\u0026s=b6d6d83ae932204ab5d4e0466c9f86fc 2500w`}),_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`+`}),` next to a folder to add it; open the folder to add subfolders or individual files and select them the same way. Files over 10MB or in an unsupported format cannot be selected. Any such files inside a selected folder are excluded from sync automatically.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=4f3bb0eaf2ea621dfa9c40635e8bcfcf`,alt:`Google Drive folders`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1512`,width:`1512`,\"data-og-height\":`1088`,height:`1088`,\"data-path\":`sources/images/google-drive/google_select_folders.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=8ede46c7f05a92055e69ed1a20fb4236 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=0e2a933c0bca6294139331b6cbd75010 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=478eac67b0231747f1a84f8fa036104b 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=28e7e5cef59817e82e59ca7ba4345c7c 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=0decd16d7eededdb8d3bad9444d234fb 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_folders.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=8dd3a7c5261ab9044a97331224b1699f 2500w`}),_jsxs(_components.p,{children:[`Selected items appear at the top. Click `,_jsx(_components.strong,{children:`All file types`}),` next to a folder to limit which file types are synced from that folder. Use the checkmark next to an item to remove it from the selection.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=7e869127ec35fdbdf1db2c2b9dd46b67`,alt:`Google Drive file types`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1524`,width:`1524`,\"data-og-height\":`780`,height:`780`,\"data-path\":`sources/images/google-drive/google_select_file_types.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=d2472d41b5f31f0ce326a92485fcbf65 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=4178bfe9be6622166c1646c8c78ff79b 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=89e5e39a2fea35cc3bcfba6f68e028d9 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=85509529dc11f0e246da11281d73e4b5 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=211628045464e9de48f9789ae046d6c7 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_select_file_types.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=f088f28474e0480db01bc357c48c5c95 2500w`})]}),_jsxs(Step,{title:`Set sync frequency`,children:[_jsx(_components.p,{children:`Choose how often Qontext should refresh data from Google Drive (e.g. daily, weekly, monthly). More frequent syncs keep the context repository up to date but use more resources.`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=03e345241469ec46fd135bdaf75ffb25`,alt:`Sync frequency settings`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1486`,width:`1486`,\"data-og-height\":`760`,height:`760`,\"data-path\":`sources/images/qontext_sync_frequency.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=0a52e795a8b5e4ecea00494b76f85f4f 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=728b07d1b5b8677c582d7001cfdcbc5d 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=569de279343cc76cd7219674db4bcb85 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=77a21080071307d0f10296dbe9cf728a 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=ab1244e73d428d5941b03e8bf4f87318 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/qontext_sync_frequency.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=e056cd62b11ddd5d47360affb93029db 2500w`})]}),_jsxs(Step,{title:`Review and create connection`,children:[_jsx(_components.p,{children:`Review your choices (account, filters, frequency), then confirm to create the connection. Qontext will start the initial sync shortly after.`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=4ecc084fc273cf78cdae560a701dbad2`,alt:`Review summary and create connection`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1520`,width:`1520`,\"data-og-height\":`784`,height:`784`,\"data-path\":`sources/images/google-drive/google_review_create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=7b471310f37370d386d6f22dfedad832 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=07cb437e7f6ee94918826f7097d2e386 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=f77663f466d12d18186ea2e45811f38f 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=e4c4dd18fa55c8d81bef84fb007100b4 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=5fa46973a747ae36a83a451bd9d8a395 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/google-drive/google_review_create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=9feb3b152618cec3f3c92b45a0c1b8a4 2500w`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`use-your-own-oauth-client`,children:`Use your own OAuth client`}),`\n`,_jsx(_components.p,{children:`By default, Qontext connects to Google Drive through its own Google OAuth client. If your organization needs the connection to go through a Google Cloud project you control, you can use your own OAuth client instead. Your Google Workspace admins then manage the consent screen and can revoke access from your own Google Cloud project.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Using your own OAuth client is off by default. To turn it on for your workspace, reach out at `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),`.`]})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Adding your own OAuth client requires the `,_jsx(_components.strong,{children:`Owner`}),` or `,_jsx(_components.strong,{children:`Admin`}),` role in your Qontext workspace (see `,_jsx(_components.a,{href:`/features/member-settings`,children:`Member settings`}),`), and access to a Google Cloud project where you can create OAuth clients.`]})}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Copy the Redirect URI from Qontext`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://app.qontext.ai`,children:`Qontext app`}),`, open your workspace and go to the `,_jsx(_components.strong,{children:`Sources`}),` tab, then click `,_jsx(_components.strong,{children:`+ Connect data source`}),`. Select `,_jsx(_components.strong,{children:`Google Drive`}),`, create a new connection, then expand `,_jsx(_components.strong,{children:`Advanced`}),` and open `,_jsx(_components.strong,{children:`Custom OAuth client`}),`. Copy the `,_jsx(_components.strong,{children:`Redirect URI`}),` shown there. It is `,_jsx(_components.code,{children:`https://app.qontext.ai/oauth/callback/google_drive`}),`. If the form shows a different value, use that one instead. You will add it to your OAuth client in Google Cloud.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=b5772c15af58253482fd4d5737c48c92`,alt:`Custom OAuth client section with the Redirect URI, Client ID, and Client secret fields`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`1232`,width:`1232`,\"data-og-height\":`961`,height:`961`,\"data-path\":`sources/images/google-drive/google_custom_oauth_client.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=61f48793241e79b1b44825a4d942b7ed 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=947c309da3dcf8a446661998de89c483 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=06c06217607b4793b9a1143dd2d89966 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=099e8e290edb22f935cbdd55b27cf449 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=1452e001ec34e725c5691742eaa42873 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_custom_oauth_client.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=dcede966c9f0648068491748904007b8 2500w`})]}),_jsxs(Step,{title:`Enable the Google Drive API`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://console.cloud.google.com`,children:`Google Cloud console`}),`, select the project you want to use or create a new one. Go to `,_jsx(_components.strong,{children:`APIs \u0026 Services > Library`}),`, search for `,_jsx(_components.strong,{children:`Google Drive API`}),`, and click `,_jsx(_components.strong,{children:`Enable`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=5106d24ff120a9dbaa8c3e0f07bef294`,alt:`Google Drive API page in the Google Cloud console with the Enable button`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`1568`,width:`1568`,\"data-og-height\":`403`,height:`403`,\"data-path\":`sources/images/google-drive/google_enable_drive_api.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e7721c26b06f2d44e643b2dc9222e2a5 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=9c5aef1bfdd853ddd9a6a0258873061b 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=240cb8f2dd03618b665d443827f5a036 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=5f1d930fe72507ff99b120dd69078591 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=4ea205389d8629ea8da874c0abdca8a0 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_enable_drive_api.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=3b8cfb6561c6e9d51f5077c63cd75361 2500w`})]}),_jsxs(Step,{title:`Configure the consent screen and add the scope`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Google Auth Platform`}),` and complete the `,_jsx(_components.strong,{children:`Branding`}),` and `,_jsx(_components.strong,{children:`Audience`}),` settings: the app name, the support email, and the user type. Choose `,_jsx(_components.strong,{children:`Internal`}),` if everyone who connects belongs to your Google Workspace organization, otherwise `,_jsx(_components.strong,{children:`External`}),`.`]}),_jsxs(_components.p,{children:[`Then open `,_jsx(_components.strong,{children:`Data access`}),`, click `,_jsx(_components.strong,{children:`Add or remove scopes`}),`, select `,_jsx(_components.code,{children:`https://www.googleapis.com/auth/drive.readonly`}),`, click `,_jsx(_components.strong,{children:`Update`}),`, and save your changes. This declares the scope your app can request. If the scope isn’t listed, paste it under `,_jsx(_components.strong,{children:`Manually add scopes`}),` and click `,_jsx(_components.strong,{children:`Add to table`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=5b6eb24318754bf433dbc78d8060171f`,alt:`Google Auth Platform Data access panel with the drive.readonly scope selected`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`80%`,height:`auto`},\"data-og-width\":`1181`,width:`1181`,\"data-og-height\":`1008`,height:`1008`,\"data-path\":`sources/images/google-drive/google_add_scope.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=3b414fb4672d868aa35a97b746e8fbf9 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=c0813c5b5a334dbb3fbf41a6a3bc39ba 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=3ce2b5c334335b823367c9a98bca5f80 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=95e3a2a06b40ab4fc415331362fa16fc 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=db93201e85eed9dad036edacdd2588e3 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_add_scope.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=841f0eaafa009f82e5b4e25c603e3b89 2500w`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`An `,_jsx(_components.strong,{children:`External`}),` app left in `,_jsx(_components.strong,{children:`Testing`}),` status only works for the test users you list, and Google expires its authorizations after 7 days. Publish the app to `,_jsx(_components.strong,{children:`In production`}),` under `,_jsx(_components.strong,{children:`Audience`}),` for a connection that stays active.`]})})]}),_jsxs(Step,{title:`Create the OAuth client`,children:[_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Google Auth Platform`}),`, open `,_jsx(_components.strong,{children:`Clients`}),`, click `,_jsx(_components.strong,{children:`Create client`}),`, and choose `,_jsx(_components.strong,{children:`Web application`}),` as the application type. Enter a name, for example `,_jsx(_components.code,{children:`Qontext`}),`.`]}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Authorized redirect URIs`}),`, click `,_jsx(_components.strong,{children:`Add URI`}),` and enter the Redirect URI from Qontext, `,_jsx(_components.code,{children:`https://app.qontext.ai/oauth/callback/google_drive`}),`. Click `,_jsx(_components.strong,{children:`Create`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=6d85ce541f57cfd2e3eef7295c124798`,alt:`Create OAuth client ID form with the Authorized redirect URIs field filled in`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`,height:`auto`},\"data-og-width\":`865`,width:`865`,\"data-og-height\":`360`,height:`360`,\"data-path\":`sources/images/google-drive/google_create_oauth_client.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=9d4543d2ec6c5c9f1a767ee5a65b4f52 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=4bc948880bf76ddc98ba7e26777f6039 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=7d0b7af9ac5aaefdb7f32862a9a3fde1 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=8427031372e7f19edb302bf5e20112e6 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=758565ebb4c00ecea107465c34c4cff4 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/google-drive/google_create_oauth_client.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=034f3f8f7312489ff17d79968f7fb7af 2500w`}),_jsx(Info,{children:_jsx(_components.p,{children:`Google can take from a few minutes to a few hours to apply changes to an OAuth client.`})})]}),_jsxs(Step,{title:`Copy the Client ID and Client secret`,children:[_jsxs(_components.p,{children:[`Google shows the `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Client secret`}),` after you create the client. Copy both.`]}),_jsx(Info,{children:_jsx(_components.p,{children:`Treat the Client secret like a password. Qontext stores it encrypted and never shows it again after you save it.`})})]}),_jsx(Step,{title:`Add the client to Qontext`,children:_jsxs(_components.p,{children:[`Back in the Custom OAuth client section of the connect form, paste the `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Client secret`}),`, then continue. Sign in with the Google account that has access to the files you want to sync. Google then asks that account to approve the requested scope. From here, the setup continues as described in `,_jsx(_components.a,{href:`#setting-up-the-connection`,children:`Setting up the connection`}),`.`]})})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Qontext uses the scope `,_jsx(_components.code,{children:`https://www.googleapis.com/auth/drive.readonly`}),` (read-only access to your Drive files). If it isn’t granted, the connection is not created. See `,_jsx(_components.a,{href:`#google-drive-oauth-scopes`,children:`Google Drive OAuth scopes`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`troubleshooting-a-custom-oauth-client`,children:`Troubleshooting a custom OAuth client`}),`\n`,_jsx(_components.p,{children:`If the connection fails, Qontext shows a message with the error. Find it in the table below.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Error`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`How to fix it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_client`})}),_jsx(_components.td,{children:`Google rejected the Client ID or Client secret.`}),_jsxs(_components.td,{children:[`Copy both again from `,_jsx(_components.strong,{children:`Google Auth Platform > Clients`}),`, without extra spaces. Make sure the client type is `,_jsx(_components.strong,{children:`Web application`}),` and the secret has not been deleted or disabled.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`redirect_uri_mismatch`})}),_jsx(_components.td,{children:`The Redirect URI is not registered in your OAuth client.`}),_jsxs(_components.td,{children:[`Copy the Redirect URI from the Custom OAuth client section in Qontext and add it under `,_jsx(_components.strong,{children:`Authorized redirect URIs`}),`. It has to match exactly. Google can take from a few minutes to a few hours to apply the change.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`access_denied`})}),_jsx(_components.td,{children:`Access was not granted.`}),_jsxs(_components.td,{children:[`Connect again and approve the request. If your app is in `,_jsx(_components.strong,{children:`Testing`}),`, add the account as a test user. If a Google Workspace admin restricts third-party apps, ask them to allow your OAuth client.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_grant`})}),_jsx(_components.td,{children:`Google rejected the authorization.`}),_jsxs(_components.td,{children:[`Connect again. This happens when access was revoked, the password of the connected account changed, or an app in `,_jsx(_components.strong,{children:`Testing`}),` reached the 7-day expiry.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`scopes`})}),_jsx(_components.td,{children:`Not all required scopes were granted.`}),_jsxs(_components.td,{children:[`Make sure `,_jsx(_components.code,{children:`https://www.googleapis.com/auth/drive.readonly`}),` is added under `,_jsx(_components.strong,{children:`Data access`}),` and approved when you sign in, then connect again.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`provider_error`})}),_jsx(_components.td,{children:`Google rejected the request from your OAuth app for another reason.`}),_jsx(_components.td,{children:`Check the Client ID, the Client secret, and the Authorized redirect URI against the steps above. Then connect again.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`If the error persists, contact `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`managing-permissions`,children:`Managing permissions`}),`\n`,_jsx(Heading,{level:`3`,id:`google-drive-oauth-scopes`,children:`Google Drive OAuth scopes`}),`\n`,_jsx(_components.p,{children:`When connecting, you will be asked to grant scopes that allow Qontext to read and download files. Example scope descriptions you may see:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- See and download all your Google Drive files`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- See information about your Google Drive files`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`These are required for Qontext to read data from Google Drive and ingest it into your context repository.`}),`\n`,_jsx(Heading,{level:`3`,id:`google-drive-permissions`,children:`Google Drive permissions`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use a `,_jsx(_components.strong,{children:`single person`}),` or `,_jsx(_components.strong,{children:`service account`}),` to manage Drive permissions for Qontext. This avoids accidental permission changes that break syncs.`]}),`\n`,_jsxs(_components.li,{children:[`If you don’t see a file in Qontext’s Drive tree, verify download permissions using the file’s `,_jsx(_components.strong,{children:`File info -> Details`}),` and ensure `,_jsx(_components.code,{children:`Viewers and commenters can see the option to download, print, and copy`}),` is enabled.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`sync-latency`,children:`Sync latency`}),`\n`,_jsx(_components.p,{children:`Qontext preprocesses Drive content before ingesting it into the context repository. The initial synchronization time depends on the volume and type of files. Workspaces with many files may take up to 12 hours to fully index.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Subsequent syncs process `,_jsx(_components.strong,{children:`incremental changes`}),` and typically complete much faster than the initial sync.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Which Google Drive files are supported?`,id:`which-google-drive-files-are-supported`,children:_jsxs(_components.p,{children:[`Qontext supports native Google Docs, Google Slides, and Google Sheets, along with `,_jsx(_components.code,{children:`docx`}),`, `,_jsx(_components.code,{children:`pptx`}),`, `,_jsx(_components.code,{children:`xlsx`}),`, `,_jsx(_components.code,{children:`pdf`}),`, `,_jsx(_components.code,{children:`rtf`}),`, `,_jsx(_components.code,{children:`txt`}),`, `,_jsx(_components.code,{children:`csv`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`odt`}),`, `,_jsx(_components.code,{children:`odp`}),`, `,_jsx(_components.code,{children:`ods`}),`, and `,_jsx(_components.code,{children:`html`}),` files. Files larger than 10MB, in an unsupported format, or without extractable text are skipped.`]})}),_jsx(Accordion,{title:`Can I connect multiple Google Drive accounts?`,id:`can-i-connect-multiple-google-drive-accounts`,children:_jsxs(_components.p,{children:[`Yes. You can create multiple Google Drive connections at any time in the `,_jsx(_components.strong,{children:`Sources`}),` tab in your Qontext workspace.`]})}),_jsxs(Accordion,{title:`How do I manually refresh Google Drive data?`,id:`how-do-i-manually-refresh-google-drive-data`,children:[_jsxs(_components.p,{children:[`Manual refresh for Google Drive connections is available via the `,_jsx(_components.strong,{children:`Sources`}),` tab. Navigate to the respective Google Drive connection and open the `,_jsx(_components.strong,{children:`Syncs`}),` tab. In the Sync settings, select `,_jsx(_components.strong,{children:`Sync latest data`}),` to pull recent changes, or `,_jsx(_components.strong,{children:`Resync all data`}),` to rebuild the source from scratch.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=6cbcb1e218969880ee57a64f67413224`,alt:`Resync`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1057`,width:`1057`,\"data-og-height\":`704`,height:`704`,\"data-path\":`sources/images/google-drive/google_resync.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=280\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=31c6967c863190e3e2c9c6fd3118acb9 280w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=560\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=01870c76c35dc4260ba0742972bd4e9c 560w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=840\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=941697030c95719826ad114bc21d4fd1 840w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=1100\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=c284beba723d7a3e2ce7f3c0169483c5 1100w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=1650\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=950d7b4cd19039698b18dee4148313ce 1650w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/google-drive/google_resync.png?w=2500\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=047a5b3983c63a4dc20f2a1daff32ef3 2500w`})]}),_jsx(Accordion,{title:`What happens if I disconnect Google Drive?`,id:`what-happens-if-i-disconnect-google-drive`,children:_jsxs(_components.p,{children:[`If you disconnect the Drive connection, no new files will be ingested. Content already ingested from Drive will remain in your context repository. For data removal requests, contact `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),`.`]})}),_jsx(Accordion,{title:`Can I use my own Google OAuth client?`,id:`can-i-use-my-own-google-oauth-client`,children:_jsxs(_components.p,{children:[`Yes. If your organization wants the connection to go through a Google Cloud project you control, expand `,_jsx(_components.strong,{children:`Advanced`}),` when you add a new connection and use `,_jsx(_components.strong,{children:`Custom OAuth client`}),`. The setup is described in `,_jsx(_components.a,{href:`#use-your-own-oauth-client`,children:`Use your own OAuth client`}),`. Qontext still requests the same read-only Drive scope. This option is off by default. Reach out at `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),` to turn it on.`]})}),_jsx(Accordion,{title:`Is my Google Drive data secure?`,id:`is-my-google-drive-data-secure`,children:_jsx(_components.p,{children:`Yes. All data is encrypted in transit (TLS) and at rest. Qontext only accesses files you explicitly authorize via Google OAuth scopes.`})}),_jsx(Accordion,{title:`How can I limit what Qontext accesses?`,id:`how-can-i-limit-what-qontext-accesses`,children:_jsxs(_components.p,{children:[`By default, Qontext only ingests files the connected Google account can access. Additionally, you can add `,_jsx(_components.a,{href:`#configure-what-to-sync-filters`,children:`filters`}),` to every connection as described in the setup flow.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Google Drive","icon":"https://upload.wikimedia.org/wikipedia/commons/1/12/Google_Drive_icon_%282020%29.svg","description":"Connect Google Drive with Qontext","href":"/sources/google-drive"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Recommended setup","slug":"recommended-setup","depth":2,"children":[]},{"title":"Setting up the connection","slug":"setting-up-the-connection","depth":2,"children":[]},{"title":"Use your own OAuth client","slug":"use-your-own-oauth-client","depth":2,"children":[{"title":"Troubleshooting a custom OAuth client","slug":"troubleshooting-a-custom-oauth-client","depth":3,"children":[]}]},{"title":"Managing permissions","slug":"managing-permissions","depth":2,"children":[{"title":"Google Drive OAuth scopes","slug":"google-drive-oauth-scopes","depth":3,"children":[]},{"title":"Google Drive permissions","slug":"google-drive-permissions","depth":3,"children":[]}]},{"title":"Sync latency","slug":"sync-latency","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-mt-4 {\n margin-top: 1rem\n}\n.mint-rounded-lg {\n border-radius: 0.5rem\n}","subdomain":"qontext","siteName":"Qontext","title":"Google Drive - Qontext","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T11:38:31.453Z","originalFileLocation":"sources/google-drive.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect Google Drive with Qontext\">\u003cmeta data-mint-head name=\"application-name\" content=\"Qontext\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Google Drive - Qontext\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Google Drive with Qontext\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Qontext\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qontext.ai/sources/google-drive\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qontext.mintlify.app/_mintlify/api/og/v2?division=Sources\u0026amp;title=Google+Drive\u0026amp;description=Connect+Google+Drive+with+Qontext\u0026amp;theme=fa88448add6e196d62757dc6\u0026amp;signature=b5f5ae6282a0e0b438ef61aacd64b34f1346f587a4af5169724d1625b345269e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Google Drive - Qontext\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Google Drive with Qontext\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qontext.mintlify.app/_mintlify/api/og/v2?division=Sources\u0026amp;title=Google+Drive\u0026amp;description=Connect+Google+Drive+with+Qontext\u0026amp;theme=fa88448add6e196d62757dc6\u0026amp;signature=b5f5ae6282a0e0b438ef61aacd64b34f1346f587a4af5169724d1625b345269e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/qontext/Hx9BChRACXGGedHw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Qontext\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#412BCF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qontext.ai/sources/google-drive\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sources/google-drive.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qontext.ai/#organization\",\"name\":\"Qontext\",\"url\":\"https://docs.qontext.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qontext/Tolvg4Hv1Vx28YpD/logo/light.svg?fit=max\u0026auto=format\u0026n=Tolvg4Hv1Vx28YpD\u0026q=85\u0026s=e1dd74700b783e48c060009405203624\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qontext.ai#website\",\"name\":\"Qontext\",\"url\":\"https://docs.qontext.ai\",\"publisher\":{\"@id\":\"https://docs.qontext.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qontext.ai/sources/google-drive#webpage\",\"url\":\"https://docs.qontext.ai/sources/google-drive\",\"name\":\"Google Drive\",\"description\":\"Connect Google Drive with Qontext\",\"dateModified\":\"2026-11-03T11:38:31.453Z\",\"isPartOf\":{\"@id\":\"https://docs.qontext.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qontext.ai/sources/google-drive#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qontext.ai/sources/google-drive#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sources\",\"item\":\"https://docs.qontext.ai/sources/confluence\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Drive\",\"item\":\"https://docs.qontext.ai/sources/google-drive\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.qontext.ai/sources/google-drive#article\",\"headline\":\"Google Drive\",\"name\":\"Google Drive\",\"description\":\"Connect Google Drive with Qontext\",\"url\":\"https://docs.qontext.ai/sources/google-drive\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qontext.ai/sources/google-drive#webpage\"},\"dateModified\":\"2026-11-03T11:38:31.453Z\",\"publisher\":{\"@id\":\"https://docs.qontext.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qontext.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Qontext\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Qontext","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"rocket","groups":[{"group":"Get started","pages":[{"title":"Quickstart","href":"/get-started/quickstart"},{"title":"Pricing","href":"/get-started/pricing"}]},{"group":"Context repository","pages":[{"title":"What is a \"Context Repository\"?","icon":"folders","href":"/context-repository/overview"},{"title":"Organize your context repository","icon":"sitemap","href":"/context-repository/organization"},{"title":"Managing files via the UI","icon":"file-lines","href":"/context-repository/ui"},{"title":"File and folder uploads","icon":"file-arrow-up","href":"/context-repository/file-uploads"},{"title":"Managing files via MCP","icon":"code","href":"/context-repository/MCP"}]},{"group":"Interfaces","pages":[{"title":"MCP","icon":"gear","href":"/interfaces/MCP"},{"title":"API","icon":"code","href":"/interfaces/api"},{"title":"CLI","icon":"square-code","href":"/interfaces/cli"}]},{"group":"Features","pages":[{"title":"Access management","icon":"lock","href":"/features/access-management"},{"title":"Change reviews","icon":"exchange","href":"/features/change-reviews"},{"title":"Context agents","icon":"message","href":"/features/context-agents"},{"title":"Continuous updates","icon":"repeat","href":"/features/continuous-updates"},{"title":"Member settings","icon":"shield-check","href":"/features/member-settings"},{"title":"Native connectors","icon":"filter","href":"/features/native-connectors"},{"title":"Retrieval logs","icon":"key","href":"/features/retrieval-logs"},{"title":"Skills distribution","icon":"wand-magic-sparkles","href":"/features/skills"},{"title":"Structure files","icon":"folder-tree","href":"/features/structure-files"},{"title":"Version history","icon":"history","href":"/features/version-history"},{"title":"Qontext Tag in Slack","sidebarTitle":"Qontext Tag","icon":"slack","iconType":"brands","hidden":false,"href":"/features/qontext-tag/slack"}]},{"group":"Sources","pages":[{"title":"Confluence","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/confluence.png","description":"Connect Confluence with Qontext","href":"/sources/confluence"},{"title":"Google Drive","icon":"https://upload.wikimedia.org/wikipedia/commons/1/12/Google_Drive_icon_%282020%29.svg","href":"/sources/google-drive"},{"title":"Gong","description":"Connect Gong with Qontext","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/gong.svg","href":"/sources/gong"},{"title":"HubSpot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/hubspot.png","href":"/sources/hubspot"},{"title":"Linear","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/linear.svg","href":"/sources/linear"},{"title":"Salesforce","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/salesforce.png","href":"/sources/salesforce"},{"title":"Notion","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/notion.png","href":"/sources/notion"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/slack.png","href":"/sources/slack"},{"title":"SharePoint","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/sharepoint.png","href":"/sources/sharepoint"},{"title":"Website","icon":"https://cdn-icons-png.flaticon.com/512/1006/1006771.png","hidden":true,"href":"/sources/website"},{"title":"Sources","sidebarTitle":"See all →","href":"/sources/index"}]},{"group":"Clients","pages":[{"title":"ChatGPT","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/chatgpt_grey.png","href":"/clients/chatgpt"},{"title":"Claude","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/claude.svg","href":"/clients/claude"},{"title":"Codex","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/openai-codex-logo.png","href":"/clients/codex"},{"title":"Cursor","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/cursor.png","href":"/clients/cursor"},{"title":"Gemini","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/gemini.svg","href":"/clients/gemini"},{"title":"n8n","icon":"https://cdn.brandfetch.io/idO6_6uqJ9/theme/dark/symbol.svg?c=1dxbfHSJFAPEGdCLU4o5B","href":"/clients/n8n"},{"title":"Langdock","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/langdock.png","href":"/clients/langdock"},{"title":"telli","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/telli.png","href":"/clients/telli"},{"title":"Make","icon":"https://cdn.brandfetch.io/idVHU5hl7_/theme/dark/symbol.svg?c=1dxbfHSJFAPEGdCLU4o5B","href":"/clients/make"},{"title":"zapier","hidden":true,"href":"/clients/zapier"},{"title":"Clients","sidebarTitle":"See all →","href":"/clients/index"}]}]},{"tab":"API","icon":"code","pages":[{"title":"API","href":"/api-docs/overview"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Google Drive - Qontext","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}