The Slack connection allows Qontext to read messages and threads from channels in a connected Slack workspace and ingest their text content into your context repository.
Only channels and content that the connected Slack app can access will be ingested into your context repository.
Slack can also work in the other direction. With Qontext Tag, you mention @Qontext in a channel or thread and get answers from your context repository inside Slack. See Qontext Tag in Slack.
Supported data types:
Object
Description
Channel messages
Messages posted in channels the app is invited to
Threads
Replies and thread conversations linked to channel messages
You can connect Slack from your Qontext workspace, authorize access in Slack, then choose how often to sync. The steps below walk you through the full flow.
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 Slack as the data source
Choose Slack from the list of available data sources. This starts the Slack connection flow.
3
Connect your Slack workspace
You can reuse existing credentials (if you’ve already connected this Slack workspace to Qontext) or create a new connection.If you create a new credential, sign in to Slack when prompted and select the workspace you want to connect. On the Slack consent screen, review the requested permissions and click Allow. At this step the Qontext app is added to your Slack workspace so it can read the channels you authorize in the next step.
4
Configure what to sync (filters)
Select the channels you want Qontext to ingest. Only channels in which the Qontext app is a member can be ingested.
Public channels are automatically joined by the Qontext app when you select them.For private channels, the Qontext app must be added as a member first. In Slack, open the channel and type /invite @Qontext.
You can add a time filter to limit how far back messages are synced. The time filter is only available after a channel has been selected: click All at the top next to the selected channel to open the date range option.
5
Set sync frequency
Choose how often Qontext should refresh data from Slack (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 (workspace, channels, time filter, frequency), then confirm to create the connection. Qontext will start the initial sync shortly after.
By default, Qontext connects to Slack through its own Slack app. If your organization needs the data source connection to go through a Slack app you own, you can use your own OAuth client instead. This applies to the Slack data source only: Qontext Tag keeps using the Qontext Slack app. You create the app in your Slack workspace and manage its approval and access yourself.
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 permission to create apps in your Slack workspace.
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 Slack, create a new connection, then expand Advanced and open Custom OAuth client. Copy the Redirect URI shown there. The manifest in the next step already uses https://app.qontext.ai/oauth/callback/slack. If the form shows a different value, use that one instead.
2
Create the Slack app from a manifest
Go to api.slack.com/apps and click Create New App. Choose From a manifest and click Continue.In the JSON tab, replace the contents with the manifest below. Its redirect_urls entry is the Redirect URI from Qontext. Select the Slack workspace for the app, click Next, review the app, and click Create.
The manifest declares these scopes for your app. Qontext requires all of them. If any is missing, the connection is not created. The manifest also turns on token rotation, so Qontext can refresh access to Slack automatically.
3
Copy the Client ID and Client Secret
In your new app, open Basic Information and scroll to App Credentials. Copy the Client ID and the Client Secret.
Treat the Client secret like a password. Qontext stores it encrypted and never shows it again after you save it.
4
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 to Slack, select your workspace, and click Allow to approve the scopes. From here, the setup continues as described in Setting up the connection.
If you prefer to create the app manually, add the same scopes under OAuth & Permissions > Bot Token Scopes, add the Redirect URI under Redirect URLs, and opt in to token rotation with the Opt In button on the same page.
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
Slack rejected the Client ID or Client secret.
Copy both again from Basic Information > App Credentials, without extra spaces. If you regenerated the secret, use the new one.
redirect_uri_mismatch
The Redirect URI is not registered in your Slack app.
Copy the Redirect URI from the Custom OAuth client section in Qontext and add it under OAuth & Permissions > Redirect URLs. Click Save URLs. It has to match exactly.
access_denied
Access was not granted.
Connect again and click Allow. If your Slack workspace requires admin approval for apps, ask a workspace admin to approve your app.
invalid_grant
Slack rejected the authorization.
Connect again. This happens when the app was uninstalled, its tokens were revoked, or the authorization expired.
scopes
Not all required scopes were granted.
Compare the scopes under OAuth & Permissions > Bot Token Scopes with the list above and add the missing ones. Reinstall the app to your workspace, then connect again.
provider_error
Slack rejected the request from your OAuth app for another reason.
Check the app against the steps above: the scopes, the Redirect URL, and the credentials. Then connect again.
When you connect Slack, you’ll see a consent screen titled Allow the ‘Qontext’ app to access Slack. It lists the permissions (scopes) Qontext needs; they are read-only. You’ll see categories such as:
- Content and info about channels & conversations — Messages, files, and other content in public and private channels, direct messages, and group conversations.- Content and info about your workspace — User lists, channel lists, workspace settings, and other workspace-level metadata.
Granting these scopes is required for the connection to work. Qontext only reads data from Slack to ingest it into your context repository; it does not post messages or change anything in your workspace.
The initial sync time depends on how many channels and messages are in scope. Large workspaces with many active channels can take up to 12 hours to fully index.
Subsequent syncs process incremental changes and typically complete much faster than the initial sync.
Any Slack workspace Admin or member with permission to install apps can set up the Slack connection. Ensure the account can invite the Qontext app to the channels you want to ingest.
Can I connect multiple Slack workspaces to one Qontext workspace?
Yes. You can connect multiple Slack workspaces from the Sources tab in your Qontext workspace. Add each workspace as a separate data source.
How do I manually refresh Slack data?
Manual refresh for Slack connections is available via the Sources tab. Navigate to the respective Slack 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 Slack?
Disconnecting stops further syncs. Content already ingested from Slack remains in your context repository. For data removal, contact support@qontext.ai.
How long does the first Slack sync take?
Initial sync time varies: small or lightly used workspaces may finish in under an hour; very active workspaces with many channels and messages can take up to 12 hours. Subsequent syncs are incremental and faster.
What should I do if my Slack sync fails?
Reconnect the integration and validate that the Qontext app is still invited to the relevant channels and has the required scopes. If you connected with your own OAuth client, see Troubleshooting a custom OAuth client. If the issue persists, contact support@qontext.ai.
Can I use my own Slack app?
Yes, for the Slack data source. Qontext Tag keeps using the Qontext Slack app. If your organization wants the connection to go through a Slack app you own, expand Advanced when you add a new connection and use Custom OAuth client. The setup is described in Use your own OAuth client. Qontext requires the same scopes as with its own app. This option is off by default. Reach out at support@qontext.ai to turn it on.
Is my Slack data secure?
Yes. All data is encrypted in transit (TLS) and at rest. Qontext only accesses channels and messages you explicitly authorize via the Slack OAuth flow.
How can I connect to personal Slack channels?
For private channels, the Qontext app must be added as a member first. In Slack, open the channel and type /invite @Qontext.
{"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/slack","slug":"/sources/slack","pageMetadata":{"title":"Slack","icon":"/images/logos/slack.png","description":"Connect Slack with Qontext","href":"/sources/slack"},"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 Slack 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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Info,OptimizedImage,Step,Steps,Table}=_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);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`The Slack connection allows Qontext to read messages and threads from channels in a connected Slack workspace and ingest their text content into your context repository.`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Only channels and content that the connected Slack app can access will be ingested into your context repository.`})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Slack can also work in the other direction. With `,_jsx(_components.strong,{children:`Qontext Tag`}),`, you mention `,_jsx(_components.code,{children:`@Qontext`}),` in a channel or thread and get answers from your context repository inside Slack. See `,_jsx(_components.a,{href:`/features/qontext-tag/slack`,children:`Qontext Tag in Slack`}),`.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Supported data types:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Object`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Channel messages`})}),_jsx(_components.td,{children:`Messages posted in channels the app is invited to`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Threads`})}),_jsx(_components.td,{children:`Replies and thread conversations linked to channel messages`})]})]})]}),`\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 Slack from your Qontext workspace, authorize access in Slack, then choose how often to sync. The steps below walk you through the full flow.`}),`\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 Slack as the data source`,children:[_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`Slack`}),` from the list of available data sources. This starts the Slack 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 Slack 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:`Connect your Slack workspace`,children:[_jsxs(_components.p,{children:[`You can `,_jsx(_components.strong,{children:`reuse existing credentials`}),` (if you’ve already connected this Slack workspace to Qontext) or `,_jsx(_components.strong,{children:`create a new connection`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=7cde45375b3b867bc2914f0c8cf8e978`,alt:`Choose an existing connection or create a new one`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1499`,width:`1499`,\"data-og-height\":`796`,height:`796`,\"data-path\":`sources/images/slack/slack_credentials.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=b2ab9cdd354079dd581258cc521999f4 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=210a97d44d708a18a9fbb53cc3950a5a 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=26a0fb2a335ffa88e1d8de74f84a7d15 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=0614fc3852d491d569679849a71976f4 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=371add68fb2f81c5684644afd0587674 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_credentials.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=df797a5bbb092b7a2d77bf6e40967d34 2500w`}),_jsxs(_components.p,{children:[`If you create a new credential, sign in to Slack when prompted and select the workspace you want to connect. On the Slack consent screen, review the requested permissions and click `,_jsx(_components.strong,{children:`Allow`}),`. At this step the Qontext app is added to your Slack workspace so it can read the channels you authorize in the next step.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=e37259f3957d6cc90781bf9f4626e517`,alt:`Slack OAuth permissions consent screen`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1770`,width:`1770`,\"data-og-height\":`1012`,height:`1012`,\"data-path\":`sources/images/slack/slack_give_permissions.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=ffa58f8ae37d0d6398a3e7ed586a8f4f 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=5c3bd2c50c41afe8422b48b00185ee18 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=40986594c394ffed386df9f28cb592ae 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=5505fd509692f527e6a65a63e2987baf 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=3c8cb46bbd984e6734a2c19d8a97ecc3 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_give_permissions.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=352f72a531112a1cf829e2640cb34e05 2500w`})]}),_jsxs(Step,{title:`Configure what to sync (filters)`,id:`configure-what-to-sync-filters`,children:[_jsx(_components.p,{children:`Select the channels you want Qontext to ingest. Only channels in which the Qontext app is a member can be ingested.`}),_jsxs(Info,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Public channels`}),` are automatically joined by the Qontext app when you select them.`]}),_jsxs(_components.p,{children:[`For `,_jsx(_components.strong,{children:`private channels`}),`, the Qontext app must be added as a member first. In Slack, open the channel and type `,_jsx(_components.code,{children:`/invite @Qontext`}),`.`]})]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=9f9b6ecca46b4d841cec53d5c4a6749a`,alt:`Select Slack channels to sync`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1506`,width:`1506`,\"data-og-height\":`1168`,height:`1168`,\"data-path\":`sources/images/slack/slack_filters.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=4f34c8899fb51462d266db50ed57809c 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=aa64e72bae19db21015b6b130c8767cb 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=ffc0bfec0b69fac2e05461115cb65e00 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=301f27cf89453757674a48a206755f7b 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=9cdc58891ec4a42077586792d342ea34 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_filters.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=894b6524551da04b76049da23d38371b 2500w`}),_jsxs(_components.p,{children:[`You can add a `,_jsx(_components.strong,{children:`time filter`}),` to limit how far back messages are synced. The time filter is only available after a channel has been selected: click `,_jsx(_components.strong,{children:`All`}),` at the top next to the selected channel to open the date range option.`]})]}),_jsxs(Step,{title:`Set sync frequency`,children:[_jsx(_components.p,{children:`Choose how often Qontext should refresh data from Slack (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 (workspace, channels, time filter, 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/slack/slack_review_create.png?fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=731638109ef32bdb712d7418fa463237`,alt:`Review summary and create Slack connection`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`100%`},\"data-og-width\":`1506`,width:`1506`,\"data-og-height\":`769`,height:`769`,\"data-path\":`sources/images/slack/slack_review_create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=280\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=b3c6c03a0ed369c3ac020ae1653e8fb7 280w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=560\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=7ba33ecbcaffcb9916998c1c189d91b2 560w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=840\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=1a8cb8e354bcac21ee7c8b38b394f69f 840w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=e3ae7d2b1b4e6b8461953d29e4a87418 1100w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=a3e6e43b3be2cd27fd9f60ee8caff4c9 1650w, https://mintcdn.com/qontext/tQWBAY2xI9FkBrzW/sources/images/slack/slack_review_create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=tQWBAY2xI9FkBrzW\u0026q=85\u0026s=12ff7e92e01f70fefc68e42b9aa38068 2500w`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`use-your-own-oauth-client`,children:`Use your own OAuth client`}),`\n`,_jsxs(_components.p,{children:[`By default, Qontext connects to Slack through its own Slack app. If your organization needs the data source connection to go through a Slack app you own, you can use your own OAuth client instead. This applies to the Slack data source only: `,_jsx(_components.a,{href:`/features/qontext-tag/slack`,children:`Qontext Tag`}),` keeps using the Qontext Slack app. You create the app in your Slack workspace and manage its approval and access yourself.`]}),`\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 permission to create apps in your Slack workspace.`]})}),`\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:`Slack`}),`, 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. The manifest in the next step already uses `,_jsx(_components.code,{children:`https://app.qontext.ai/oauth/callback/slack`}),`. If the form shows a different value, use that one instead.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=7d34212a8d0981a57d67afc28c17adcb`,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/slack/slack_custom_oauth_client.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=6067401a529b497b9bdee082a22df2b9 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e52fd9e22a1d59828f74d9fa11cff61b 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e16495aff945ed0882bc2269de8f2faf 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e2d306ada2fcf766ab1ad137dbcef7f5 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=75428438358c795ed9eca5f5004f4f94 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_custom_oauth_client.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=2b887acf237ed9a9fbe2db23162dba66 2500w`})]}),_jsxs(Step,{title:`Create the Slack app from a manifest`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://api.slack.com/apps`,children:`api.slack.com/apps`}),` and click `,_jsx(_components.strong,{children:`Create New App`}),`. Choose `,_jsx(_components.strong,{children:`From a manifest`}),` and click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`JSON`}),` tab, replace the contents with the manifest below. Its `,_jsx(_components.code,{children:`redirect_urls`}),` entry is the Redirect URI from Qontext. Select the Slack workspace for the app, click `,_jsx(_components.strong,{children:`Next`}),`, review the app, and click `,_jsx(_components.strong,{children:`Create`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`32`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_information\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Qontext\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"features\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"bot_user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Qontext\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"always_online\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"oauth_config\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"redirect_urls\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://app.qontext.ai/oauth/callback/slack\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scopes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"bot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"app_mentions:read\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"channels:history\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"channels:join\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"channels:read\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"chat:write\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"groups:history\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"groups:read\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reactions:write\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"team:read\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"users:read\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"users:read.email\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"settings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"token_rotation_enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(Info,{children:_jsx(_components.p,{children:`The manifest declares these scopes for your app. Qontext requires all of them. If any is missing, the connection is not created. The manifest also turns on token rotation, so Qontext can refresh access to Slack automatically.`})}),_jsx(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=47e31e71319b9129299d585eabd89cae`,alt:`Slack Create from a manifest dialog with the JSON manifest`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`80%`,height:`auto`},\"data-og-width\":`640`,width:`640`,\"data-og-height\":`1177`,height:`1177`,\"data-path\":`sources/images/slack/slack_create_from_manifest.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e89a8fa691ef573f2cdb0fae4bca1d5b 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=4d226637ba289fc6857714c8e23ccb89 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=8bc6a765a213b394d56419e54ec97213 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=d9f8db75a7a8e65790793d2ed3f0f3bb 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=0b1465e8c4ddb242920dc0dd177b1770 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_create_from_manifest.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=bb11a9abed1024edaecd96b90437e54f 2500w`})]}),_jsxs(Step,{title:`Copy the Client ID and Client Secret`,children:[_jsxs(_components.p,{children:[`In your new app, open `,_jsx(_components.strong,{children:`Basic Information`}),` and scroll to `,_jsx(_components.strong,{children:`App Credentials`}),`. Copy the `,_jsx(_components.strong,{children:`Client ID`}),` and the `,_jsx(_components.strong,{children:`Client Secret`}),`.`]}),_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(OptimizedImage,{src:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=a218d1ea4302887e2b9f14759b76686b`,alt:`App Credentials section in the Slack app's Basic Information page`,className:`mint-rounded-lg mint-mt-4`,style:{maxWidth:`80%`,height:`auto`},\"data-og-width\":`1364`,width:`1364`,\"data-og-height\":`896`,height:`896`,\"data-path\":`sources/images/slack/slack_app_credentials.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=280\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=56a19226ed8092d9a04f88fec89c6c96 280w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=560\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=023c6aa31b662e6cd20a47deb9d78b8c 560w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=840\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=61ab94ba2b3b9a5a2a37666f4dc16c66 840w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=8c9f9f07787838f271c3e8eb25bfe6fe 1100w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e52dee6f1ece0fcbc679735571948c70 1650w, https://mintcdn.com/qontext/XlPuII8TpSPmq_rL/sources/images/slack/slack_app_credentials.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XlPuII8TpSPmq_rL\u0026q=85\u0026s=e6a6e87e13500fc376c85393fe5873e8 2500w`})]}),_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 to Slack, select your workspace, and click `,_jsx(_components.strong,{children:`Allow`}),` to approve the scopes. 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:[`If you prefer to create the app manually, add the same scopes under `,_jsx(_components.strong,{children:`OAuth \u0026 Permissions > Bot Token Scopes`}),`, add the Redirect URI under `,_jsx(_components.strong,{children:`Redirect URLs`}),`, and opt in to token rotation with the `,_jsx(_components.strong,{children:`Opt In`}),` button on the same page.`]})}),`\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:`Slack rejected the Client ID or Client secret.`}),_jsxs(_components.td,{children:[`Copy both again from `,_jsx(_components.strong,{children:`Basic Information > App Credentials`}),`, without extra spaces. If you regenerated the secret, use the new one.`]})]}),_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 Slack app.`}),_jsxs(_components.td,{children:[`Copy the Redirect URI from the Custom OAuth client section in Qontext and add it under `,_jsx(_components.strong,{children:`OAuth \u0026 Permissions > Redirect URLs`}),`. Click `,_jsx(_components.strong,{children:`Save URLs`}),`. It has to match exactly.`]})]}),_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 click `,_jsx(_components.strong,{children:`Allow`}),`. If your Slack workspace requires admin approval for apps, ask a workspace admin to approve your app.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_grant`})}),_jsx(_components.td,{children:`Slack rejected the authorization.`}),_jsx(_components.td,{children:`Connect again. This happens when the app was uninstalled, its tokens were revoked, or the authorization expired.`})]}),_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:[`Compare the scopes under `,_jsx(_components.strong,{children:`OAuth \u0026 Permissions > Bot Token Scopes`}),` with the list above and add the missing ones. Reinstall the app to your workspace, then connect again.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`provider_error`})}),_jsx(_components.td,{children:`Slack rejected the request from your OAuth app for another reason.`}),_jsx(_components.td,{children:`Check the app against the steps above: the scopes, the Redirect URL, and the credentials. 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:`slack-oauth-scopes`,children:`Slack OAuth scopes`}),`\n`,_jsxs(_components.p,{children:[`When you connect Slack, you’ll see a consent screen titled `,_jsx(_components.strong,{children:`Allow the ‘Qontext’ app to access Slack`}),`. It lists the permissions (scopes) Qontext needs; they are read-only. You’ll see categories such as:`]}),`\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:`- Content and info about channels \u0026 conversations — Messages, files, and other content in public and private channels, direct messages, and group conversations.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Content and info about your workspace — User lists, channel lists, workspace settings, and other workspace-level metadata.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Granting these scopes is required for the connection to work. Qontext only reads data from Slack to ingest it into your context repository; it does not post messages or change anything in your workspace.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`sync-latency`,children:`Sync latency`}),`\n`,_jsxs(_components.p,{children:[`The initial sync time depends on how many channels and messages are in scope. Large workspaces with many active channels can take `,_jsx(_components.strong,{children:`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:`Who can set up the Slack connection?`,id:`who-can-set-up-the-slack-connection`,children:_jsxs(_components.p,{children:[`Any Slack workspace `,_jsx(_components.strong,{children:`Admin`}),` or member with permission to install apps can set up the Slack connection. Ensure the account can invite the Qontext app to the channels you want to ingest.`]})}),_jsx(Accordion,{title:`Can I connect multiple Slack workspaces to one Qontext workspace?`,id:`can-i-connect-multiple-slack-workspaces-to-one-qontext-workspace`,children:_jsxs(_components.p,{children:[`Yes. You can connect multiple Slack workspaces from the `,_jsx(_components.strong,{children:`Sources`}),` tab in your Qontext workspace. Add each workspace as a separate data source.`]})}),_jsxs(Accordion,{title:`How do I manually refresh Slack data?`,id:`how-do-i-manually-refresh-slack-data`,children:[_jsxs(_components.p,{children:[`Manual refresh for Slack connections is available via the `,_jsx(_components.strong,{children:`Sources`}),` tab. Navigate to the respective Slack 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/slack/slack_resync.png?fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=bfd61036b409ca429cc5c92c573fc812`,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/slack/slack_resync.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=280\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=d149a50ab914c17f20f325eea7c49db1 280w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=560\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=f9a5547800c0ea88401287fc6637b216 560w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=840\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=53c1efc503b4459523cce46666eb1bc4 840w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=1100\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=aba7893c31fd1478793477f7b6014982 1100w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=1650\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=2a1aed0060e6d0f13b82126f76690c36 1650w, https://mintcdn.com/qontext/RInubP-GdubbkOre/sources/images/slack/slack_resync.png?w=2500\u0026fit=max\u0026auto=format\u0026n=RInubP-GdubbkOre\u0026q=85\u0026s=c6a3248befdb06aa59a41fd8c67d1c0e 2500w`})]}),_jsx(Accordion,{title:`What happens if I disconnect Slack?`,id:`what-happens-if-i-disconnect-slack`,children:_jsxs(_components.p,{children:[`Disconnecting stops further syncs. Content already ingested from Slack remains in your context repository. For data removal, contact `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),`.`]})}),_jsx(Accordion,{title:`How long does the first Slack sync take?`,id:`how-long-does-the-first-slack-sync-take`,children:_jsx(_components.p,{children:`Initial sync time varies: small or lightly used workspaces may finish in under an hour; very active workspaces with many channels and messages can take up to 12 hours. Subsequent syncs are incremental and faster.`})}),_jsx(Accordion,{title:`What should I do if my Slack sync fails?`,id:`what-should-i-do-if-my-slack-sync-fails`,children:_jsxs(_components.p,{children:[`Reconnect the integration and validate that the Qontext app is still invited to the relevant channels and has the required scopes. If you connected with your own OAuth client, see `,_jsx(_components.a,{href:`#troubleshooting-a-custom-oauth-client`,children:`Troubleshooting a custom OAuth client`}),`. If the issue persists, contact `,_jsx(_components.a,{href:`mailto:support@qontext.ai`,children:`support@qontext.ai`}),`.`]})}),_jsx(Accordion,{title:`Can I use my own Slack app?`,id:`can-i-use-my-own-slack-app`,children:_jsxs(_components.p,{children:[`Yes, for the Slack data source. `,_jsx(_components.a,{href:`/features/qontext-tag/slack`,children:`Qontext Tag`}),` keeps using the Qontext Slack app. If your organization wants the connection to go through a Slack app you own, 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 requires the same scopes as with its own app. 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 Slack data secure?`,id:`is-my-slack-data-secure`,children:_jsx(_components.p,{children:`Yes. All data is encrypted in transit (TLS) and at rest. Qontext only accesses channels and messages you explicitly authorize via the Slack OAuth flow.`})}),_jsx(Accordion,{title:`How can I connect to personal Slack channels?`,id:`how-can-i-connect-to-personal-slack-channels`,children:_jsxs(_components.p,{children:[`For `,_jsx(_components.strong,{children:`private channels`}),`, the Qontext app must be added as a member first. In Slack, open the channel and type `,_jsx(_components.code,{children:`/invite @Qontext`}),`.`]})})]})]})}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":"Slack","icon":"/images/logos/slack.png","description":"Connect Slack with Qontext","href":"/sources/slack"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","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":"Slack OAuth scopes","slug":"slack-oauth-scopes","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":"Slack - Qontext","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T11:38:31.450Z","originalFileLocation":"sources/slack.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 Slack 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=\"Slack - Qontext\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Slack 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/slack\">\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=Slack\u0026amp;description=Connect+Slack+with+Qontext\u0026amp;theme=fa88448add6e196d62757dc6\u0026amp;signature=92dd4c2dfb0ee9620061a31e99f2e964c25ecc60bfd936052f0c163bdcbab6a7\">\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=\"Slack - Qontext\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Slack with Qontext\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qontext.mintlify.app/_mintlify/api/og/v2?division=Sources\u0026amp;title=Slack\u0026amp;description=Connect+Slack+with+Qontext\u0026amp;theme=fa88448add6e196d62757dc6\u0026amp;signature=92dd4c2dfb0ee9620061a31e99f2e964c25ecc60bfd936052f0c163bdcbab6a7\">\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/slack\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sources/slack.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/slack#webpage\",\"url\":\"https://docs.qontext.ai/sources/slack\",\"name\":\"Slack\",\"description\":\"Connect Slack with Qontext\",\"dateModified\":\"2026-11-03T11:38:31.450Z\",\"isPartOf\":{\"@id\":\"https://docs.qontext.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qontext.ai/sources/slack#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qontext.ai/sources/slack#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sources\",\"item\":\"https://docs.qontext.ai/sources/confluence\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Slack\",\"item\":\"https://docs.qontext.ai/sources/slack\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.qontext.ai/sources/slack#article\",\"headline\":\"Slack\",\"name\":\"Slack\",\"description\":\"Connect Slack with Qontext\",\"url\":\"https://docs.qontext.ai/sources/slack\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qontext.ai/sources/slack#webpage\"},\"dateModified\":\"2026-11-03T11:38:31.450Z\",\"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","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","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","description":"Connect Notion with Qontext","href":"/sources/notion"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/qontext/images/logos/slack.png","href":"/sources/slack"},{"title":"SharePoint","description":"Connect SharePoint with Qontext","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":"Slack - Qontext","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}