Skip to main content
Connectors pull content from your existing tools into Onyx’s search index. Once a connector is set up and syncing, the documents it indexes are immediately available for search and chat — with permissions from the source application automatically enforced.

How connectors work

Every connector follows the same lifecycle:
1

Provide credentials

Each connector requires credentials — an OAuth token, API key, or service account — that Onyx uses to read from the source. Credentials are stored encrypted and are never exposed in the UI after saving.
2

Create the connector

In Admin → Connectors, click Add connector, select the integration type, and configure the scope: which workspace, repository, folder, or channel to sync.
3

First sync

Onyx performs an initial full sync to index all accessible documents. For large sources this may take several minutes to hours.
4

Incremental syncs

After the first sync, Onyx polls for changes on a schedule (configurable per connector, defaulting to every 30 minutes). Only new or modified documents are re-indexed.
5

Permission sync

Alongside document content, Onyx records which users and groups can access each document. These ACLs are refreshed on every sync so that a user searching Onyx sees exactly the same documents they could access in the source app.

Connector categories

Communication

Slack, Microsoft Teams, Discord, Gmail, IMAP

Project management

Jira, Asana, Linear, ClickUp

Knowledge bases

Confluence, Notion, BookStack, Outline, Slab, Guru, Coda, Gitbook

Code

GitHub, GitLab, Bitbucket

Storage

Google Drive, Dropbox, SharePoint, Egnyte, Blob storage

CRM & sales

Salesforce, HubSpot

Full connector list

Communication

ConnectorDirectoryNotes
Slackconnectors/slack/Public and private channels; direct messages with permission
Microsoft Teamsconnectors/teams/Channels and chat messages via Microsoft Graph
Discordconnectors/discord/Guild channels
Gmailconnectors/gmail/Individual mailboxes via Google Workspace
IMAPconnectors/imap/Any IMAP-compatible mail server
Gongconnectors/gong/Sales call transcripts
Firefliesconnectors/fireflies/Meeting transcripts
Zulipconnectors/zulip/Channels and streams

Project management

ConnectorDirectoryNotes
Jiraconnectors/jira/Issues, comments, and epics
Asanaconnectors/asana/Tasks and projects
Linearconnectors/linear/Issues and cycles
ClickUpconnectors/clickup/Tasks, docs, and spaces
Productboardconnectors/productboard/Feature notes and insights
Airtableconnectors/airtable/Bases and tables
Testrailconnectors/testrail/Test cases and runs
Request Trackerconnectors/requesttracker/RT tickets

Knowledge bases & wikis

ConnectorDirectoryNotes
Confluenceconnectors/confluence/Spaces, pages, and blog posts
Notionconnectors/notion/Pages and databases
BookStackconnectors/bookstack/Books, chapters, and pages
Outlineconnectors/outline/Collections and documents
Slabconnectors/slab/Posts and topics
Guruconnectors/guru/Cards and collections
Codaconnectors/coda/Docs and tables
Gitbookconnectors/gitbook/Spaces and pages
Document360connectors/document360/Knowledge base articles
Loopioconnectors/loopio/RFP library entries
Axeroconnectors/axero/Community and wiki content
Drupal Wikiconnectors/drupal_wiki/Articles and taxonomies
MediaWikiconnectors/mediawiki/Wiki pages (Wikipedia-style)
Wikipediaconnectors/wikipedia/Public Wikipedia articles
Canvasconnectors/canvas/Course content
Highspotconnectors/highspot/Sales enablement content
Discourseconnectors/discourse/Forum threads and posts
Xenforoconnectors/xenforo/Forum threads
Freshdeskconnectors/freshdesk/Support articles and tickets
Zendeskconnectors/zendesk/Help centre articles and tickets

Code & version control

ConnectorDirectoryNotes
GitHubconnectors/github/Issues, pull requests, and files
GitLabconnectors/gitlab/Issues, MRs, and repository files
Bitbucketconnectors/bitbucket/Issues, pull requests, and files

Storage & files

ConnectorDirectoryNotes
Google Driveconnectors/google_drive/Files and shared drives
Google Sitesconnectors/google_site/Published sites
Dropboxconnectors/dropbox/Files and folders
SharePointconnectors/sharepoint/Sites and document libraries
Egnyteconnectors/egnyte/Files and folders
Blob storageconnectors/blob/S3, Azure Blob, GCS
Web crawlerconnectors/web/Crawls public web pages
File uploadconnectors/file/Direct file uploads via the UI

CRM & sales

ConnectorDirectoryNotes
Salesforceconnectors/salesforce/Accounts, contacts, cases, and custom objects
HubSpotconnectors/hubspot/Contacts, deals, tickets, and notes

Document permissioning

Onyx mirrors access controls from the source application so users only see what they are already authorised to access.
Each connector implements validate_perm_sync() from BaseConnector. During sync, Onyx reads the ACL for every document (e.g., Google Drive sharing settings, Confluence page restrictions, GitHub repository visibility) and stores a permission record alongside the indexed content. At query time, results are filtered against the requesting user’s identity so only permitted documents are returned.
For connectors that support group-based permissions (Confluence, GitHub, Google Workspace), Onyx also syncs group membership. When a user is added to or removed from a group in the source app, their access in Onyx is updated on the next permission sync.
Some connectors (web crawler, file upload, Wikipedia) index publicly accessible content and make it available to all users. For connectors backed by authenticated services, documents are private by default and only surfaced to users whose identity can be verified against the source ACL.
If a connector’s credentials expire or are revoked, syncing stops and documents already indexed remain accessible until the next successful sync. Re-authorise the connector in Admin → Connectors to resume syncing.

Build docs developers (and LLMs) love